aquiles viza
05/21/2024, 9:17 AM.zip
file contains the temperature sensor developed on Chipalooza, and it compares the extraction of the gds and a flattened version generated with a python script.
To flatten the gds, I'm using a klayout python script that removes the labels on the child cells (labels and pins), and then both gds are compared with netgen. Most of the results are written on extract.sh
. Please read that file.
After the analysis I have some questions:
About the problem
- Is the separation of the vias on different cells (vias_gen*
, via_dev*
) the cause of the problems?
- A lot of duplicated stdcells are generated. Is this a problem? How can I avoid this?
About tool usage and capabilities
- How to properly extract layouts made with klayout? It's seems to be required to flatten the design before loading it on magic.
- PEX netlists only match after removing parasitics. Is possible that magic gives different parasitics for the same design?
- There's a way to "merge" an instance of a cell with it's parent when when reading a gds on magic? Avoiding the flattening of the parent
- Removing the labels from child cells before flatten the TOP
cell could cause an error?
About debugging
- How can we debug extraction inconsistencies on magic? I'm aware of the feedback
command. That's the only alternative?
- Can we get feedback
extraction information per cell?
- Is there a way to store in a gds an error layer
with a message? I want to turn feedback report into a gds.
@Tim Edwards @Mitch Bailey @Amro TorkTim Edwards
05/21/2024, 1:43 PMgds flatglob vias_gen*
and gds flatglob via_dev*
before reading GDS to make sure that those cells get flattened on input. That will probably take care of most of the issues.Mitch Bailey
05/21/2024, 2:12 PMgds flatten yes
to flatten cells with few (default is 10) layers (like via cells).
You can also use gds flatglob <pattern>
multiple times to flatten any cells (like pcells) to make the extracted layout more readable. You’ll want to flatten any cells that have cross hierarchy devices, eg, the poly and diffusion overlapping, but in different cells.
Not sure why your getting duplicated standard cells. Maybe reading multiple gds files multiple times? You might try gds noduplicates yes
. This will just keep the first one.
When you flatten the cell for parasitic extraction, try using flatten -dotoplabels <new-flat-cell>
. This should ignore the labels from subcells.
After extracting, you can use feedback save <filename>
to save the feedback to a file.
Let me know if there are any unresolved problems.aquiles viza
05/21/2024, 6:51 PMextract.sh
script, the magic-extraction
command already uses gds flatglob vias_gen\[$\0-9\]*
. I've retried using vias_gen*
but the number of errors is the same (see extract.sh
).
SDC_DIGITAL_clean: 3100 errors
Total of 3100 errors (check feedback entries).
Total of 21 warnings.
I'm not sure about that's the effect of flatglob
, I think that it just flattens the matched cells, nothing like "replace on parents the instance of matched cells with the content of it". Flattening the parent because of the vias_gen
is the same as flattening the hole circuit in most of the casesaquiles viza
05/21/2024, 8:05 PMgds noduplictes yes
doesn't avoid generation of duplicated stdcells. Maybe because those cells where instanciated and routed manually.
Should we add intermediate routing/spacing cells between stdcells? In this case, inv1 and inv2.aquiles viza
05/21/2024, 8:07 PM- feedback add "device missing 1 terminal; connecting remainder to node vdd" pale
- feedback add "device missing 1 terminal; connecting remainder to node vss" pale
What does that mean?Mitch Bailey
05/21/2024, 11:08 PMflatglob
flattens the specified cells when reading gds. The flattened data is copied to each instance in the parent cells.
The attached gds includes duplicate cells. Can you remove the duplicate cells from the original klayout data?
Opening the gds data in klayout shows cells “named” <defunct>skywater130.vias_gen
. You might be able to flatten all vias_gen
cells with gds globflat *vias_gen*
aquiles viza
05/23/2024, 10:06 PMinv_2$2
as duplicated cell
I think one solution could be to remove all digital flow added layers with a script, but I'm not sure if that could generate problems later.
Will removing the layers added with openlane change some property of the digital block? @Tim Edwards @Mitch Bailey
Thanks a lot for your help.aquiles viza
05/23/2024, 10:11 PMImport > Other files into current > Extra cells
, and maybe pcell information is not found/ignored and the cell is converted into shapes. I'm not sure if this is the case, or how to avoid this to happen. This explains also why there are too many vias cells, when they should be pcells.
I don't know how magic resolves gds with pcell information. Should I store the gds without context info before passing it to magic?
@Amro Tork I think your team has struggled more with this kind of problems, do you have some kind of documentation on how to interoperate klayout with magic?Mitch Bailey
05/23/2024, 11:06 PMhvtp
to a cell will change the extracted device type. So if you have cells that use hvtp
and those that don’t, they will need to be named differently.
83/44
is LVSTEXT
and can probably be ignored. 236/0
is OUTLINE
and can probably also be ignored. The 81/4
indicates a standard cell region and may change the drc rules applied.
Magic can give a lot of false warnings during extraction.
You can probably ignore the device missing 1 terminal
messages. These are generated when a mosfet has source and drain shorted.
How many other errors are there?Mitch Bailey
05/23/2024, 11:23 PMMerge hierarchy
option might work.Linen is a search-engine friendly community platform. We offer integrations with existing Slack/Discord communities and make those conversations Google-searchable.
Powered by