refactoring of netlister code
This commit is contained in:
parent
945a26c8f6
commit
6be0fc392b
|
|
@ -15,28 +15,27 @@
|
|||
#### XSCHEM SYSTEM-WIDE DESIGN LIBRARY PATHS: XSCHEM_LIBRARY_PATH
|
||||
###########################################################################
|
||||
#### If unset xschem starts with XSCHEM_LIBRARY_PATH set to the default, typically:
|
||||
# /home/schippes/.xschem/xschem_library
|
||||
# /home/schippes/share/xschem/xschem_library/devices
|
||||
# /home/schippes/share/doc/xschem/examples
|
||||
# /home/schippes/share/doc/xschem/ngspice
|
||||
# /home/schippes/share/doc/xschem/logic
|
||||
# /home/schippes/share/doc/xschem/xschem_simulator
|
||||
# /home/schippes/share/doc/xschem/binto7seg
|
||||
# /home/schippes/share/doc/xschem/pcb
|
||||
# /home/schippes/share/doc/xschem/rom8k
|
||||
#### /home/schippes/.xschem/xschem_library
|
||||
#### /home/schippes/share/xschem/xschem_library/devices
|
||||
#### /home/schippes/share/doc/xschem/examples
|
||||
#### /home/schippes/share/doc/xschem/ngspice
|
||||
#### /home/schippes/share/doc/xschem/logic
|
||||
#### /home/schippes/share/doc/xschem/xschem_simulator
|
||||
#### /home/schippes/share/doc/xschem/binto7seg
|
||||
#### /home/schippes/share/doc/xschem/pcb
|
||||
#### /home/schippes/share/doc/xschem/rom8k
|
||||
|
||||
#### For testing in build src directory
|
||||
#### if unset following paths are set and maintained if existing:
|
||||
#
|
||||
# ~/.xschem/xschem_library
|
||||
# ../xschem_library/devices
|
||||
# ../xschem_library/examples
|
||||
# ../xschem_library/ngspice
|
||||
# ../xschem_library/logic
|
||||
# ../xschem_library/xschem_simulator
|
||||
# ../xschem_library/binto7seg
|
||||
# ../xschem_library/pcb
|
||||
# ../xschem_library/rom8k
|
||||
#### ~/.xschem/xschem_library
|
||||
#### ../xschem_library/devices
|
||||
#### ../xschem_library/examples
|
||||
#### ../xschem_library/ngspice
|
||||
#### ../xschem_library/logic
|
||||
#### ../xschem_library/xschem_simulator
|
||||
#### ../xschem_library/binto7seg
|
||||
#### ../xschem_library/pcb
|
||||
#### ../xschem_library/rom8k
|
||||
|
||||
#### For testing after installation: uncomment following lines
|
||||
# set xschem_doc_dir [file dirname ${XSCHEM_SHAREDIR}]/doc/xschem
|
||||
|
|
@ -185,6 +184,11 @@
|
|||
#### editing a new component if clicking on a new component.
|
||||
#### default: enabled (1)
|
||||
# set autofocus_mainwindow 0
|
||||
|
||||
#### set component browser always above drawing canvas.
|
||||
#### default: enabled (1)
|
||||
# set component_browser_on_top 0
|
||||
|
||||
###########################################################################
|
||||
#### EXPORT FORMAT TRANSLATORS, PNG AND PDF
|
||||
###########################################################################
|
||||
|
|
@ -342,40 +346,40 @@ set editor {notepad.exe}
|
|||
###########################################################################
|
||||
#### TABBED WINDOWS
|
||||
###########################################################################
|
||||
# default: not enabled. Interface can be changed runtime if only one window
|
||||
# or tab is open.
|
||||
#### default: not enabled. Interface can be changed runtime if only one window
|
||||
#### or tab is open.
|
||||
# set tabbed_interface 1
|
||||
|
||||
###########################################################################
|
||||
#### CASE INSENSITIVE SYMBOL LOOKUP
|
||||
###########################################################################
|
||||
## this option might be useful on filesystems that are case insensitive and
|
||||
## on designs ported from windows where case of file names does not matter.
|
||||
## if this option is set symbol lookup will be case insensitive,
|
||||
## so a symbol reference 'AMPLI.SYM' will match with 'ampli.sym' or
|
||||
## Amply.sym on disk. File system must be case insensitive for this to work,
|
||||
## like FAT32 or NTFS.
|
||||
## Do not set this option if you don't know what you are doing.
|
||||
## Default: not enabled (0)
|
||||
#### this option might be useful on filesystems that are case insensitive and
|
||||
#### on designs ported from windows where case of file names does not matter.
|
||||
#### if this option is set symbol lookup will be case insensitive,
|
||||
#### so a symbol reference 'AMPLI.SYM' will match with 'ampli.sym' or
|
||||
#### Amply.sym on disk. File system must be case insensitive for this to work,
|
||||
#### like FAT32 or NTFS.
|
||||
#### Do not set this option if you don't know what you are doing.
|
||||
#### Default: not enabled (0)
|
||||
# set case_insensitive 1
|
||||
|
||||
###########################################################################
|
||||
#### SHOW HIDDEN TEXTS
|
||||
###########################################################################
|
||||
## This option shows text objects even if they have attribute 'hide=true' set
|
||||
## default: 0 (not set)
|
||||
#### This option shows text objects even if they have attribute 'hide=true' set
|
||||
#### default: 0 (not set)
|
||||
# set show_hidden_texts 1
|
||||
|
||||
###########################################################################
|
||||
#### HIDE GRAPHS IF NO SPICE DATA LOADED
|
||||
###########################################################################
|
||||
## if enabled graphs will be hidden if no data is loaded.
|
||||
## default: not enabled (0)
|
||||
#### if enabled graphs will be hidden if no data is loaded.
|
||||
#### default: not enabled (0)
|
||||
# set hide_empty_graphs 0
|
||||
|
||||
###########################################################################
|
||||
#### LIVE BACKANNOTATION OF DATA AT CURSOR 2 (B) POSITION
|
||||
###########################################################################
|
||||
## if enabled will backannotate values in schematic at cursor 'b' position
|
||||
## in graph. Default: not enabled (0)
|
||||
#### if enabled will backannotate values in schematic at cursor 'b' position
|
||||
#### in graph. Default: not enabled (0)
|
||||
# set live_cursor2_backannotate 1
|
||||
|
|
@ -1131,9 +1131,12 @@ int callback(const char *winpath, int event, int mx, int my, KeySym key,
|
|||
xctx->mousey=Y_TO_XSCHEM(my);
|
||||
xctx->mousex_snap=my_round(xctx->mousex / c_snap) * c_snap;
|
||||
xctx->mousey_snap=my_round(xctx->mousey / c_snap) * c_snap;
|
||||
my_snprintf(str, S(str), "mouse = %.16g %.16g - selected: %d path: %s",
|
||||
xctx->mousex_snap, xctx->mousey_snap, xctx->lastsel, xctx->sch_path[xctx->currsch] );
|
||||
statusmsg(str,1);
|
||||
|
||||
if(abs(mx-xctx->mx_save) > 8 || abs(my-xctx->my_save) > 8 ) {
|
||||
my_snprintf(str, S(str), "mouse = %.16g %.16g - selected: %d path: %s",
|
||||
xctx->mousex_snap, xctx->mousey_snap, xctx->lastsel, xctx->sch_path[xctx->currsch] );
|
||||
statusmsg(str,1);
|
||||
}
|
||||
|
||||
switch(event)
|
||||
{
|
||||
|
|
@ -1201,12 +1204,14 @@ int callback(const char *winpath, int event, int mx, int my, KeySym key,
|
|||
#endif
|
||||
if(xctx->semaphore >= 2) break;
|
||||
if(xctx->ui_state) {
|
||||
my_snprintf(str, S(str), "mouse = %.16g %.16g - selected: %d w=%.16g h=%.16g",
|
||||
xctx->mousex_snap, xctx->mousey_snap,
|
||||
xctx->lastsel ,
|
||||
xctx->mousex_snap-xctx->mx_double_save, xctx->mousey_snap-xctx->my_double_save
|
||||
);
|
||||
statusmsg(str,1);
|
||||
if(abs(mx-xctx->mx_save) > 8 || abs(my-xctx->my_save) > 8 ) {
|
||||
my_snprintf(str, S(str), "mouse = %.16g %.16g - selected: %d w=%.16g h=%.16g",
|
||||
xctx->mousex_snap, xctx->mousey_snap,
|
||||
xctx->lastsel ,
|
||||
xctx->mousex_snap-xctx->mx_double_save, xctx->mousey_snap-xctx->my_double_save
|
||||
);
|
||||
statusmsg(str,1);
|
||||
}
|
||||
}
|
||||
if(xctx->ui_state & STARTZOOM) zoom_rectangle(RUBBER);
|
||||
if(xctx->ui_state & STARTSELECT && !(xctx->ui_state & (PLACE_SYMBOL | STARTPAN | PLACE_TEXT)) ) {
|
||||
|
|
|
|||
13
src/check.c
13
src/check.c
|
|
@ -381,10 +381,8 @@ void trim_wires(void)
|
|||
void break_wires_at_pins(void)
|
||||
{
|
||||
int k, i, j, r, rects, sqx, sqy;
|
||||
short rot, flip;
|
||||
Wireentry *wptr;
|
||||
xRect *rct;
|
||||
double x0, y0, rx1, ry1;
|
||||
double x0, y0;
|
||||
int changed=0;
|
||||
|
||||
hash_wires();
|
||||
|
|
@ -398,14 +396,7 @@ void break_wires_at_pins(void)
|
|||
{
|
||||
for(r=0;r<rects;r++)
|
||||
{
|
||||
rct=(xctx->inst[k].ptr+ xctx->sym)->rect[PINLAYER];
|
||||
x0=(rct[r].x1+rct[r].x2)/2;
|
||||
y0=(rct[r].y1+rct[r].y2)/2;
|
||||
rot=xctx->inst[k].rot;
|
||||
flip=xctx->inst[k].flip;
|
||||
ROTATION(rot, flip, 0.0,0.0,x0,y0,rx1,ry1);
|
||||
x0=xctx->inst[k].x0+rx1;
|
||||
y0=xctx->inst[k].y0+ry1;
|
||||
get_inst_pin_coord(k, r, &x0, &y0);
|
||||
get_square(x0, y0, &sqx, &sqy);
|
||||
for(wptr=xctx->wire_spatial_table[sqx][sqy]; wptr; wptr=wptr->next) {
|
||||
i = wptr->n;
|
||||
|
|
|
|||
|
|
@ -51,8 +51,14 @@ vhdl_netlist.c \
|
|||
xinit.c \
|
||||
| sort -n \
|
||||
| awk '{
|
||||
if(n>0 && $1 <= prev) print ">>>>>>>>>>> ERROR >>>>>>>>>"
|
||||
else if(n++>0 && $1 != prev+1) print ">>>>>>>>>>>>>>>>>>>>>>>>>>>"
|
||||
if(n>0 && $1 <= prev) print ">>>>>>>>>>> ERROR >>>>>>>>> " $0
|
||||
else if(n++>0 && $1 != prev+1) {
|
||||
if($1-1 > prev+1)
|
||||
print ">>>>>>>>>>> FREE >>>>>>>>> " prev+1 ":" $1-1
|
||||
else
|
||||
print ">>>>>>>>>>> FREE >>>>>>>>> " $1-1
|
||||
|
||||
print
|
||||
} else print
|
||||
prev = $1
|
||||
print
|
||||
}'
|
||||
|
|
|
|||
1105
src/netlist.c
1105
src/netlist.c
File diff suppressed because it is too large
Load Diff
|
|
@ -43,9 +43,11 @@ static Node_hashentry *node_hash_lookup(const char *token, const char *dir,int w
|
|||
dbg(3, "node_hash_lookup(): called with: %s dir=%s what=%d port=%d\n",
|
||||
token, dir, what, port);
|
||||
d.in=d.out=d.inout=0;
|
||||
if(!strcmp(dir,"in") ) d.in=1;
|
||||
else if(!strcmp(dir,"out") ) d.out=1;
|
||||
else if(!strcmp(dir,"inout") ) d.inout=1;
|
||||
if(dir) {
|
||||
if(!strcmp(dir,"in") ) d.in=1;
|
||||
else if(!strcmp(dir,"out") ) d.out=1;
|
||||
else if(!strcmp(dir,"inout") ) d.inout=1;
|
||||
}
|
||||
d.port=port;
|
||||
hashcode=str_hash(token);
|
||||
index=hashcode % HASHSIZE;
|
||||
|
|
|
|||
23
src/select.c
23
src/select.c
|
|
@ -45,18 +45,11 @@ static void check_connected_wire(int stop_at_junction, int n)
|
|||
k = instptr->n;
|
||||
type = (xctx->inst[k].ptr+ xctx->sym)->type;
|
||||
if( type && (IS_LABEL_SH_OR_PIN(type) || !strcmp(type, "probe") || !strcmp(type, "ngprobe"))) {
|
||||
double rx1, ry1, x0, y0;
|
||||
int rot, flip;
|
||||
double x0, y0;
|
||||
xRect *rct;
|
||||
rct=(xctx->inst[k].ptr+ xctx->sym)->rect[PINLAYER];
|
||||
if(rct) {
|
||||
x0=(rct[0].x1+rct[0].x2)/2;
|
||||
y0=(rct[0].y1+rct[0].y2)/2;
|
||||
rot=xctx->inst[k].rot;
|
||||
flip=xctx->inst[k].flip;
|
||||
ROTATION(rot, flip, 0.0,0.0,x0,y0,rx1,ry1);
|
||||
x0=xctx->inst[k].x0+rx1;
|
||||
y0=xctx->inst[k].y0+ry1;
|
||||
get_inst_pin_coord(k, 0, &x0, &y0);
|
||||
touches = touch(wire[n].x1, wire[n].y1, wire[n].x2, wire[n].y2, x0, y0);
|
||||
if(touches) {
|
||||
xctx->need_reb_sel_arr=1;
|
||||
|
|
@ -106,19 +99,13 @@ void select_connected_wires(int stop_at_junction)
|
|||
case ELEMENT:
|
||||
type = (xctx->inst[i].ptr+ xctx->sym)->type;
|
||||
if( type && (IS_LABEL_SH_OR_PIN(type) || !strcmp(type, "probe") || !strcmp(type, "ngprobe"))) {
|
||||
double rx1, ry1, x0, y0;
|
||||
int rot, flip, sqx, sqy;
|
||||
double x0, y0;
|
||||
int sqx, sqy;
|
||||
xRect *rct;
|
||||
Wireentry *wptr;
|
||||
rct = (xctx->inst[i].ptr+ xctx->sym)->rect[PINLAYER];
|
||||
if(rct) {
|
||||
x0 = (rct[0].x1 + rct[0].x2) / 2;
|
||||
y0 = (rct[0].y1 + rct[0].y2) / 2;
|
||||
rot = xctx->inst[i].rot;
|
||||
flip = xctx->inst[i].flip;
|
||||
ROTATION(rot, flip, 0.0,0.0,x0,y0,rx1,ry1);
|
||||
x0 = xctx->inst[i].x0+rx1;
|
||||
y0 = xctx->inst[i].y0+ry1;
|
||||
get_inst_pin_coord(i, 0, &x0, &y0);
|
||||
get_square(x0, y0, &sqx, &sqy);
|
||||
wptr = xctx->wire_spatial_table[sqx][sqy];
|
||||
while (wptr) {
|
||||
|
|
|
|||
|
|
@ -1122,6 +1122,7 @@ extern int text_bbox(const char * str,double xscale, double yscale,
|
|||
extern int get_color(int value);
|
||||
extern void incr_hilight_color(void);
|
||||
extern void hash_inst(int what, int n);
|
||||
extern void get_inst_pin_coord(int i, int j, double *x, double *y);
|
||||
extern void del_inst_table(void);
|
||||
extern void hash_wires(void);
|
||||
extern void hash_wire(int what, int n, int incremental);
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ end}
|
|||
S {}
|
||||
E {}
|
||||
C {title.sym} 160 -30 0 0 {name=l1 author="Stefan Schippers"}
|
||||
C {ipin.sym} 210 -220 0 0 {name=p1 lab=A}
|
||||
C {ipin.sym} 210 -220 0 0 {name=p1 lab=A[3:0]}
|
||||
C {ipin.sym} 210 -190 0 0 {name=p3 lab=B}
|
||||
C {opin.sym} 520 -240 0 0 {name=p4 lab=Z}
|
||||
C {ipin.sym} 210 -260 0 0 {name=p5 lab=RST}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,8 @@
|
|||
v {xschem version=3.0.0 file_version=1.2 }
|
||||
v {xschem version=3.1.0 file_version=1.2
|
||||
}
|
||||
G {}
|
||||
K {type=subcircuit
|
||||
format="@name @@A @@B @@CK @@RST @@Z @symname"
|
||||
format="@name @@A[3:0] @@B @@CK @@RST @@Z @symname"
|
||||
template="name=x1"
|
||||
}
|
||||
V {}
|
||||
|
|
@ -38,10 +39,10 @@ L 4 135 10 140 5 {}
|
|||
L 4 135 10 140 15 {}
|
||||
L 4 135 45 140 50 {}
|
||||
L 4 135 55 140 50 {}
|
||||
B 5 -152.5 -12.5 -147.5 -7.5 {name=A dir=in }
|
||||
B 5 -152.5 -12.5 -147.5 -7.5 {name=A[3:0] dir=in }
|
||||
B 5 -152.5 7.5 -147.5 12.5 {name=B dir=in }
|
||||
B 5 147.5 47.5 152.5 52.5 {name=Z dir=out }
|
||||
B 5 147.5 -12.5 152.5 -7.5 {name=A dir=in }
|
||||
B 5 147.5 -12.5 152.5 -7.5 {name=A[3:0] dir=in }
|
||||
B 5 -152.5 -32.5 -147.5 -27.5 {name=CK dir=in }
|
||||
B 5 147.5 -32.5 152.5 -27.5 {name=CK dir=in }
|
||||
B 5 -152.5 -52.5 -147.5 -47.5 {name=RST dir=in }
|
||||
|
|
@ -49,8 +50,8 @@ B 5 147.5 -52.5 152.5 -47.5 {name=RST dir=in }
|
|||
B 5 147.5 7.5 152.5 12.5 {name=B dir=in }
|
||||
T {@symname} -58.5 -6 0 0 0.3 0.3 {}
|
||||
T {@name} 105 -72 0 0 0.2 0.2 {}
|
||||
T {A} 125 -14 0 1 0.2 0.2 {}
|
||||
T {A} -125 -14 0 0 0.2 0.2 {}
|
||||
T {A[3:0]} 125 -14 0 1 0.2 0.2 {}
|
||||
T {A[3:0]} -125 -14 0 0 0.2 0.2 {}
|
||||
T {Z} 125 46 0 1 0.2 0.2 {}
|
||||
T {B} -125 6 0 0 0.2 0.2 {}
|
||||
T {CK} -125 -34 0 0 0.2 0.2 {}
|
||||
|
|
@ -58,3 +59,12 @@ T {CK} 125 -34 0 1 0.2 0.2 {}
|
|||
T {RST} -125 -54 0 0 0.2 0.2 {}
|
||||
T {RST} 125 -54 0 1 0.2 0.2 {}
|
||||
T {B} 125 6 0 1 0.2 0.2 {}
|
||||
T {@#6:net_name} -127.5 -61.25 0 0 0.15 0.15 {layer=15}
|
||||
T {@#4:net_name} -127.5 -41.25 0 0 0.15 0.15 {layer=15}
|
||||
T {@#0:net_name} -127.5 -21.25 0 0 0.15 0.15 {layer=15}
|
||||
T {@#1:net_name} -127.5 -1.25 0 0 0.15 0.15 {layer=15}
|
||||
T {@#7:net_name} 127.5 -61.25 0 1 0.15 0.15 {layer=15}
|
||||
T {@#5:net_name} 127.5 -41.25 0 1 0.15 0.15 {layer=15}
|
||||
T {@#3:net_name} 127.5 -21.25 0 1 0.15 0.15 {layer=15}
|
||||
T {@#8:net_name} 127.5 -1.25 0 1 0.15 0.15 {layer=15}
|
||||
T {@#2:net_name} 127.5 38.75 0 1 0.15 0.15 {layer=15}
|
||||
|
|
|
|||
|
|
@ -24,21 +24,13 @@ vvss vss 0 dc 0
|
|||
|
||||
.tran 1n 200n}
|
||||
E {}
|
||||
T {OK!} 500 -1020 0 0 1 1 {layer=4}
|
||||
T {OK!} 500 -1250 0 0 1 1 {layer=4}
|
||||
T {OK!} 500 -1480 0 0 1 1 {layer=4}
|
||||
T {Spice netlist allows duplicated pins on symbols} 50 -1570 0 0 1 1 {}
|
||||
T {OK!} 500 -790 0 0 1 1 {layer=4}
|
||||
T {OK!} 500 -580 0 0 1 1 {layer=4}
|
||||
T {OK!} 1320 -1160 0 0 1 1 {layer=4}
|
||||
T {OK!} 1320 -1430 0 0 1 1 {layer=4}
|
||||
T {OK!} 500 -350 0 0 1 1 {layer=4}
|
||||
N 480 -930 630 -930 {
|
||||
lab=RRSSTT}
|
||||
N 480 -910 630 -910 {
|
||||
lab=CCKK}
|
||||
N 480 -890 630 -890 {
|
||||
lab=AA}
|
||||
lab=AA[3:0]}
|
||||
N 480 -870 630 -870 {
|
||||
lab=BB}
|
||||
N 480 -830 510 -830 {
|
||||
|
|
@ -58,29 +50,29 @@ lab=RRSSTT}
|
|||
N 480 -1370 630 -1370 {
|
||||
lab=CCKK}
|
||||
N 480 -1350 630 -1350 {
|
||||
lab=AA}
|
||||
lab=AA[3:0]}
|
||||
N 480 -1330 630 -1330 {
|
||||
lab=BB}
|
||||
N 480 -720 660 -720 {
|
||||
lab=RRSSTT}
|
||||
lab=#net1}
|
||||
N 480 -700 660 -700 {
|
||||
lab=CCKK}
|
||||
lab=#net2}
|
||||
N 480 -680 660 -680 {
|
||||
lab=AA}
|
||||
lab=#net3}
|
||||
N 480 -660 660 -660 {
|
||||
lab=BB}
|
||||
lab=#net4}
|
||||
N 480 -620 510 -620 {
|
||||
lab=ZZ7}
|
||||
N 630 -620 660 -620 {
|
||||
lab=ZZ8}
|
||||
N 960 -720 1080 -720 {
|
||||
lab=RRSSTT}
|
||||
lab=#net5}
|
||||
N 960 -700 1080 -700 {
|
||||
lab=CCKK}
|
||||
lab=#net6}
|
||||
N 960 -680 1080 -680 {
|
||||
lab=AA}
|
||||
lab=#net7}
|
||||
N 960 -660 1080 -660 {
|
||||
lab=BB}
|
||||
lab=#net8}
|
||||
N 1380 -620 1410 -620 {
|
||||
lab=ZZ9}
|
||||
N 480 -510 660 -510 {
|
||||
|
|
@ -95,136 +87,215 @@ N 480 -410 510 -410 {
|
|||
lab=ZZ12}
|
||||
N 630 -410 660 -410 {
|
||||
lab=ZZ11}
|
||||
N 960 -510 1080 -510 {
|
||||
lab=#net13}
|
||||
N 960 -490 1080 -490 {
|
||||
lab=#net14}
|
||||
N 960 -470 1080 -470 {
|
||||
lab=#net15}
|
||||
N 960 -450 1080 -450 {
|
||||
lab=#net16}
|
||||
N 1380 -410 1410 -410 {
|
||||
N 1260 -410 1290 -410 {
|
||||
lab=ZZ10}
|
||||
N 1520 -990 1550 -990 {
|
||||
lab=ZZ13}
|
||||
N 1170 -1090 1220 -1090 {
|
||||
lab=RRSSTT}
|
||||
lab=#net13}
|
||||
N 1170 -1070 1220 -1070 {
|
||||
lab=CCKK}
|
||||
lab=#net14}
|
||||
N 1170 -1050 1220 -1050 {
|
||||
lab=AA}
|
||||
lab=#net15}
|
||||
N 1170 -1030 1220 -1030 {
|
||||
lab=BB}
|
||||
lab=#net16}
|
||||
N 1190 -1250 1220 -1250 {
|
||||
lab=ZZ14}
|
||||
N 1170 -1350 1220 -1350 {
|
||||
lab=RRSSTT}
|
||||
lab=#net17}
|
||||
N 1170 -1330 1220 -1330 {
|
||||
lab=CCKK}
|
||||
lab=#net18}
|
||||
N 1170 -1310 1220 -1310 {
|
||||
lab=AA}
|
||||
lab=#net19}
|
||||
N 1170 -1290 1220 -1290 {
|
||||
lab=BB}
|
||||
lab=#net20}
|
||||
N 480 -280 660 -280 {
|
||||
lab=#net25}
|
||||
lab=#net21}
|
||||
N 480 -260 660 -260 {
|
||||
lab=#net26}
|
||||
lab=#net22}
|
||||
N 480 -240 660 -240 {
|
||||
lab=#net27}
|
||||
lab=#net23}
|
||||
N 480 -220 660 -220 {
|
||||
lab=#net28}
|
||||
lab=#net24}
|
||||
N 480 -180 510 -180 {
|
||||
lab=ZZ17}
|
||||
N 630 -180 660 -180 {
|
||||
lab=ZZ16}
|
||||
N 960 -280 1080 -280 {
|
||||
lab=#net29}
|
||||
lab=#net25}
|
||||
N 960 -260 1080 -260 {
|
||||
lab=#net30}
|
||||
lab=#net26}
|
||||
N 960 -240 1080 -240 {
|
||||
lab=#net31}
|
||||
lab=#net27}
|
||||
N 960 -220 1080 -220 {
|
||||
lab=#net32}
|
||||
lab=#net28}
|
||||
N 1380 -180 1410 -180 {
|
||||
lab=ZZ15}
|
||||
N 10 -260 40 -260 {
|
||||
lab=#net33}
|
||||
lab=#net29}
|
||||
N 120 -260 180 -260 {
|
||||
lab=#net30}
|
||||
N 70 -450 100 -450 {
|
||||
lab=#net31}
|
||||
N 1260 -510 1440 -510 {
|
||||
lab=#net32}
|
||||
N 1260 -490 1440 -490 {
|
||||
lab=#net33}
|
||||
N 1260 -470 1440 -470 {
|
||||
lab=#net34}
|
||||
C {doublepin.sym} 1230 -670 0 0 {name=x9}
|
||||
C {doublepin.sym} 810 -670 0 1 {name=x8}
|
||||
C {doublepin.sym} 780 -880 0 0 {name=x2}
|
||||
C {lab_wire.sym} 550 -890 0 0 {name=l2 sig_type=std_logic lab=AA}
|
||||
N 1260 -450 1440 -450 {
|
||||
lab=#net35}
|
||||
N 1740 -310 1770 -310 {
|
||||
lab=ZZ18}
|
||||
N 1740 -410 1740 -310 {
|
||||
lab=ZZ18}
|
||||
N 2040 -310 2070 -310 {
|
||||
lab=ZZ19}
|
||||
N 2040 -410 2040 -310 {
|
||||
lab=ZZ19}
|
||||
N 620 -350 620 -280 {
|
||||
lab=#net21}
|
||||
N 620 -350 680 -350 {
|
||||
lab=#net21}
|
||||
N 760 -350 810 -350 {
|
||||
lab=#net36}
|
||||
N 1110 -920 1260 -920 {
|
||||
lab=RRSSTT}
|
||||
N 1110 -900 1260 -900 {
|
||||
lab=CCKK}
|
||||
N 1110 -880 1260 -880 {
|
||||
lab=AA[3:0]}
|
||||
N 1110 -860 1260 -860 {
|
||||
lab=BB}
|
||||
N 1560 -820 1590 -820 {
|
||||
lab=ZZ20}
|
||||
N 1560 -920 1760 -920 {
|
||||
lab=RRSSTT}
|
||||
N 1560 -900 1760 -900 {
|
||||
lab=CCKK}
|
||||
N 1560 -880 1760 -880 {
|
||||
lab=AA[3:0]}
|
||||
N 1560 -860 1760 -860 {
|
||||
lab=BB}
|
||||
N 1730 -820 1760 -820 {
|
||||
lab=ZZ21}
|
||||
N 2060 -880 2180 -880 {
|
||||
lab=#net37}
|
||||
N 2060 -860 2180 -860 {
|
||||
lab=#net38}
|
||||
N 2060 -900 2180 -900 {
|
||||
lab=#net39}
|
||||
N 2060 -920 2180 -920 {
|
||||
lab=#net40}
|
||||
C {doublepin.sym} 1230 -670 0 0 {name=x9
|
||||
net_name=true}
|
||||
C {doublepin.sym} 810 -670 0 1 {name=x8
|
||||
net_name=true}
|
||||
C {doublepin.sym} 780 -880 0 0 {name=x2
|
||||
net_name=true}
|
||||
C {lab_wire.sym} 550 -890 0 0 {name=l2 sig_type=std_logic lab=AA[3:0]}
|
||||
C {lab_pin.sym} 510 -830 0 1 {name=p3 lab=ZZ5}
|
||||
C {lab_pin.sym} 960 -830 0 1 {name=p5 lab=ZZ6}
|
||||
C {lab_wire.sym} 550 -930 0 0 {name=l3 sig_type=std_logic lab=RRSSTT}
|
||||
C {lab_wire.sym} 550 -910 0 0 {name=l4 sig_type=std_logic lab=CCKK}
|
||||
C {lab_wire.sym} 550 -870 0 0 {name=l5 sig_type=std_logic lab=BB}
|
||||
C {doublepin.sym} 330 -1110 0 0 {name=x3}
|
||||
C {doublepin.sym} 780 -1110 0 0 {name=x4}
|
||||
C {lab_pin.sym} 180 -1120 0 0 {name=l6 sig_type=std_logic lab=AA}
|
||||
C {doublepin.sym} 330 -1110 0 0 {name=x3
|
||||
net_name=true}
|
||||
C {doublepin.sym} 780 -1110 0 0 {name=x4
|
||||
net_name=true}
|
||||
C {lab_pin.sym} 180 -1120 0 0 {name=l6 sig_type=std_logic lab=AA[3:0]}
|
||||
C {lab_pin.sym} 510 -1060 0 1 {name=p1 lab=ZZ3}
|
||||
C {lab_pin.sym} 960 -1060 0 1 {name=p2 lab=ZZ4}
|
||||
C {lab_pin.sym} 180 -1160 0 0 {name=l7 sig_type=std_logic lab=RRSSTT}
|
||||
C {lab_pin.sym} 180 -1140 0 0 {name=l8 sig_type=std_logic lab=CCKK}
|
||||
C {lab_pin.sym} 180 -1100 0 0 {name=l9 sig_type=std_logic lab=BB}
|
||||
C {lab_pin.sym} 930 -1120 0 1 {name=l10 sig_type=std_logic lab=AA}
|
||||
C {lab_pin.sym} 930 -1120 0 1 {name=l10 sig_type=std_logic lab=AA[3:0]}
|
||||
C {lab_pin.sym} 930 -1160 0 1 {name=l11 sig_type=std_logic lab=RRSSTT}
|
||||
C {lab_pin.sym} 930 -1140 0 1 {name=l12 sig_type=std_logic lab=CCKK}
|
||||
C {lab_pin.sym} 930 -1100 0 1 {name=l13 sig_type=std_logic lab=BB}
|
||||
C {doublepin.sym} 330 -1340 0 0 {name=x5}
|
||||
C {doublepin.sym} 780 -1340 0 0 {name=x6}
|
||||
C {lab_pin.sym} 180 -1350 0 0 {name=l14 sig_type=std_logic lab=AA}
|
||||
C {doublepin.sym} 330 -1340 0 0 {name=x5
|
||||
net_name=true}
|
||||
C {doublepin.sym} 780 -1340 0 0 {name=x6
|
||||
net_name=true}
|
||||
C {lab_pin.sym} 180 -1350 0 0 {name=l14 sig_type=std_logic lab=AA[3:0]}
|
||||
C {lab_pin.sym} 510 -1290 0 1 {name=p4 lab=ZZ1}
|
||||
C {lab_pin.sym} 960 -1290 0 1 {name=p6 lab=ZZ2}
|
||||
C {lab_pin.sym} 180 -1390 0 0 {name=l15 sig_type=std_logic lab=RRSSTT}
|
||||
C {lab_pin.sym} 180 -1370 0 0 {name=l16 sig_type=std_logic lab=CCKK}
|
||||
C {lab_pin.sym} 180 -1330 0 0 {name=l17 sig_type=std_logic lab=BB}
|
||||
C {lab_pin.sym} 930 -1350 0 1 {name=l18 sig_type=std_logic lab=AA}
|
||||
C {lab_pin.sym} 930 -1350 0 1 {name=l18 sig_type=std_logic lab=AA[3:0]}
|
||||
C {lab_pin.sym} 930 -1390 0 1 {name=l19 sig_type=std_logic lab=RRSSTT}
|
||||
C {lab_pin.sym} 930 -1370 0 1 {name=l20 sig_type=std_logic lab=CCKK}
|
||||
C {lab_pin.sym} 930 -1330 0 1 {name=l21 sig_type=std_logic lab=BB}
|
||||
C {lab_wire.sym} 550 -1350 0 0 {name=l22 sig_type=std_logic lab=AA}
|
||||
C {lab_wire.sym} 550 -1350 0 0 {name=l22 sig_type=std_logic lab=AA[3:0]}
|
||||
C {lab_wire.sym} 550 -1390 0 0 {name=l23 sig_type=std_logic lab=RRSSTT}
|
||||
C {lab_wire.sym} 550 -1370 0 0 {name=l24 sig_type=std_logic lab=CCKK}
|
||||
C {lab_wire.sym} 550 -1330 0 0 {name=l25 sig_type=std_logic lab=BB}
|
||||
C {lab_pin.sym} 180 -660 0 0 {name=l33 sig_type=std_logic lab=BB}
|
||||
C {doublepin.sym} 330 -880 0 0 {name=x1}
|
||||
C {doublepin.sym} 330 -880 0 0 {name=x1
|
||||
net_name=true}
|
||||
C {lab_pin.sym} 510 -620 0 1 {name=p7 lab=ZZ7}
|
||||
C {lab_pin.sym} 630 -620 0 0 {name=p8 lab=ZZ8}
|
||||
C {lab_pin.sym} 180 -680 0 0 {name=l30 sig_type=std_logic lab=AA}
|
||||
C {lab_pin.sym} 180 -680 0 0 {name=l30 sig_type=std_logic lab=AA[3:0]}
|
||||
C {lab_pin.sym} 180 -720 0 0 {name=l31 sig_type=std_logic lab=RRSSTT}
|
||||
C {lab_pin.sym} 180 -700 0 0 {name=l32 sig_type=std_logic lab=CCKK}
|
||||
C {doublepin.sym} 330 -670 0 0 {name=x7}
|
||||
C {doublepin.sym} 330 -670 0 0 {name=x7
|
||||
net_name=true}
|
||||
C {ipin.sym} 100 -80 0 0 { name=p9 lab=RRSSTT }
|
||||
C {ipin.sym} 100 -100 0 0 { name=p10 lab=CCKK }
|
||||
C {ipin.sym} 100 -120 0 0 { name=p11 lab=BB }
|
||||
C {ipin.sym} 100 -140 0 0 { name=p12 lab=AA }
|
||||
C {opin.sym} 270 -120 0 0 { name=p13 lab=ZZ[17..1]}
|
||||
C {ipin.sym} 100 -140 0 0 { name=p12 lab=AA[3:0] }
|
||||
C {opin.sym} 270 -120 0 0 { name=p13 lab=ZZ[21..1]}
|
||||
C {title.sym} 160 -30 0 0 {name=l1 author="Stefan Schippers"}
|
||||
C {lab_pin.sym} 1410 -620 0 1 {name=p8 lab=ZZ9}
|
||||
C {doublepin.sym} 1230 -460 0 0 {name=x10}
|
||||
C {doublepin.sym} 810 -460 0 1 {name=x11}
|
||||
C {doublepin.sym} 1110 -460 0 0 {name=x10
|
||||
net_name=true}
|
||||
C {doublepin.sym} 810 -460 0 1 {name=x11
|
||||
net_name=true}
|
||||
C {lab_pin.sym} 510 -410 0 1 {name=p7 lab=ZZ12}
|
||||
C {lab_pin.sym} 630 -410 0 0 {name=p8 lab=ZZ11}
|
||||
C {doublepin.sym} 330 -460 0 0 {name=x12}
|
||||
C {lab_pin.sym} 1410 -410 0 1 {name=p1 lab=ZZ10}
|
||||
C {doublepin.sym} 1370 -1040 0 0 {name=x13}
|
||||
C {doublepin.sym} 330 -460 0 0 {name=x12
|
||||
net_name=true}
|
||||
C {lab_pin.sym} 1290 -410 0 1 {name=p1 lab=ZZ10}
|
||||
C {doublepin.sym} 1370 -1040 0 0 {name=x13
|
||||
net_name=true}
|
||||
C {lab_pin.sym} 1550 -990 0 1 {name=p2 lab=ZZ13}
|
||||
C {lab_pin.sym} 1520 -1050 0 1 {name=l10 sig_type=std_logic lab=AA}
|
||||
C {lab_pin.sym} 1520 -1050 0 1 {name=l1 sig_type=std_logic lab=AA[3:0]}
|
||||
C {lab_pin.sym} 1520 -1090 0 1 {name=l11 sig_type=std_logic lab=RRSSTT}
|
||||
C {lab_pin.sym} 1520 -1070 0 1 {name=l12 sig_type=std_logic lab=CCKK}
|
||||
C {lab_pin.sym} 1520 -1030 0 1 {name=l13 sig_type=std_logic lab=BB}
|
||||
C {doublepin.sym} 1370 -1300 0 1 {name=x14}
|
||||
C {doublepin.sym} 1370 -1300 0 1 {name=x14
|
||||
net_name=true}
|
||||
C {lab_pin.sym} 1190 -1250 0 0 {name=p2 lab=ZZ14}
|
||||
C {lab_pin.sym} 1520 -1310 0 1 {name=l10 sig_type=std_logic lab=AA}
|
||||
C {lab_pin.sym} 1520 -1310 0 1 {name=l3 sig_type=std_logic lab=AA[3:0]}
|
||||
C {lab_pin.sym} 1520 -1350 0 1 {name=l11 sig_type=std_logic lab=RRSSTT}
|
||||
C {lab_pin.sym} 1520 -1330 0 1 {name=l12 sig_type=std_logic lab=CCKK}
|
||||
C {lab_pin.sym} 1520 -1290 0 1 {name=l13 sig_type=std_logic lab=BB}
|
||||
C {doublepin.sym} 330 -230 0 0 {name=x17}
|
||||
C {doublepin.sym} 810 -230 0 1 {name=x16}
|
||||
C {doublepin.sym} 330 -230 0 0 {name=x17[1:0]
|
||||
net_name=true}
|
||||
C {doublepin.sym} 810 -230 0 1 {name=x16[1:0]
|
||||
net_name=true}
|
||||
C {lab_pin.sym} 510 -180 0 1 {name=p7 lab=ZZ17}
|
||||
C {lab_pin.sym} 630 -180 0 0 {name=p8 lab=ZZ16}
|
||||
C {doublepin.sym} 1230 -230 0 0 {name=x15}
|
||||
C {doublepin.sym} 1230 -230 0 0 {name=x22[1:0]
|
||||
net_name=true}
|
||||
C {lab_pin.sym} 1410 -180 0 1 {name=p1 lab=ZZ15}
|
||||
C {inv_ngspice.sym} 80 -260 0 0 {name=x18 ROUT=1000}
|
||||
C {inv_ngspice.sym} 80 -260 0 0 {name=x18 ROUT=1000 net_name=true}
|
||||
C {inv_ngspice.sym} 140 -450 0 0 {name=x19 ROUT=1000 net_name=true}
|
||||
C {doublepin.sym} 1590 -460 0 0 {name=x20
|
||||
net_name=true}
|
||||
C {lab_pin.sym} 1770 -310 0 1 {name=p8 lab=ZZ18}
|
||||
C {doublepin.sym} 1890 -460 0 0 {name=x21
|
||||
net_name=true}
|
||||
C {lab_pin.sym} 2070 -310 0 1 {name=p8 lab=ZZ19}
|
||||
C {inv_ngspice.sym} 720 -350 0 0 {name=x15 ROUT=1000 net_name=true}
|
||||
C {doublepin.sym} 1410 -870 0 0 {name=x23
|
||||
net_name=true}
|
||||
C {lab_wire.sym} 1180 -880 0 0 {name=l2 sig_type=std_logic lab=AA[3:0]}
|
||||
C {lab_pin.sym} 1590 -820 0 1 {name=p5 lab=ZZ20}
|
||||
C {lab_wire.sym} 1180 -920 0 0 {name=l3 sig_type=std_logic lab=RRSSTT}
|
||||
C {lab_wire.sym} 1180 -900 0 0 {name=l4 sig_type=std_logic lab=CCKK}
|
||||
C {lab_wire.sym} 1180 -860 0 0 {name=l5 sig_type=std_logic lab=BB}
|
||||
C {doublepin.sym} 1910 -870 0 1 {name=x24
|
||||
net_name=true}
|
||||
C {lab_pin.sym} 1730 -820 0 0 {name=p5 lab=ZZ21}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
v {xschem version=2.9.9 file_version=1.2 }
|
||||
v {xschem version=3.1.0 file_version=1.2
|
||||
}
|
||||
G {}
|
||||
K {type=subcircuit
|
||||
format="@name @pinlist @symname ROUT=@ROUT"
|
||||
|
|
@ -20,3 +21,5 @@ T {@name} 25 -22 0 0 0.2 0.2 {}
|
|||
T {Y} 7.5 -6.5 0 1 0.2 0.2 {}
|
||||
T {A} -17.5 -6.5 0 0 0.2 0.2 {}
|
||||
T {ROUT=@ROUT} -25 -42 0 0 0.2 0.2 {}
|
||||
T {@#1:net_name} -40 6.25 0 0 0.15 0.15 {layer=15}
|
||||
T {@#0:net_name} 40 6.25 0 1 0.15 0.15 {layer=15}
|
||||
|
|
|
|||
Loading…
Reference in New Issue