Open
Description
Running make lvs-gds<macro>
in the caravel directory aborts with an error that it can not find the top cell in the extracted spice netlist.
However, the result file from a previous clean lvs run (make lvs-<macro>
) may still exist stating that there were no errors.
bash-4.2$ make lvs-digital_pll
echo "Extracting digital_pll"
Extracting digital_pll
...
LVS reports no net, device, pin, or property mismatches.
...
LVS: ./spi/lvs/digital_pll.spice vs. ./verilog/gl/digital_pll.v
Comparison result: ./spi/lvs/tmp/digital_pll.v_comp.out
bash-4.2$ ls -ltr ./spi/lvs/tmp/digital_pll.v_comp.out
-rw-r--r--. 1 1000 1001 65625 Jul 1 11:04 ./spi/lvs/tmp/digital_pll.v_comp.out
This is the result of the clean LVS run.
bash-4.2$ make lvs-gds-digital_pll
echo "Extracting digital_pll"
Extracting digital_pll
...
Creating placeholder cell definition for module sky130_fd_sc_hd__einvp_1.
Cannot find cell digital_pll in file ./spi/lvs/digital_pll.spice
python3 /mnt/mpw/2/caravel_user_project/caravel/scripts/count_lvs.py -f ./verilog/gl/digital_pll.v_comp.json | tee ./spi/lvs/tmp/digital_pll.lvs.summary.log
Traceback (most recent call last):
File "/mnt/mpw/2/caravel_user_project/caravel/scripts/count_lvs.py", line 116, in <module>
failures = count_LVS_failures(args.file)
File "/mnt/mpw/2/caravel_user_project/caravel/scripts/count_lvs.py", line 38, in count_LVS_failures
with open(filename, 'r') as cfile:
FileNotFoundError: [Errno 2] No such file or directory: './verilog/gl/digital_pll.v_comp.json'
...
LVS: ./spi/lvs/digital_pll.spice vs. ./verilog/gl/digital_pll.v
Comparison result: ./spi/lvs/tmp/digital_pll.v_comp.out
bash-4.2$ ls -ltr ./spi/lvs/tmp/digital_pll.v_comp.out
-rw-r--r--. 1 1000 1001 65625 Jul 1 11:04 ./spi/lvs/tmp/digital_pll.v_comp.out
The gds LVS run has aborted, but the comparison result from the last run still exists.
magic does not wrap the top level of the extracted spice file in a subckt definition which causes LVS to fail.
@RTimothyEdwards says that this is because openlane does not input/output the port definitions to gds correctly.