Hello all, I am not able to run Netgen in batch mo...
# magic
a
Hello all, I am not able to run Netgen in batch mode by invoking the .tcl file. The error message indicates that the file
libtk8.6.so
could not read the shared library. What could be the reasons for this?
m
@Anchit Proch Are you running in docker?
a
@Mitch Bailey No, I am not. Is there some problem associated with docker?
m
Just the opposite. There may be problems if you aren't using docker!
Go to your openlane installation directory and run
make mount
to start docker.
a
It worked! Thanks a lot.
Netgen cannot read any device in the netlist generated from the layout, however.
m
In the spice file extracted from the layout?
Are you trying to run LVS?
a
Yes, I am trying to run LVS in batch mode.
m
If you have the GDS and gate level verilog, you could try
flow.tcl -design <design_name> -tag <tag_name> -lvs -gds <gds_file> -net <gate_level_verilog_file>
in docker.
flow.tcl
expects a
<design_name>/config.tcl
file. It will handle the extraction and setup the netgen command.
If your design is under
caravel_user_project
, you can run
make lvs-<design_name>
or
make lvs-gds-<design_name>
but both of these are black box LVS.
a
Actually, I have an analog design. Do any of your suggestions work for analog flows?
m
I think either of them would work as long as they are setup the same. For example, if you're using the
caravel_user_project_analog
framework and had your design under
openlane/<design_name>
with a
config.tcl
file under that.
a
Is it not possible to run LVS in a Linux environment? I have to verify my design for some post-layout simulations too.
m
It should be possible. Can you paste your netgen command here?
a
Copy code
$ netgen -batch lvs "5_Stage_MSSRO.spice" "5_Stage_NSO_Xschem.spice" /home/open_pdks/sky130/sky130A/libs.tech/netgen/sky130A_setup.tcl comp.out
Warning: netgen command 'format' use fully-qualified name '::netgen::format'
Warning: netgen command 'global' use fully-qualified name '::netgen::global'
Reading netlist file 5_Stage_MSSRO.spice
Call to undefined subcircuit sky130_fd_pr__nfet_01v8
Creating placeholder cell definition.
Call to undefined subcircuit sky130_fd_pr__pfet_01v8
Creating placeholder cell definition.
Reading netlist file 5_Stage_NSO_Xschem.spice
Call to undefined subcircuit sky130_fd_pr__nfet_01v8
Creating placeholder cell definition.
Call to undefined subcircuit sky130_fd_pr__pfet_01v8
Creating placeholder cell definition.
Reading setup file /home/open_pdks/sky130/sky130A/libs.tech/netgen/sky130A_setup.tcl
No property area found for device c
Model sky130_fd_pr__nfet_01v8 pin 1 == 3
No property mult found for device sky130_fd_pr__nfet_01v8
No property sa found for device sky130_fd_pr__nfet_01v8
No property sb found for device sky130_fd_pr__nfet_01v8
No property sd found for device sky130_fd_pr__nfet_01v8
No property nf found for device sky130_fd_pr__nfet_01v8
No property nrd found for device sky130_fd_pr__nfet_01v8
No property nrs found for device sky130_fd_pr__nfet_01v8
Model sky130_fd_pr__nfet_01v8 pin 1 == 3
Model sky130_fd_pr__pfet_01v8 pin 1 == 3
No property mult found for device sky130_fd_pr__pfet_01v8
No property sa found for device sky130_fd_pr__pfet_01v8
No property sb found for device sky130_fd_pr__pfet_01v8
No property sd found for device sky130_fd_pr__pfet_01v8
No property nf found for device sky130_fd_pr__pfet_01v8
No property nrd found for device sky130_fd_pr__pfet_01v8
No property nrs found for device sky130_fd_pr__pfet_01v8
Model sky130_fd_pr__pfet_01v8 pin 1 == 3
Comparison output logged to file comp.out
Logging to file "comp.out" enabled
Contents of circuit 1:  Circuit: 'sky130_fd_pr__nfet_01v8'
Circuit sky130_fd_pr__nfet_01v8 contains 0 device instances.
Circuit contains 0 nets.
Contents of circuit 2:  Circuit: 'sky130_fd_pr__nfet_01v8'
Circuit sky130_fd_pr__nfet_01v8 contains 0 device instances.
Circuit contains 0 nets.

Circuit sky130_fd_pr__nfet_01v8 contains no devices.
Contents of circuit 1:  Circuit: 'sky130_fd_pr__pfet_01v8'
Circuit sky130_fd_pr__pfet_01v8 contains 0 device instances.
Circuit contains 0 nets.
Contents of circuit 2:  Circuit: 'sky130_fd_pr__pfet_01v8'
Circuit sky130_fd_pr__pfet_01v8 contains 0 device instances.
Circuit contains 0 nets.

Circuit sky130_fd_pr__pfet_01v8 contains no devices.
Contents of circuit 1:  Circuit: '5_Stage_MSSRO.spice'
Circuit 5_Stage_MSSRO.spice contains 0 device instances.
Circuit contains 0 nets.
Contents of circuit 2:  Circuit: '5_Stage_NSO_Xschem.spice'
Circuit 5_Stage_NSO_Xschem.spice contains 10 device instances.
  Class: sky130_fd_pr__nfet_01v8 instances:   5
  Class: sky130_fd_pr__pfet_01v8 instances:   5
Circuit contains 7 nets.

Circuit 5_Stage_MSSRO.spice contains no devices.
Result: Verify:  no current cell to verify.
Logging to file "comp.out" disabled
LVS Done.
m
Try this
netgen -batch lvs {"5_Stage_MSSRO.spice" 5_Stage_MSSRO} {"5_Stage_NSO_Xschem.spice" 5_Stage_MSSRO} /home/open_pdks/sky130/sky130A/libs.tech/netgen/sky130A_setup.tcl comp.out
a
It worked! I wonder why it was not reading the layout cell
👍 1