Uh oh!
There was an error while loading. Please reload this page.
StdCellLib DRC fixes and via enclosure improvement - #5
Conversation
FatsieFS
commented
Dec 19, 2021
Hopefully I did magic DRC properly this time and is the design DRC clean. |
FatsieFS
commented
Dec 19, 2021
Having top layer not as CRL.RoutingLayerGauge.PowerSupply does not seem to cause a problem. I can do P&R only I seem to have one failed route. |
FatsieFS
commented
Dec 20, 2021
Out of the discussion in #4 I think I now how to improve the routing gauge computation. Will try to see if I can squeeze that in today. |
FatsieFS
commented
Dec 20, 2021
And there seems to be implant spacing errors after routing also be left... |
FatsieFS
commented
Dec 20, 2021
Pushed new commit that should fix DRC errors of minimum implant spacing after placement and also the computed via enclosure should be more in line with #4. |
FatsieFS
commented
Dec 20, 2021
And I rebased also on main branch. |
gatecat
commented
Dec 20, 2021
FatsieFS
commented
Dec 21, 2021
How do you run DRC ? I guess I wrongly assumed DRC was OK but that it actually errored out. % ~/eda/open_pdks/sky130/sky130A/libs.tech/magic/run_standard_drc.py StdCellLib_upstream.gds Evaluating full DRC results for layout StdCellLib_upstreamRunning: magic -dnull -noconsole -rcfile /home/verhaegs/eda/Chips4Makers/CIIC/open_pdks/sky130/sky130A/libs.tech/magic/sky130A.magicrc /home/verhaegs/eda/code/c4m-pdk-sky130/drc/run_magic_drc_StdCellLib_upstream.tclRunning in directory: /home/verhaegs/eda/code/c4m-pdk-sky130/drcMagic 8.3 revision 239 - Compiled on vr 10 dec 2021 13:59:22 CET.Starting magic under Tcl interpreterUsing the terminal as the console.Using NULL graphics device.Processing system .magicrc fileSourcing design .magicrc for technology sky130A ...2 Magic internal units = 1 LambdaInput style sky130(vendor): scaleFactor=2, multiplier=2Scaled tech values by 2 / 1 to match internal grid scalingLoading sky130A Device Generator Menu ...Loading "/home/verhaegs/eda/code/c4m-pdk-sky130/drc/run_magic_drc_StdCellLib_upstream.tcl" from command line.DRC style is now "drc(full)"Warning: Calma reading is not undoable! I hope that's OK.Library written using GDS-II Release 6.0Library name: LIBReading "a2_x2".Reading "a3_x2"....Reading "nor4_x0".Creating new cellLoading DRC CIF style.No errors found.Using technology "sky130A", version 1.0.227-0-g527bfa4Error message output from magic:CIF file read warning: CIF style sky130(vendor): units rescaled by factor of 2 / 1File StdCellLib_upstream.mag couldn't be readNo such file or directoryDone! |
FatsieFS
commented
Dec 21, 2021
OK, I can reproduce the DRC error now in the magic GUI; will fix. |
FatsieFS
commented
Dec 21, 2021
I hope I have now solved the decap_w0 DRC error also. My magic DRC setup is still not ideal. |
gatecat
commented
Dec 21, 2021
oh, I should note, I'm running DRC on the GDS coming out of Coriolis (and loading cells inside it) and not on the StdCellLib.gds StdCellLib.gds looks alright here; so I guess something is slightly off in the Coriolis techlib |
FatsieFS
commented
Dec 21, 2021
Seems I botched the commit as I saw and fixed that problem; mmm... |
FatsieFS
commented
Dec 21, 2021
Seems I only regenerated gds files and not the Coriolis files for last commit. |
gatecat
commented
Dec 21, 2021
Looks like a possible fix to the above issue is: --- a/thirdparty/open_pdk/C4M.Sky130/libs.tech/coriolis/techno/etc/coriolis2/node130/sky130/StdCellLib.py+++ b/thirdparty/open_pdk/C4M.Sky130/libs.tech/coriolis/techno/etc/coriolis2/node130/sky130/StdCellLib.py@@ -29,7 +29,7 @@ def _routing():
rg.setSymbolic(False)
metal = tech.getLayer('li')
via = tech.getLayer('li_mcon_m1')
- setEnclosures(via, metal, (u(0.075), u(0.0)))+ setEnclosures(via, metal, (u(0.0), u(0.0)))
rg.addLayerGauge(CRL.RoutingLayerGauge.create(
metal, CRL.RoutingLayerGauge.Horizontal, CRL.RoutingLayerGauge.PinOnly, 0, 0.0,
u(0.0), u(0.51), u(0.17), u(0.17), u(0.17), u(0.17),after that I think the last remaining DRC issues are relating to #6 for which a Coriolis commit just landed and I need to test -- EDIT; yes this does fix the remaining DRC issues! |
FatsieFS
commented
Dec 21, 2021
The horizontal and vertical enclosure seem to be mixed up, will have a closer look. |
* Fix DRC errors: * min tap licon enclosure * minimum licon on poly to difftap and nsdm space * minimum poly to difftap space * minimum implant space after P&R * Update via enclosure for routing to make width/height same as the routing layers above and below. In order to compute enclosures properly also right orientation has to be used for PinOnly layer. * TODO: CRL.RoutingLayerGauge.PowerSupply
Problem was that I did not use the proper direction for the PinOnly layer and that way computed the enclosures wrongly. |
gatecat
commented
Dec 22, 2021
FatsieFS
commented
Dec 22, 2021
OK for me to merge. |




wire in the routing direction.