update live backannotation if "a" and "b" cursors are swapped, syntax node%n is now allowed to plot only dataset "n" of the node. Update html docs and example autozero_comp circuit

This commit is contained in:
stefan schippers 2023-10-13 15:51:51 +02:00
parent 6ad282a3df
commit 617e6b3b8d
8 changed files with 391 additions and 314 deletions

View File

@ -196,7 +196,18 @@ p{padding: 15px 30px 10px;}
<li><kbd>integ()</kbd> Integration</li>
<li><kbd>dup()</kbd> Duplicate last element on stack</li>
</ul>
<h3>Display a specific dataset for a node</h3>
<p>
The following syntax:
<kbd>node%n</kbd> where <kbd>node</kbd> is a saved node or a bus or an expression
and <kbd>n</kbd> is an integer number will plot only the indicated dataset number.
Dataset numbers start from 0.
This syntax is accepted for single nodes, bus names and expressions:<br><br>
<kbd>"DATA_4; en cal saout % 4"</kbd><br>
<kbd>saout%3</kbd><br>
<kbd>"Power dataset 6; I(VVCC) VCC * %6"</kbd><br><br>
<img src="graphs17.png"><br>
</p>
<!-- end of slide -->
<div class="filler"></div>
</div>

BIN
doc/xschem_man/graphs17.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

View File

