<@U016HSAA3RQ> <@U017X0NM2E7> <@U0169AQ41L6>, Hi J...
# analog-design
j
@jeffdi @Mitch Bailey @mehdi, Hi Jeff and Mitch, I meet two problems with my DRC precheck, first one is about the zero area problem, how can I solve this problem? the second one is the off-grid problem, when I check them, I just find there is nothing, so how can I fix the off-grid problem? Thank you very much!
m
In klayout, you can do an area select to select small shapes. Could you post your gds and error results?
j
@Mitch Bailey, Hi Mitch, this is my GDS and error results:
m
@Tim Edwards @Mitch Bailey and @jeffdi can you guys help ? we do not know what the issue is..
@Jianwei Jia Please open a github issue as well
j
OK
m
As for the off-grid checks, the manufacturing grid is 0.005um, so layers checked must consist of points that are a multiple of this. See
mpw_precheck/checks/tech-files/sky130A_mr.drc
Copy code
psdm.ongrid(0.005).output("psdm_OFFGRID", "x.1b : OFFGRID vertex on psdm")
mcon.ongrid(0.005).output("ct_OFFGRID", "x.1b : OFFGRID vertex on mcon")
m2.ongrid(0.005).output("m2_OFFGRID", "x.1b : OFFGRID vertex on m2")
Also for reference, https://skywater-pdk.readthedocs.io/en/main/rules/assumptions.html under the
General
section. Looks like a klayout problem when displaying the errors. Maybe related to the origin of
DCDC_FF
way to the right of the actual data and being placed rotated 180°.
@Jianwei Jia Can you open a klayout github issue? The gds and error results you posted here should be a sufficient test case.
j
Thank you, Mitch, OK, let me push an issue in github.
m
@Jianwei Jia The layout still needs to be fixed. You can tell where, can't you?
j
Yeah, I know how to find them now, thank you very much, Mitch! I will push this issue after fixing them!
m
The zero area shapes are on
li1/drawing
,
met1/drawing
and
met2/drawing
. The coordinates in the marker file are the coordinates of the errors in the cells where the errors actually occur. They have not been translated to the correct global coordinates. Here is a number of errors for each cell/layer/datatype with the coordinates in nm. Totals 347 so that should be all of them.
Copy code
4 DCDC_XSW_PMOS_0_1650326_40a43b21 69/20 0:0
  10 DCDC_XSW_PMOS_0_1650326_40a43b21 68/20 0:0
   4 DCDC_XSW_NMOS_0_1650326_24c8b01c 69/20 0:0
  10 DCDC_XSW_NMOS_0_1650326_24c8b01c 68/20 0:0
   4 DCDC_HUNIT_CONV2TO1_0_1_73a3675f 69/20 0:0
  16 DCDC_HUNIT_CONV2TO1_0_1_73a3675f 68/20 0:0
   8 TGATE_26054449_0_165076_0e455568 68/20 0:0
  12 DCDC_CONV2TO1_0_1650326046 69/20 0:0
  40 DCDC_CONV2TO1_0_1650326046 68/20 0:0
   8 SKY130_FD_SC_HD__INV_4__a334a03f 68/20 0:0
   8 DCDC_MUX_PMOS_0_1650762_3e78fab9 68/20 0:0
   2 DCDC_MUX_TGATE_0_165076_add9839a 69/20 0:0
  12 DCDC_MUX_TGATE_0_165076_add9839a 68/20 0:0
   8 DCDC_MUX_NMOS_0_1650762_762dd4dc 68/20 0:0
  29 CONV21_0 69/20 0:0
   2 CONV21_0 67/20 0:0
  63 CONV21_0 68/20 0:0
   1 INV_B_13409687_0_1653520173 69/20 0:0
   6 INV_B_13409687_0_1653520173 68/20 0:0
  11 DCDC_COMP 69/20 4404:3598
  21 DCDC_COMP 68/20 4404:3598
   8 DCDC_DAC 69/20 7080:5845
  60 DCDC_DAC 68/20 7080:5845
Thinking about it, I don't know if this is a klayout issue or an issue with the ruby drc script.
To create this list, I saved the gds as ASCII text and ran this awk script
Copy code
/^STRNAME/ {
        strname = $2;
}
/^BOUNDARY/ {
        layer = "";
        datatype = "";
        last_coordinate = "";
        duplicate = 0;
}
/^LAYER/ {
        layer = $2;
}
/^DATATYPE/ {
        datatype = $2;
}
/^XY/ {
        xy = $2 $3;
}
NF == 2 && /^[0-9]*: [0-9]*$/ {
        if ( last_coordinate == "" ) {
                last_coordinate = $1 $2;
        } else if ( last_coordinate == $1 $2 ) {
                duplicate++;
        }
}
/^ENDEL/ && duplicate == 3 {
        print strname, layer "/" datatype, last_coordinate;
}
j
Thank you, Mitch! I have fixed them now!
👍 1