Hello <@U01EK2VDMDG> <@U016EM8L91B>. I'm trying to...
# gf180mcu
a
Hello @Amro Tork @Tim Edwards. I'm trying to do lvs on 3 different tests, a resistor and 2 pmos with different number of fingers, but in all cases it fails with the error "Net X is not matching any net from reference netlist". Each test uses Metal1_Label as pin indicator. My design environment is a docker container that updates volare's default pdk installation with latest efabless primitives and verification libraries. It includes also the precheck drc. LVS is done with the following makefile rule:
Copy code
# line 240
klayout-lvs-only: logdir xschem-lvs
	python $(KLAYOUT_HOME)/lvs/run_lvs.py \
		--variant=D \
		--run_mode=flat \
		--spice_comments \
		--verbose \
		--run_dir=$(TOP_DIR) \
		--layout=$(TOP_GDS) \
		--netlist=$(TOP_NETLIST_SCH) \
		--top_lvl_pins \
		--lvs_sub=B \
		--combine || true
I have done lvs with the GUI, but it also fails.
f
@aquiles viza Could you please share your cdl file?
a
I'm don't know what is a cdl, but if you are asking for the extracted klayout netlist they are compressed on the zip. Each tests has one with .cir termination. ".spice" files are obtained with xschem
f
I mean the spice netlist you have used for comparison. I got it -->
pmos.spice
You have to extract lvs netlist from xschem instead of this one to be able to use it for klayout. LVS netlist should be like this
Copy code
** sch_path: /workspaces/DC23-LTC2-LDO/LDO/xschem/test/pmos/pmos.sch
.subckt pmos S D G
*.PININFO S:B D:B G:B
M2 D G S S pfet_03v3 L=0.7u W=5u nf=5 ad='int((nf+1)/2) * W/nf * 0.18u' as='int((nf+2)/2) * W/nf * 0.18u'
+ pd='2*int((nf+1)/2) * (W/nf + 0.18u)' ps='2*int((nf+2)/2) * (W/nf + 0.18u)' nrd='0.18u / W' nrs='0.18u / W'
+ sa=0 sb=0 sd=0 m=1
.ends
.end
M
Instead of
XM
for FETs.
a
So I have to remove the spiceprefix. This should be done always?
f
For Klayout-LVS, yes
a
Removing spiceprefix works with the two pmos tests, but resistor_core test still has problems with lvs. Maybe the problem is related with the 7000 in the klayout extracted circuit. I suppose the warning "must-connect" can be ignored in this stage. Thanks for your help :)
f
Replacing
r_width
with
w
and
r_length
with
l
will solve your issue.
The value
7000
represents the resistance value which has been ignored in the LVS comparison
a
Thanks @Farag Elsayed, it worked good. This are the expressions i've used.
Copy code
sed -i '/C.*cap_mim_2f0_m4m5_noshield/s/c_width/W/' $(TOP_DIR)/$(TOP).spice
sed -i '/C.*cap_mim_2f0_m4m5_noshield/s/c_length/L/' $(TOP_DIR)/$(TOP).spice