@ -379,7 +379,6 @@ static int waves_callback(int event, int mx, int my, KeySym key, int button, int
if(there_are_floaters()) set_modify(-2); /* update floater caches to reflect actual backannotation */
redraw_all_at_end = 1;
}
else need_redraw = 1;
}
gr->master_gx1 = gr->gx1;
gr->master_gx2 = gr->gx2;
@ -453,7 +452,12 @@ static int waves_callback(int event, int mx, int my, KeySym key, int button, int
tmp = xctx->graph_cursor2_x;
xctx->graph_cursor2_x = xctx->graph_cursor1_x;
xctx->graph_cursor1_x = tmp;
need_all_redraw = 1;
if(tclgetboolvar("live_cursor2_backannotate")) {
backannotate_at_cursor_b_pos(r, gr);
if(there_are_floaters()) set_modify(-2); /* update floater caches to reflect actual backannotation */
redraw_all_at_end = 1;
}
else need_all_redraw = 1;
}
/* measurement tooltip */
else if((key == 'm') ) {

View File

@ -3131,6 +3131,8 @@ void draw_graph(int i, const int flags, Graph_ctx *gr, void *ct)
char *express = NULL;
xRect *r = &xctx->rect[GRIDLAYER][i];
Raw *raw = xctx->raw;
int node_dataset = -1; /* dataset specified as %<n> after node/bus/expression name */
char *ntok_copy = NULL; /* copy of ntok without %<n> */
if(xctx->only_probes) return;
if(RECT_OUTSIDE( gr->sx1, gr->sy1, gr->sx2, gr->sy2,
@ -3162,15 +3164,25 @@ void draw_graph(int i, const int flags, Graph_ctx *gr, void *ct)
n_nodes = count_items(node, " \t\n", "\"");
/* process each node given in "node" attribute, get also associated color/sweep var if any*/
while( (ntok = my_strtok_r(nptr, "\n\t ", "\"", 4, &saven)) ) {
if(strstr(ntok, ",")) {
/* also trim spaces */
my_strdup2(_ALLOC_ID_, &bus_msb, trim_chars(find_nth(ntok, ";,", "\"", 0, 2), " "));
/* if %<n> is specified after node name, <n> is the dataset number to plot in graph */
char *nd = find_nth(ntok, "%", "\"", 0, 2);
if(nd[0]) {
node_dataset = atoi(nd);
my_strdup(_ALLOC_ID_, &ntok_copy, find_nth(ntok, "%", "\"", 0, 1));
} else {
node_dataset = -1;
my_strdup(_ALLOC_ID_, &ntok_copy, ntok);
}
dbg(1, "ntok=|%s|, bus_msb=|%s|\n", ntok, bus_msb ? bus_msb : "NULL");
dbg(1, "ntok=|%s|\nntok_copy=|%s|\nnode_dataset=%d\n", ntok, ntok_copy, node_dataset);
if(strstr(ntok_copy, ",")) {
/* also trim spaces */
my_strdup2(_ALLOC_ID_, &bus_msb, trim_chars(find_nth(ntok_copy, ";,", "\"", 0, 2), " "));
}
dbg(1, "ntok_copy=|%s|, bus_msb=|%s|\n", ntok_copy, bus_msb ? bus_msb : "NULL");
ctok = my_strtok_r(cptr, " ", "", 0, &savec);
stok = my_strtok_r(sptr, "\t\n ", "\"", 0, &saves);
nptr = cptr = sptr = NULL;
dbg(1, "ntok=%s ctok=%s\n", ntok, ctok? ctok: "NULL");
dbg(1, "ntok_copy=%s ctok=%s\n", ntok_copy, ctok? ctok: "NULL");
if(ctok && ctok[0]) wc = atoi(ctok);
if(wc < 0) wc = 4;
if(wc >= cadlayers) wc = cadlayers - 1;
@ -3181,20 +3193,21 @@ void draw_graph(int i, const int flags, Graph_ctx *gr, void *ct)
}
}
draw_graph_variables(wcnt, wc, n_nodes, sweep_idx, flags, ntok, stok, bus_msb, gr);
/* if ntok following possible 'alias;' definition contains spaces --> custom data plot */
/* if ntok_copy following possible 'alias;' definition contains spaces --> custom data plot */
idx = -1;
expression = 0;
if(raw && raw->values && !bus_msb) {
if(strstr(ntok, ";")) {
my_strdup2(_ALLOC_ID_, &express, find_nth(ntok, ";", "\"", 0, 2));
if(strstr(ntok_copy, ";")) {
my_strdup2(_ALLOC_ID_, &express, find_nth(ntok_copy, ";", "\"", 0, 2));
} else {
my_strdup2(_ALLOC_ID_, &express, ntok);
my_strdup2(_ALLOC_ID_, &express, ntok_copy);
}
dbg(1, "express=|%s|\n", express);
if(strpbrk(express, " \n\t")) {
expression = 1;
}
}
/* quickly find index number of ntok variable to be plotted */
/* quickly find index number of ntok_copy variable to be plotted */
if( expression || (idx = get_raw_index(bus_msb ? bus_msb : express)) != -1 ) {
int p, dset, ofs;
int poly_npoints;
@ -3207,13 +3220,13 @@ void draw_graph(int i, const int flags, Graph_ctx *gr, void *ct)
SPICE_DATA **idx_arr = NULL;
int sweepvar_wrap = 0; /* incremented on new dataset or sweep variable wrap */
XPoint *point = NULL;
int dataset = gr->dataset;
int dataset = node_dataset >=0 ? node_dataset : gr->dataset;
int digital = gr->digital;
ofs = 0;
start = (gr->gx1 <= gr->gx2) ? gr->gx1 : gr->gx2;
end = (gr->gx1 <= gr->gx2) ? gr->gx2 : gr->gx1;
if(bus_msb) {
idx_arr = get_bus_idx_array(ntok, &n_bits); /* idx_arr allocated by function, must free! */
idx_arr = get_bus_idx_array(ntok_copy, &n_bits); /* idx_arr allocated by function, must free! */
}
bbox(START, 0.0, 0.0, 0.0, 0.0);
bbox(ADD,gr->x1, gr->y1, gr->x2, gr->y2);
@ -3245,7 +3258,7 @@ void draw_graph(int i, const int flags, Graph_ctx *gr, void *ct)
else wave_color = wc;
if(bus_msb) {
if(digital) {
draw_graph_bus_points(ntok, n_bits, idx_arr, first, last, wave_color,
draw_graph_bus_points(ntok_copy, n_bits, idx_arr, first, last, wave_color,
sweep_idx, wcnt, n_nodes, gr, ct);
}
} else {
@ -3287,7 +3300,7 @@ void draw_graph(int i, const int flags, Graph_ctx *gr, void *ct)
else wave_color = wc;
if(bus_msb) {
if(digital) {
draw_graph_bus_points(ntok, n_bits, idx_arr, first, last, wave_color,
draw_graph_bus_points(ntok_copy, n_bits, idx_arr, first, last, wave_color,
sweep_idx, wcnt, n_nodes, gr, ct);
}
} else {
@ -3302,7 +3315,7 @@ void draw_graph(int i, const int flags, Graph_ctx *gr, void *ct)
} /* for(dset...) */
bbox(END, 0.0, 0.0, 0.0, 0.0);
if(measure_p != -1) show_node_measures(measure_p, measure_x, measure_prev_x, bus_msb, wave_color,
idx, idx_arr, n_bits, n_nodes, ntok, wcnt, gr);
idx, idx_arr, n_bits, n_nodes, ntok_copy, wcnt, gr);
my_free(_ALLOC_ID_, &point);
if(idx_arr) my_free(_ALLOC_ID_, &idx_arr);
@ -3310,6 +3323,7 @@ void draw_graph(int i, const int flags, Graph_ctx *gr, void *ct)
++wcnt;
if(bus_msb) my_free(_ALLOC_ID_, &bus_msb);
} /* while( (ntok = my_strtok_r(nptr, "\n\t ", "", 0, &saven)) ) */
if(ntok_copy) my_free(_ALLOC_ID_, &ntok_copy);
if(express) my_free(_ALLOC_ID_, &express);
my_free(_ALLOC_ID_, &node);
my_free(_ALLOC_ID_, &color);

View File

@ -6841,7 +6841,7 @@ set_ne graph_selected {}
set_ne graph_schname {}
set_ne graph_change_done 0 ;# used to push undo only once when editing graphs
set_ne raw_level -1 ;# hierarchy level where raw file has been loaded
set_ne graph_linewidth_mult 2.0 ;# default multiplier (w.r.t. xschem lines) for line width in graphs
set_ne graph_linewidth_mult 1.4 ;# default multiplier (w.r.t. xschem lines) for line width in graphs
# user clicked this wave
set_ne graph_sel_wave {}
# flag to force simulation stop (Esc key pressed)

View File

@ -1,4 +1,4 @@
v {xschem version=3.4.4 file_version=1.2
v {xschem version=3.4.5 file_version=1.2
*
* This file is part of XSCHEM,
* a schematic capture and Spice/Vhdl/Verilog netlisting tool for circuit
@ -1495,3 +1495,4 @@ C {test_jfet.sym} 480 -620 0 0 {name=x25}
C {test_short_option.sym} 480 -580 0 0 {name=x26}
C {test_lvs_ignore.sym} 480 -540 0 0 {name=x27}
C {test_generators.sym} 480 -500 0 0 {name=x28}
C {autozero_comp.sym} 480 -460 0 0 {name=x29}

View File

@ -1,4 +1,4 @@
v {xschem version=3.4.4 file_version=1.2
v {xschem version=3.4.5 file_version=1.2
*
* This file is part of XSCHEM,
* a schematic capture and Spice/Vhdl/Verilog netlisting tool for circuit
@ -38,48 +38,79 @@ L 4 410 -150 570 -150 {}
L 4 570 -170 570 -150 {}
L 4 570 -170 690 -170 {}
L 7 1090 -260 2520 -260 {}
B 2 300 -1060 760 -900 {flags=graph
B 2 350 -1020 810 -860 {flags=graph
y1 = 0
y2 = 0.93
divy = 5
x1=6.17604e-08
x2=4.71882e-07
x1=9.31247e-08
x2=4.30871e-07
divx=5
subdivx=4
unitx=n
node="cal
saout"
color="4 5"
node="cal%0
saout
saout%70
saout%3"
color="8 14 7 12"
linewidth_mult=1.0
hilight_wave=-1
dataset=-1}
B 2 300 -1200 760 -1070 {flags=graph
B 2 350 -1160 810 -1030 {flags=graph
y1 = 0.647319
y2 = 0.652563
divy = 5
x1=6.17604e-08
x2=4.71882e-07
x1=9.31247e-08
x2=4.30871e-07
unitx=n
divx=5
subdivx=4
node="plus
minus"
node="plus%0
minus%0"
color="4 5"
dataset=-1}
B 2 300 -1300 760 -1200 {flags=graph
dataset=-1
linewidth_mult=1.0}
B 2 350 -1320 810 -1160 {flags=graph
y1 = 0
y2 = 1
y2 = 0.9
divy = 5
x1=6.17604e-08
x2=4.71882e-07
x1=9.31247e-08
x2=4.30871e-07
unitx=n
divx=5
subdivx=4
node="en
cal"
color="4 4"
cal
\\"SAOUT#3; vss,saout%3\\"
--slow--
\\"SAOUT#15; vss,saout%15\\"
--failure--
\\"SAOUT#70; vss,saout%70\\""
color="4 4 4 8 8 7 7"
dataset=-1
digital=1
ypos1=0.0602914
ypos2=0.292255}
ypos1=0.0825406
ypos2=0.767045
ylabmag=1.2
linewidth_mult=1.0
subdivy=0}
B 2 350 -1450 810 -1330 {flags=graph
y1 = -8.54414e-05
y2 = 2.7198e-05
divy = 5
x1=9.31247e-08
x2=4.30871e-07
divx=5
subdivx=4
unitx=n
dataset=-1
color="4 7"
node="\\"power dset 97 ; i(vvcc) vcc * % 23\\"
\\"power dset 70 ; i(vvcc) vcc * % 70\\""
subdivy=4
linewidth_mult=1.0}
T {CAL} 140 -180 0 1 0.4 0.4 {}
T {EN} 140 -130 0 1 0.4 0.4 {}
T {CALIBRATION
@ -94,147 +125,163 @@ 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}
T {Select one or more graphs (and no other objects)
and use arrow keys to zoom / pan waveforms} 310 -1380 0 0 0.3 0.3 {}
N 120 -470 120 -450 {lab=TEMPERAT}
N 160 -1180 190 -1180 {lab=VSS}
N 160 -1150 160 -1130 {lab=VSS}
N 160 -1230 160 -1210 {lab=VSSI}
N 1120 -1100 1150 -1100 {lab=VSS}
N 1120 -1330 1150 -1330 {lab=VCC}
N 1090 -1400 1120 -1400 {lab=VCC}
N 1120 -1400 1120 -1360 {lab=VCC}
N 1090 -970 1120 -970 {lab=VSSI}
N 1120 -1010 1120 -970 {lab=VSSI}
N 980 -1100 1080 -1100 {lab=ZERO0}
N 980 -1260 980 -1100 {lab=ZERO0}
N 900 -1260 980 -1260 {lab=ZERO0}
N 790 -1260 820 -1260 {lab=OUTDIFF}
N 790 -1440 790 -1260 {lab=OUTDIFF}
N 790 -1440 1220 -1440 {lab=OUTDIFF}
N 1120 -1260 1220 -1260 {lab=OUTDIFF}
N 1610 -1100 1640 -1100 {lab=VSS}
N 1610 -1330 1640 -1330 {lab=VCC}
N 1580 -1400 1610 -1400 {lab=VCC}
N 1610 -1400 1610 -1360 {lab=VCC}
N 1580 -970 1610 -970 {lab=VSSI}
N 1610 -1010 1610 -970 {lab=VSSI}
N 1470 -1100 1570 -1100 {lab=ZERO1}
N 1470 -1260 1470 -1100 {lab=ZERO1}
N 1390 -1260 1470 -1260 {lab=ZERO1}
N 1280 -1260 1310 -1260 {lab=SAOUTF}
N 1280 -1440 1280 -1260 {lab=SAOUTF}
N 1280 -1440 1710 -1440 {lab=SAOUTF}
N 1610 -1260 1710 -1260 {lab=SAOUTF}
N 1220 -1440 1220 -1260 {lab=OUTDIFF}
N 1120 -1300 1120 -1260 {lab=OUTDIFF}
N 980 -1330 980 -1260 {lab=ZERO0}
N 1610 -1300 1610 -1260 {lab=SAOUTF}
N 1470 -1330 1470 -1260 {lab=ZERO1}
N 1710 -1440 1710 -1260 {lab=SAOUTF}
N 890 -640 920 -640 {lab=VSS}
N 1060 -640 1090 -640 {lab=VSS}
N 1090 -800 1120 -800 {lab=VCC}
N 860 -800 890 -800 {lab=VCC}
N 930 -800 1050 -800 {lab=GN}
N 930 -800 930 -770 {lab=GN}
N 890 -770 930 -770 {lab=GN}
N 890 -770 890 -670 {lab=GN}
N 1090 -710 1090 -670 {lab=OUTDIFF}
N 890 -860 890 -830 {lab=VCC}
N 990 -860 1090 -860 {lab=VCC}
N 1090 -860 1090 -830 {lab=VCC}
N 1090 -610 1090 -590 {lab=SN}
N 990 -590 1090 -590 {lab=SN}
N 890 -610 890 -590 {lab=SN}
N 990 -510 1020 -510 {lab=VSS}
N 990 -590 990 -540 {lab=SN}
N 990 -880 990 -860 {lab=VCC}
N 960 -380 990 -380 {lab=VSSI}
N 990 -420 990 -380 {lab=VSSI}
N 1470 -510 1500 -510 {lab=VSS}
N 1470 -800 1500 -800 {lab=VCC}
N 1440 -870 1470 -870 {lab=VCC}
N 1470 -870 1470 -830 {lab=VCC}
N 1440 -380 1470 -380 {lab=VSSI}
N 1470 -420 1470 -380 {lab=VSSI}
N 1470 -710 1470 -540 {lab=SAOUTF}
N 1220 -710 1360 -710 {lab=OUTDIFF}
N 890 -860 990 -860 {lab=VCC}
N 890 -590 990 -590 {lab=SN}
N 1120 -1260 1120 -1130 {lab=OUTDIFF}
N 1610 -1260 1610 -1130 {lab=SAOUTF}
N 1360 -710 1360 -510 {lab=OUTDIFF}
N 1220 -1260 1220 -710 {lab=OUTDIFF}
N 1710 -1260 1710 -710 {lab=SAOUTF}
N 1710 -710 1850 -710 {lab=SAOUTF}
N 1090 -710 1220 -710 {lab=OUTDIFF}
N 1090 -770 1090 -710 {lab=OUTDIFF}
N 1360 -800 1360 -710 {lab=OUTDIFF}
N 1470 -1330 1570 -1330 {lab=ZERO1}
N 980 -1330 1080 -1330 {lab=ZERO0}
N 1360 -800 1430 -800 {lab=OUTDIFF}
N 1360 -510 1430 -510 {lab=OUTDIFF}
N 1960 -510 1990 -510 {lab=VSS}
N 1960 -800 1990 -800 {lab=VCC}
N 1930 -870 1960 -870 {lab=VCC}
N 1960 -870 1960 -830 {lab=VCC}
N 1930 -380 1960 -380 {lab=VSSI}
N 1960 -420 1960 -380 {lab=VSSI}
N 1960 -710 1960 -540 {lab=SAOUT}
N 1850 -710 1850 -510 {lab=SAOUTF}
N 2100 -1100 2130 -1100 {lab=VSS}
N 2100 -1330 2130 -1330 {lab=VCC}
N 2070 -1400 2100 -1400 {lab=VCC}
N 2100 -1400 2100 -1360 {lab=VCC}
N 2070 -970 2100 -970 {lab=VSSI}
N 2100 -1010 2100 -970 {lab=VSSI}
N 1960 -1100 2060 -1100 {lab=ZERO2}
N 1960 -1260 1960 -1100 {lab=ZERO2}
N 1880 -1260 1960 -1260 {lab=ZERO2}
N 1770 -1260 1800 -1260 {lab=SAOUT}
N 1770 -1440 1770 -1260 {lab=SAOUT}
N 1770 -1440 2290 -1440 {lab=SAOUT}
N 2100 -1260 2290 -1260 {lab=SAOUT}
N 2100 -1300 2100 -1260 {lab=SAOUT}
N 1960 -1330 1960 -1260 {lab=ZERO2}
N 2290 -1440 2290 -1260 {lab=SAOUT}
N 2100 -1260 2100 -1130 {lab=SAOUT}
N 2290 -1260 2290 -710 {lab=SAOUT}
N 1960 -1330 2060 -1330 {lab=ZERO2}
N 1850 -800 1920 -800 {lab=SAOUTF}
N 1850 -510 1920 -510 {lab=SAOUTF}
N 1470 -710 1710 -710 {lab=SAOUTF}
N 1960 -710 2290 -710 {lab=SAOUT}
N 1850 -800 1850 -710 {lab=SAOUTF}
N 1960 -770 1960 -710 {lab=SAOUT}
N 1470 -770 1470 -710 {lab=SAOUTF}
N 2180 -810 2210 -810 {lab=VCC}
N 2150 -880 2180 -880 {lab=VCC}
N 2180 -880 2180 -840 {lab=VCC}
N 2180 -780 2180 -710 {lab=SAOUT}
N 590 -680 620 -680 {lab=VCC}
N 420 -740 420 -710 {lab=SP}
N 520 -740 620 -740 {lab=SP}
N 620 -740 620 -710 {lab=SP}
N 420 -740 520 -740 {lab=SP}
N 420 -680 450 -680 {lab=VCC}
N 390 -550 420 -550 {lab=VSS}
N 620 -550 650 -550 {lab=VSS}
N 460 -550 580 -550 {lab=GP}
N 460 -580 460 -550 {lab=GP}
N 420 -580 460 -580 {lab=GP}
N 420 -650 420 -580 {lab=GP}
N 620 -650 620 -580 {lab=OUTDIFF}
N 620 -520 620 -500 {lab=VSSI}
N 420 -500 620 -500 {lab=VSSI}
N 420 -520 420 -500 {lab=VSSI}
N 490 -460 520 -460 {lab=VSSI}
N 520 -500 520 -460 {lab=VSSI}
N 530 -810 560 -810 {lab=VCC}
N 530 -780 530 -740 {lab=SP}
N 530 -860 530 -840 {lab=VCC}
N 620 -610 680 -610 {lab=OUTDIFF}
N 360 -530 390 -530 {lab=VSS}
N 360 -500 360 -480 {lab=VSS}
N 360 -580 360 -560 {lab=VSSI}
N 1200 -1070 1230 -1070 {lab=VSS}
N 1200 -1230 1230 -1230 {lab=VCC}
N 1170 -1300 1200 -1300 {lab=VCC}
N 1200 -1300 1200 -1260 {lab=VCC}
N 1170 -940 1200 -940 {lab=VSSI}
N 1200 -980 1200 -940 {lab=VSSI}
N 1060 -1070 1160 -1070 {lab=ZERO0}
N 1060 -1160 1060 -1070 {lab=ZERO0}
N 980 -1160 1060 -1160 {lab=ZERO0}
N 870 -1160 900 -1160 {lab=#net1}
N 870 -1340 870 -1160 {lab=#net1}
N 870 -1340 1300 -1340 {lab=#net1}
N 1200 -1160 1300 -1160 {lab=#net1}
N 1690 -1070 1720 -1070 {lab=VSS}
N 1690 -1230 1720 -1230 {lab=VCC}
N 1660 -1300 1690 -1300 {lab=VCC}
N 1690 -1300 1690 -1260 {lab=VCC}
N 1660 -940 1690 -940 {lab=VSSI}
N 1690 -980 1690 -940 {lab=VSSI}
N 1550 -1070 1650 -1070 {lab=ZERO1}
N 1550 -1160 1550 -1070 {lab=ZERO1}
N 1470 -1160 1550 -1160 {lab=ZERO1}
N 1360 -1160 1390 -1160 {lab=#net2}
N 1360 -1340 1360 -1160 {lab=#net2}
N 1360 -1340 1790 -1340 {lab=#net2}
N 1690 -1160 1790 -1160 {lab=#net2}
N 1300 -1340 1300 -1160 {lab=#net1}
N 1200 -1200 1200 -1160 {lab=#net1}
N 1060 -1230 1060 -1160 {lab=ZERO0}
N 1690 -1200 1690 -1160 {lab=#net2}
N 1550 -1230 1550 -1160 {lab=ZERO1}
N 1790 -1340 1790 -1160 {lab=#net2}
N 970 -640 1000 -640 {lab=VSS}
N 1140 -640 1170 -640 {lab=VSS}
N 1170 -800 1200 -800 {lab=VCC}
N 940 -800 970 -800 {lab=VCC}
N 1010 -800 1130 -800 {lab=GN}
N 1010 -800 1010 -770 {lab=GN}
N 970 -770 1010 -770 {lab=GN}
N 970 -770 970 -670 {lab=GN}
N 1170 -710 1170 -670 {lab=OUTDIFF}
N 970 -860 970 -830 {lab=VCC}
N 1070 -860 1170 -860 {lab=VCC}
N 1170 -860 1170 -830 {lab=VCC}
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}
N 1070 -880 1070 -860 {lab=VCC}
N 1040 -380 1070 -380 {lab=VSSI}
N 1070 -420 1070 -380 {lab=VSSI}
N 1550 -510 1580 -510 {lab=VSS}
N 1550 -800 1580 -800 {lab=VCC}
N 1520 -870 1550 -870 {lab=VCC}
N 1550 -870 1550 -830 {lab=VCC}
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}
N 970 -860 1070 -860 {lab=VCC}
N 970 -590 1070 -590 {lab=SN}
N 1200 -1160 1200 -1100 {lab=#net1}
N 1690 -1160 1690 -1100 {lab=#net2}
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}
N 1170 -770 1170 -710 {lab=OUTDIFF}
N 1440 -800 1440 -710 {lab=OUTDIFF}
N 1550 -1230 1650 -1230 {lab=ZERO1}
N 1060 -1230 1160 -1230 {lab=ZERO0}
N 1440 -800 1510 -800 {lab=OUTDIFF}
N 1440 -510 1510 -510 {lab=OUTDIFF}
N 2040 -510 2070 -510 {lab=VSS}
N 2040 -800 2070 -800 {lab=VCC}
N 2010 -870 2040 -870 {lab=VCC}
N 2040 -870 2040 -830 {lab=VCC}
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}
N 2180 -1070 2210 -1070 {lab=VSS}
N 2180 -1230 2210 -1230 {lab=VCC}
N 2150 -1300 2180 -1300 {lab=VCC}
N 2180 -1300 2180 -1260 {lab=VCC}
N 2150 -940 2180 -940 {lab=VSSI}
N 2180 -980 2180 -940 {lab=VSSI}
N 2040 -1070 2140 -1070 {lab=ZERO2}
N 2040 -1160 2040 -1070 {lab=ZERO2}
N 1960 -1160 2040 -1160 {lab=ZERO2}
N 1850 -1160 1880 -1160 {lab=#net3}
N 1850 -1340 1850 -1160 {lab=#net3}
N 1850 -1340 2370 -1340 {lab=#net3}
N 2180 -1160 2370 -1160 {lab=#net3}
N 2180 -1200 2180 -1160 {lab=#net3}
N 2040 -1230 2040 -1160 {lab=ZERO2}
N 2370 -1340 2370 -1160 {lab=#net3}
N 2180 -1160 2180 -1100 {lab=#net3}
N 2370 -840 2370 -710 {lab=SAOUT}
N 2040 -1230 2140 -1230 {lab=ZERO2}
N 1930 -800 2000 -800 {lab=SAOUTF}
N 1930 -510 2000 -510 {lab=SAOUTF}
N 1550 -710 1790 -710 {lab=SAOUTF}
N 2040 -710 2370 -710 {lab=SAOUT}
N 1930 -800 1930 -710 {lab=SAOUTF}
N 2040 -770 2040 -710 {lab=SAOUT}
N 1550 -770 1550 -710 {lab=SAOUTF}
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}
N 650 -650 750 -650 {lab=SP}
N 750 -650 750 -620 {lab=SP}
N 550 -650 650 -650 {lab=SP}
N 550 -590 580 -590 {lab=VCC}
N 520 -460 550 -460 {lab=VSS}
N 750 -460 780 -460 {lab=VSS}
N 590 -460 710 -460 {lab=GP}
N 590 -510 590 -460 {lab=GP}
N 550 -510 590 -510 {lab=GP}
N 550 -560 550 -510 {lab=GP}
N 750 -560 750 -490 {lab=OUTDIFF}
N 750 -430 750 -410 {lab=VSSI}
N 550 -410 750 -410 {lab=VSSI}
N 550 -430 550 -410 {lab=VSSI}
N 620 -370 650 -370 {lab=VSSI}
N 650 -410 650 -370 {lab=VSSI}
N 660 -780 690 -780 {lab=VCC}
N 660 -680 660 -650 {lab=SP}
N 660 -830 660 -810 {lab=VCC}
N 750 -520 810 -520 {lab=OUTDIFF}
N 660 -750 660 -740 {lab=#net4}
N 550 -510 550 -490 {
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}
N 1300 -1160 1300 -900 {lab=#net1}
N 1790 -1160 1790 -900 {lab=#net2}
N 2370 -1160 2370 -900 {lab=#net3}
N 570 -780 620 -780 {
lab=GP}
N 990 -510 1030 -510 {
lab=GN}
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 }
@ -245,19 +292,19 @@ 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}
C {opin.sym} 130 -900 0 0 { name=p116 lab=SAOUT }
C {opin.sym} 230 -900 0 0 { name=p116 lab=SAOUT }
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
xxplace=end
value="* .option SCALE=1e-6
.option method=gear $$ seed=12
.option method=gear
.param VCC=0.9
.param VDL='VCC/2+0.2'
.param ABSVAR=0.05
.temp 25
.param RNDVAL = 'agauss(0, 10, 1)'
** 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'
@ -272,16 +319,18 @@ value="* .option SCALE=1e-6
* .tran 0.1n 900n uic
.control
setseed 17
reset
echo Seed=$rndseed
let run=1
dowhile run <= 10
dowhile run <= 100
if run > 1
reset
set appendwrite
reset
end
* save saout cal i(vvcc) en plus minus saoutf outdiff
save all
tran 0.1n 900n uic
tran 0.3n 900n uic
write autozero_comp.raw
let run = run + 1
end
@ -297,146 +346,133 @@ C {inv-2.sym} 160 -700 0 0 {name=x5 m=1
+ 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}
C {lab_pin.sym} 190 -1180 0 1 {name=p283 lab=VSS}
C {lab_pin.sym} 120 -1180 0 0 {name=l56 lab=EN}
C {lab_pin.sym} 160 -1130 0 0 {name=p284 lab=VSS}
C {lab_pin.sym} 160 -1230 0 0 {name=p199 lab=VSSI}
C {nmos4-v.sym} 140 -1180 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} 160 -1120 0 0 {name=c38 value=2p}
C {passgate.sym} 860 -1260 0 1 {name=x1 m=1
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}
C {passgate.sym} 940 -1160 0 1 {name=x1 m=1
+ wn=0.4u ln=0.13u
+ wp=0.4u lp=0.13u
+ VCCBPIN=VCC VSSBPIN=VSS extra="delvto='agauss(0,ABSVAR,3)'"}
C {lab_pin.sym} 860 -1290 0 1 {name=l19 sig_type=std_logic lab=CALB}
C {lab_pin.sym} 860 -1230 0 1 {name=l44 sig_type=std_logic lab=CALBB}
C {nmos4-v.sym} 1100 -1100 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} 1150 -1100 0 1 {name=p179 lab=VSS}
C {pmos4-v.sym} 1100 -1330 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} 1150 -1330 0 1 {name=p180 lab=VCC}
C {lab_pin.sym} 1090 -1400 0 0 {name=p181 lab=VCC}
C {lab_pin.sym} 1090 -970 0 0 {name=p182 lab=VSSI}
C {passgate.sym} 1350 -1260 0 1 {name=x2 m=1
C {lab_pin.sym} 940 -1190 0 1 {name=l19 sig_type=std_logic lab=CALB}
C {lab_pin.sym} 940 -1130 0 1 {name=l44 sig_type=std_logic lab=CALBB}
C {nmos4-v.sym} 1180 -1070 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 -1070 0 1 {name=p179 lab=VSS}
C {pmos4-v.sym} 1180 -1230 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 -1230 0 1 {name=p180 lab=VCC}
C {lab_pin.sym} 1170 -1300 0 0 {name=p181 lab=VCC}
C {lab_pin.sym} 1170 -940 0 0 {name=p182 lab=VSSI}
C {passgate.sym} 1430 -1160 0 1 {name=x2 m=1
+ wn=0.4u ln=0.13u
+ wp=0.4u lp=0.13u
+ VCCBPIN=VCC VSSBPIN=VSS extra="delvto='agauss(0,ABSVAR,3)'"}
C {lab_pin.sym} 1350 -1290 0 1 {name=l45 sig_type=std_logic lab=CALB}
C {lab_pin.sym} 1350 -1230 0 1 {name=l46 sig_type=std_logic lab=CALBB}
C {nmos4-v.sym} 1590 -1100 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} 1640 -1100 0 1 {name=p183 lab=VSS}
C {pmos4-v.sym} 1590 -1330 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} 1640 -1330 0 1 {name=p184 lab=VCC}
C {lab_pin.sym} 1580 -1400 0 0 {name=p185 lab=VCC}
C {lab_pin.sym} 1580 -970 0 0 {name=p186 lab=VSSI}
C {lab_pin.sym} 1470 -1320 0 0 {name=l47 lab=ZERO1}
C {lab_pin.sym} 980 -1320 0 0 {name=l48 lab=ZERO0}
C {nmos4-v.sym} 870 -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} 1110 -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} 920 -640 0 1 {name=p187 lab=VSS}
C {lab_pin.sym} 1060 -640 0 0 {name=p188 lab=VSS}
C {pmos4-v.sym} 1070 -800 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} 1120 -800 0 1 {name=p189 lab=VCC}
C {pmos4-v.sym} 910 -800 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} 860 -800 0 0 {name=p190 lab=VCC}
C {nmos4-v.sym} 970 -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} 1020 -510 0 1 {name=p191 lab=VSS}
C {lab_pin.sym} 990 -880 0 0 {name=p192 lab=VCC}
C {lab_pin.sym} 960 -380 0 0 {name=p193 lab=VSSI}
C {nmos4-v.sym} 1450 -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} 1500 -510 0 1 {name=p194 lab=VSS}
C {pmos4-v.sym} 1450 -800 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} 1500 -800 0 1 {name=p195 lab=VCC}
C {lab_pin.sym} 1440 -870 0 0 {name=p196 lab=VCC}
C {lab_pin.sym} 1440 -380 0 0 {name=p197 lab=VSSI}
C {lab_pin.sym} 1710 -750 0 0 {name=l49 lab=SAOUTF}
C {parax_cap.sym} 1540 -700 0 0 {name=c3 value=4f}
C {lab_pin.sym} 1220 -750 0 0 {name=l51 lab=OUTDIFF}
C {lab_pin.sym} 990 -570 0 0 {name=l52 lab=SN}
C {lab_pin.sym} 930 -770 0 1 {name=l53 lab=GN}
C {parax_cap.sym} 980 -790 0 0 {name=c5 value=4f}
C {parax_cap.sym} 910 -580 0 0 {name=c30 value=2f}
C {parax_cap.sym} 1180 -700 0 0 {name=c31 value=4f}
C {lab_pin.sym} 950 -510 0 0 {name=p198 lab=GN}
C {lab_pin.sym} 1130 -640 0 1 {name=l54 lab=PLUS}
C {lab_pin.sym} 850 -640 0 0 {name=l55 lab=MINUS}
C {ammeter.sym} 990 -450 0 0 {name=v2}
C {ammeter.sym} 1470 -450 0 0 {name=v3}
C {ammeter.sym} 1610 -1040 0 0 {name=v4}
C {ammeter.sym} 1120 -1040 0 0 {name=v6}
C {nmos4-v.sym} 1940 -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} 1990 -510 0 1 {name=p9 lab=VSS}
C {pmos4-v.sym} 1940 -800 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} 1990 -800 0 1 {name=p10 lab=VCC}
C {lab_pin.sym} 1930 -870 0 0 {name=p11 lab=VCC}
C {lab_pin.sym} 1930 -380 0 0 {name=p12 lab=VSSI}
C {parax_cap.sym} 2030 -700 0 0 {name=c1 value=4f}
C {ammeter.sym} 1960 -450 0 0 {name=v1}
C {lab_pin.sym} 2290 -710 0 1 {name=l3 lab=SAOUT}
C {passgate.sym} 1840 -1260 0 1 {name=x3 m=1
C {lab_pin.sym} 1430 -1190 0 1 {name=l45 sig_type=std_logic lab=CALB}
C {lab_pin.sym} 1430 -1130 0 1 {name=l46 sig_type=std_logic lab=CALBB}
C {nmos4-v.sym} 1670 -1070 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 -1070 0 1 {name=p183 lab=VSS}
C {pmos4-v.sym} 1670 -1230 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 -1230 0 1 {name=p184 lab=VCC}
C {lab_pin.sym} 1660 -1300 0 0 {name=p185 lab=VCC}
C {lab_pin.sym} 1660 -940 0 0 {name=p186 lab=VSSI}
C {lab_pin.sym} 1550 -1220 0 0 {name=l47 lab=ZERO1}
C {lab_pin.sym} 1060 -1220 0 0 {name=l48 lab=ZERO0}
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}
C {pmos4-v.sym} 1150 -800 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 -800 0 1 {name=p189 lab=VCC}
C {pmos4-v.sym} 990 -800 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 -800 0 0 {name=p190 lab=VCC}
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}
C {lab_pin.sym} 1070 -880 0 0 {name=p192 lab=VCC}
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}
C {pmos4-v.sym} 1530 -800 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 -800 0 1 {name=p195 lab=VCC}
C {lab_pin.sym} 1520 -870 0 0 {name=p196 lab=VCC}
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}
C {lab_pin.sym} 1010 -770 0 1 {name=l53 lab=GN}
C {parax_cap.sym} 1060 -790 0 0 {name=c5 value=4f}
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}
C {ammeter.sym} 1690 -1010 0 0 {name=v4}
C {ammeter.sym} 1200 -1010 0 0 {name=v6}
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}
C {pmos4-v.sym} 2020 -800 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 -800 0 1 {name=p10 lab=VCC}
C {lab_pin.sym} 2010 -870 0 0 {name=p11 lab=VCC}
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}
C {passgate.sym} 1920 -1160 0 1 {name=x3 m=1
+ wn=0.4u ln=0.13u
+ wp=0.4u lp=0.13u
+ VCCBPIN=VCC VSSBPIN=VSS extra="delvto='agauss(0,ABSVAR,3)'"}
C {lab_pin.sym} 1840 -1290 0 1 {name=l5 sig_type=std_logic lab=CALB}
C {lab_pin.sym} 1840 -1230 0 1 {name=l6 sig_type=std_logic lab=CALBB}
C {nmos4-v.sym} 2080 -1100 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} 2130 -1100 0 1 {name=p13 lab=VSS}
C {pmos4-v.sym} 2080 -1330 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} 2130 -1330 0 1 {name=p14 lab=VCC}
C {lab_pin.sym} 2070 -1400 0 0 {name=p16 lab=VCC}
C {lab_pin.sym} 2070 -970 0 0 {name=p17 lab=VSSI}
C {lab_pin.sym} 1960 -1320 0 0 {name=l8 lab=ZERO2}
C {ammeter.sym} 2100 -1040 0 0 {name=v5}
C {pmos4-v.sym} 2160 -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} 2210 -810 0 1 {name=p18 lab=VCC}
C {lab_pin.sym} 2150 -880 0 0 {name=p19 lab=VCC}
C {lab_pin.sym} 2140 -810 0 0 {name=l2 lab=EN}
C {pmos4-v.sym} 640 -680 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} 590 -680 0 0 {name=p20 lab=VCC}
C {pmos4-v.sym} 400 -680 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} 450 -680 0 1 {name=p21 lab=VCC}
C {lab_pin.sym} 390 -550 0 0 {name=p22 lab=VSS}
C {lab_pin.sym} 650 -550 0 1 {name=p23 lab=VSS}
C {lab_pin.sym} 490 -460 0 0 {name=p24 lab=VSSI}
C {pmos4-v.sym} 510 -810 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} 560 -810 0 1 {name=p25 lab=VCC}
C {lab_pin.sym} 530 -860 0 0 {name=p26 lab=VCC}
C {lab_pin.sym} 490 -810 0 0 {name=l7 lab=GP}
C {lab_pin.sym} 460 -580 0 1 {name=l9 lab=GP}
C {lab_pin.sym} 380 -680 0 0 {name=l10 lab=MINUS}
C {lab_pin.sym} 660 -680 0 1 {name=l11 lab=PLUS}
C {lab_pin.sym} 680 -610 0 1 {name=l12 lab=OUTDIFF}
C {nmos4-v.sym} 600 -550 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} 440 -550 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} 500 -540 0 0 {name=c2 value=4f}
C {lab_pin.sym} 530 -760 0 0 {name=l13 lab=SP}
C {lab_pin.sym} 1920 -1190 0 1 {name=l5 sig_type=std_logic lab=CALB}
C {lab_pin.sym} 1920 -1130 0 1 {name=l6 sig_type=std_logic lab=CALBB}
C {nmos4-v.sym} 2160 -1070 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 -1070 0 1 {name=p13 lab=VSS}
C {pmos4-v.sym} 2160 -1230 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 -1230 0 1 {name=p14 lab=VCC}
C {lab_pin.sym} 2150 -1300 0 0 {name=p16 lab=VCC}
C {lab_pin.sym} 2150 -940 0 0 {name=p17 lab=VSSI}
C {lab_pin.sym} 2040 -1220 0 0 {name=l8 lab=ZERO2}
C {ammeter.sym} 2180 -1010 0 0 {name=v5}
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}
C {lab_pin.sym} 520 -460 0 0 {name=p22 lab=VSS}
C {lab_pin.sym} 780 -460 0 1 {name=p23 lab=VSS}
C {lab_pin.sym} 620 -370 0 0 {name=p24 lab=VSSI}
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}
C {lab_pin.sym} 550 -530 0 1 {name=l9 lab=GP}
C {lab_pin.sym} 490 -590 0 0 {name=l10 lab=MINUS}
C {lab_pin.sym} 810 -590 0 1 {name=l11 lab=PLUS}
C {lab_pin.sym} 810 -520 0 1 {name=l12 lab=OUTDIFF}
C {nmos4-v.sym} 730 -460 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 -460 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 -450 0 0 {name=c2 value=4f}
C {lab_pin.sym} 660 -670 0 0 {name=l13 lab=SP}
C {launcher.sym} 930 -260 0 0 {name=h2
descr="Simulate"
tclcommand="xschem netlist; xschem simulate"}
C {parax_cap.sym} 980 -1090 0 0 {name=c4 value=5f}
C {parax_cap.sym} 1470 -1090 0 0 {name=c6 value=5f}
C {parax_cap.sym} 1960 -1090 0 0 {name=c7 value=5f}
C {launcher.sym} 315 -1415 0 0 {name=h1
C {parax_cap.sym} 1060 -1060 0 0 {name=c4 value=5f}
C {parax_cap.sym} 1550 -1060 0 0 {name=c6 value=5f}
C {parax_cap.sym} 2040 -1060 0 0 {name=c7 value=5f}
C {launcher.sym} 65 -1075 0 0 {name=h1
descr="Select arrow and
Ctrl-Left-Click to load/unload waveforms"
Ctrl-Left-Click to
load/unload waveforms"
tclcommand="
xschem raw_read $netlist_dir/[file tail [file rootname [xschem get current_name]]].raw
"
}
C {ngspice_probe.sym} 890 -700 0 0 {name=r1}
C {ngspice_probe.sym} 660 -680 0 0 {name=r1}
C {ngspice_probe.sym} 380 -680 0 1 {name=r1}
C {ngspice_probe.sym} 1130 -640 0 0 {name=r1}
C {ngspice_probe.sym} 850 -640 0 1 {name=r2}
C {ngspice_probe.sym} 1000 -590 0 0 {name=r1}
C {ngspice_probe.sym} 1260 -710 0 0 {name=r1}
C {ngspice_probe.sym} 1600 -710 0 0 {name=r1}
C {ngspice_probe.sym} 2100 -710 0 0 {name=r1}
C {ngspice_probe.sym} 1610 -1390 0 0 {name=r1}
C {ngspice_probe.sym} 1470 -1200 0 0 {name=r1}
C {ngspice_probe.sym} 980 -1200 0 0 {name=r1}
C {ngspice_probe.sym} 1040 -860 0 0 {name=r1}
C {ngspice_probe.sym} 530 -860 0 0 {name=r1}
C {ngspice_probe.sym} 200 -570 0 0 {name=r1}
C {ngspice_probe.sym} 120 -570 0 1 {name=r1}
C {ngspice_probe.sym} 200 -700 0 0 {name=r1}
C {ngspice_probe.sym} 120 -470 0 0 {name=r1}
C {ngspice_probe.sym} 1960 -1200 0 0 {name=r1}
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}
C {test_generators.sym} 480 -500 0 0 {name=x28}

View File

@ -0,0 +1,11 @@
v {xschem version=3.4.5 file_version=1.2}
K {type=subcircuit
format="@name @pinlist @symname"
template="name=x1"
}
T {@symname} -76.5 -6 0 0 0.3 0.3 {}
T {@name} 135 -22 0 0 0.2 0.2 {}
L 4 -130 -10 130 -10 {}
L 4 -130 10 130 10 {}
L 4 -130 -10 -130 10 {}
L 4 130 -10 130 10 {}