https://open-source-silicon.dev logo
Channels
aa
abcc
activity
adiabatonauts
analog-design
announce
announcements
b2aws
b2aws-tutorial
bag
basebands
beagleboard
bluetooth
board-respin
cadence-genus
cadence-innovus
cadence-spectre
cadence-virtuoso
caravan
caravel
caravel-board
chilechipmakers
chip-yard
chipignite
chipignite2206q_stanford_bringup
chisel
coalition-for-digital-environmental-sustainability
community_denmark_dtu
containers
courses
design-review
design-services
dffram
digital-design
digital-electronics-learners
discord-mods
dynamic-power-estimation
efabless
electric
events
fasoc
fault
foss-asic-tools
fossee-iitb-esim
fossee-iitb-google-sky130
fpga
funding
fuserisc
general
generative-ai-silicon-challenge
genius-vlsi
gf180
gf180mcu
hardware-beginners
help-
ieee-sscs-cac-23
ieee-sscs-dc-21q3
ieee-sscs-dc-22
ieee-sscs-dc-23
ihp-sg13g2
images
infiniband
j-core
japan-region
junk
klayout
latam_vlsi
layouteditor
lvs
lvs-analysis
magic
magical
maker-projects
maker-zone
microwatt
mpw-2-silicon
mpw-one-clean-short
mpw-one-silicon
neuro-mem
nydesign
open_pdks
open-pdk
openadiabaticlogic
openfpga
openhighqualityresonators
openlane
openlane_cloudrunner
openlane-development
openocd
openpositarithmetic
openpower
openram
openroad
opentitan
osu
pa-test-chip
paracells
pd-openlane-and-sky130
picosoc
pll
popy_neel
power
private-shuttle
rad-lab-silicon
radio
rdircd
reram
researchers
rf-mmw-design
rios
riscv
sdram
serdes
shuttle
shuttle-precheck
shuttle-status
silicon-photonics
silicon-validation
silicon-validation-private
sky130
sky130-ci
sky130-pv-workshop
sky65
sky90
skywater
sram
stdcelllib
strive
swerv
system-verilog-learners
tapeout-job
tapeout-pakistan
team-awesome
timing-closure
toysram
travis-ci
uvm-learners
vendor-synopsys
venn
verification-be
verification-fe
verilog-learners
vh2v
vhdl
vhdl-learners
vliw
vlsi_verilog_using_opensource_eda
vlsi_verilog_using_opensoure_eda
vlsi-learners-group
vlsi101
waveform-viewers
xls
xschem
xyce
zettascale
Powered by
Title
m

mohamed hassan

05/10/2023, 7:59 PM
hello all, so i made this layout of the pmos lvt device with W=1um L=0.35um NF=16 M=6 , and i'm trying to do LVS but i get this result when i try to run it, can anyone help me? Note: for the layout of the PMOS, i pulled the device from the devices1 menu and just connected all the drains with all the gates making it diode connected through metal1 and all the sources together through metal2.
t

Tim Edwards

05/10/2023, 9:01 PM
What do the netlists look like? And how did you invoke netgen on the command line?
m

mohamed hassan

05/10/2023, 10:53 PM
message has been deleted
PMOS2.spice is the spice generated from Magic and PMOS_tb.spice is the spice generated from xschem.
m

Mitch Bailey

05/10/2023, 11:02 PM
Try
netgen -batch lvs "PMOS2.spice PMOS2" "pmos_tb.spice pmos_tb" /openpdk/share/pdk/sky130A/libs.tech/netgen/sky130A_setup.tcl
The second parameter in the netlist specification is the cell name to compare. Your extracted netlist has capacitors which probably aren’t needed for LVS. What commands did you use to extract the layout?
m

mohamed hassan

05/10/2023, 11:03 PM
I did extract all then ext2spice lvs then ext2spice
m

Mitch Bailey

05/10/2023, 11:07 PM
Before
extract all
, can you do
extract no all
extract do local
extract no all
turns off all the extraction options.
m

mohamed hassan

05/10/2023, 11:07 PM
will try now.
So I don’t do extract all or i do it after extract do local?
I tried both and same problem.
here's the spice file now
m

Mitch Bailey

05/10/2023, 11:14 PM
Great! No more capacitances in the extracted layout. Do you get the same LVS results with the command I suggested?
m

mohamed hassan

