blob: 8d2c91b3b59378214e2b18b63f4db42be020e788 [file] [log] [blame]
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 {}
V {}
S {}
E {}
L 3 250 -320 250 -130 {}
L 3 410 -320 410 -180 {}
L 3 570 -320 570 -130 {}
L 4 150 -110 250 -110 {}
L 4 250 -130 250 -110 {}
L 4 250 -130 570 -130 {}
L 4 570 -130 570 -110 {}
L 4 570 -110 690 -110 {}
L 4 150 -180 410 -180 {}
L 4 410 -180 410 -160 {}
L 4 410 -160 570 -160 {}
L 4 570 -180 570 -160 {}
L 4 570 -180 690 -180 {}
L 7 1090 -240 2470 -240 {}
B 2 800 -1930 2170 -1510 {flags=graph
y1=0.02
y2=1.9
divy=4
subdivy=1
x1=3.5806e-08
x2=2.92632e-07
divx=8
subdivx=1
node=saout
color=7
unitx=n
}
B 2 800 -2200 2170 -1930 {flags=graph
y1=1.06966
y2=1.09064
divy=5
subdivy=4
x1=3.5806e-08
x2=2.92632e-07
divx=8
subdivx=1
node="plus
minus"
color="7 8"
dataset=0
unitx=n
}
T {CAL} 140 -190 0 1 0.4 0.4 {}
T {EN} 140 -140 0 1 0.4 0.4 {}
T {CALIBRATION
30ns} 400 -310 0 1 0.4 0.4 {}
T {SENSING
30ns} 530 -310 0 1 0.4 0.4 {}
T {OFF} 660 -310 0 1 0.4 0.4 {}
T {OFF} 210 -310 0 1 0.4 0.4 {}
T {NGSPICE MISMATCH SIMULATION} 1210 -290 0 0 0.8 0.8 {}
T {Offset-compensated comparator. Detects +/- 8mV differential signal on PLUS, MINUS.
Variations on per-instance process parameters (tt_mm corner), VCC and Temperature.
Output on SAOUT
} 1110 -220 0 0 0.6 0.6 {}
T {Before running this simulation:
copy file stimuli.test_comparator to xschem's
simulation directory, then use menu:
Simulation-> Utile Stimuli Editor (GUI)
to translate the stimuli file to
stimuli_test_comparator.cir} 20 -1490 0 0 0.6 0.6 {}
N 120 -480 120 -460 {lab=TEMPERAT}
N 290 -1090 320 -1090 {lab=VSS}
N 290 -1060 290 -1030 {lab=VSS}
N 290 -1150 290 -1120 {lab=VSSI}
N 1120 -1100 1150 -1100 {lab=VSS}
N 1120 -1350 1150 -1350 {lab=VCC}
N 1090 -1430 1120 -1430 {lab=VCC}
N 1120 -1430 1120 -1380 {lab=VCC}
N 1090 -960 1120 -960 {lab=VSSI}
N 1120 -1000 1120 -960 {lab=VSSI}
N 980 -1100 1080 -1100 {lab=ZERO0}
N 980 -1270 980 -1100 {lab=ZERO0}
N 900 -1270 980 -1270 {lab=ZERO0}
N 780 -1270 820 -1270 {lab=OUTDIFF}
N 780 -1470 780 -1270 {lab=OUTDIFF}
N 780 -1470 1220 -1470 {lab=OUTDIFF}
N 1120 -1270 1220 -1270 {lab=OUTDIFF}
N 1610 -1100 1640 -1100 {lab=VSS}
N 1610 -1350 1640 -1350 {lab=VCC}
N 1580 -1430 1610 -1430 {lab=VCC}
N 1610 -1430 1610 -1380 {lab=VCC}
N 1580 -960 1610 -960 {lab=VSSI}
N 1610 -1000 1610 -960 {lab=VSSI}
N 1470 -1100 1570 -1100 {lab=ZERO1}
N 1470 -1270 1470 -1100 {lab=ZERO1}
N 1390 -1270 1470 -1270 {lab=ZERO1}
N 1270 -1270 1310 -1270 {lab=SAOUTF}
N 1270 -1470 1270 -1270 {lab=SAOUTF}
N 1270 -1470 1710 -1470 {lab=SAOUTF}
N 1610 -1270 1710 -1270 {lab=SAOUTF}
N 1220 -1470 1220 -1270 {lab=OUTDIFF}
N 1120 -1320 1120 -1270 {lab=OUTDIFF}
N 980 -1350 980 -1270 {lab=ZERO0}
N 1610 -1320 1610 -1270 {lab=SAOUTF}
N 1470 -1350 1470 -1270 {lab=ZERO1}
N 1710 -1470 1710 -1270 {lab=SAOUTF}
N 890 -650 920 -650 {lab=VSS}
N 1060 -650 1090 -650 {lab=VSS}
N 1090 -810 1120 -810 {lab=VCC}
N 860 -810 890 -810 {lab=VCC}
N 930 -810 1050 -810 {lab=GN}
N 930 -810 930 -770 {lab=GN}
N 890 -770 930 -770 {lab=GN}
N 890 -770 890 -680 {lab=GN}
N 1090 -720 1090 -680 {lab=OUTDIFF}
N 890 -880 890 -840 {lab=VCC}
N 990 -880 1090 -880 {lab=VCC}
N 1090 -880 1090 -840 {lab=VCC}
N 1090 -620 1090 -600 {lab=SN}
N 990 -600 1090 -600 {lab=SN}
N 890 -620 890 -600 {lab=SN}
N 990 -520 1020 -520 {lab=VSS}
N 990 -600 990 -550 {lab=SN}
N 990 -900 990 -880 {lab=VCC}
N 960 -380 990 -380 {lab=VSSI}
N 990 -420 990 -380 {lab=VSSI}
N 1470 -520 1500 -520 {lab=VSS}
N 1470 -810 1500 -810 {lab=VCC}
N 1440 -890 1470 -890 {lab=VCC}
N 1470 -890 1470 -840 {lab=VCC}
N 1440 -380 1470 -380 {lab=VSSI}
N 1470 -420 1470 -380 {lab=VSSI}
N 1470 -720 1470 -550 {lab=SAOUTF}
N 1220 -720 1360 -720 {lab=OUTDIFF}
N 890 -880 990 -880 {lab=VCC}
N 890 -600 990 -600 {lab=SN}
N 1120 -1270 1120 -1130 {lab=OUTDIFF}
N 1610 -1270 1610 -1130 {lab=SAOUTF}
N 1360 -720 1360 -520 {lab=OUTDIFF}
N 1220 -1270 1220 -720 {lab=OUTDIFF}
N 1710 -1270 1710 -720 {lab=SAOUTF}
N 1710 -720 1850 -720 {lab=SAOUTF}
N 1090 -720 1220 -720 {lab=OUTDIFF}
N 1090 -780 1090 -720 {lab=OUTDIFF}
N 1360 -810 1360 -720 {lab=OUTDIFF}
N 1470 -1350 1570 -1350 {lab=ZERO1}
N 980 -1350 1080 -1350 {lab=ZERO0}
N 1360 -810 1430 -810 {lab=OUTDIFF}
N 1360 -520 1430 -520 {lab=OUTDIFF}
N 1960 -520 1990 -520 {lab=VSS}
N 1960 -810 1990 -810 {lab=VCC}
N 1930 -890 1960 -890 {lab=VCC}
N 1960 -890 1960 -840 {lab=VCC}
N 1930 -380 1960 -380 {lab=VSSI}
N 1960 -420 1960 -380 {lab=VSSI}
N 1960 -720 1960 -550 {lab=SAOUT}
N 1850 -720 1850 -520 {lab=SAOUTF}
N 2100 -1100 2130 -1100 {lab=VSS}
N 2100 -1350 2130 -1350 {lab=VCC}
N 2070 -1430 2100 -1430 {lab=VCC}
N 2100 -1430 2100 -1380 {lab=VCC}
N 2070 -960 2100 -960 {lab=VSSI}
N 2100 -1000 2100 -960 {lab=VSSI}
N 1960 -1100 2060 -1100 {lab=ZERO2}
N 1960 -1270 1960 -1100 {lab=ZERO2}
N 1880 -1270 1960 -1270 {lab=ZERO2}
N 1760 -1270 1800 -1270 {lab=SAOUT}
N 1760 -1470 1760 -1270 {lab=SAOUT}
N 1760 -1470 2290 -1470 {lab=SAOUT}
N 2100 -1270 2290 -1270 {lab=SAOUT}
N 2100 -1320 2100 -1270 {lab=SAOUT}
N 1960 -1350 1960 -1270 {lab=ZERO2}
N 2290 -1470 2290 -1270 {lab=SAOUT}
N 2100 -1270 2100 -1130 {lab=SAOUT}
N 2290 -1270 2290 -720 {lab=SAOUT}
N 1960 -1350 2060 -1350 {lab=ZERO2}
N 1850 -810 1920 -810 {lab=SAOUTF}
N 1850 -520 1920 -520 {lab=SAOUTF}
N 1470 -720 1710 -720 {lab=SAOUTF}
N 2180 -720 2290 -720 {lab=SAOUT}
N 1850 -810 1850 -720 {lab=SAOUTF}
N 1960 -780 1960 -720 {lab=SAOUT}
N 1470 -780 1470 -720 {lab=SAOUTF}
N 2180 -820 2210 -820 {lab=VCC}
N 2150 -900 2180 -900 {lab=VCC}
N 2180 -900 2180 -850 {lab=VCC}
N 2180 -790 2180 -720 {lab=SAOUT}
N 590 -780 620 -780 {lab=VCC}
N 530 -850 620 -850 {lab=SP}
N 620 -850 620 -810 {lab=SP}
N 420 -850 530 -850 {lab=SP}
N 420 -780 450 -780 {lab=VCC}
N 390 -650 420 -650 {lab=VSS}
N 620 -650 650 -650 {lab=VSS}
N 460 -650 580 -650 {lab=GP}
N 460 -690 460 -650 {lab=GP}
N 420 -690 460 -690 {lab=GP}
N 420 -750 420 -690 {lab=GP}
N 620 -710 620 -680 {lab=OUTDIFF}
N 620 -620 620 -600 {lab=VSSI}
N 520 -600 620 -600 {lab=VSSI}
N 420 -620 420 -600 {lab=VSSI}
N 490 -560 520 -560 {lab=VSSI}
N 520 -600 520 -560 {lab=VSSI}
N 530 -920 560 -920 {lab=VCC}
N 530 -890 530 -850 {lab=SP}
N 530 -980 530 -950 {lab=VCC}
N 620 -710 680 -710 {lab=OUTDIFF}
N 950 -1020 980 -1020 {lab=VCC}
N 980 -1040 980 -1020 { lab=VCC}
N 1440 -1020 1470 -1020 {lab=VCC}
N 1470 -1040 1470 -1020 { lab=VCC}
N 1930 -1020 1960 -1020 {lab=VCC}
N 1960 -1040 1960 -1020 { lab=VCC}
N 420 -850 420 -810 { lab=SP}
N 990 -490 990 -480 { lab=#net1}
N 890 -780 890 -770 { lab=GN}
N 1120 -1070 1120 -1060 { lab=#net2}
N 1610 -1070 1610 -1060 { lab=#net3}
N 1470 -490 1470 -480 { lab=#net4}
N 1960 -490 1960 -480 { lab=#net5}
N 1960 -720 2180 -720 {lab=SAOUT}
N 620 -750 620 -710 {lab=OUTDIFF}
N 420 -600 520 -600 {lab=VSSI}
N 420 -690 420 -680 { lab=GP}
N 2100 -1070 2100 -1060 { lab=#net6}
C {devices/title.sym} 160 -30 0 0 {name=l1 author="Stefan Schippers"}
C {devices/ipin.sym} 110 -860 0 0 { name=p92 lab=CAL }
C {devices/ipin.sym} 110 -920 0 0 { name=p93 lab=PLUS }
C {devices/ipin.sym} 110 -960 0 0 { name=p94 lab=MINUS }
C {devices/ipin.sym} 110 -1000 0 0 { name=p95 lab=EN }
C {devices/ipin.sym} 110 -790 0 0 { name=p96 lab=VSS }
C {devices/ipin.sym} 110 -820 0 0 { name=p97 lab=VCC }
C {devices/vsource_arith.sym} 120 -430 0 0 {name=E5 VOL=temper MAX=200 MIN=-200}
C {devices/lab_pin.sym} 120 -480 0 1 {name=p113 lab=TEMPERAT}
C {devices/lab_pin.sym} 120 -400 0 0 {name=p114 lab=VSS}
C {devices/opin.sym} 150 -910 0 0 { name=p116 lab=SAOUT }
C {devices/lab_pin.sym} 200 -580 0 1 {name=p126 lab=CALB}
C {devices/lab_pin.sym} 120 -580 0 0 {name=l50 lab=CAL}
C {devices/code.sym} 720 -340 0 0 {name=STIMULI
only_toplevel=true
place=end
value="
** this experimental option enables mos model bin
** selection based on W/NF instead of W
.option wnflag=1
.param VCCGAUSS=agauss(1.8, 0.05, 1)
.param VCC='VCCGAUSS'
** use following line to remove VCC variations
* .param VCC=1.8
.param VDL='VCC/2+0.2'
.param TEMPGAUSS=agauss(40, 30, 1)
.option temp='TEMPGAUSS'
** use following line to remove temperature variations
* .option temp=25
** to generate following file:
** copy .../xschem_sky130/sky130_tests/stimuli.test_comparator to simulation directory
** then do 'Simulation->Utile Stimuli Editor (GUI)' and press 'Translate'
.include \\"stimuli_test_comparator.cir\\"
.control
option seed=12
let run=1
dowhile run <= 40
if run > 1
reset
set appendwrite
end
save all
* save saout cal i(vvcc) en plus minus
tran 0.1n 300n uic
write test_comparator.raw
let run = run + 1
end
.endc
"}
C {devices/lab_pin.sym} 120 -710 0 0 {name=p15 lab=CALB}
C {devices/lab_pin.sym} 200 -710 0 1 {name=l4 lab=CALBB}
C {devices/lab_pin.sym} 320 -1090 0 1 {name=p283 lab=VSS}
C {devices/lab_pin.sym} 250 -1090 0 0 {name=l56 lab=EN}
C {devices/lab_pin.sym} 290 -1030 0 0 {name=p284 lab=VSS}
C {devices/lab_pin.sym} 290 -1150 0 0 {name=p199 lab=VSSI}
C {devices/parax_cap.sym} 290 -1020 0 0 {name=C38 value=2p}
C {devices/lab_pin.sym} 860 -1300 0 1 {name=l19 sig_type=std_logic lab=CALB}
C {devices/lab_pin.sym} 860 -1240 0 1 {name=l44 sig_type=std_logic lab=CALBB}
C {devices/lab_pin.sym} 1150 -1100 0 1 {name=p179 lab=VSS}
C {devices/lab_pin.sym} 1150 -1350 0 1 {name=p180 lab=VCC}
C {devices/lab_pin.sym} 1090 -1430 0 0 {name=p181 lab=VCC}
C {devices/lab_pin.sym} 1090 -960 0 0 {name=p182 lab=VSSI}
C {devices/lab_pin.sym} 1350 -1300 0 1 {name=l45 sig_type=std_logic lab=CALB}
C {devices/lab_pin.sym} 1350 -1240 0 1 {name=l46 sig_type=std_logic lab=CALBB}
C {devices/lab_pin.sym} 1640 -1100 0 1 {name=p183 lab=VSS}
C {devices/lab_pin.sym} 1640 -1350 0 1 {name=p184 lab=VCC}
C {devices/lab_pin.sym} 1580 -1430 0 0 {name=p185 lab=VCC}
C {devices/lab_pin.sym} 1580 -960 0 0 {name=p186 lab=VSSI}
C {devices/lab_pin.sym} 1470 -1330 0 0 {name=l47 lab=ZERO1}
C {devices/lab_pin.sym} 980 -1330 0 0 {name=l48 lab=ZERO0}
C {devices/lab_pin.sym} 920 -650 0 1 {name=p187 lab=VSS}
C {devices/lab_pin.sym} 1060 -650 0 0 {name=p188 lab=VSS}
C {devices/lab_pin.sym} 1120 -810 0 1 {name=p189 lab=VCC}
C {devices/lab_pin.sym} 860 -810 0 0 {name=p190 lab=VCC}
C {devices/lab_pin.sym} 1020 -520 0 1 {name=p191 lab=VSS}
C {devices/lab_pin.sym} 990 -900 0 0 {name=p192 lab=VCC}
C {devices/lab_pin.sym} 960 -380 0 0 {name=p193 lab=VSSI}
C {devices/lab_pin.sym} 1500 -520 0 1 {name=p194 lab=VSS}
C {devices/lab_pin.sym} 1500 -810 0 1 {name=p195 lab=VCC}
C {devices/lab_pin.sym} 1440 -890 0 0 {name=p196 lab=VCC}
C {devices/lab_pin.sym} 1440 -380 0 0 {name=p197 lab=VSSI}
C {devices/lab_pin.sym} 1710 -760 0 0 {name=l49 lab=SAOUTF}
C {devices/parax_cap.sym} 1540 -710 0 0 {name=C3 value=4f}
C {devices/lab_pin.sym} 1220 -760 0 0 {name=l51 lab=OUTDIFF}
C {devices/lab_pin.sym} 990 -580 0 0 {name=l52 lab=SN}
C {devices/lab_pin.sym} 930 -780 0 1 {name=l53 lab=GN}
C {devices/parax_cap.sym} 980 -800 0 0 {name=C5 value=4f}
C {devices/parax_cap.sym} 910 -590 0 0 {name=C30 value=2f}
C {devices/parax_cap.sym} 1180 -710 0 0 {name=C31 value=4f}
C {devices/lab_pin.sym} 950 -520 0 0 {name=p198 lab=VCC}
C {devices/lab_pin.sym} 1130 -650 0 1 {name=l54 lab=PLUS}
C {devices/lab_pin.sym} 850 -650 0 0 {name=l55 lab=MINUS}
C {devices/ammeter.sym} 990 -450 0 0 {name=v2}
C {devices/ammeter.sym} 1470 -450 0 0 {name=v3}
C {devices/ammeter.sym} 1610 -1030 0 0 {name=v4}
C {devices/ammeter.sym} 1120 -1030 0 0 {name=v6}
C {devices/lab_pin.sym} 1990 -520 0 1 {name=p9 lab=VSS}
C {devices/lab_pin.sym} 1990 -810 0 1 {name=p10 lab=VCC}
C {devices/lab_pin.sym} 1930 -890 0 0 {name=p11 lab=VCC}
C {devices/lab_pin.sym} 1930 -380 0 0 {name=p12 lab=VSSI}
C {devices/parax_cap.sym} 2030 -710 0 0 {name=C1 value=4f}
C {devices/ammeter.sym} 1960 -450 0 0 {name=v1}
C {devices/lab_pin.sym} 2290 -720 0 1 {name=l3 lab=SAOUT}
C {devices/lab_pin.sym} 1840 -1300 0 1 {name=l5 sig_type=std_logic lab=CALB}
C {devices/lab_pin.sym} 1840 -1240 0 1 {name=l6 sig_type=std_logic lab=CALBB}
C {devices/lab_pin.sym} 2130 -1100 0 1 {name=p13 lab=VSS}
C {devices/lab_pin.sym} 2130 -1350 0 1 {name=p14 lab=VCC}
C {devices/lab_pin.sym} 2070 -1430 0 0 {name=p16 lab=VCC}
C {devices/lab_pin.sym} 2070 -960 0 0 {name=p17 lab=VSSI}
C {devices/lab_pin.sym} 1960 -1330 0 0 {name=l8 lab=ZERO2}
C {devices/ammeter.sym} 2100 -1030 0 0 {name=v5}
C {devices/lab_pin.sym} 2210 -820 0 1 {name=p18 lab=VCC}
C {devices/lab_pin.sym} 2150 -900 0 0 {name=p19 lab=VCC}
C {devices/lab_pin.sym} 2140 -820 0 0 {name=l2 lab=EN}
C {devices/lab_pin.sym} 590 -780 0 0 {name=p20 lab=VCC}
C {devices/lab_pin.sym} 450 -780 0 1 {name=p21 lab=VCC}
C {devices/lab_pin.sym} 390 -650 0 0 {name=p22 lab=VSS}
C {devices/lab_pin.sym} 650 -650 0 1 {name=p23 lab=VSS}
C {devices/lab_pin.sym} 490 -560 0 0 {name=p24 lab=VSSI}
C {devices/lab_pin.sym} 560 -920 0 1 {name=p25 lab=VCC}
C {devices/lab_pin.sym} 530 -980 0 0 {name=p26 lab=VCC}
C {devices/lab_pin.sym} 490 -920 0 0 {name=l7 lab=VSS}
C {devices/lab_pin.sym} 460 -690 0 1 {name=l9 lab=GP}
C {devices/lab_pin.sym} 380 -780 0 0 {name=l10 lab=MINUS}
C {devices/lab_pin.sym} 660 -780 0 1 {name=l11 lab=PLUS}
C {devices/lab_pin.sym} 680 -710 0 1 {name=l12 lab=OUTDIFF}
C {devices/parax_cap.sym} 500 -640 0 0 {name=C7 value=4f}
C {devices/lab_pin.sym} 530 -870 0 0 {name=l13 lab=SP}
C {devices/launcher.sym} 910 -320 0 0 {name=h2
descr="Simulate"
tclcommand="execute 0 sh -c \\"cd $netlist_dir && \\\\
XSCHEM_SHAREDIR=$XSCHEM_SHAREDIR $utile_cmd_path stimuli.test_comparator \\"
xschem netlist; xschem simulate"
}
C {sky130_tests/not.sym} 160 -710 0 0 {name=x4 m=1
+ W_N=1 L_N=0.15 W_P=2 L_P=0.15
+ VCCPIN=VCC VSSPIN=VSS}
C {sky130_tests/not.sym} 160 -580 0 0 {name=x5 m=1
+ W_N=1 L_N=0.15 W_P=2 L_P=0.15
+ VCCPIN=VCC VSSPIN=VSS}
C {sky130_fd_pr/pfet_01v8.sym} 510 -920 0 0 {name=M4
L=1
W=0.55
ad="'W * 0.29'" pd="'W + 2 * 0.29'"
as="'W * 0.29'" ps="'W + 2 * 0.29'"
nrd=0 nrs=0
sa=0 sb=0 sd=0
nf=1 mult=1
model=pfet_01v8
spiceprefix=X
}
C {sky130_fd_pr/pfet_01v8_lvt.sym} 1070 -810 0 0 {name=M5
L=1
W=1
ad="'W * 0.29'" pd="'2*(W + 0.29)'"
as="'W * 0.29'" ps="'2*(W + 0.29)'"
nrd=0 nrs=0
sa=0 sb=0 sd=0
nf=1 mult=1
model=pfet_01v8_lvt
spiceprefix=X
}
C {sky130_fd_pr/pfet_01v8_lvt.sym} 910 -810 0 1 {name=M6
L=1
W=1
ad="'W * 0.29'" pd="'2*(W + 0.29)'"
as="'W * 0.29'" ps="'2*(W + 0.29)'"
nrd=0 nrs=0
sa=0 sb=0 sd=0
nf=1 mult=1
model=pfet_01v8_lvt
spiceprefix=X
}
C {sky130_fd_pr/pfet_01v8_lvt.sym} 1450 -810 0 0 {name=M8
L=1
W=1
ad="'W * 0.29'" pd="'2*(W + 0.29)'"
as="'W * 0.29'" ps="'2*(W + 0.29)'"
nrd=0 nrs=0
sa=0 sb=0 sd=0
nf=1 mult=1
model=pfet_01v8_lvt
spiceprefix=X
}
C {sky130_fd_pr/pfet_01v8_lvt.sym} 1940 -810 0 0 {name=M9
L=1
W=1
ad="'W * 0.29'" pd="'2*(W + 0.29)'"
as="'W * 0.29'" ps="'2*(W + 0.29)'"
nrd=0 nrs=0
sa=0 sb=0 sd=0
nf=1 mult=1
model=pfet_01v8_lvt
spiceprefix=X
}
C {sky130_fd_pr/pfet_01v8.sym} 2160 -820 0 0 {name=M11
L=0.15
W=1
ad="'W * 0.29'" pd="'W + 2 * 0.29'"
as="'W * 0.29'" ps="'W + 2 * 0.29'"
nrd=0 nrs=0
sa=0 sb=0 sd=0
nf=1 mult=1
model=pfet_01v8
spiceprefix=X
}
C {sky130_fd_pr/pfet_01v8_lvt.sym} 2080 -1350 0 0 {name=M12
L=1
W=0.42
ad="'W * 0.29'" pd="'2*(W + 0.29)'"
as="'W * 0.29'" ps="'2*(W + 0.29)'"
nrd=0 nrs=0
sa=0 sb=0 sd=0
nf=1 mult=1
model=pfet_01v8_lvt
spiceprefix=X
}
C {sky130_fd_pr/pfet_01v8_lvt.sym} 1590 -1350 0 0 {name=M13
L=1
W=0.42
ad="'W * 0.29'" pd="'2*(W + 0.29)'"
as="'W * 0.29'" ps="'2*(W + 0.29)'"
nrd=0 nrs=0
sa=0 sb=0 sd=0
nf=1 mult=1
model=pfet_01v8_lvt
spiceprefix=X
}
C {sky130_fd_pr/pfet_01v8_lvt.sym} 1100 -1350 0 0 {name=M14
L=1
W=0.42
ad="'W * 0.29'" pd="'2*(W + 0.29)'"
as="'W * 0.29'" ps="'2*(W + 0.29)'"
nrd=0 nrs=0
sa=0 sb=0 sd=0
nf=1 mult=1
model=pfet_01v8_lvt
spiceprefix=X
}
C {sky130_fd_pr/nfet_01v8.sym} 270 -1090 0 0 {name=M1
L=0.15
W=1
ad="'W * 0.29'" pd="'W + 2 * 0.29'"
as="'W * 0.29'" ps="'W + 2 * 0.29'"
nrd=0 nrs=0
sa=0 sb=0 sd=0
nf=1 mult=2
model=nfet_01v8
spiceprefix=X
}
C {sky130_fd_pr/nfet_01v8_lvt.sym} 1100 -1100 0 0 {name=M2
L=1
W=0.42
ad="'W * 0.29'" pd="'2*(W + 0.29)'"
as="'W * 0.29'" ps="'2*(W + 0.29)'"
nrd=0 nrs=0
sa=0 sb=0 sd=0
nf=1 mult=1
model=nfet_01v8_lvt
spiceprefix=X
}
C {sky130_fd_pr/nfet_01v8_lvt.sym} 1590 -1100 0 0 {name=M3
L=1
W=0.42
ad="'W * 0.29'" pd="'2*(W + 0.29)'"
as="'W * 0.29'" ps="'2*(W + 0.29)'"
nrd=0 nrs=0
sa=0 sb=0 sd=0
nf=1 mult=1
model=nfet_01v8_lvt
spiceprefix=X
}
C {sky130_fd_pr/nfet_01v8_lvt.sym} 2080 -1100 0 0 {name=M7
L=1
W=0.42
ad="'W * 0.29'" pd="'2*(W + 0.29)'"
as="'W * 0.29'" ps="'2*(W + 0.29)'"
nrd=0 nrs=0
sa=0 sb=0 sd=0
nf=1 mult=1
model=nfet_01v8_lvt
spiceprefix=X
}
C {sky130_fd_pr/nfet_01v8_lvt.sym} 1940 -520 0 0 {name=M15
L=1
W=1
ad="'W * 0.29'" pd="'2*(W + 0.29)'"
as="'W * 0.29'" ps="'2*(W + 0.29)'"
nrd=0 nrs=0
sa=0 sb=0 sd=0
nf=1 mult=1
model=nfet_01v8_lvt
spiceprefix=X
}
C {sky130_fd_pr/nfet_01v8_lvt.sym} 1450 -520 0 0 {name=M10
L=1
W=1
ad="'W * 0.29'" pd="'2*(W + 0.29)'"
as="'W * 0.29'" ps="'2*(W + 0.29)'"
nrd=0 nrs=0
sa=0 sb=0 sd=0
nf=1 mult=1
model=nfet_01v8_lvt
spiceprefix=X
}
C {sky130_fd_pr/nfet_01v8_lvt.sym} 970 -520 0 0 {name=M17
L=1
W=0.42
ad="'W * 0.29'" pd="'2*(W + 0.29)'"
as="'W * 0.29'" ps="'2*(W + 0.29)'"
nrd=0 nrs=0
sa=0 sb=0 sd=0
nf=1 mult=1
model=nfet_01v8_lvt
spiceprefix=X
}
C {sky130_fd_pr/nfet_01v8_lvt.sym} 600 -650 0 0 {name=M18
L=1
W=1
ad="'W * 0.29'" pd="'2*(W + 0.29)'"
as="'W * 0.29'" ps="'2*(W + 0.29)'"
nrd=0 nrs=0
sa=0 sb=0 sd=0
nf=1 mult=1
model=nfet_01v8_lvt
spiceprefix=X
}
C {sky130_fd_pr/nfet_01v8_lvt.sym} 440 -650 0 1 {name=M19
L=1
W=1
ad="'W * 0.29'" pd="'2*(W + 0.29)'"
as="'W * 0.29'" ps="'2*(W + 0.29)'"
nrd=0 nrs=0
sa=0 sb=0 sd=0
nf=1 mult=1
model=nfet_01v8_lvt
spiceprefix=X
}
C {sky130_fd_pr/pfet_01v8_lvt.sym} 640 -780 0 1 {name=M20
L=0.35
W=1
ad="'W * 0.29'" pd="'2*(W + 0.29)'"
as="'W * 0.29'" ps="'2*(W + 0.29)'"
nrd=0 nrs=0
sa=0 sb=0 sd=0
nf=1 mult=1
model=pfet_01v8_lvt
spiceprefix=X
}
C {sky130_fd_pr/pfet_01v8_lvt.sym} 400 -780 0 0 {name=M21
L=0.35
W=1
ad="'W * 0.29'" pd="'2*(W + 0.29)'"
as="'W * 0.29'" ps="'2*(W + 0.29)'"
nrd=0 nrs=0
sa=0 sb=0 sd=0
nf=1 mult=1
model=pfet_01v8_lvt
spiceprefix=X
}
C {sky130_fd_pr/nfet_01v8_lvt.sym} 1110 -650 0 1 {name=M23
L=0.25
W=1
ad="'W * 0.29'" pd="'2*(W + 0.29)'"
as="'W * 0.29'" ps="'2*(W + 0.29)'"
nrd=0 nrs=0
sa=0 sb=0 sd=0
nf=1 mult=1
model=nfet_01v8_lvt
spiceprefix=X
}
C {sky130_fd_pr/nfet_01v8_lvt.sym} 870 -650 0 0 {name=M16
L=0.25
W=1
ad="'W * 0.29'" pd="'2*(W + 0.29)'"
as="'W * 0.29'" ps="'2*(W + 0.29)'"
nrd=0 nrs=0
sa=0 sb=0 sd=0
nf=1 mult=1
model=nfet_01v8_lvt
spiceprefix=X
}
C {sky130_tests/passgate_nlvt.sym} 860 -1270 0 1 {name=x1 m=1
W_N=0.42 L_N=0.4
W_P=0.42 L_P=0.4
VCCBPIN=VCC VSSBPIN=VSS}
C {sky130_tests/passgate_nlvt.sym} 1350 -1270 0 1 {name=x2 m=1
W_N=0.42 L_N=0.4
W_P=0.42 L_P=0.4
VCCBPIN=VCC VSSBPIN=VSS}
C {sky130_tests/passgate_nlvt.sym} 1840 -1270 0 1 {name=x3 m=1
W_N=0.42 L_N=0.4
W_P=0.42 L_P=0.4
VCCBPIN=VCC VSSBPIN=VSS}
C {devices/capa.sym} 980 -1070 0 0 {name=C2
m=1
value=15f
footprint=1206
device="ceramic capacitor"}
C {devices/lab_pin.sym} 950 -1020 0 0 {name=p5 lab=VCC}
C {devices/capa.sym} 1470 -1070 0 0 {name=C4
m=1
value=15f
footprint=1206
device="ceramic capacitor"}
C {devices/lab_pin.sym} 1440 -1020 0 0 {name=p6 lab=VCC}
C {devices/capa.sym} 1960 -1070 0 0 {name=C6
m=1
value=15f
footprint=1206
device="ceramic capacitor"}
C {devices/lab_pin.sym} 1930 -1020 0 0 {name=p7 lab=VCC}
C {devices/launcher.sym} 910 -270 0 0 {name=h3
descr="Load file into gaw"
comment="
This launcher gets raw filename from current schematic using 'xschem get schname'
and stripping off path and suffix. It then loads raw file into gaw.
This allow to use it in any schematic without changes.
"
tclcommand="
set rawfile [file tail [file rootname [xschem get schname]]].raw
gaw_cmd \\"tabledel $rawfile
load $netlist_dir/$rawfile
table_set $rawfile\\"
unset rawfile"
}
C {devices/code.sym} 720 -170 0 0 {name=TT_MODELS
only_toplevel=true
format="tcleval( @value )"
value="
** opencircuitdesign pdks install
.lib $::SKYWATER_MODELS/sky130.lib.spice tt_mm
"
spice_ignore=false}
C {devices/launcher.sym} 245 -1705 0 0 {name=h1
descr="Select arrow and
Ctrl-Left-Click to load/unload waveforms
after running simulation"
tclcommand="
xschem raw_read $netlist_dir/[file tail [file rootname [xschem get current_name]]].raw
"
}
C {devices/launcher.sym} 250 -1620 0 0 {name=h4
descr="View Raw file"
tclcommand="textwindow $netlist_dir/[file tail [file rootname [ xschem get schname 0 ] ] ].raw"
}