fixed schmatic for lvs
diff --git a/xschem/1T1R_2x2.sch b/xschem/1T1R_2x2.sch index bb4e592..e07a66f 100644 --- a/xschem/1T1R_2x2.sch +++ b/xschem/1T1R_2x2.sch
@@ -5,67 +5,67 @@ S {} E {} N 82.5 -230 132.5 -230 { lab=VSS} -N -520 -540 -520 -180 { lab=io_analog[0]} -N -280 -540 -280 -180 { lab=io_analog[1]} -N -590 -140 -190 -140 { lab=io_analog[5]} -N -590 -380 -190 -380 { lab=io_analog[4]} +N -520 -540 -520 -180 { lab=sl1} +N -280 -540 -280 -180 { lab=sl2} +N -590 -140 -190 -140 { lab=wl2} +N -590 -380 -190 -380 { lab=wl1} N -430 -440 -430 -420 { lab=VSS} N -190 -440 -190 -420 { lab=VSS} N -430 -200 -430 -180 { lab=VSS} N -190 -200 -190 -180 { lab=VSS} -N 132.5 -230 142.5 -230 { lab=vssa1} -N -400 -100 -60 -100 { lab=io_analog[3]} -N -400 -340 -60 -340 { lab=io_analog[2]} -N -400 -420 -400 -340 { lab=io_analog[2]} -N -160 -420 -160 -340 { lab=io_analog[2]} -N -400 -180 -400 -100 { lab=io_analog[3]} -N -160 -180 -160 -100 { lab=io_analog[3]} -C {reram.sym} -250 -420 3 0 {name=RERAM1 +N 132.5 -230 142.5 -230 { lab=VSS} +N -400 -100 -60 -100 { lab=bl2} +N -400 -340 -60 -340 { lab=bl1} +N -400 -420 -400 -340 { lab=bl1} +N -160 -420 -160 -340 { lab=bl1} +N -400 -180 -400 -100 { lab=bl2} +N -160 -180 -160 -100 { lab=bl2} +C {reram.sym} -250 -420 3 0 {name=XRERAM1 device=RERAM m=1} -C {reram.sym} -490 -420 3 0 {name=RERAM2 +C {reram.sym} -490 -420 3 0 {name=XRERAM2 device=RERAM m=1} -C {reram.sym} -250 -180 3 0 {name=RERAM3 +C {reram.sym} -250 -180 3 0 {name=XRERAM3 device=RERAM m=1} -C {reram.sym} -490 -180 3 0 {name=RERAM4 +C {reram.sym} -490 -180 3 0 {name=XRERAM4 device=RERAM m=1} -C {sky130/nfet_03v3_nvt.sym} -430 -400 3 0 {name=M1 +C {sky130/nfet_03v3_nvt.sym} -430 -400 1 1 {name=M1 L=0.5 W=1 nf=1 mult=1 sa=0 sb=0 sd=0 -model=nfet_01v8 +model=nfet_03v3_nvt spiceprefix=X } -C {sky130/nfet_03v3_nvt.sym} -190 -400 3 0 {name=M2 +C {sky130/nfet_03v3_nvt.sym} -190 -400 1 1 {name=M2 L=0.5 W=1 nf=1 mult=1 sa=0 sb=0 sd=0 -model=nfet_01v8 +model=nfet_03v3_nvt spiceprefix=X } -C {sky130/nfet_03v3_nvt.sym} -430 -160 3 0 {name=M3 +C {sky130/nfet_03v3_nvt.sym} -430 -160 1 1 {name=M3 L=0.5 W=1 nf=1 mult=1 sa=0 sb=0 sd=0 -model=nfet_01v8 +model=nfet_03v3_nvt spiceprefix=X } -C {sky130/nfet_03v3_nvt.sym} -190 -160 3 0 {name=M4 +C {sky130/nfet_03v3_nvt.sym} -190 -160 1 1 {name=M4 L=0.5 W=1 nf=1 mult=1 sa=0 sb=0 sd=0 -model=nfet_01v8 +model=nfet_03v3_nvt spiceprefix=X } C {devices/iopin.sym} -280 -540 0 0 {name=p1 lab=sl2}
diff --git a/xschem/reram.sym b/xschem/reram.sym index e677477..633ec30 100644 --- a/xschem/reram.sym +++ b/xschem/reram.sym
@@ -1,42 +1,43 @@ -v {xschem version=3.0.0 file_version=1.2 } +v {xschem version=3.0.0 file_version=1.2 + +* Copyright 2021 Stefan Frederik Schippers +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* https://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. + +} G {} K {type=reram +format="@name @pinlist @model" +template="name=X1 +model=reram +device_model=".model reram rram2 rram2_params.scs" -function0="1" -function1="0" - -format="Ysky130_fd_pr_reram__reram_cell @name @pinlist @device" - -verilog_format="tran @name (@@P\\\\, @@M\\\\);" - -tedax_format="footprint @name @footprint -value @name @value -device @name @device -spicedev @name @spicedev -spiceval @name @spiceval -comptag @name @comptag" - -template="name=RERAM1 -device=RERAM -m=1"} +} V {} S {} E {} -L 4 -20 20 20 -20 {} -L 4 10 -20 20 -20 {} -L 4 20 -20 20 -10 {} -L 4 0 20 0 30 {} -L 4 0 20 7.5 17.5 {} -L 4 -7.5 12.5 7.5 17.5 {} -L 4 -7.5 12.5 7.5 7.5 {} -L 4 -7.5 2.5 7.5 7.5 {} -L 4 -7.5 2.5 7.5 -2.5 {} -L 4 -7.5 -7.5 7.5 -2.5 {} -L 4 -7.5 -7.5 7.5 -12.5 {} -L 4 -7.5 -17.5 7.5 -12.5 {} -L 4 -7.5 -17.5 0 -20 {} -L 4 0 -30 0 -20 {} -B 5 -2.5 -32.5 2.5 -27.5 {name=TE dir=inout propag=1 pinnumber=1 goto=1} -B 5 -2.5 27.5 2.5 32.5 {name=BE dir=inout propag=0 pinnumber=2 goto=0} -T {@#0:net_name} 20 -38.75 0 0 0.15 0.15 {layer=15} -T {@#1:net_name} 20 21.25 0 0 0.15 0.15 {layer=15} +L 4 0 -30 0 -15 {} +L 4 -3.75 -15 0 -15 {} +L 4 -3.75 -15 -3.75 -5 {} +L 4 -3.75 -5 3.75 -5 {} +L 4 3.75 -5 3.75 5 {} +L 4 -3.75 5 3.75 5 {} +L 4 -3.75 5 -3.75 15 {} +L 4 -3.75 15 0 15 {} +L 4 0 15 0 30 {} +B 5 -2.5 -32.5 2.5 -27.5 {name=TE dir=inout} +B 5 -2.5 27.5 2.5 32.5 {name=BE dir=inout} +T {@name} 15 -13.75 0 0 0.2 0.2 {} +T {@model} 15 2.5 0 0 0.2 0.2 {} +T {TE} 10 -28.75 0 0 0.2 0.2 {} +T {BE} 10 28.75 2 1 0.2 0.2 {}
diff --git a/xschem/user_analog_project_wrapper.spice b/xschem/user_analog_project_wrapper.spice index d45d69f..e683b7e 100644 --- a/xschem/user_analog_project_wrapper.spice +++ b/xschem/user_analog_project_wrapper.spice
@@ -74,20 +74,20 @@ *.iopin bl1 *.iopin bl2 *.iopin VSS -Ysky130_fd_pr_reram__reram_cell RERAM1 sl2 net1 RERAM -Ysky130_fd_pr_reram__reram_cell RERAM2 sl1 net2 RERAM -Ysky130_fd_pr_reram__reram_cell RERAM3 sl2 net3 RERAM -Ysky130_fd_pr_reram__reram_cell RERAM4 sl1 net4 RERAM -XM1 net2 wl1 bl1 VSS sky130_fd_pr__nfet_01v8 L=0.5 W=1 nf=1 ad='int(( 1 + 1)/2) * 1 / 1 * 0.29' as='int(( 1 +2)/2) * 1 / 1 * 0.29' +XRERAM1 sl2 net1 reram +XRERAM2 sl1 net2 reram +XRERAM3 sl2 net3 reram +XRERAM4 sl1 net4 reram +XM1 bl1 wl1 net2 VSS sky130_fd_pr__nfet_03v3_nvt L=0.5 W=1 nf=1 ad='int(( 1 + 1)/2) * 1 / 1 * 0.29' as='int(( 1 +2)/2) * 1 / 1 * 0.29' + pd='2*int(( 1 +1)/2) * ( 1 / 1 + 0.29)' ps='2*int(( 1 +2)/2) * ( 1 / 1 + 0.29)' nrd='0.29 / 1 ' nrs='0.29 / 1 ' + sa=0 sb=0 sd=0 mult=1 m=1 -XM2 net1 wl1 bl1 VSS sky130_fd_pr__nfet_01v8 L=0.5 W=1 nf=1 ad='int(( 1 + 1)/2) * 1 / 1 * 0.29' as='int(( 1 +2)/2) * 1 / 1 * 0.29' +XM2 bl1 wl1 net1 VSS sky130_fd_pr__nfet_03v3_nvt L=0.5 W=1 nf=1 ad='int(( 1 + 1)/2) * 1 / 1 * 0.29' as='int(( 1 +2)/2) * 1 / 1 * 0.29' + pd='2*int(( 1 +1)/2) * ( 1 / 1 + 0.29)' ps='2*int(( 1 +2)/2) * ( 1 / 1 + 0.29)' nrd='0.29 / 1 ' nrs='0.29 / 1 ' + sa=0 sb=0 sd=0 mult=1 m=1 -XM3 net4 wl2 bl2 VSS sky130_fd_pr__nfet_01v8 L=0.5 W=1 nf=1 ad='int(( 1 + 1)/2) * 1 / 1 * 0.29' as='int(( 1 +2)/2) * 1 / 1 * 0.29' +XM3 bl2 wl2 net4 VSS sky130_fd_pr__nfet_03v3_nvt L=0.5 W=1 nf=1 ad='int(( 1 + 1)/2) * 1 / 1 * 0.29' as='int(( 1 +2)/2) * 1 / 1 * 0.29' + pd='2*int(( 1 +1)/2) * ( 1 / 1 + 0.29)' ps='2*int(( 1 +2)/2) * ( 1 / 1 + 0.29)' nrd='0.29 / 1 ' nrs='0.29 / 1 ' + sa=0 sb=0 sd=0 mult=1 m=1 -XM4 net3 wl2 bl2 VSS sky130_fd_pr__nfet_01v8 L=0.5 W=1 nf=1 ad='int(( 1 + 1)/2) * 1 / 1 * 0.29' as='int(( 1 +2)/2) * 1 / 1 * 0.29' +XM4 bl2 wl2 net3 VSS sky130_fd_pr__nfet_03v3_nvt L=0.5 W=1 nf=1 ad='int(( 1 + 1)/2) * 1 / 1 * 0.29' as='int(( 1 +2)/2) * 1 / 1 * 0.29' + pd='2*int(( 1 +1)/2) * ( 1 / 1 + 0.29)' ps='2*int(( 1 +2)/2) * ( 1 / 1 + 0.29)' nrd='0.29 / 1 ' nrs='0.29 / 1 ' + sa=0 sb=0 sd=0 mult=1 m=1 **** begin user architecture code