05/10/2023, 11:14 PM
yes, here's what i get when i type the Netgen command: netgen -batch lvs "PMOS2.spice" "pmos_tb.spice" /openpdk/share/pdk/sky130A/libs.tech/netgen/sky130A_setup.tcl Netgen 1.5.242 compiled on Sun Dec 11 23:39:33 EET 2022 Warning: netgen command 'format' use fully-qualified name '::netgen::format' Warning: netgen command 'global' use fully-qualified name '::netgen::global' Reading netlist file PMOS2.spice Call to undefined subcircuit sky130_fd_pr__pfet_01v8_lvt Creating placeholder cell definition. Reading netlist file pmos_tb.spice Reading setup file /openpdk/share/pdk/sky130A/libs.tech/netgen/sky130A_setup.tcl No property as found for device sky130_fd_pr__pfet_01v8_lvt No property ad found for device sky130_fd_pr__pfet_01v8_lvt No property ps found for device sky130_fd_pr__pfet_01v8_lvt No property pd found for device sky130_fd_pr__pfet_01v8_lvt Model sky130_fd_pr__pfet_01v8_lvt pin 1 == 3 No property mult found for device sky130_fd_pr__pfet_01v8_lvt No property sa found for device sky130_fd_pr__pfet_01v8_lvt No property sb found for device sky130_fd_pr__pfet_01v8_lvt No property sd found for device sky130_fd_pr__pfet_01v8_lvt No property nf found for device sky130_fd_pr__pfet_01v8_lvt No property nrd found for device sky130_fd_pr__pfet_01v8_lvt No property nrs found for device sky130_fd_pr__pfet_01v8_lvt No property area found for device sky130_fd_pr__pfet_01v8_lvt No property perim found for device sky130_fd_pr__pfet_01v8_lvt No property topography found for device sky130_fd_pr__pfet_01v8_lvt No such pin 1 in model sky130_fd_pr__pfet_01v8_lvt Unable to permute model sky130_fd_pr__pfet_01v8_lvt pins 1, 3. No property as found for device sky130_fd_pr__pfet_01v8_lvt No property ad found for device sky130_fd_pr__pfet_01v8_lvt No property ps found for device sky130_fd_pr__pfet_01v8_lvt No property pd found for device sky130_fd_pr__pfet_01v8_lvt No property mult found for device sky130_fd_pr__pfet_01v8_lvt No property sa found for device sky130_fd_pr__pfet_01v8_lvt No property sb found for device sky130_fd_pr__pfet_01v8_lvt No property sd found for device sky130_fd_pr__pfet_01v8_lvt No property nrd found for device sky130_fd_pr__pfet_01v8_lvt No property nrs found for device sky130_fd_pr__pfet_01v8_lvt No property area found for device sky130_fd_pr__pfet_01v8_lvt No property perim found for device sky130_fd_pr__pfet_01v8_lvt No property topography found for device sky130_fd_pr__pfet_01v8_lvt Comparison output logged to file comp.out Logging to file "comp.out" enabled Contents of circuit 1: Circuit: 'PMOS2.spice' Circuit PMOS2.spice contains 0 device instances. Circuit contains 0 nets. Contents of circuit 2: Circuit: 'pmos_tb.spice' Circuit pmos_tb.spice contains 0 device instances. Circuit contains 0 nets. Circuit PMOS2.spice contains no devices. Final result: Verify: cell pmos_tb.spice has no elements and/or nodes. Not checked. Logging to file "comp.out" disabled LVS Done.
m

Mitch Bailey

05/10/2023, 11:15 PM
You’re not using the command I suggested.
netgen -batch lvs "PMOS2.spice PMOS2" "pmos_tb.spice pmos_tb" /openpdk/share/pdk/sky130A/libs.tech/netgen/sky130A_setup.tcl
m

mohamed hassan

05/10/2023, 11:15 PM
and here's what i get when i type the command you suggested: netgen -batch lvs "PMOS2.spice pmos_tb" "pmos_tb.spice PMOS2" /openpdk/share/pdk/sky130A/libs.tech/netgen/sky130A_setup.tcl Netgen 1.5.242 compiled on Sun Dec 11 23:39:33 EET 2022 Warning: netgen command 'format' use fully-qualified name '::netgen::format' Warning: netgen command 'global' use fully-qualified name '::netgen::global' Reading netlist file PMOS2.spice Call to undefined subcircuit sky130_fd_pr__pfet_01v8_lvt Creating placeholder cell definition. Reading netlist file pmos_tb.spice Cannot find cell pmos_tb in file PMOS2.spice
m

Mitch Bailey

05/10/2023, 11:16 PM
pmos_tb.spice PMOS2
should be
pmos_tb.spice pmos_tb
PMOS2.spice pmos_tb
should be
PMOS2.spice PMOS2
m

mohamed hassan

