xschem/xschem_library/ngspice/delta_sigma.sch

227 lines
55 KiB
Plaintext
Raw Normal View History

v {xschem version=3.4.6 file_version=1.2
*
* This file is part of XSCHEM,
* a schematic capture and Spice/Vhdl/Verilog netlisting tool for circuit
* simulation.
* Copyright (C) 1998-2024 Stefan Frederik Schippers
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
}
2022-02-16 02:29:55 +01:00
G {}
K {}
V {}
S {}
E {}
B 2 900 -620 1700 -330 {flags=graph
y1=-0.214318
y2=1.44454
2022-02-16 02:29:55 +01:00
ypos1=0
ypos2=2
divy=5
subdivy=1
unity=1
x1=2e-12
x2=9e-06
2022-02-16 02:29:55 +01:00
divx=5
subdivx=1
node="SIG_IN
VREF
VCC"
color="12 9 4"
2022-02-16 02:29:55 +01:00
dataset=0
unitx=u
}
B 2 900 -330 1700 -130 {flags=graph
y1=0
y2=1.2
ypos1=0.0499032
ypos2=0.633885
divy=5
subdivy=1
unity=1
x1=2e-12
x2=9e-06
2022-02-16 02:29:55 +01:00
divx=5
subdivx=1
node="CODE;CODE[5],CODE[4],CODE[3],CODE[2],CODE[1],CODE[0]
CK
RST
x1.COMP"
color="7 8 10 4"
2022-02-16 02:29:55 +01:00
dataset=0
unitx=u
digital=1
}
B 2 900 -970 1700 -630 {flags=graph
y1=14.1924
y2=54.9924
2022-02-16 02:29:55 +01:00
ypos1=0
ypos2=2
2022-02-16 02:29:55 +01:00
unity=1
x1=2e-12
x2=9e-06
2022-02-16 02:29:55 +01:00
divx=5
subdivx=1
node="\\"0x12; 18\\"
\\"0x2E; 46\\"
\\"0x33; 51\\"
\\"sig_in 1.2 / 63 *\\""
color="14 14 14 7"
2022-02-16 02:29:55 +01:00
dataset=0
unitx=u
divy=10
subdivy=1}
2022-02-16 02:48:39 +01:00
B 2 620 -100 757 -40 {flags=image
alpha=0.6
image_data=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
2022-02-16 12:51:58 +01:00
P 8 7 620 -700 820 -700 820 -710 860 -700 820 -690 820 -700 620 -700 {}
2022-02-16 02:29:55 +01:00
T {Value of this signal
is equal to adc conversion
CODE[5:0]} 602.5 -792.5 0 0 0.4 0.4 {layer=8}
2023-11-12 13:08:51 +01:00
N 510 -220 540 -220 {
lab=SIG_IN}
N 510 -200 540 -200 {
lab=VREF}
N 510 -180 540 -180 {
lab=CK}
N 510 -160 540 -160 {
lab=RST}
N 270 -720 270 -690 {
lab=VREF}
N 520 -720 520 -690 {
lab=RST}
N 390 -720 390 -690 {
lab=VCC}
N 270 -570 270 -540 {
lab=SIG_IN}
N 520 -570 520 -540 {
lab=CK}
N 390 -570 390 -540 {
lab=VSS}
2022-02-16 02:29:55 +01:00
C {title.sym} 160 -30 0 0 {name=l1 author="Stefan Schippers"}
2023-11-12 13:08:51 +01:00
C {lab_pin.sym} 270 -720 0 0 {name=p33 lab=VREF}
C {vsource.sym} 270 -660 0 0 {name=v2 value="'VCC/2'"}
C {lab_pin.sym} 270 -630 0 0 {name=p34 lab=0}
C {simulator_commands.sym} 10 -380 0 0 {name=INTERACTIVE
simulator=ngspice
spice_ignore=0
2022-02-16 02:29:55 +01:00
tclcommand="xschem edit_vi_prop"
xxplace=end
2022-02-16 02:48:39 +01:00
value="
** download the models from:
** https://ptm.asu.edu/modelcard/65nm_bulk.txt
.include models_65nm.txt
.model switch sw vt='VCC/2' vh=0.2 ron=1000 roff=1G
2022-02-16 02:29:55 +01:00
.param VCC=1.2
.option method=GEAR
.measure tran avg1 AVG v(x1.qn) from=1u to=3u
.measure tran avg2 AVG v(x1.qn) from=4u to=6u
.measure tran avg3 AVG v(x1.qn) from=7u to=9u
.control
2023-11-12 13:02:30 +01:00
tran 0.2n 9u uic
write delta_sigma.raw
set appendwrite
save all
op
2022-02-16 02:29:55 +01:00
write delta_sigma.raw
2023-10-24 00:07:36 +02:00
quit 0
2022-02-16 02:29:55 +01:00
.endc
"}
2023-11-12 13:08:51 +01:00
C {vsource.sym} 270 -510 0 1 {name=v3
2022-02-16 02:29:55 +01:00
value="pwl
+ 0.001u 0.34 3u 0.34
+ 3.001u 0.88 6u 0.88
+ 6.001u 0.97 9u 0.97"}
2023-11-12 13:08:51 +01:00
C {lab_pin.sym} 270 -480 0 0 {name=p1 lab=0}
2022-02-16 02:48:39 +01:00
C {lab_pin.sym} 270 -570 0 0 {name=p2 lab=SIG_IN}
2023-11-12 13:08:51 +01:00
C {vsource.sym} 520 -510 0 0 {name=v1
value="pulse 0 'VCC' 100n 100p 100p 9.9n 20n"
2022-02-16 02:29:55 +01:00
xvalue="sin 0.2 1.8 1u 0"
}
2023-11-12 13:08:51 +01:00
C {lab_pin.sym} 520 -480 0 0 {name=p6 lab=0}
C {lab_pin.sym} 520 -570 0 0 {name=p7 lab=CK}
C {vsource.sym} 390 -660 0 0 {name=v5 value='VCC'}
2023-11-12 13:08:51 +01:00
C {lab_pin.sym} 390 -630 0 0 {name=p17 lab=0}
2022-02-16 02:48:39 +01:00
C {lab_pin.sym} 390 -570 0 0 {name=p18 lab=VSS}
2023-11-12 13:08:51 +01:00
C {vsource.sym} 390 -510 0 0 {name=v6 value=0}
C {lab_pin.sym} 390 -480 0 0 {name=p19 lab=0}
C {lab_pin.sym} 520 -720 0 0 {name=p55 lab=RST}
C {vsource.sym} 520 -660 0 0 {name=v7 value="pwl 0 'VCC'
+ 1u 'VCC' 1.001u 0 3u 0 3.001u 'VCC'
+ 4u 'VCC' 4.001u 0 6u 0 6.001u 'VCC'
+ 7u 'VCC' 7.001u 0 9u 0 9.001u 'VCC'"
2022-02-16 02:29:55 +01:00
}
2023-11-12 13:08:51 +01:00
C {lab_pin.sym} 520 -630 0 0 {name=p56 lab=0}
C {vdd.sym} 390 -720 0 0 {name=l2 lab=VCC}
2022-02-16 02:29:55 +01:00
C {adc.sym} 620 -190 0 0 {name=x1}
C {lab_pin.sym} 700 -220 0 1 {name=p38 lab=CODE[5:0]}
2023-11-12 13:08:51 +01:00
C {lab_pin.sym} 510 -220 0 0 {name=p39 lab=SIG_IN}
C {lab_pin.sym} 510 -200 0 0 {name=p40 lab=VREF}
C {lab_pin.sym} 510 -180 0 0 {name=p41 lab=CK}
C {lab_pin.sym} 510 -160 0 0 {name=p42 lab=RST}
C {spice_probe.sym} 270 -720 0 0 {name=p3 attrs=""}
C {spice_probe.sym} 390 -720 0 0 {name=p4 attrs=""}
2022-02-16 02:48:39 +01:00
C {spice_probe.sym} 270 -570 0 0 {name=p5 attrs=""}
C {spice_probe.sym} 520 -570 0 0 {name=p8 attrs=""}
2023-11-12 13:08:51 +01:00
C {spice_probe.sym} 520 -720 0 0 {name=p9 attrs=""}
2022-02-16 02:29:55 +01:00
C {spice_probe.sym} 700 -220 0 0 {name=p10 attrs=""}
C {launcher.sym} 1270 -90 0 0 {name=h5
descr="Select arrow and
Ctrl-Left-Click to load/unload waveforms"
tclcommand="
xschem raw_read $netlist_dir/[file tail [file rootname [xschem get current_name]]].raw tran
2022-02-16 02:29:55 +01:00
"
}
C {launcher.sym} 650 -870 0 0 {name=h1
2022-02-16 02:29:55 +01:00
descr="Netlist + Simulate
Ctrl-Left-Click"
tclcommand="xschem netlist; simulate"
2022-02-16 02:29:55 +01:00
}
2023-11-12 13:08:51 +01:00
C {simulator_commands.sym} 150 -380 0 0 {name=BATCH_MODE
simulator=ngspice
spice_ignore=1
tclcommand="xschem edit_vi_prop"
xxplace=end
value="
** download the models from:
** https://ptm.asu.edu/modelcard/65nm_bulk.txt
.include models_65nm.txt
.model switch sw vt='VCC/2' vh=0.2 ron=1000 roff=1G
.param VCC=1.2
.option method=GEAR
.measure tran avg1 AVG v(x1.qn) from=1u to=3u
.measure tran avg2 AVG v(x1.qn) from=4u to=6u
.measure tran avg3 AVG v(x1.qn) from=7u to=9u
* save all
.tran 0.2n 9u uic
"}
C {launcher.sym} 70 -210 0 0 {name=h2
descr="Swap interactive / batch mode"
tclcommand="proc simswap \{\} \{
set x [xschem getprop instance INTERACTIVE spice_ignore]
xschem setprop instance BATCH_MODE spice_ignore $x
set x [expr \{ !$x\}]
xschem setprop instance INTERACTIVE spice_ignore $x
\}
simswap
"
}