Yusuke Sakemi
02/29/2024, 6:50 AMMitch Bailey
02/29/2024, 9:12 AMYusuke Sakemi
02/29/2024, 11:49 PMMitch Bailey
03/01/2024, 12:49 AMSimulation -> LVS -> Use 'spiceprefix' attribute is checked.Matt Venn
03/01/2024, 3:58 PMMitch Bailey
03/01/2024, 4:57 PMname=M11
L=0.8
W=16
nf=8
mult=1
ad="'int((nf+1)/2) * W/nf * 0.29'"
pd="'2*int((nf+1)/2) * (W/nf + 0.29)'"
as="'int((nf+2)/2) * W/nf * 0.29'"
ps="'2*int((nf+2)/2) * (W/nf + 0.29)'"
nrd="'0.29 / W'" nrs="'0.29 / W'"
sa=0 sb=0 sd=0
model=pfet_g5v0d10v5
spiceprefix=X
The symbol master has the following parameters
type=pmos
lvs_format="@spiceprefix@name @pinlist sky130_fd_pr__@model L=@L W=@W nf=@nf m=@mult"
format="@spiceprefix@name @pinlist sky130_fd_pr__@model L=@L W=@W
+ nf=@nf ad=@ad as=@as pd=@pd ps=@ps
+ nrd=@nrd nrs=@nrs sa=@sa sb=@sb sd=@sd
+ mult=@mult m=@mult"
template="name=M1
L=0.5
W=1
nf=1
mult=1
ad=\"'int((nf+1)/2) * W/nf * 0.29'\"
pd=\"'2*int((nf+1)/2) * (W/nf + 0.29)'\"
as=\"'int((nf+2)/2) * W/nf * 0.29'\"
ps=\"'2*int((nf+2)/2) * (W/nf + 0.29)'\"
nrd=\"'0.29 / W'\" nrs=\"'0.29 / W'\"
sa=0 sb=0 sd=0
model=pfet_g5v0d10v5
spiceprefix=X
"
I believe the Simulation -> LVS -> Use 'spiceprefix' attribute selection enables the spiceprefix substitution.
With spiceprefix disabled, the device would be netlisted as
M2 OUT IN VDD VDD sky130_fd_pr__pfet_01v8 L=0.15 W=2 nf=1 m=5398
with spiceprefix enabled, you get
XM2 OUT IN VDD VDD sky130_fd_pr__pfet_01v8 L=0.15 W=2 nf=1 m=5398
which will work with the current pdk simulation and LVS setups.Yusuke Sakemi
03/02/2024, 1:16 AMThe Daily Relish
03/02/2024, 10:59 PMThe Daily Relish
03/02/2024, 11:00 PMThe Daily Relish
03/02/2024, 11:00 PMThe Daily Relish
03/02/2024, 11:00 PMThe Daily Relish
03/02/2024, 11:01 PMThe Daily Relish
03/02/2024, 11:03 PMThe Daily Relish
03/02/2024, 11:03 PMThe Daily Relish
03/02/2024, 11:04 PMMitch Bailey
03/03/2024, 12:10 PMMitch Bailey
03/03/2024, 12:14 PM$PDK_ROOT/$PDK/libs.ref/sky130_fd_sc_hd/spicce/sky130_fd_sc_hd.spice
Try adding this as and include statement in your schematic.Stefan Schippers
03/03/2024, 12:22 PMStefan Schippers
03/03/2024, 12:34 PMlvs_format attribute in addition to the standard format attribute. If such an attribute exists and LVS netlist is enabled it will be used instead of format. If you check the symbol and edit its attributes you will probably see that lvs_format does not have @spiceprefix placed before @name
However this was fixed in Jan 3 2023:
commit e5e0ff5c76732ae899d2b96bf556523118a3982b
Author: stefan schippers <stefan.schippers@gmail.com>
Date: Tue Jan 3 14:27:01 2023 +0100
added @spiceprefix before @name in lvs_netlist attributes. @spicepfefix can be disabled with Simulation->Use spiceprefix attributeThe Daily Relish
03/03/2024, 4:55 PMMitch Bailey
03/04/2024, 12:55 AMcode symbol from the device library. This may not be the best solution for a full chip integration, but it should work in your case.Stefan Schippers
03/04/2024, 1:47 PMYusuke Sakemi
03/05/2024, 5:34 AMStefan Schippers
03/05/2024, 11:12 AMosic-multitools it looks to me that running iic-osic-setup.sh again will do an update: see the relevant portion of the script for xschem:
# Install/update xschem
# ---------------------
if [ ! -d "$SRC_DIR/xschem" ]; then
echo ">>>> Installing xschem"
sudo apt build-dep -y xschem
git clone <https://github.com/StefanSchippers/xschem.git> "$SRC_DIR/xschem"
cd "$SRC_DIR/xschem" || exit
./configure
else
echo ">>>> Updating xschem"
cd "$SRC_DIR/xschem" || exit
git pull
fi
make -j"$(nproc)" && sudo make install
so if the src/xschem directory is already present it will update (git pull) and rebuild.Yusuke Sakemi
03/06/2024, 5:12 AMThe Daily Relish
03/06/2024, 7:43 PMThe Daily Relish
03/06/2024, 7:44 PMThe Daily Relish
03/06/2024, 7:44 PMThe Daily Relish
03/06/2024, 7:49 PMMitch Bailey
03/07/2024, 2:18 AMSimulation-> LVS-> LVS netlist: top level is a .subckt:The Daily Relish
03/07/2024, 5:53 PMThe Daily Relish
03/07/2024, 5:53 PMThe Daily Relish
03/07/2024, 5:53 PMThe Daily Relish
03/07/2024, 5:59 PMThe Daily Relish
03/07/2024, 5:59 PMMitch Bailey
03/07/2024, 6:18 PMThe Daily Relish
03/07/2024, 8:15 PMThe Daily Relish
03/07/2024, 8:24 PMThe Daily Relish
03/07/2024, 8:24 PMThe Daily Relish
03/07/2024, 8:30 PMMitch Bailey
03/08/2024, 12:48 AMcomp_layout.spice but the comp.out results show comp_layout1.spice.
Can you share comp_layout1.spice?The Daily Relish
03/08/2024, 1:59 AMThe Daily Relish
03/08/2024, 1:59 AMMitch Bailey
03/08/2024, 2:02 AMThe Daily Relish
03/08/2024, 2:04 AMThe Daily Relish
03/08/2024, 2:04 AMThe Daily Relish
03/08/2024, 2:05 AMMitch Bailey
03/08/2024, 3:34 AMnetgen -batch lvs "comp_layout1.spice comp_layout" "8bitadc_comp.spice 8bitadc_comp" /home/ece393/open_pdks/share/pdk/sky130A/libs.tech/netgen/sky130A_setup.tcl
Although either order is technically ok, having the layout first matches other flows. You’ll want to specify the top cellnames if they don’t match.The Daily Relish
03/08/2024, 3:59 AMThe Daily Relish
03/08/2024, 4:01 AMThe Daily Relish
03/08/2024, 4:02 AMThe Daily Relish
03/08/2024, 4:02 AMThe Daily Relish
03/08/2024, 4:02 AMMitch Bailey
03/08/2024, 4:12 AMSubcircuit summary:
Circuit 1: comp_layout |Circuit 2: 8bitadc_comp
-------------------------------------------|-------------------------------------------
sky130_fd_pr__nfet_01v8 (5) |sky130_fd_pr__nfet_01v8 (5)
sky130_fd_pr__pfet_01v8 (6) |sky130_fd_pr__pfet_01v8 (6)
c (98) |(no matching element)
sky130_fd_sc_hd__buf_1 (1) |sky130_fd_sc_hd__buf_1 (1)
sky130_fd_sc_hd__inv_1 (1) |sky130_fd_sc_hd__inv_1 (1)
$ (1) |(no matching element)
Number of devices: 112 **Mismatch** |Number of devices: 13 **Mismatch**
Number of nets: 16 **Mismatch** |Number of nets: 14 **Mismatch**
---------------------------------------------------------------------------------------
You can see that the layout has capacitors and some other strange device that’s not in the schematic.
What commands are you using to create the extracted netlist for LVS?
I use
extract no all
extract do aliases
extract do local
extract style ngspice()
extract
ext2spice lvsThe Daily Relish
03/08/2024, 4:24 AMThe Daily Relish
03/08/2024, 4:24 AMThe Daily Relish
03/08/2024, 4:24 AMThe Daily Relish
03/08/2024, 4:25 AMThe Daily Relish
03/08/2024, 8:15 PMThe Daily Relish
03/08/2024, 8:17 PMStefan Schippers
03/08/2024, 9:23 PM~/.xschem/simulations, unless you change the default location.Mitch Bailey
03/09/2024, 12:16 AMunfortunately that solve my problem of top level cell pins.Not sure what you mean. Could you share your extraction commands and the extracted spice file?
The Daily Relish
03/26/2024, 6:23 PMThe Daily Relish
03/26/2024, 6:24 PMThe Daily Relish
03/26/2024, 6:25 PMStefan Schippers
03/26/2024, 9:27 PM.../pdk/sky130A/libs.tech/xschem/xschemrc in the directory from where you start xschem. Also set PDK_ROOT and PDK environment variables if your open_pdks installation is not in ~/share/pdk or /usr/local/share/pdk. For more details see this page.Mitch Bailey
03/27/2024, 12:59 AMq to get the properties. Make sure the device path is relative and not absolute.