2024-12-05 02:54:08 +01:00
|
|
|
v {xschem version=3.4.6 file_version=1.2
|
2023-10-09 12:49:11 +02:00
|
|
|
*
|
|
|
|
|
* This file is part of XSCHEM,
|
|
|
|
|
* a schematic capture and Spice/Vhdl/Verilog netlisting tool for circuit
|
|
|
|
|
* simulation.
|
2024-11-12 20:23:18 +01:00
|
|
|
* Copyright (C) 1998-2024 Stefan Frederik Schippers
|
2023-10-09 12:49:11 +02:00
|
|
|
*
|
|
|
|
|
* 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-09-13 13:39:25 +02:00
|
|
|
}
|
2020-08-08 15:47:34 +02:00
|
|
|
G {}
|
2020-10-11 01:38:28 +02:00
|
|
|
K {}
|
2020-08-08 15:47:34 +02:00
|
|
|
V {}
|
|
|
|
|
S {}
|
|
|
|
|
E {}
|
2023-10-14 00:19:38 +02:00
|
|
|
L 3 250 -270 250 -120 {}
|
|
|
|
|
L 3 410 -270 410 -170 {}
|
|
|
|
|
L 3 570 -270 570 -120 {}
|
2020-08-08 15:47:34 +02:00
|
|
|
L 4 150 -100 250 -100 {}
|
|
|
|
|
L 4 250 -120 250 -100 {}
|
|
|
|
|
L 4 250 -120 570 -120 {}
|
|
|
|
|
L 4 570 -120 570 -100 {}
|
|
|
|
|
L 4 570 -100 690 -100 {}
|
|
|
|
|
L 4 150 -170 410 -170 {}
|
|
|
|
|
L 4 410 -170 410 -150 {}
|
|
|
|
|
L 4 410 -150 570 -150 {}
|
|
|
|
|
L 4 570 -170 570 -150 {}
|
|
|
|
|
L 4 570 -170 690 -170 {}
|
|
|
|
|
L 7 1090 -260 2520 -260 {}
|
2024-12-20 11:56:53 +01:00
|
|
|
B 2 270 -1020 680 -860 {flags=graph,unlocked
|
2021-12-25 14:43:26 +01:00
|
|
|
y1 = 0
|
2024-12-20 17:25:03 +01:00
|
|
|
y2 = 0.9
|
2021-12-22 12:22:11 +01:00
|
|
|
divy = 5
|
2024-12-20 17:25:03 +01:00
|
|
|
x1=1.9099218e-07
|
|
|
|
|
x2=3.4920522e-07
|
2021-12-25 14:43:26 +01:00
|
|
|
divx=5
|
|
|
|
|
subdivx=4
|
|
|
|
|
unitx=n
|
2023-10-13 15:51:51 +02:00
|
|
|
node="cal%0
|
2024-12-20 11:56:53 +01:00
|
|
|
saout"
|
|
|
|
|
color="8 6"
|
2023-10-13 15:51:51 +02:00
|
|
|
|
|
|
|
|
linewidth_mult=1.0
|
|
|
|
|
hilight_wave=-1
|
2025-01-08 13:27:07 +01:00
|
|
|
dataset=188
|
2024-12-20 11:56:53 +01:00
|
|
|
rawfile=$netlist_dir/autozero_comp.raw
|
|
|
|
|
sim_type=tran
|
2025-01-08 13:27:07 +01:00
|
|
|
rainbow=0
|
|
|
|
|
hcursor1_y=0.13350312
|
|
|
|
|
hcursor2_y=0.58853305}
|
2024-12-20 11:56:53 +01:00
|
|
|
B 2 270 -1160 680 -1030 {flags=graph,unlocked
|
2022-02-12 04:55:02 +01:00
|
|
|
y1 = 0.647319
|
|
|
|
|
y2 = 0.652563
|
2023-10-14 00:19:38 +02:00
|
|
|
|
2024-12-20 17:25:03 +01:00
|
|
|
x1=1.9099218e-07
|
|
|
|
|
x2=3.4920522e-07
|
2021-12-25 14:43:26 +01:00
|
|
|
unitx=n
|
2021-12-22 18:25:15 +01:00
|
|
|
divx=5
|
2023-10-14 00:19:38 +02:00
|
|
|
subdivx=2
|
2023-10-16 09:53:03 +02:00
|
|
|
node="plus%0
|
|
|
|
|
minus%0"
|
2022-02-12 04:55:02 +01:00
|
|
|
color="4 5"
|
2023-10-14 23:41:19 +02:00
|
|
|
dataset=-1
|
2023-10-14 00:19:38 +02:00
|
|
|
linewidth_mult=1.0
|
|
|
|
|
divy=3
|
2024-12-20 11:56:53 +01:00
|
|
|
subdivy=1
|
|
|
|
|
rawfile=$netlist_dir/autozero_comp.raw
|
|
|
|
|
sim_type=tran}
|
|
|
|
|
B 2 270 -1320 680 -1160 {flags=graph,unlocked
|
|
|
|
|
y1 = 0.647319
|
|
|
|
|
y2 = 0.652563
|
|
|
|
|
|
2024-12-20 17:25:03 +01:00
|
|
|
x1=1.9099218e-07
|
|
|
|
|
x2=3.4920522e-07
|
2022-09-20 16:49:42 +02:00
|
|
|
unitx=n
|
|
|
|
|
divx=5
|
2024-12-20 11:56:53 +01:00
|
|
|
subdivx=2
|
|
|
|
|
node="plus%0
|
|
|
|
|
minus%0"
|
|
|
|
|
color="4 5"
|
|
|
|
|
dataset=-1
|
|
|
|
|
linewidth_mult=1.0
|
|
|
|
|
divy=3
|
|
|
|
|
subdivy=1
|
|
|
|
|
rawfile=$netlist_dir/autozero_comp.raw
|
|
|
|
|
sim_type=tran}
|
|
|
|
|
B 2 270 -1450 680 -1330 {flags=graph,unlocked
|
|
|
|
|
y1 = 0.647319
|
|
|
|
|
y2 = 0.652563
|
|
|
|
|
|
2024-12-20 17:25:03 +01:00
|
|
|
x1=1.9099218e-07
|
|
|
|
|
x2=3.4920522e-07
|
2024-12-20 11:56:53 +01:00
|
|
|
unitx=n
|
|
|
|
|
divx=5
|
|
|
|
|
subdivx=2
|
|
|
|
|
node="plus%0
|
|
|
|
|
minus%0"
|
|
|
|
|
color="4 5"
|
2023-10-14 23:41:19 +02:00
|
|
|
dataset=-1
|
2023-10-13 15:51:51 +02:00
|
|
|
linewidth_mult=1.0
|
2024-12-20 11:56:53 +01:00
|
|
|
divy=3
|
|
|
|
|
subdivy=1
|
|
|
|
|
rawfile=$netlist_dir/autozero_comp.raw
|
|
|
|
|
sim_type=tran}
|
|
|
|
|
B 2 690 -1020 870 -860 {flags=graph,unlocked
|
|
|
|
|
y1 = 0
|
|
|
|
|
y2 = 0.9
|
2023-10-13 15:51:51 +02:00
|
|
|
divy = 5
|
2024-12-20 11:56:53 +01:00
|
|
|
x1=0
|
2024-12-20 17:25:03 +01:00
|
|
|
x2=148
|
2023-10-13 15:51:51 +02:00
|
|
|
divx=5
|
|
|
|
|
subdivx=4
|
2024-12-20 11:56:53 +01:00
|
|
|
unitx=1
|
|
|
|
|
|
2023-10-13 15:51:51 +02:00
|
|
|
|
|
|
|
|
|
2024-12-20 17:25:03 +01:00
|
|
|
linewidth_mult=1.5
|
2024-12-20 11:56:53 +01:00
|
|
|
hilight_wave=-1
|
2023-10-14 23:41:19 +02:00
|
|
|
dataset=-1
|
2024-12-20 11:56:53 +01:00
|
|
|
rawfile=distrib
|
|
|
|
|
sim_type=distrib
|
2024-12-20 12:15:46 +01:00
|
|
|
color="4 7 8"
|
2024-12-20 11:56:53 +01:00
|
|
|
node="saout
|
2024-12-20 17:25:03 +01:00
|
|
|
saout
|
2024-12-20 11:56:53 +01:00
|
|
|
0.45"
|
2024-12-20 17:25:03 +01:00
|
|
|
sweep="freq0 freq1 freq0"
|
2024-12-20 11:56:53 +01:00
|
|
|
mode=HistoH
|
2024-12-20 17:25:03 +01:00
|
|
|
xlabmag=2.0}
|
2025-01-08 13:27:07 +01:00
|
|
|
B 2 270 -1610 680 -1450 {flags=graph,unlocked
|
|
|
|
|
y1 = 0
|
|
|
|
|
y2 = 0.9
|
|
|
|
|
divy = 5
|
|
|
|
|
x1=1.9099218e-07
|
|
|
|
|
x2=3.4920522e-07
|
|
|
|
|
divx=5
|
|
|
|
|
subdivx=4
|
|
|
|
|
unitx=n
|
|
|
|
|
node="zero0
|
|
|
|
|
zero1
|
|
|
|
|
zero2"
|
|
|
|
|
color="12 4 7"
|
|
|
|
|
|
|
|
|
|
linewidth_mult=0.1
|
|
|
|
|
hilight_wave=-1
|
|
|
|
|
|
|
|
|
|
rawfile=$netlist_dir/autozero_comp.raw
|
|
|
|
|
sim_type=tran
|
|
|
|
|
rainbow=0
|
|
|
|
|
dataset=235}
|
2020-08-08 15:47:34 +02:00
|
|
|
T {CAL} 140 -180 0 1 0.4 0.4 {}
|
|
|
|
|
T {EN} 140 -130 0 1 0.4 0.4 {}
|
|
|
|
|
T {CALIBRATION
|
2023-10-14 00:19:38 +02:00
|
|
|
30ns} 400 -260 0 1 0.4 0.4 {}
|
2020-08-08 15:47:34 +02:00
|
|
|
T {SENSING
|
2023-10-14 00:19:38 +02:00
|
|
|
30ns} 530 -260 0 1 0.4 0.4 {}
|
|
|
|
|
T {OFF} 660 -260 0 1 0.4 0.4 {}
|
|
|
|
|
T {OFF} 210 -260 0 1 0.4 0.4 {}
|
2021-12-09 23:39:07 +01:00
|
|
|
T {NGSPICE MISMATCH SIMULATION} 1210 -310 0 0 0.8 0.8 {}
|
2020-08-08 15:47:34 +02:00
|
|
|
T {Offset-compensated comparator. Detects +/- 2mv differential signal on PLUS, MINUS.
|
|
|
|
|
Output on SAOUT
|
|
|
|
|
Gaussian Threshold variation (via delvto parameter) is added to all MOS transistors.} 1110 -240 0 0 0.6 0.6 {}
|
|
|
|
|
T {.param ABSVAR=0.05
|
|
|
|
|
delvto='agauss(0,ABSVAR,3)'} 1390 -120 0 0 0.6 0.6 {layer=8}
|
2024-07-14 08:43:41 +02:00
|
|
|
T {tcleval(Dataset=[xschem getprop rect 2 0 dataset])} 340 -850 0 0 0.7 0.7 {floater=xxx}
|
2020-08-08 15:47:34 +02:00
|
|
|
N 120 -470 120 -450 {lab=TEMPERAT}
|
2023-10-13 15:51:51 +02:00
|
|
|
N 360 -530 390 -530 {lab=VSS}
|
|
|
|
|
N 360 -500 360 -480 {lab=VSS}
|
|
|
|
|
N 360 -580 360 -560 {lab=VSSI}
|
2023-10-14 00:19:38 +02:00
|
|
|
N 1200 -1160 1230 -1160 {lab=VSS}
|
|
|
|
|
N 1200 -1320 1230 -1320 {lab=VCC}
|
|
|
|
|
N 1170 -1390 1200 -1390 {lab=VCC}
|
|
|
|
|
N 1200 -1390 1200 -1350 {lab=VCC}
|
|
|
|
|
N 1170 -1030 1200 -1030 {lab=VSSI}
|
|
|
|
|
N 1200 -1070 1200 -1030 {lab=VSSI}
|
|
|
|
|
N 1060 -1160 1160 -1160 {lab=ZERO0}
|
|
|
|
|
N 1060 -1250 1060 -1160 {lab=ZERO0}
|
|
|
|
|
N 980 -1250 1060 -1250 {lab=ZERO0}
|
|
|
|
|
N 870 -1250 900 -1250 {lab=#net1}
|
|
|
|
|
N 870 -1430 870 -1250 {lab=#net1}
|
|
|
|
|
N 870 -1430 1300 -1430 {lab=#net1}
|
|
|
|
|
N 1200 -1250 1300 -1250 {lab=#net1}
|
|
|
|
|
N 1690 -1160 1720 -1160 {lab=VSS}
|
|
|
|
|
N 1690 -1320 1720 -1320 {lab=VCC}
|
|
|
|
|
N 1660 -1390 1690 -1390 {lab=VCC}
|
|
|
|
|
N 1690 -1390 1690 -1350 {lab=VCC}
|
|
|
|
|
N 1660 -1030 1690 -1030 {lab=VSSI}
|
|
|
|
|
N 1690 -1070 1690 -1030 {lab=VSSI}
|
|
|
|
|
N 1550 -1160 1650 -1160 {lab=ZERO1}
|
|
|
|
|
N 1550 -1250 1550 -1160 {lab=ZERO1}
|
|
|
|
|
N 1470 -1250 1550 -1250 {lab=ZERO1}
|
|
|
|
|
N 1360 -1250 1390 -1250 {lab=#net2}
|
|
|
|
|
N 1360 -1430 1360 -1250 {lab=#net2}
|
|
|
|
|
N 1360 -1430 1790 -1430 {lab=#net2}
|
|
|
|
|
N 1690 -1250 1790 -1250 {lab=#net2}
|
|
|
|
|
N 1300 -1430 1300 -1250 {lab=#net1}
|
|
|
|
|
N 1200 -1290 1200 -1250 {lab=#net1}
|
|
|
|
|
N 1060 -1320 1060 -1250 {lab=ZERO0}
|
|
|
|
|
N 1690 -1290 1690 -1250 {lab=#net2}
|
|
|
|
|
N 1550 -1320 1550 -1250 {lab=ZERO1}
|
|
|
|
|
N 1790 -1430 1790 -1250 {lab=#net2}
|
2023-10-13 15:51:51 +02:00
|
|
|
N 970 -640 1000 -640 {lab=VSS}
|
|
|
|
|
N 1140 -640 1170 -640 {lab=VSS}
|
2023-10-14 00:19:38 +02:00
|
|
|
N 1170 -870 1200 -870 {lab=VCC}
|
|
|
|
|
N 940 -870 970 -870 {lab=VCC}
|
|
|
|
|
N 1030 -870 1130 -870 {lab=GN}
|
|
|
|
|
N 1030 -870 1030 -820 {lab=GN}
|
|
|
|
|
N 970 -820 1030 -820 {lab=GN}
|
|
|
|
|
N 970 -740 970 -670 {lab=#net3}
|
2023-10-13 15:51:51 +02:00
|
|
|
N 1170 -710 1170 -670 {lab=OUTDIFF}
|
2023-10-14 00:19:38 +02:00
|
|
|
N 970 -930 970 -900 {lab=VCC}
|
|
|
|
|
N 1070 -930 1170 -930 {lab=VCC}
|
|
|
|
|
N 1170 -930 1170 -900 {lab=VCC}
|
2023-10-13 15:51:51 +02:00
|
|
|
N 1170 -610 1170 -590 {lab=SN}
|
|
|
|
|
N 1070 -590 1170 -590 {lab=SN}
|
|
|
|
|
N 970 -610 970 -590 {lab=SN}
|
|
|
|
|
N 1070 -510 1100 -510 {lab=VSS}
|
|
|
|
|
N 1070 -590 1070 -540 {lab=SN}
|
2023-10-14 00:19:38 +02:00
|
|
|
N 1070 -950 1070 -930 {lab=VCC}
|
2023-10-13 15:51:51 +02:00
|
|
|
N 1040 -380 1070 -380 {lab=VSSI}
|
|
|
|
|
N 1070 -420 1070 -380 {lab=VSSI}
|
|
|
|
|
N 1550 -510 1580 -510 {lab=VSS}
|
2023-10-14 00:19:38 +02:00
|
|
|
N 1550 -870 1580 -870 {lab=VCC}
|
|
|
|
|
N 1520 -940 1550 -940 {lab=VCC}
|
|
|
|
|
N 1550 -940 1550 -900 {lab=VCC}
|
2023-10-13 15:51:51 +02:00
|
|
|
N 1520 -380 1550 -380 {lab=VSSI}
|
|
|
|
|
N 1550 -420 1550 -380 {lab=VSSI}
|
|
|
|
|
N 1550 -710 1550 -540 {lab=SAOUTF}
|
|
|
|
|
N 1300 -710 1440 -710 {lab=OUTDIFF}
|
2023-10-14 00:19:38 +02:00
|
|
|
N 970 -930 1070 -930 {lab=VCC}
|
2023-10-13 15:51:51 +02:00
|
|
|
N 970 -590 1070 -590 {lab=SN}
|
2023-10-14 00:19:38 +02:00
|
|
|
N 1200 -1250 1200 -1190 {lab=#net1}
|
|
|
|
|
N 1690 -1250 1690 -1190 {lab=#net2}
|
2023-10-13 15:51:51 +02:00
|
|
|
N 1440 -710 1440 -510 {lab=OUTDIFF}
|
|
|
|
|
N 1300 -840 1300 -710 {lab=OUTDIFF}
|
|
|
|
|
N 1790 -840 1790 -710 {lab=SAOUTF}
|
|
|
|
|
N 1790 -710 1930 -710 {lab=SAOUTF}
|
|
|
|
|
N 1170 -710 1300 -710 {lab=OUTDIFF}
|
2023-10-14 00:19:38 +02:00
|
|
|
N 1170 -740 1170 -710 {lab=OUTDIFF}
|
|
|
|
|
N 1440 -870 1440 -710 {lab=OUTDIFF}
|
|
|
|
|
N 1550 -1320 1650 -1320 {lab=ZERO1}
|
|
|
|
|
N 1060 -1320 1160 -1320 {lab=ZERO0}
|
|
|
|
|
N 1440 -870 1510 -870 {lab=OUTDIFF}
|
2023-10-13 15:51:51 +02:00
|
|
|
N 1440 -510 1510 -510 {lab=OUTDIFF}
|
|
|
|
|
N 2040 -510 2070 -510 {lab=VSS}
|
2023-10-14 00:19:38 +02:00
|
|
|
N 2040 -870 2070 -870 {lab=VCC}
|
|
|
|
|
N 2010 -940 2040 -940 {lab=VCC}
|
|
|
|
|
N 2040 -940 2040 -900 {lab=VCC}
|
2023-10-13 15:51:51 +02:00
|
|
|
N 2010 -380 2040 -380 {lab=VSSI}
|
|
|
|
|
N 2040 -420 2040 -380 {lab=VSSI}
|
|
|
|
|
N 2040 -710 2040 -540 {lab=SAOUT}
|
|
|
|
|
N 1930 -710 1930 -510 {lab=SAOUTF}
|
2023-10-14 00:19:38 +02:00
|
|
|
N 2180 -1160 2210 -1160 {lab=VSS}
|
|
|
|
|
N 2180 -1320 2210 -1320 {lab=VCC}
|
|
|
|
|
N 2150 -1390 2180 -1390 {lab=VCC}
|
|
|
|
|
N 2180 -1390 2180 -1350 {lab=VCC}
|
|
|
|
|
N 2150 -1030 2180 -1030 {lab=VSSI}
|
|
|
|
|
N 2180 -1070 2180 -1030 {lab=VSSI}
|
|
|
|
|
N 2040 -1160 2140 -1160 {lab=ZERO2}
|
|
|
|
|
N 2040 -1250 2040 -1160 {lab=ZERO2}
|
|
|
|
|
N 1960 -1250 2040 -1250 {lab=ZERO2}
|
|
|
|
|
N 1850 -1250 1880 -1250 {lab=#net4}
|
|
|
|
|
N 1850 -1430 1850 -1250 {lab=#net4}
|
|
|
|
|
N 1850 -1430 2370 -1430 {lab=#net4}
|
|
|
|
|
N 2180 -1250 2370 -1250 {lab=#net4}
|
|
|
|
|
N 2180 -1290 2180 -1250 {lab=#net4}
|
|
|
|
|
N 2040 -1320 2040 -1250 {lab=ZERO2}
|
|
|
|
|
N 2370 -1430 2370 -1250 {lab=#net4}
|
|
|
|
|
N 2180 -1250 2180 -1190 {lab=#net4}
|
2023-10-13 15:51:51 +02:00
|
|
|
N 2370 -840 2370 -710 {lab=SAOUT}
|
2023-10-14 00:19:38 +02:00
|
|
|
N 2040 -1320 2140 -1320 {lab=ZERO2}
|
|
|
|
|
N 1930 -870 2000 -870 {lab=SAOUTF}
|
2023-10-13 15:51:51 +02:00
|
|
|
N 1930 -510 2000 -510 {lab=SAOUTF}
|
|
|
|
|
N 1550 -710 1790 -710 {lab=SAOUTF}
|
2023-10-14 00:19:38 +02:00
|
|
|
N 2260 -710 2370 -710 {lab=SAOUT}
|
|
|
|
|
N 1930 -870 1930 -710 {lab=SAOUTF}
|
|
|
|
|
N 2040 -840 2040 -710 {lab=SAOUT}
|
|
|
|
|
N 1550 -840 1550 -710 {lab=SAOUTF}
|
2023-10-13 15:51:51 +02:00
|
|
|
N 2260 -810 2290 -810 {lab=VCC}
|
|
|
|
|
N 2230 -880 2260 -880 {lab=VCC}
|
|
|
|
|
N 2260 -880 2260 -840 {lab=VCC}
|
|
|
|
|
N 2260 -780 2260 -710 {lab=SAOUT}
|
|
|
|
|
N 720 -590 750 -590 {lab=VCC}
|
|
|
|
|
N 550 -650 550 -620 {lab=SP}
|
2023-10-14 00:19:38 +02:00
|
|
|
N 660 -650 750 -650 {lab=SP}
|
2023-10-13 15:51:51 +02:00
|
|
|
N 750 -650 750 -620 {lab=SP}
|
2023-10-14 00:19:38 +02:00
|
|
|
N 550 -650 660 -650 {lab=SP}
|
2023-10-13 15:51:51 +02:00
|
|
|
N 550 -590 580 -590 {lab=VCC}
|
2023-10-14 00:19:38 +02:00
|
|
|
N 520 -410 550 -410 {lab=VSS}
|
|
|
|
|
N 750 -410 780 -410 {lab=VSS}
|
|
|
|
|
N 590 -410 710 -410 {lab=GP}
|
|
|
|
|
N 590 -460 590 -410 {lab=GP}
|
|
|
|
|
N 550 -460 590 -460 {lab=GP}
|
|
|
|
|
N 550 -490 550 -460 {lab=GP}
|
|
|
|
|
N 750 -470 750 -440 {lab=OUTDIFF}
|
|
|
|
|
N 750 -380 750 -360 {lab=VSSI}
|
|
|
|
|
N 650 -360 750 -360 {lab=VSSI}
|
|
|
|
|
N 550 -380 550 -360 {lab=VSSI}
|
|
|
|
|
N 620 -320 650 -320 {lab=VSSI}
|
|
|
|
|
N 650 -360 650 -320 {lab=VSSI}
|
2023-10-13 15:51:51 +02:00
|
|
|
N 660 -780 690 -780 {lab=VCC}
|
|
|
|
|
N 660 -680 660 -650 {lab=SP}
|
|
|
|
|
N 660 -830 660 -810 {lab=VCC}
|
2023-10-14 00:19:38 +02:00
|
|
|
N 750 -470 810 -470 {lab=OUTDIFF}
|
|
|
|
|
N 660 -750 660 -740 {lab=#net5}
|
|
|
|
|
N 550 -460 550 -440 {
|
2023-10-13 15:51:51 +02:00
|
|
|
lab=GP}
|
|
|
|
|
N 490 -590 510 -590 {
|
|
|
|
|
lab=MINUS}
|
|
|
|
|
N 790 -590 810 -590 {
|
|
|
|
|
lab=PLUS}
|
|
|
|
|
N 910 -640 930 -640 {
|
|
|
|
|
lab=MINUS}
|
|
|
|
|
N 1210 -640 1230 -640 {
|
|
|
|
|
lab=PLUS}
|
2023-10-14 00:19:38 +02:00
|
|
|
N 1300 -1250 1300 -900 {lab=#net1}
|
|
|
|
|
N 1790 -1250 1790 -900 {lab=#net2}
|
|
|
|
|
N 2370 -1250 2370 -900 {lab=#net4}
|
2023-10-13 15:51:51 +02:00
|
|
|
N 570 -780 620 -780 {
|
|
|
|
|
lab=GP}
|
|
|
|
|
N 990 -510 1030 -510 {
|
|
|
|
|
lab=GN}
|
2023-10-14 00:19:38 +02:00
|
|
|
N 2040 -710 2260 -710 {lab=SAOUT}
|
|
|
|
|
N 550 -360 650 -360 {lab=VSSI}
|
|
|
|
|
N 750 -490 750 -470 {lab=OUTDIFF}
|
|
|
|
|
N 970 -820 970 -800 {lab=GN}
|
|
|
|
|
N 1170 -840 1170 -800 {lab=#net6}
|
|
|
|
|
N 550 -560 550 -550 {lab=#net7}
|
|
|
|
|
N 750 -560 750 -550 {lab=#net8}
|
|
|
|
|
N 1010 -870 1030 -870 {
|
|
|
|
|
lab=GN}
|
|
|
|
|
N 970 -840 970 -820 {
|
|
|
|
|
lab=GN}
|
2020-08-08 15:47:34 +02:00
|
|
|
C {title.sym} 160 -30 0 0 {name=l1 author="Stefan Schippers"}
|
|
|
|
|
C {ipin.sym} 110 -850 0 0 { name=p92 lab=CAL }
|
|
|
|
|
C {ipin.sym} 110 -910 0 0 { name=p93 lab=PLUS }
|
|
|
|
|
C {ipin.sym} 110 -950 0 0 { name=p94 lab=MINUS }
|
|
|
|
|
C {ipin.sym} 110 -990 0 0 { name=p95 lab=EN }
|
|
|
|
|
C {ipin.sym} 110 -780 0 0 { name=p96 lab=VSS }
|
|
|
|
|
C {ipin.sym} 110 -810 0 0 { name=p97 lab=VCC }
|
|
|
|
|
C {vsource_arith.sym} 120 -420 0 0 {name=E5 VOL=temper MAX=200 MIN=-200}
|
|
|
|
|
C {lab_pin.sym} 120 -470 0 1 {name=p113 lab=TEMPERAT}
|
|
|
|
|
C {lab_pin.sym} 120 -390 0 0 {name=p114 lab=VSS}
|
2024-12-20 11:56:53 +01:00
|
|
|
C {opin.sym} 180 -880 0 0 { name=p116 lab=SAOUT }
|
2020-08-08 15:47:34 +02:00
|
|
|
C {lab_pin.sym} 200 -570 0 1 {name=p126 lab=CALB}
|
|
|
|
|
C {lab_pin.sym} 120 -570 0 0 {name=l50 lab=CAL}
|
|
|
|
|
C {code.sym} 840 -190 0 0 {name=STIMULI
|
|
|
|
|
only_toplevel=true
|
2022-10-12 01:16:23 +02:00
|
|
|
xxplace=end
|
2020-08-08 15:47:34 +02:00
|
|
|
value="* .option SCALE=1e-6
|
2023-10-13 15:51:51 +02:00
|
|
|
.option method=gear
|
2020-08-08 15:47:34 +02:00
|
|
|
.param VCC=0.9
|
|
|
|
|
.param VDL='VCC/2+0.2'
|
2021-12-09 23:39:07 +01:00
|
|
|
.param ABSVAR=0.05
|
2020-08-08 15:47:34 +02:00
|
|
|
.temp 25
|
2023-10-13 15:51:51 +02:00
|
|
|
.param RNDVAL = 'agauss(0, 10, 1)'
|
2020-08-08 15:47:34 +02:00
|
|
|
** to generate following file:
|
|
|
|
|
** copy .../share/doc/xschem/ngspice/stimuli.autozero_comp to simulation directory
|
|
|
|
|
** then do 'Simulation->Utile Stimuli Editor (GUI)' and press 'Translate'
|
|
|
|
|
.include \\"stimuli_autozero_comp.cir\\"
|
|
|
|
|
|
|
|
|
|
** download models from here:
|
|
|
|
|
** http://ptm.asu.edu/modelcard/2006/130nm_bulk.pm
|
|
|
|
|
** and save to 'models_autozero_comp.txt' in simulation directory
|
|
|
|
|
.include \\"models_autozero_comp.txt\\"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* .tran 0.1n 900n uic
|
|
|
|
|
|
|
|
|
|
.control
|
2024-12-20 12:15:46 +01:00
|
|
|
* setseed 17
|
|
|
|
|
* reset
|
|
|
|
|
* echo Seed=$rndseed
|
2020-08-08 15:47:34 +02:00
|
|
|
let run=1
|
2024-12-20 12:15:46 +01:00
|
|
|
dowhile run <= 300
|
2020-08-08 15:47:34 +02:00
|
|
|
if run > 1
|
|
|
|
|
set appendwrite
|
2023-10-13 15:51:51 +02:00
|
|
|
reset
|
2020-08-08 15:47:34 +02:00
|
|
|
end
|
2022-09-18 05:29:16 +02:00
|
|
|
* save saout cal i(vvcc) en plus minus saoutf outdiff
|
|
|
|
|
save all
|
2024-12-20 12:15:46 +01:00
|
|
|
tran 0.5n 900n uic
|
2020-08-08 15:47:34 +02:00
|
|
|
write autozero_comp.raw
|
|
|
|
|
let run = run + 1
|
|
|
|
|
end
|
2023-10-23 18:41:13 +02:00
|
|
|
quit 0
|
2020-08-08 15:47:34 +02:00
|
|
|
.endc
|
|
|
|
|
"}
|
|
|
|
|
C {inv-2.sym} 160 -570 0 0 {name=x14 m=1
|
|
|
|
|
+ wn=0.6u ln=0.2u
|
|
|
|
|
+ wp=1u lp=0.2u
|
|
|
|
|
+ VCCPIN=VCC VCCBPIN=VCC VSSPIN=VSS VSSBPIN=VSS}
|
|
|
|
|
C {inv-2.sym} 160 -700 0 0 {name=x5 m=1
|
|
|
|
|
+ wn=0.6u ln=0.2u
|
|
|
|
|
+ wp=1u lp=0.2u
|
|
|
|
|
+ VCCPIN=VCC VCCBPIN=VCC VSSPIN=VSS VSSBPIN=VSS}
|
|
|
|
|
C {lab_pin.sym} 120 -700 0 0 {name=p15 lab=CALB}
|
|
|
|
|
C {lab_pin.sym} 200 -700 0 1 {name=l4 lab=CALBB}
|
2023-10-13 15:51:51 +02:00
|
|
|
C {lab_pin.sym} 390 -530 0 1 {name=p283 lab=VSS}
|
|
|
|
|
C {lab_pin.sym} 320 -530 0 0 {name=l56 lab=EN}
|
|
|
|
|
C {lab_pin.sym} 360 -480 0 0 {name=p284 lab=VSS}
|
|
|
|
|
C {lab_pin.sym} 360 -580 0 0 {name=p199 lab=VSSI}
|
|
|
|
|
C {nmos4-v.sym} 340 -530 0 0 {name=M67 verilog_gate=nmos del=50,50,50 model=nmos w=5u l=0.13u extra="delvto='agauss(0,ABSVAR,3)'"}
|
|
|
|
|
C {parax_cap.sym} 360 -470 0 0 {name=c38 value=2p}
|
2023-10-14 00:19:38 +02:00
|
|
|
C {passgate.sym} 940 -1250 0 1 {name=x1 m=1
|
2020-08-08 15:47:34 +02:00
|
|
|
+ wn=0.4u ln=0.13u
|
|
|
|
|
+ wp=0.4u lp=0.13u
|
2021-12-09 23:39:07 +01:00
|
|
|
+ VCCBPIN=VCC VSSBPIN=VSS extra="delvto='agauss(0,ABSVAR,3)'"}
|
2023-10-14 00:19:38 +02:00
|
|
|
C {lab_pin.sym} 940 -1280 0 1 {name=l19 sig_type=std_logic lab=CALB}
|
|
|
|
|
C {lab_pin.sym} 940 -1220 0 1 {name=l44 sig_type=std_logic lab=CALBB}
|
|
|
|
|
C {nmos4-v.sym} 1180 -1160 0 0 {name=M3 verilog_gate=nmos del=50,50,50 model=nmos w=1.0u l=1.0u extra="delvto='agauss(0,ABSVAR,3)'"}
|
|
|
|
|
C {lab_pin.sym} 1230 -1160 0 1 {name=p179 lab=VSS}
|
|
|
|
|
C {pmos4-v.sym} 1180 -1320 0 0 {name=M4 verilog_gate=pmos del=50,50,50 model=pmos w=2.0u l=1.0u extra="delvto='agauss(0,ABSVAR,3)'"}
|
|
|
|
|
C {lab_pin.sym} 1230 -1320 0 1 {name=p180 lab=VCC}
|
|
|
|
|
C {lab_pin.sym} 1170 -1390 0 0 {name=p181 lab=VCC}
|
|
|
|
|
C {lab_pin.sym} 1170 -1030 0 0 {name=p182 lab=VSSI}
|
|
|
|
|
C {passgate.sym} 1430 -1250 0 1 {name=x2 m=1
|
2020-08-08 15:47:34 +02:00
|
|
|
+ wn=0.4u ln=0.13u
|
|
|
|
|
+ wp=0.4u lp=0.13u
|
2021-12-09 23:39:07 +01:00
|
|
|
+ VCCBPIN=VCC VSSBPIN=VSS extra="delvto='agauss(0,ABSVAR,3)'"}
|
2023-10-14 00:19:38 +02:00
|
|
|
C {lab_pin.sym} 1430 -1280 0 1 {name=l45 sig_type=std_logic lab=CALB}
|
|
|
|
|
C {lab_pin.sym} 1430 -1220 0 1 {name=l46 sig_type=std_logic lab=CALBB}
|
|
|
|
|
C {nmos4-v.sym} 1670 -1160 0 0 {name=M7 verilog_gate=nmos del=50,50,50 model=nmos w=1.3u l=1.0u extra="delvto='agauss(0,ABSVAR,3)'"}
|
|
|
|
|
C {lab_pin.sym} 1720 -1160 0 1 {name=p183 lab=VSS}
|
|
|
|
|
C {pmos4-v.sym} 1670 -1320 0 0 {name=M9 verilog_gate=pmos del=50,50,50 model=pmos w=2.6u l=1.0u extra="delvto='agauss(0,ABSVAR,3)'"}
|
|
|
|
|
C {lab_pin.sym} 1720 -1320 0 1 {name=p184 lab=VCC}
|
|
|
|
|
C {lab_pin.sym} 1660 -1390 0 0 {name=p185 lab=VCC}
|
|
|
|
|
C {lab_pin.sym} 1660 -1030 0 0 {name=p186 lab=VSSI}
|
|
|
|
|
C {lab_pin.sym} 1550 -1310 0 0 {name=l47 lab=ZERO1}
|
|
|
|
|
C {lab_pin.sym} 1060 -1310 0 0 {name=l48 lab=ZERO0}
|
2023-10-13 15:51:51 +02:00
|
|
|
C {nmos4-v.sym} 950 -640 0 0 {name=M20 verilog_gate=nmos del=50,50,50 model=nmos w=2u l=0.4u extra="delvto='agauss(0,ABSVAR,3)'"}
|
|
|
|
|
C {nmos4-v.sym} 1190 -640 0 1 {name=M8 verilog_gate=nmos del=50,50,50 model=nmos w=2u l=0.4u extra="delvto='agauss(0,ABSVAR,3)'"}
|
|
|
|
|
C {lab_pin.sym} 1000 -640 0 1 {name=p187 lab=VSS}
|
|
|
|
|
C {lab_pin.sym} 1140 -640 0 0 {name=p188 lab=VSS}
|
2023-10-14 00:19:38 +02:00
|
|
|
C {pmos4-v.sym} 1150 -870 0 0 {name=M30 verilog_gate=pmos del=50,50,50 model=pmos w=2u l=0.5u extra="delvto='agauss(0,ABSVAR,3)'"}
|
|
|
|
|
C {lab_pin.sym} 1200 -870 0 1 {name=p189 lab=VCC}
|
|
|
|
|
C {pmos4-v.sym} 990 -870 0 1 {name=M12 verilog_gate=pmos del=50,50,50 model=pmos w=2u l=0.5u extra="delvto='agauss(0,ABSVAR,3)'"}
|
|
|
|
|
C {lab_pin.sym} 940 -870 0 0 {name=p190 lab=VCC}
|
2023-10-13 15:51:51 +02:00
|
|
|
C {nmos4-v.sym} 1050 -510 0 0 {name=M32 verilog_gate=nmos del=50,50,50 model=nmos w=1u l=0.5u extra="delvto='agauss(0,ABSVAR,3)'"}
|
|
|
|
|
C {lab_pin.sym} 1100 -510 0 1 {name=p191 lab=VSS}
|
2023-10-14 00:19:38 +02:00
|
|
|
C {lab_pin.sym} 1070 -950 0 0 {name=p192 lab=VCC}
|
2023-10-13 15:51:51 +02:00
|
|
|
C {lab_pin.sym} 1040 -380 0 0 {name=p193 lab=VSSI}
|
|
|
|
|
C {nmos4-v.sym} 1530 -510 0 0 {name=M17 verilog_gate=nmos del=50,50,50 model=nmos w=1u l=0.5u extra="delvto='agauss(0,ABSVAR,3)'"}
|
|
|
|
|
C {lab_pin.sym} 1580 -510 0 1 {name=p194 lab=VSS}
|
2023-10-14 00:19:38 +02:00
|
|
|
C {pmos4-v.sym} 1530 -870 0 0 {name=M13 verilog_gate=pmos del=50,50,50 model=pmos w=2u l=0.5u extra="delvto='agauss(0,ABSVAR,3)'"}
|
|
|
|
|
C {lab_pin.sym} 1580 -870 0 1 {name=p195 lab=VCC}
|
|
|
|
|
C {lab_pin.sym} 1520 -940 0 0 {name=p196 lab=VCC}
|
2023-10-13 15:51:51 +02:00
|
|
|
C {lab_pin.sym} 1520 -380 0 0 {name=p197 lab=VSSI}
|
|
|
|
|
C {lab_pin.sym} 1790 -750 0 0 {name=l49 lab=SAOUTF}
|
|
|
|
|
C {parax_cap.sym} 1620 -700 0 0 {name=c3 value=4f}
|
|
|
|
|
C {lab_pin.sym} 1300 -750 0 0 {name=l51 lab=OUTDIFF}
|
|
|
|
|
C {lab_pin.sym} 1070 -570 0 0 {name=l52 lab=SN}
|
2023-10-14 00:19:38 +02:00
|
|
|
C {lab_pin.sym} 1030 -820 0 1 {name=l53 lab=GN}
|
|
|
|
|
C {parax_cap.sym} 1060 -860 0 0 {name=c5 value=4f}
|
2023-10-13 15:51:51 +02:00
|
|
|
C {parax_cap.sym} 990 -580 0 0 {name=c30 value=2f}
|
|
|
|
|
C {parax_cap.sym} 1260 -700 0 0 {name=c31 value=4f}
|
|
|
|
|
C {lab_pin.sym} 990 -510 0 0 {name=p198 lab=GN}
|
|
|
|
|
C {lab_pin.sym} 1230 -640 0 1 {name=l54 lab=PLUS}
|
|
|
|
|
C {lab_pin.sym} 910 -640 0 0 {name=l55 lab=MINUS}
|
|
|
|
|
C {ammeter.sym} 1070 -450 0 0 {name=vdiffn}
|
|
|
|
|
C {ammeter.sym} 1550 -450 0 0 {name=v3}
|
2023-10-14 00:19:38 +02:00
|
|
|
C {ammeter.sym} 1690 -1100 0 0 {name=v4}
|
|
|
|
|
C {ammeter.sym} 1200 -1100 0 0 {name=v6}
|
2023-10-13 15:51:51 +02:00
|
|
|
C {nmos4-v.sym} 2020 -510 0 0 {name=M19 verilog_gate=nmos del=50,50,50 model=nmos w=1u l=0.5u extra="delvto='agauss(0,ABSVAR,3)'"}
|
|
|
|
|
C {lab_pin.sym} 2070 -510 0 1 {name=p9 lab=VSS}
|
2023-10-14 00:19:38 +02:00
|
|
|
C {pmos4-v.sym} 2020 -870 0 0 {name=M21 verilog_gate=pmos del=50,50,50 model=pmos w=2u l=0.5u extra="delvto='agauss(0,ABSVAR,3)'"}
|
|
|
|
|
C {lab_pin.sym} 2070 -870 0 1 {name=p10 lab=VCC}
|
|
|
|
|
C {lab_pin.sym} 2010 -940 0 0 {name=p11 lab=VCC}
|
2023-10-13 15:51:51 +02:00
|
|
|
C {lab_pin.sym} 2010 -380 0 0 {name=p12 lab=VSSI}
|
|
|
|
|
C {parax_cap.sym} 2110 -700 0 0 {name=c1 value=4f}
|
|
|
|
|
C {ammeter.sym} 2040 -450 0 0 {name=v1}
|
|
|
|
|
C {lab_pin.sym} 2370 -710 0 1 {name=l3 lab=SAOUT}
|
2023-10-14 00:19:38 +02:00
|
|
|
C {passgate.sym} 1920 -1250 0 1 {name=x3 m=1
|
2020-08-08 15:47:34 +02:00
|
|
|
+ wn=0.4u ln=0.13u
|
|
|
|
|
+ wp=0.4u lp=0.13u
|
2021-12-09 23:39:07 +01:00
|
|
|
+ VCCBPIN=VCC VSSBPIN=VSS extra="delvto='agauss(0,ABSVAR,3)'"}
|
2023-10-14 00:19:38 +02:00
|
|
|
C {lab_pin.sym} 1920 -1280 0 1 {name=l5 sig_type=std_logic lab=CALB}
|
|
|
|
|
C {lab_pin.sym} 1920 -1220 0 1 {name=l6 sig_type=std_logic lab=CALBB}
|
|
|
|
|
C {nmos4-v.sym} 2160 -1160 0 0 {name=M23 verilog_gate=nmos del=50,50,50 model=nmos w=1.5u l=1.0u extra="delvto='agauss(0,ABSVAR,3)'"}
|
|
|
|
|
C {lab_pin.sym} 2210 -1160 0 1 {name=p13 lab=VSS}
|
|
|
|
|
C {pmos4-v.sym} 2160 -1320 0 0 {name=M24 verilog_gate=pmos del=50,50,50 model=pmos w=3u l=1.0u extra="delvto='agauss(0,ABSVAR,3)'"}
|
|
|
|
|
C {lab_pin.sym} 2210 -1320 0 1 {name=p14 lab=VCC}
|
|
|
|
|
C {lab_pin.sym} 2150 -1390 0 0 {name=p16 lab=VCC}
|
|
|
|
|
C {lab_pin.sym} 2150 -1030 0 0 {name=p17 lab=VSSI}
|
|
|
|
|
C {lab_pin.sym} 2040 -1310 0 0 {name=l8 lab=ZERO2}
|
|
|
|
|
C {ammeter.sym} 2180 -1100 0 0 {name=v5}
|
2023-10-13 15:51:51 +02:00
|
|
|
C {pmos4-v.sym} 2240 -810 0 0 {name=M6 verilog_gate=pmos del=50,50,50 model=pmos w=0.6u l=0.2u extra="delvto='agauss(0,ABSVAR,3)'"}
|
|
|
|
|
C {lab_pin.sym} 2290 -810 0 1 {name=p18 lab=VCC}
|
|
|
|
|
C {lab_pin.sym} 2230 -880 0 0 {name=p19 lab=VCC}
|
|
|
|
|
C {lab_pin.sym} 2220 -810 0 0 {name=l2 lab=EN}
|
|
|
|
|
C {pmos4-v.sym} 770 -590 0 1 {name=M18 verilog_gate=pmos del=50,50,50 model=pmos w=4u l=0.4u extra="delvto='agauss(0,ABSVAR,3)'"}
|
|
|
|
|
C {lab_pin.sym} 720 -590 0 0 {name=p20 lab=VCC}
|
|
|
|
|
C {pmos4-v.sym} 530 -590 0 0 {name=M25 verilog_gate=pmos del=50,50,50 model=pmos w=4u l=0.4u extra="delvto='agauss(0,ABSVAR,3)'"}
|
|
|
|
|
C {lab_pin.sym} 580 -590 0 1 {name=p21 lab=VCC}
|
2023-10-14 00:19:38 +02:00
|
|
|
C {lab_pin.sym} 520 -410 0 0 {name=p22 lab=VSS}
|
|
|
|
|
C {lab_pin.sym} 780 -410 0 1 {name=p23 lab=VSS}
|
|
|
|
|
C {lab_pin.sym} 620 -320 0 0 {name=p24 lab=VSSI}
|
2023-10-13 15:51:51 +02:00
|
|
|
C {pmos4-v.sym} 640 -780 0 0 {name=M28 verilog_gate=pmos del=50,50,50 model=pmos w=2u l=0.5u extra="delvto='agauss(0,ABSVAR,3)'"}
|
|
|
|
|
C {lab_pin.sym} 690 -780 0 1 {name=p25 lab=VCC}
|
|
|
|
|
C {lab_pin.sym} 660 -830 0 0 {name=p26 lab=VCC}
|
|
|
|
|
C {lab_pin.sym} 570 -780 0 0 {name=l7 lab=GP}
|
2023-10-14 00:19:38 +02:00
|
|
|
C {lab_pin.sym} 550 -480 0 1 {name=l9 lab=GP}
|
2023-10-13 15:51:51 +02:00
|
|
|
C {lab_pin.sym} 490 -590 0 0 {name=l10 lab=MINUS}
|
|
|
|
|
C {lab_pin.sym} 810 -590 0 1 {name=l11 lab=PLUS}
|
2023-10-14 00:19:38 +02:00
|
|
|
C {lab_pin.sym} 810 -470 0 1 {name=l12 lab=OUTDIFF}
|
|
|
|
|
C {nmos4-v.sym} 730 -410 0 0 {name=M26 verilog_gate=nmos del=50,50,50 model=nmos w=1u l=0.5u extra="delvto='agauss(0,ABSVAR,3)'"}
|
|
|
|
|
C {nmos4-v.sym} 570 -410 0 1 {name=M1 verilog_gate=nmos del=50,50,50 model=nmos w=1u l=0.5u extra="delvto='agauss(0,ABSVAR,3)'"}
|
|
|
|
|
C {parax_cap.sym} 630 -400 0 0 {name=c2 value=4f}
|
2023-10-13 15:51:51 +02:00
|
|
|
C {lab_pin.sym} 660 -670 0 0 {name=l13 lab=SP}
|
2020-08-08 15:47:34 +02:00
|
|
|
C {launcher.sym} 930 -260 0 0 {name=h2
|
|
|
|
|
descr="Simulate"
|
|
|
|
|
tclcommand="xschem netlist; xschem simulate"}
|
2023-10-14 00:19:38 +02:00
|
|
|
C {parax_cap.sym} 1060 -1150 0 0 {name=c4 value=5f}
|
|
|
|
|
C {parax_cap.sym} 1550 -1150 0 0 {name=c6 value=5f}
|
|
|
|
|
C {parax_cap.sym} 2040 -1150 0 0 {name=c7 value=5f}
|
2024-12-20 11:56:53 +01:00
|
|
|
C {launcher.sym} 75 -1075 0 0 {name=h1
|
|
|
|
|
descr="Reload
|
|
|
|
|
Waves"
|
2021-12-25 05:15:52 +01:00
|
|
|
tclcommand="
|
|
|
|
|
xschem raw_read $netlist_dir/[file tail [file rootname [xschem get current_name]]].raw
|
2024-12-20 11:56:53 +01:00
|
|
|
|
|
|
|
|
proc get_histo \{varname varlist mean min max step\} \{
|
|
|
|
|
xschem raw switch 0
|
|
|
|
|
proc xround \{a size\} \{ return [expr \{round($a/$size) * $size\}]\}
|
|
|
|
|
#### get rounded data
|
|
|
|
|
catch \{unset freq\}
|
|
|
|
|
foreach v1 $varlist \{
|
|
|
|
|
set v1 [xround [expr \{$v1 - $mean\}] $step]
|
|
|
|
|
if \{![info exists freq($v1)]\} \{ set freq($v1) 1\} else \{incr freq($v1)\}
|
|
|
|
|
\}
|
|
|
|
|
#### create histogram raw data in memory
|
|
|
|
|
xschem raw new distrib distrib $varname $min $max $step
|
2024-12-20 17:25:03 +01:00
|
|
|
xschem raw add freq0
|
2024-12-20 11:56:53 +01:00
|
|
|
set j 0
|
|
|
|
|
for \{set i $min\} \{$i <= $max\} \{set i [expr \{$i + $step\}] \} \{
|
|
|
|
|
set ii [xround $i $step]
|
|
|
|
|
set v1 0
|
|
|
|
|
if \{[info exists freq($ii)]\} \{ set v1 $freq($ii) \}
|
2024-12-20 17:25:03 +01:00
|
|
|
xschem raw set freq0 $j $v1
|
2024-12-20 11:56:53 +01:00
|
|
|
incr j
|
|
|
|
|
\}
|
|
|
|
|
\}
|
|
|
|
|
|
2024-12-20 12:15:46 +01:00
|
|
|
proc add_histo \{varname varlist mean min max step\} \{
|
|
|
|
|
xschem raw switch 1
|
|
|
|
|
proc xround \{a size\} \{ return [expr \{round($a/$size) * $size\}]\}
|
|
|
|
|
#### get rounded data
|
|
|
|
|
catch \{unset freq\}
|
|
|
|
|
foreach v1 $varlist \{
|
|
|
|
|
set v1 [xround [expr \{$v1 - $mean\}] $step]
|
|
|
|
|
if \{![info exists freq($v1)]\} \{ set freq($v1) 1\} else \{incr freq($v1)\}
|
|
|
|
|
\}
|
|
|
|
|
#### create histogram raw data in memory
|
|
|
|
|
xschem raw add freq1
|
|
|
|
|
set j 0
|
|
|
|
|
for \{set i $min\} \{$i <= $max\} \{set i [expr \{$i + $step\}] \} \{
|
|
|
|
|
set ii [xround $i $step]
|
|
|
|
|
set v1 0
|
|
|
|
|
if \{[info exists freq($ii)]\} \{ set v1 $freq($ii) \}
|
|
|
|
|
xschem raw set freq1 $j $v1
|
|
|
|
|
incr j
|
|
|
|
|
\}
|
|
|
|
|
\}
|
|
|
|
|
|
|
|
|
|
|
2024-12-20 11:56:53 +01:00
|
|
|
proc get_values \{\} \{
|
2024-12-20 12:15:46 +01:00
|
|
|
set l0 \{\}
|
2024-12-20 11:56:53 +01:00
|
|
|
set dset [xschem raw datasets]
|
|
|
|
|
set p [xschem raw pos_at time 259n]
|
|
|
|
|
for \{set i 0\} \{ $i < $dset\} \{ incr i\} \{
|
|
|
|
|
set v [xschem raw value saout $p $i]
|
2024-12-20 12:15:46 +01:00
|
|
|
lappend l0 $v
|
2024-12-20 11:56:53 +01:00
|
|
|
\}
|
2024-12-20 12:15:46 +01:00
|
|
|
set l1 \{\}
|
2024-12-20 11:56:53 +01:00
|
|
|
set p [xschem raw pos_at time 339n]
|
|
|
|
|
for \{set i 0\} \{ $i < $dset\} \{ incr i\} \{
|
|
|
|
|
set v [xschem raw value saout $p $i]
|
2024-12-20 12:15:46 +01:00
|
|
|
lappend l1 $v
|
2024-12-20 11:56:53 +01:00
|
|
|
\}
|
2024-12-20 12:15:46 +01:00
|
|
|
get_histo saout $l0 0 0 0.9 0.01
|
|
|
|
|
add_histo saout $l1 0 0 0.9 0.01
|
2024-12-20 11:56:53 +01:00
|
|
|
xschem raw switch 0
|
|
|
|
|
\}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
get_values
|
|
|
|
|
xschem redraw
|
|
|
|
|
|
|
|
|
|
|
2021-12-25 05:15:52 +01:00
|
|
|
"
|
|
|
|
|
}
|
2023-10-13 15:51:51 +02:00
|
|
|
C {ammeter.sym} 660 -710 0 0 {name=vdiffp}
|
|
|
|
|
C {ammeter.sym} 1300 -870 0 0 {name=vcalib0}
|
|
|
|
|
C {ammeter.sym} 1790 -870 0 0 {name=vcalib1}
|
|
|
|
|
C {ammeter.sym} 2370 -870 0 0 {name=vcalib2}
|
2023-10-14 00:19:38 +02:00
|
|
|
C {ammeter.sym} 970 -770 0 0 {name=vnleft}
|
|
|
|
|
C {ammeter.sym} 1170 -770 0 1 {name=vnright}
|
|
|
|
|
C {ammeter.sym} 550 -520 0 0 {name=vpleft}
|
|
|
|
|
C {ammeter.sym} 750 -520 0 0 {name=vpright}
|