Charles Devoite
03/25/2024, 11:13 AMnetgen -batch source setupfile.tcl
, I get the attached error. Does someone know what I might be doing wrong with how I am running the lvs?
If I look at the comp.out by using netgen -batch lvs "magic/dflipflop.spice dflipflop" "schem/dflipflop.spice dflipflop" /path/sky130A_setup.tcl
I notice that the standard cell spice file does not use the standard port names for both schematic and layout. Could this be the problem or might it be something else?Mitch Bailey
03/25/2024, 11:34 AMsetupfile.tcl
looks basically good. The only thing that concerns me is the backslash in the netgen command.
Can you try without it?
lvs "$circuit1 dflipflop" "$circuit2 dflipflop" $setupfile lvs/comp.out
The one line netgen command with batch is trying to compare a fully extracted layout with a schematic that has the standard cells abstracted - there’s no way for netgen to get the subcircuit port names.
A temporary (but not recommended) solution would be to .include
the spice library in the netlist created from the schematic. The preferred method is to use the script and load the files separately.Charles Devoite
03/28/2024, 3:26 PMMitch Bailey
03/28/2024, 3:53 PMtapvpwrgnd_1
cells will be extracted. I can’t remember seeing a symbol for use in xschem analog designs. Shouldn’t be too hard to create though. By default, extracting from gds or mag files does not create a tapvpwrvgnd_1
cell. You can force extraction by setting the LEFview
property. Another method is to use a verilog module for your standard cell circuits, create a symbol for that and include the verilog file in your lvs script.Charles Devoite
03/28/2024, 4:54 PMtapvpwrgnd_1
cells seems to work fine and I can simulate that with some expected errors. When I try to incorporate the tapvpwrgnd_1n
cell, I get lvs mismatch since the xschem standard cells have no connection between those four. Since I want to use some standard cells in my analog design I would like to be able to have the tapvpwrgnd_1
inserted in the subdesigns so that no mismatch occurs. How could I do this? Would you say that a verilog module is the only way to do this or is simply possible to add a small script inside the xschem symbol that includes VPWR=VPB for example?Mitch Bailey
03/28/2024, 6:51 PMMitch Bailey
03/29/2024, 2:05 AMVGND=vss VNB=vss VPB=vdd3v3 VPWR=vdd3v3
If you have no tap cells in the layout, these 4 nets will all be different.
If you include tap cells, you can set the values for ground and the values for power to be the same as above.
The layout tap cells do not contain any devices, but do short the substrate/well connections to ground/power respectively.
It might be kind of tricky to come up with some system of shorting nets in the schematic through tap cells (maybe a 0 ohm resistor would work).
Because of this, all the designs I’ve seen have common ground/substrate and power/well connections in the schematic and include a tap cell in the layout. In order to pass full chip LVS (which abstracts the tap cell and checks the tap cell counts), you can either include a tapvpwrvgnd_1
primitive symbol in the schematic (with m=<number of instances>), or you could place the tap cells and then flatten them, or change the cell name (only the default tap cells used in digital design are abstracted).
So my recommendation is to copy the digital tap cell to an differently named analog tap cell, place those in the layout, and modify the properties on your digital symbols to connect VGND/VPW to vss and VPWR/VNW to vdd.Charles Devoite
04/01/2024, 3:44 PM