StanfordAHA/garnet

Tapeout: Final error check for Innovus

Opened this issue · 0 comments

As far as I could tell, there was no final error check in the tapeout scripts. So I put one in. The relevant scripts include sr_count_errors.tcl (called from top_garnet_staged.tcl) and sr_finalfix.tcl).

I use the command check_drc to do the final error check at the very end, just before tape streamout. Initially it found about a million DRC violations. Eventually I managed to get this down to zero by

  • delete sealring: 1M errors => 50K errors

  • reduce extra-large ICOVL blockages (BIGBLOCK issue #395)
    51K errors => 18K errors

  • ICOVL blockages instead of halos (SPACE1703 issue #393)
    15K => 11K

  • delete tile_id straps (M4CGRA issue #394)
    11K => 300

  • delete M8 blockages across top of chip (issue #396)
    300 => 6

  • delete iphy blockages (see sr_count_errors.tcl)
    6 => 2

  • fix double corner (see sr_count_errors.tcl, sr_finalfix.tcl)
    2 => 0

After the check, I replace the tile_id straps.

My questions:

  • is there a reason why there was no final error check in the script?
  • is this a reasonable thing to do and/or is there a better thing?

Also: yes I know that the important check is the Calibre DRC, but it
seems like getting the innovus script DRC-free is also a good goal?