05/10/2023, 11:18 PM
here's what i got now: netgen -batch lvs "PMOS2.spice PMOS2" "pmos_tb.spice pmos_tb" /openpdk/share/pdk/sky130A/libs.tech/netgen/sky130A_setup.tcl Netgen 1.5.242 compiled on Sun Dec 11 23:39:33 EET 2022 Warning: netgen command 'format' use fully-qualified name '::netgen::format' Warning: netgen command 'global' use fully-qualified name '::netgen::global' Reading netlist file PMOS2.spice Call to undefined subcircuit sky130_fd_pr__pfet_01v8_lvt Creating placeholder cell definition. Reading netlist file pmos_tb.spice Reading setup file /openpdk/share/pdk/sky130A/libs.tech/netgen/sky130A_setup.tcl No property as found for device sky130_fd_pr__pfet_01v8_lvt No property ad found for device sky130_fd_pr__pfet_01v8_lvt No property ps found for device sky130_fd_pr__pfet_01v8_lvt No property pd found for device sky130_fd_pr__pfet_01v8_lvt Model sky130_fd_pr__pfet_01v8_lvt pin 1 == 3 No property mult found for device sky130_fd_pr__pfet_01v8_lvt No property sa found for device sky130_fd_pr__pfet_01v8_lvt No property sb found for device sky130_fd_pr__pfet_01v8_lvt No property sd found for device sky130_fd_pr__pfet_01v8_lvt No property nf found for device sky130_fd_pr__pfet_01v8_lvt No property nrd found for device sky130_fd_pr__pfet_01v8_lvt No property nrs found for device sky130_fd_pr__pfet_01v8_lvt No property area found for device sky130_fd_pr__pfet_01v8_lvt No property perim found for device sky130_fd_pr__pfet_01v8_lvt No property topography found for device sky130_fd_pr__pfet_01v8_lvt No such pin 1 in model sky130_fd_pr__pfet_01v8_lvt Unable to permute model sky130_fd_pr__pfet_01v8_lvt pins 1, 3. No property as found for device sky130_fd_pr__pfet_01v8_lvt No property ad found for device sky130_fd_pr__pfet_01v8_lvt No property ps found for device sky130_fd_pr__pfet_01v8_lvt No property pd found for device sky130_fd_pr__pfet_01v8_lvt No property mult found for device sky130_fd_pr__pfet_01v8_lvt No property sa found for device sky130_fd_pr__pfet_01v8_lvt No property sb found for device sky130_fd_pr__pfet_01v8_lvt No property sd found for device sky130_fd_pr__pfet_01v8_lvt No property nrd found for device sky130_fd_pr__pfet_01v8_lvt No property nrs found for device sky130_fd_pr__pfet_01v8_lvt No property area found for device sky130_fd_pr__pfet_01v8_lvt No property perim found for device sky130_fd_pr__pfet_01v8_lvt No property topography found for device sky130_fd_pr__pfet_01v8_lvt Comparison output logged to file comp.out Logging to file "comp.out" enabled Contents of circuit 1: Circuit: 'sky130_fd_pr__pfet_01v8_lvt' Circuit sky130_fd_pr__pfet_01v8_lvt contains 0 device instances. Circuit contains 0 nets. Contents of circuit 2: Circuit: 'sky130_fd_pr__pfet_01v8_lvt' Circuit sky130_fd_pr__pfet_01v8_lvt contains 0 device instances. Circuit contains 0 nets, and 4 disconnected pins. Circuit sky130_fd_pr__pfet_01v8_lvt contains no devices. Contents of circuit 1: Circuit: 'PMOS2' Circuit PMOS2 contains 96 device instances. Class: sky130_fd_pr__pfet_01v8_lvt instances: 96 Circuit contains 386 nets. Contents of circuit 2: Circuit: 'pmos_tb' Circuit pmos_tb contains 1 device instances. Class: sky130_fd_pr__pfet_01v8_lvt instances: 1 Circuit contains 6 nets. Circuit was modified by parallel/series device merging. New circuit summary: Contents of circuit 1: Circuit: 'PMOS2' Circuit PMOS2 contains 1 device instances. Class: sky130_fd_pr__pfet_01v8_lvt instances: 1 Circuit contains 386 nets. Contents of circuit 2: Circuit: 'pmos_tb' Circuit pmos_tb contains 1 device instances. Class: sky130_fd_pr__pfet_01v8_lvt instances: 1 Circuit contains 6 nets. Circuit 1 contains 1 devices, Circuit 2 contains 1 devices. Circuit 1 contains 6 nets, Circuit 2 contains 6 nets. Final result: Netlists do not match. Logging to file "comp.out" disabled LVS Done.
how do i know why they're not matched?
m

Mitch Bailey

05/10/2023, 11:51 PM
Progress! Take a look at
comp.out
m

mohamed hassan

05/10/2023, 11:55 PM
Perfect, thanks so much!
@Mitch Bailey after many hours of debugging, i found out that the reason they didn’t match is that xschem extracts the device for example called “M0” but Magic extracts it “X0” and once i edited the netlists and made them both M0 , LVS matched, any idea how i can fix this issue in Magic?
m

Mitch Bailey

05/11/2023, 8:05 AM
Before creating the netlists from xschem, be sure to check
Simulation->LVS netlist: Top level is a .subckt
Also the mos devices should have the
spiceprefix=X
property.
m

mohamed hassan

05/11/2023, 8:17 AM
oh great thanks for the info