blob: efda2d6e1e2614242be98887c1b881ba33ed0ec4 [file] [log] [blame]
v {xschem version=3.1.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 {}
B 2 1040 -990 1470 -670 {flags=graph
y1 = 0
y2 = 0.00058
divy = 5
subdivy=1
x1=-1.10952e-06
x2=1.8
divx=4
subdivx=4
node="\\"01v8_lvt;i(vd1)\\"
\\"01v8;i(vd2)\\""
color="4 5" unity=1
dataset=8}
B 2 1480 -990 1910 -670 {flags=graph,unlocked
y1 = -0
y2 = 0.00063
divy = 5
subdivy=1
x1=-0.143377
x2=4.85662
divx=8
subdivx=0
node=i(vd4)
color=4 unity=1
sweep=d5v0
dataset=-1}
B 2 1920 -990 2350 -670 {flags=graph,unlocked
y1 = -8.01012e-06
y2 = 0.000703341
divy = 5
subdivy=1
x1=0
x2=10.5
divx=5
subdivx=4
node="i(vd5)"
color=4 unity=1
sweep=v(d10v5)
}
B 2 2380 -990 2810 -670 {flags=graph
y1 = 0
y2 = 0.00058
divy = 5
subdivy=1
x1=-1.10952e-06
x2=1.8
divx=4
subdivx=4
node="i(vd1)
i(vd9)"
color="4 5" unity=1
dataset=8}
B 2 770 -990 1030 -670 {flags=graph
y1 = 0
y2 = 1.8
divy = 5
subdivy=4
x1=-0.03375
x2=1.76626
divx=4
subdivx=4
node=g1v8
color=4 unity=1
dataset=8}
P 15 6 300 -180 550 -180 540 -190 590 -180 540 -170 550 -180 {}
T {Example usage
of annotators} 300 -250 0 0 0.5 0.5 {}
T {Ctrl-Click to annotate operating point data.
For this to work open this schematic as the
top most schematic (so you have not
descended into it) and run ngspice simulation.} 10 -570 0 0 0.3 0.3 {layer=15}
T {select one single gate voltage
by pressing 't' with mouse close
to one of the waveforms} 1020 -1060 0 1 0.3 0.3 {}
N 690 -140 710 -140 {lab=B}
N 630 -140 650 -140 {lab=G1v8}
N 690 -190 690 -170 {lab=#net1}
N 690 -110 690 -90 {lab=S}
N 640 -270 2810 -270 { lab=D1v8}
N 1190 -140 1210 -140 {lab=B}
N 1130 -140 1150 -140 {lab=G3v3}
N 1190 -190 1190 -170 {lab=#net2}
N 1190 -110 1190 -90 {lab=S}
N 940 -140 960 -140 {lab=B}
N 880 -140 900 -140 {lab=G1v8}
N 940 -190 940 -170 {lab=#net3}
N 940 -110 940 -90 {lab=S}
N 1440 -140 1460 -140 {lab=B}
N 1380 -140 1400 -140 {lab=G5v0}
N 1440 -190 1440 -170 {lab=#net4}
N 1440 -110 1440 -90 {lab=S}
N 640 -310 2810 -310 { lab=D3v3}
N 640 -350 2810 -350 { lab=D5v0}
N 960 -600 960 -580 { lab=D5v0}
N 690 -270 690 -250 { lab=D1v8}
N 940 -270 940 -250 { lab=D1v8}
N 1190 -310 1190 -250 { lab=D3v3}
N 1440 -350 1440 -250 { lab=D5v0}
N 780 -600 780 -580 { lab=D3v3}
N 1910 -600 1910 -580 { lab=G5v0}
N 1730 -600 1730 -580 { lab=G3v3}
N 1690 -140 1710 -140 {lab=B}
N 1630 -140 1650 -140 {lab=G5v0}
N 1690 -190 1690 -170 {lab=#net5}
N 1690 -110 1690 -90 {lab=S}
N 1690 -390 1690 -250 { lab=D10v5}
N 640 -390 2810 -390 { lab=D10v5}
N 1140 -600 1140 -580 { lab=D10v5}
N 1940 -140 1960 -140 {lab=B}
N 1880 -140 1900 -140 {lab=G5v0}
N 1940 -190 1940 -170 {lab=#net6}
N 1940 -110 1940 -90 {lab=S}
N 1940 -430 1940 -250 { lab=D16v0}
N 640 -430 2810 -430 { lab=D16v0}
N 1320 -600 1320 -580 { lab=D16v0}
N 2190 -140 2210 -140 {lab=B}
N 2130 -140 2150 -140 {lab=G1v8}
N 2190 -190 2190 -170 {lab=#net7}
N 2190 -110 2190 -90 {lab=S}
N 2190 -270 2190 -250 { lab=D1v8}
N 640 -470 2810 -470 { lab=D20v0}
N 1490 -600 1490 -580 { lab=D20v0}
N 2430 -140 2450 -140 {lab=B}
N 2370 -140 2390 -140 {lab=G1v8}
N 2430 -190 2430 -170 {lab=#net8}
N 2430 -110 2430 -90 {lab=S}
N 2430 -270 2430 -250 { lab=D1v8}
N 2670 -140 2690 -140 {lab=B}
N 2610 -140 2630 -140 {lab=G1v8}
N 2670 -190 2670 -170 {lab=#net9}
N 2670 -110 2670 -90 {lab=S}
N 2670 -270 2670 -250 { lab=D1v8}
C {devices/title.sym} 160 -30 0 0 {name=l1 author="Stefan Schippers"}
C {devices/lab_pin.sym} 640 -270 0 0 {name=p17 lab=D1v8}
C {devices/lab_pin.sym} 690 -90 0 1 {name=p3 lab=S}
C {devices/lab_pin.sym} 710 -140 0 1 {name=p4 lab=B}
C {devices/ammeter.sym} 690 -220 0 0 {name=Vd1 current=5.7132e-04}
C {devices/lab_pin.sym} 1190 -90 0 1 {name=p12 lab=S}
C {devices/lab_pin.sym} 1210 -140 0 1 {name=p13 lab=B}
C {devices/ammeter.sym} 1190 -220 0 0 {name=Vd3 current=5.6511e-04}
C {devices/lab_pin.sym} 940 -90 0 1 {name=p16 lab=S}
C {devices/lab_pin.sym} 960 -140 0 1 {name=p21 lab=B}
C {devices/ammeter.sym} 940 -220 0 0 {name=Vd2 current=5.0094e-04}
C {devices/lab_pin.sym} 1440 -90 0 1 {name=p7 lab=S}
C {devices/lab_pin.sym} 1460 -140 0 1 {name=p8 lab=B}
C {devices/ammeter.sym} 1440 -220 0 0 {name=Vd4 current=6.2333e-04}
C {devices/lab_pin.sym} 640 -310 0 0 {name=p9 lab=D3v3}
C {devices/lab_pin.sym} 640 -350 0 0 {name=p14 lab=D5v0}
C {devices/vcvs.sym} 960 -550 0 0 {name=E1 value='5/1.8'}
C {devices/lab_pin.sym} 920 -570 0 0 {name=p18 lab=D1v8}
C {devices/lab_pin.sym} 960 -520 0 1 {name=p19 lab=0}
C {devices/lab_pin.sym} 960 -600 0 1 {name=p20 lab=D5v0}
C {devices/lab_pin.sym} 920 -530 0 0 {name=p23 lab=0}
C {devices/vcvs.sym} 780 -550 0 0 {name=E2 value='3.3/1.8'}
C {devices/lab_pin.sym} 740 -570 0 0 {name=p24 lab=D1v8}
C {devices/lab_pin.sym} 780 -520 0 1 {name=p25 lab=0}
C {devices/lab_pin.sym} 780 -600 0 1 {name=p26 lab=D3v3}
C {devices/lab_pin.sym} 740 -530 0 0 {name=p27 lab=0}
C {devices/vcvs.sym} 1910 -550 0 0 {name=E3 value='5/1.8'}
C {devices/lab_pin.sym} 1870 -570 0 0 {name=p28 lab=G1v8}
C {devices/lab_pin.sym} 1910 -520 0 1 {name=p29 lab=0}
C {devices/lab_pin.sym} 1910 -600 0 1 {name=p30 lab=G5v0}
C {devices/lab_pin.sym} 1870 -530 0 0 {name=p31 lab=0}
C {devices/vcvs.sym} 1730 -550 0 0 {name=E4 value='3.3/1.8'}
C {devices/lab_pin.sym} 1690 -570 0 0 {name=p32 lab=G1v8}
C {devices/lab_pin.sym} 1730 -520 0 1 {name=p33 lab=0}
C {devices/lab_pin.sym} 1730 -600 0 1 {name=p34 lab=G3v3}
C {devices/lab_pin.sym} 1690 -530 0 0 {name=p35 lab=0}
C {devices/lab_pin.sym} 630 -140 0 0 {name=p2 lab=G1v8}
C {devices/lab_pin.sym} 880 -140 0 0 {name=p6 lab=G1v8}
C {devices/lab_pin.sym} 1130 -140 0 0 {name=p11 lab=G3v3}
C {devices/lab_pin.sym} 1380 -140 0 0 {name=p15 lab=G5v0}
C {devices/lab_pin.sym} 1690 -90 0 1 {name=p1 lab=S}
C {devices/lab_pin.sym} 1710 -140 0 1 {name=p5 lab=B}
C {devices/ammeter.sym} 1690 -220 0 0 {name=Vd5 current=0.005218}
C {devices/lab_pin.sym} 1630 -140 0 0 {name=p10 lab=G5v0}
C {devices/lab_pin.sym} 640 -390 0 0 {name=p22 lab=D10v5}
C {devices/vcvs.sym} 1140 -550 0 0 {name=E5 value='10.5/1.8'}
C {devices/lab_pin.sym} 1100 -570 0 0 {name=p36 lab=D1v8}
C {devices/lab_pin.sym} 1140 -520 0 1 {name=p37 lab=0}
C {devices/lab_pin.sym} 1140 -600 0 1 {name=p38 lab=D10v5}
C {devices/lab_pin.sym} 1100 -530 0 0 {name=p39 lab=0}
C {devices/lab_pin.sym} 1940 -90 0 1 {name=p1 lab=S}
C {devices/lab_pin.sym} 1960 -140 0 1 {name=p5 lab=B}
C {devices/lab_pin.sym} 1880 -140 0 0 {name=p10 lab=G5v0}
C {devices/lab_pin.sym} 640 -430 0 0 {name=p22 lab=D16v0}
C {devices/vcvs.sym} 1320 -550 0 0 {name=E6 value='16.0/1.8'}
C {devices/lab_pin.sym} 1280 -570 0 0 {name=p36 lab=D1v8}
C {devices/lab_pin.sym} 1320 -520 0 1 {name=p37 lab=0}
C {devices/lab_pin.sym} 1320 -600 0 1 {name=p38 lab=D16v0}
C {devices/lab_pin.sym} 1280 -530 0 0 {name=p39 lab=0}
C {devices/ammeter.sym} 1940 -220 0 0 {name=Vd6 current=0.003311}
C {devices/lab_pin.sym} 2190 -90 0 1 {name=p40 lab=S}
C {devices/lab_pin.sym} 2210 -140 0 1 {name=p41 lab=B}
C {devices/lab_pin.sym} 2130 -140 0 0 {name=p42 lab=G1v8}
C {devices/ammeter.sym} 2190 -220 0 0 {name=Vd7 current=0.001217}
C {devices/lab_pin.sym} 640 -470 0 0 {name=p43 lab=D20v0}
C {devices/vcvs.sym} 1490 -550 0 0 {name=E7 value='20.0/1.8'}
C {devices/lab_pin.sym} 1450 -570 0 0 {name=p44 lab=D1v8}
C {devices/lab_pin.sym} 1490 -520 0 1 {name=p45 lab=0}
C {devices/lab_pin.sym} 1490 -600 0 1 {name=p46 lab=D20v0}
C {devices/lab_pin.sym} 1450 -530 0 0 {name=p47 lab=0}
C {devices/ipin.sym} 520 -420 0 0 {name=p48 lab=G1v8}
C {devices/ipin.sym} 520 -380 0 0 {name=p49 lab=D1v8}
C {devices/ipin.sym} 520 -340 0 0 {name=p50 lab=B}
C {devices/code_shown.sym} 0 -1200 0 0 {name=NGSPICE
only_toplevel=true
value="* this option enables mos model bin
* selection based on W/NF instead of W
.option wnflag=1
.option savecurrents
vg G1v8 0 1.8
vs s 0 0
vd D1v8 0 1.8
vb b 0 0
.control
save all
save @m.xm9.msky130_fd_pr__nfet_01v8_lvt[gm]
save @m.xm8.m1[gm]
save @m.xm7.m1[gm]
save @m.xm6.xmain1.msky130_fd_pr__nfet_g5v0d16v0__base[gm]
save @m.xm5.msky130_fd_pr__nfet_g5v0d10v5[gm]
save @m.xm4.msky130_fd_pr__nfet_05v0_nvt[gm]
save @m.xm3.msky130_fd_pr__nfet_03v3_nvt[gm]
save @m.xm2.msky130_fd_pr__nfet_01v8[gm]
save @m.xm1.msky130_fd_pr__nfet_01v8_lvt[gm]
dc vd 0 1.8 0.005 vg 0 1.8 0.2
write test_nmos.raw
* dc vd 0 1.8 0.001 vg 0 1.2 0.1
plot all.vd1#branch vs D1v8
*plot all.vd2#branch vs D1v8
plot all.vd3#branch vs D3v3
*plot all.vd4#branch vs D5v0
plot all.vd5#branch vs D10v5
*plot all.vd6#branch vs D16v0
plot all.vd8#branch vs D1v8
plot all.vd7#branch vs D1v8
set appendwrite
op
write test_nmos.raw
.endc
" }
C {sky130_fd_pr/nfet_01v8_lvt.sym} 670 -140 0 0 {name=M1
L=0.15
W=1
nf=1
mult=1
model=nfet_01v8_lvt
spiceprefix=X}
C {sky130_fd_pr/nfet_01v8.sym} 920 -140 0 0 {name=M2
L=0.15
W=1
mult=1 nf=1
model=nfet_01v8
spiceprefix=X}
C {sky130_fd_pr/nfet_03v3_nvt.sym} 1170 -140 0 0 {name=M3
L=0.5
W=1
mult=1 nf=1
model=nfet_03v3_nvt
spiceprefix=X}
C {sky130_fd_pr/nfet_05v0_nvt.sym} 1420 -140 0 0 {name=M4
L=0.9
W=1
mult=1 nf=1
model=nfet_05v0_nvt
spiceprefix=X}
C {sky130_fd_pr/nfet_g5v0d10v5.sym} 1670 -140 0 0 {name=M5
L=0.5
W=1
mult=1 nf=1
model=nfet_g5v0d10v5
spiceprefix=X}
C {sky130_fd_pr/nfet_g5v0d16v0.sym} 1920 -140 0 0 {name=M6
L=0.7
W=5.0
mult=1 nf=1
model=nfet_g5v0d16v0
spiceprefix=X}
C {devices/launcher.sym} 100 -420 0 0 {name=h2
descr="View Raw file"
tclcommand="textwindow $netlist_dir/test_nmos.raw"}
C {devices/launcher.sym} 360 -140 0 0 {name=h3
descr="Annotation
manual page"
url="https://xschem.sourceforge.io/stefan/xschem_man/tutorial_ngspice_backannotation.html"}
C {devices/lab_pin.sym} 2430 -90 0 1 {name=p51 lab=S}
C {devices/lab_pin.sym} 2450 -140 0 1 {name=p52 lab=B}
C {devices/lab_pin.sym} 2370 -140 0 0 {name=p53 lab=G1v8}
C {devices/ammeter.sym} 2430 -220 0 0 {name=Vd8 current=0.001321}
C {sky130_fd_pr/nfet_20v0.sym} 2170 -140 0 0 {name=M7
L=2.95
W=29.41
mult=1
model=nfet_20v0
spiceprefix=X
}
C {sky130_fd_pr/nfet_20v0_zvt.sym} 2410 -140 0 0 {name=M8
L=5
W=30
mult=1
model=nfet_20v0_zvt
spiceprefix=X
}
C {devices/launcher.sym} 445 -815 0 0 {name=h4
descr="Select arrow and
Ctrl-Left-Click to load/unload
simulation .raw file"
tclcommand="
xschem raw_read $netlist_dir/[file tail [file rootname [xschem get current_name]]].raw dc
"
}
C {devices/lab_pin.sym} 2670 -90 0 1 {name=p54 lab=S}
C {devices/lab_pin.sym} 2690 -140 0 1 {name=p55 lab=B}
C {devices/ammeter.sym} 2670 -220 0 0 {name=Vd9 current=5.4633e-04}
C {devices/lab_pin.sym} 2610 -140 0 0 {name=p56 lab=G1v8}
C {sky130_fd_pr/nfet_01v8_lvt_nf.sym} 2650 -140 0 0 {name=M9
L=0.15
W=0.5
mult=1
nf=2
model=nfet_01v8_lvt
spiceprefix=X}
C {sky130_fd_pr/corner.sym} 70 -240 0 0 {name=CORNER only_toplevel=true corner=tt}
C {devices/ngspice_probe.sym} 780 -600 0 0 {name=r1}
C {devices/ngspice_probe.sym} 1100 -570 0 1 {name=r1}
C {devices/ngspice_probe.sym} 640 -140 0 1 {name=r1}
C {devices/launcher.sym} 100 -470 0 0 {name=h1
descr="Annotate OP"
tclcommand="set show_hidden_texts 1; xschem annotate_op"
}