Ryan R
08/16/2022, 4:29 PMTim Edwards
08/16/2022, 4:36 PMRyan R
08/16/2022, 4:49 PMRyan R
08/16/2022, 4:53 PMMitch Bailey
08/16/2022, 5:04 PML=0.5 W=7 nf=7
. LVS does not consider the nf
parameter. I believe the spice simulator will split this up into 7 parallel devices with L=0.5 W=1
, but I may be mistaken.
Your layout has 7 transistors in series which is not equivalent. You want to attach one source/drain of each transistor to one node and the other source/drain to a different node.Ryan R
08/16/2022, 5:15 PMRyan R
08/16/2022, 5:15 PMMitch Bailey
08/16/2022, 5:19 PMWf=1
and Lf=0.5
, they are roughly equivalent to L=3.5 W=1
which does not match the schematic L=0.5. W=7
.
You want to connect all the S
terminals to one node and all the D
terminals to a different node.Ryan R
08/16/2022, 5:58 PMRyan R
08/16/2022, 6:00 PMMitch Bailey
08/17/2022, 1:25 AMsky130_fd_pr_reram__reram_cell
vs layout sky130_fd_pr__reram_reram_cell
sky130_fd_pr__nfet_g5v0d10v5 (256) |sky130_fd_pr__nfet_g5v0d10v5 (1792->256)
sky130_fd_pr_reram__reram_cell (256) |(no matching element)
(no matching element) |sky130_fd_pr__reram_reram_cell (256)
Also, I suggest specifying the layout first to match openlane.
netgen -batch lvs "magic_layout.spice x1T1R_16x16_W7_RRAM_W0p5_16_08_layout" "xschem.spice 1T1R_16x16_W7u_xschem_RRAM_DEVICE_1608" pdks/sky130B/libs.tech/netgen/sky130B_setup.tcl
Currently, you have the schematic on the left and layout on the right.
From sky130B_setup.tcl
# NOTE: In accordance with the LVS manager GUI, the schematic is
# always circuit2, so some items like property "par1" only need to
# be specified for circuit2.
@Tim Edwards What do you think the best way to fix the reram device name discrepancy?
1. Use an equate
statement in the netgen setup file
2. Change the xschem primitive
3. Change magic extraction nameRyan R
08/17/2022, 8:31 AMMitch Bailey
08/17/2022, 11:44 AMschematic
first and layout
second?
Also, I suggest specifying the layout first to match openlane.
Check your extracted layout. This subckt has 4 terminals as expected.Copy codenetgen -batch lvs "magic_layout.spice x1T1R_16x16_W7_RRAM_W0p5_16_08_layout" "xschem.spice 1T1R_16x16_W7u_xschem_RRAM_DEVICE_1608" pdks/sky130B/libs.tech/netgen/sky130B_setup.tcl
.subckt x1T1R_W7_RRAM_W0p5_16_08_layout BL WL SL VSUBS
Xsky130_fd_pr__nfet_g5v0d10v5_Y5YTSN_0 SL m1_2626_224# WL WL SL WL WL m1_2626_224#
+ WL WL SL WL m1_2626_224# SL m1_2626_224# VSUBS sky130_fd_pr__nfet_g5v0d10v5_Y5YTSN
X0 BL m1_2626_224# sky130_fd_pr__reram_reram_cell area_ox=2.5e+11p
.ends
This subckt only has 1 terminal. BL
, WL
, and SL
are not connected to the top level.
Also, all the SL
connections are to the same node (shorted).
.subckt x1T1R_1x16_W7_RRAM_W0p5_16_08_layout VSUBS
X1T1R_W7_RRAM_W0p5_16_08_layout_0[0] 1T1R_W7_RRAM_W0p5_16_08_layout_0[9]/BL 1T1R_W7_RRAM_W0p5_16_08_layout_0[0]/WL
+ 1T1R_W7_RRAM_W0p5_16_08_layout_0[9]/SL VSUBS x1T1R_W7_RRAM_W0p5_16_08_layout
X1T1R_W7_RRAM_W0p5_16_08_layout_0[1] 1T1R_W7_RRAM_W0p5_16_08_layout_0[9]/BL 1T1R_W7_RRAM_W0p5_16_08_layout_0[1]/WL
+ 1T1R_W7_RRAM_W0p5_16_08_layout_0[9]/SL VSUBS x1T1R_W7_RRAM_W0p5_16_08_layout
X1T1R_W7_RRAM_W0p5_16_08_layout_0[2] 1T1R_W7_RRAM_W0p5_16_08_layout_0[9]/BL 1T1R_W7_RRAM_W0p5_16_08_layout_0[2]/WL
+ 1T1R_W7_RRAM_W0p5_16_08_layout_0[9]/SL VSUBS x1T1R_W7_RRAM_W0p5_16_08_layout
X1T1R_W7_RRAM_W0p5_16_08_layout_0[3] 1T1R_W7_RRAM_W0p5_16_08_layout_0[9]/BL 1T1R_W7_RRAM_W0p5_16_08_layout_0[3]/WL
+ 1T1R_W7_RRAM_W0p5_16_08_layout_0[9]/SL VSUBS x1T1R_W7_RRAM_W0p5_16_08_layout
X1T1R_W7_RRAM_W0p5_16_08_layout_0[4] 1T1R_W7_RRAM_W0p5_16_08_layout_0[9]/BL 1T1R_W7_RRAM_W0p5_16_08_layout_0[4]/WL
+ 1T1R_W7_RRAM_W0p5_16_08_layout_0[9]/SL VSUBS x1T1R_W7_RRAM_W0p5_16_08_layout
X1T1R_W7_RRAM_W0p5_16_08_layout_0[5] 1T1R_W7_RRAM_W0p5_16_08_layout_0[9]/BL 1T1R_W7_RRAM_W0p5_16_08_layout_0[5]/WL
+ 1T1R_W7_RRAM_W0p5_16_08_layout_0[9]/SL VSUBS x1T1R_W7_RRAM_W0p5_16_08_layout
X1T1R_W7_RRAM_W0p5_16_08_layout_0[6] 1T1R_W7_RRAM_W0p5_16_08_layout_0[9]/BL 1T1R_W7_RRAM_W0p5_16_08_layout_0[6]/WL
+ 1T1R_W7_RRAM_W0p5_16_08_layout_0[9]/SL VSUBS x1T1R_W7_RRAM_W0p5_16_08_layout
X1T1R_W7_RRAM_W0p5_16_08_layout_0[7] 1T1R_W7_RRAM_W0p5_16_08_layout_0[9]/BL 1T1R_W7_RRAM_W0p5_16_08_layout_0[7]/WL
+ 1T1R_W7_RRAM_W0p5_16_08_layout_0[9]/SL VSUBS x1T1R_W7_RRAM_W0p5_16_08_layout
X1T1R_W7_RRAM_W0p5_16_08_layout_0[8] 1T1R_W7_RRAM_W0p5_16_08_layout_0[9]/BL 1T1R_W7_RRAM_W0p5_16_08_layout_0[8]/WL
+ 1T1R_W7_RRAM_W0p5_16_08_layout_0[9]/SL VSUBS x1T1R_W7_RRAM_W0p5_16_08_layout
X1T1R_W7_RRAM_W0p5_16_08_layout_0[9] 1T1R_W7_RRAM_W0p5_16_08_layout_0[9]/BL 1T1R_W7_RRAM_W0p5_16_08_layout_0[9]/WL
+ 1T1R_W7_RRAM_W0p5_16_08_layout_0[9]/SL VSUBS x1T1R_W7_RRAM_W0p5_16_08_layout
X1T1R_W7_RRAM_W0p5_16_08_layout_0[10] 1T1R_W7_RRAM_W0p5_16_08_layout_0[9]/BL 1T1R_W7_RRAM_W0p5_16_08_layout_0[10]/WL
+ 1T1R_W7_RRAM_W0p5_16_08_layout_0[9]/SL VSUBS x1T1R_W7_RRAM_W0p5_16_08_layout
X1T1R_W7_RRAM_W0p5_16_08_layout_0[11] 1T1R_W7_RRAM_W0p5_16_08_layout_0[9]/BL 1T1R_W7_RRAM_W0p5_16_08_layout_0[11]/WL
+ 1T1R_W7_RRAM_W0p5_16_08_layout_0[9]/SL VSUBS x1T1R_W7_RRAM_W0p5_16_08_layout
X1T1R_W7_RRAM_W0p5_16_08_layout_0[12] 1T1R_W7_RRAM_W0p5_16_08_layout_0[9]/BL 1T1R_W7_RRAM_W0p5_16_08_layout_0[12]/WL
+ 1T1R_W7_RRAM_W0p5_16_08_layout_0[9]/SL VSUBS x1T1R_W7_RRAM_W0p5_16_08_layout
X1T1R_W7_RRAM_W0p5_16_08_layout_0[13] 1T1R_W7_RRAM_W0p5_16_08_layout_0[9]/BL 1T1R_W7_RRAM_W0p5_16_08_layout_0[13]/WL
+ 1T1R_W7_RRAM_W0p5_16_08_layout_0[9]/SL VSUBS x1T1R_W7_RRAM_W0p5_16_08_layout
X1T1R_W7_RRAM_W0p5_16_08_layout_0[14] 1T1R_W7_RRAM_W0p5_16_08_layout_0[9]/BL 1T1R_W7_RRAM_W0p5_16_08_layout_0[14]/WL
+ 1T1R_W7_RRAM_W0p5_16_08_layout_0[9]/SL VSUBS x1T1R_W7_RRAM_W0p5_16_08_layout
X1T1R_W7_RRAM_W0p5_16_08_layout_0[15] 1T1R_W7_RRAM_W0p5_16_08_layout_0[9]/BL 1T1R_W7_RRAM_W0p5_16_08_layout_0[15]/WL
+ 1T1R_W7_RRAM_W0p5_16_08_layout_0[9]/SL VSUBS x1T1R_W7_RRAM_W0p5_16_08_layout
.ends
VSS
is the only signal connected to the subcircuits.
.subckt x1T1R_16x16_W7_RRAM_W0p5_16_08_layout WL[0] WL[1] WL[2] WL[3] WL[4] WL[5]
+ WL[6] WL[7] WL[8] WL[9] WL[10] WL[11] WL[12] WL[13] WL[14] WL[15] BL[0] BL[1] BL[2]
+ BL[3] BL[4] BL[5] BL[6] BL[7] BL[8] BL[9] BL[10] BL[11] BL[12] BL[13] BL[14] BL[15]
+ SL[0] SL[1] SL[2] SL[3] SL[4] SL[5] SL[6] SL[7] SL[8] SL[9] SL[10] SL[11] SL[12]
+ SL[13] SL[14] SL[15] VSS
X1T1R_1x16_W7_RRAM_W0p5_16_08_layout_0[0] VSS x1T1R_1x16_W7_RRAM_W0p5_16_08_layout
X1T1R_1x16_W7_RRAM_W0p5_16_08_layout_0[1] VSS x1T1R_1x16_W7_RRAM_W0p5_16_08_layout
X1T1R_1x16_W7_RRAM_W0p5_16_08_layout_0[2] VSS x1T1R_1x16_W7_RRAM_W0p5_16_08_layout
X1T1R_1x16_W7_RRAM_W0p5_16_08_layout_0[3] VSS x1T1R_1x16_W7_RRAM_W0p5_16_08_layout
X1T1R_1x16_W7_RRAM_W0p5_16_08_layout_0[4] VSS x1T1R_1x16_W7_RRAM_W0p5_16_08_layout
X1T1R_1x16_W7_RRAM_W0p5_16_08_layout_0[5] VSS x1T1R_1x16_W7_RRAM_W0p5_16_08_layout
X1T1R_1x16_W7_RRAM_W0p5_16_08_layout_0[6] VSS x1T1R_1x16_W7_RRAM_W0p5_16_08_layout
X1T1R_1x16_W7_RRAM_W0p5_16_08_layout_0[7] VSS x1T1R_1x16_W7_RRAM_W0p5_16_08_layout
X1T1R_1x16_W7_RRAM_W0p5_16_08_layout_0[8] VSS x1T1R_1x16_W7_RRAM_W0p5_16_08_layout
X1T1R_1x16_W7_RRAM_W0p5_16_08_layout_0[9] VSS x1T1R_1x16_W7_RRAM_W0p5_16_08_layout
X1T1R_1x16_W7_RRAM_W0p5_16_08_layout_0[10] VSS x1T1R_1x16_W7_RRAM_W0p5_16_08_layout
X1T1R_1x16_W7_RRAM_W0p5_16_08_layout_0[11] VSS x1T1R_1x16_W7_RRAM_W0p5_16_08_layout
X1T1R_1x16_W7_RRAM_W0p5_16_08_layout_0[12] VSS x1T1R_1x16_W7_RRAM_W0p5_16_08_layout
X1T1R_1x16_W7_RRAM_W0p5_16_08_layout_0[13] VSS x1T1R_1x16_W7_RRAM_W0p5_16_08_layout
X1T1R_1x16_W7_RRAM_W0p5_16_08_layout_0[14] VSS x1T1R_1x16_W7_RRAM_W0p5_16_08_layout
X1T1R_1x16_W7_RRAM_W0p5_16_08_layout_0[15] VSS x1T1R_1x16_W7_RRAM_W0p5_16_08_layout
.ends
Ryan R
08/17/2022, 12:13 PMMitch Bailey
08/17/2022, 12:17 PMRyan R
08/17/2022, 12:30 PM