make lookup of logic attributes faster in symbol examples

This commit is contained in:
Stefan Frederik 2020-12-29 00:14:23 +01:00
parent 880286bdb9
commit 921885d654
11 changed files with 61 additions and 12 deletions

View File

@ -861,8 +861,8 @@ void propagate_hilights(int set, int clear, int mode)
#define LOGIC_X -1
#define LOGIC_0 -12
#define LOGIC_1 -5
#define STACKMAX 200
#define STACKMAX 100
int get_logic_value(int inst, int n)
{
int /* mult, */ val;
@ -954,6 +954,7 @@ int eval_logic_expr(int inst, int output)
}
} else if(isdigit(arg[0])) {
if(sp < STACKMAX) stack[sp++] = get_logic_value(inst, atoi(arg));
else dbg(0, "eval_logic_expr(): stack overflow!\n");
}
}
my_free(827, &saveptr);
@ -967,7 +968,7 @@ void propagate_logic()
int found /* , mult */;
xSymbol *symbol;
xRect *rct;
int i, j, npin, nloops=0;
int i, j, npin;
char *propagate_str = NULL;
int propagate;
struct hilight_hashentry *entry;

View File

@ -1,12 +1,13 @@
v {xschem version=2.9.9 file_version=1.2 }
G {}
K {type=primitive
function2="0 1 &"
format="@name @@A @@B @VGND @VNB @VPB @VPWR @@X @prefix\\\\and2_1"
template="name=x1 VGND=VGND VNB=VNB VPB=VPB VPWR=VPWR prefix=sky130_fd_sc_hd__ "
extra="VGND VNB VPB VPWR prefix"
highlight=true
function2="0 1 &"}
}
V {}
S {}
E {}

View File

@ -1,11 +1,12 @@
v {xschem version=2.9.9 file_version=1.2 }
G {}
K {type=primitive
function3="0 1 2 & &"
format="@name @@A @@B @@C @VGND @VNB @VPB @VPWR @@X @prefix\\\\and3_1"
template="name=x1 VGND=VGND VNB=VNB VPB=VPB VPWR=VPWR prefix=sky130_fd_sc_hd__ "
extra="VGND VNB VPB VPWR prefix"
highlight=true
function3="0 1 2 & &"}
}
V {}
S {}
E {}

View File

@ -1,11 +1,12 @@
v {xschem version=2.9.9 file_version=1.2 }
G {}
K {type=primitive
function4="0 1 2 3 & & &"
format="@name @@A @@B @@C @@D @VGND @VNB @VPB @VPWR @@X @prefix\\\\and4_1"
template="name=x1 VGND=VGND VNB=VNB VPB=VPB VPWR=VPWR prefix=sky130_fd_sc_hd__ "
extra="VGND VNB VPB VPWR prefix"
highlight=true
function4="0 1 2 3 & & &"
}
V {}
S {}

View File

@ -1,11 +1,12 @@
v {xschem version=2.9.9 file_version=1.2 }
G {}
K {type=stdcell
function3="1 0 2 & & 0 ~ 2 3 & & |"
format="@name @@CLK @@D @@RESET_B @VGND @VNB @VPB @VPWR @@Q @prefix\\\\dfrtp_1"
template="name=x1 VGND=VGND VNB=VNB VPB=VPB VPWR=VPWR prefix=sky130_fd_sc_hd__ "
extra="VGND VNB VPB VPWR prefix"
highlight=true
function3="1 0 2 & & 0 ~ 2 3 & & |"}
}
V {}
S {}
E {}

View File

@ -1,12 +1,14 @@
v {xschem version=2.9.9 file_version=1.2 }
G {}
K {type=primitive
function3="0 1 ^ 2 & 0 1 & |"
function4="0 1 2 ^ ^"
format="@name @@A @@B @@CIN @VGND @VNB @VPB @VPWR @@COUT @@SUM @prefix\\\\fa_1"
template="name=x1 VGND=VGND VNB=VNB VPB=VPB VPWR=VPWR prefix=sky130_fd_sc_hd__ "
extra="VGND VNB VPB VPWR prefix"
highlight=true
function4="0 1 2 ^ ^"
function3="0 1 ^ 2 & 0 1 & |"
}
V {}

View File

@ -1,12 +1,13 @@
v {xschem version=2.9.9 file_version=1.2 }
G {}
K {type=primitive
function1="0 ~"
format="@name @@A @VGND @VNB @VPB @VPWR @@Y @prefix\\\\inv_1"
template="name=x1 VGND=VGND VNB=VNB VPB=VPB VPWR=VPWR prefix=sky130_fd_sc_hd__ "
extra="VGND VNB VPB VPWR prefix"
highlight=true
function1="0 ~"}
}
V {}
S {}
E {}

View File

@ -1,11 +1,12 @@
v {xschem version=2.9.9 file_version=1.2 }
G {}
K {type=primitive
function4="0 1 2 3 & & & ~"
format="@name @@A @@B @@C @@D @VGND @VNB @VPB @VPWR @@Y @prefix\\\\nand4_1"
template="name=x1 VGND=VGND VNB=VNB VPB=VPB VPWR=VPWR prefix=sky130_fd_sc_hd__ "
extra="VGND VNB VPB VPWR prefix"
highlight=true
function4="0 1 2 3 & & & ~"}
}
V {}
S {}
E {}

View File

@ -0,0 +1,39 @@
v {xschem version=2.9.9 file_version=1.2 }
G {}
K {type=primitive
function3="0 1 | 2 & ~"
format="@name @@A1 @@A2 @@B1 @VGND @VNB @VPB @VPWR @@Y @prefix\\\\o21ai_1"
template="name=x1 VGND=VGND VNB=VNB VPB=VPB VPWR=VPWR prefix=sky130_fd_sc_hd__ "
extra="VGND VNB VPB VPWR prefix"
highlight=true
}
V {}
S {}
E {}
L 4 -80 -40 -52.5 -40 {}
L 4 -80 0 -52.5 0 {}
L 4 -57.5 -50 -50 -50 {}
L 4 -57.5 10 -50 10 {}
L 4 10 -30 27.5 -30 {}
L 4 10 -30 10 30 {}
L 4 10 30 27.5 30 {}
L 4 -5 -20 10 -20 {}
L 4 -17.5 20 10 20 {}
L 4 -17.5 20 -17.5 40 {}
L 4 -80 40 -17.5 40 {}
L 4 67.5 0 80 0 {}
B 5 -82.5 -42.5 -77.5 -37.5 {name=A1 dir=in propagate_to=3 }
B 5 -82.5 -2.5 -77.5 2.5 {name=A2 dir=in propagate_to=3 }
B 5 -82.5 37.5 -77.5 42.5 {name=B1 dir=in propagate_to=3 }
B 5 77.5 -2.5 82.5 2.5 {name=Y dir=out }
A 4 -105 -20 56.18051263561058 327.7243556854224 64.55128862915524 {}
A 4 27.5 0 30 270 180 {}
A 4 -54.64285714285714 5.714285714285722 55.90740340153566 27.38350663876661 57.85285167050722 {}
A 4 -54.64285714285714 -45.71428571428572 55.90740340153566 274.7636416907262 57.85285167050722 {}
A 4 62.5 0 5 0 360 {}
T {A1} -75 -54 0 0 0.2 0.2 {}
T {A2} -75 -14 0 0 0.2 0.2 {}
T {B1} -75 26 0 0 0.2 0.2 {}
T {Y} 75 -14 0 1 0.2 0.2 {}
T {@name} 15 -5 0 0 0.2 0.2 {}
T {@symname} -11.25 -55 0 0 0.2 0.2 {}

View File

@ -1,11 +1,12 @@
v {xschem version=2.9.9 file_version=1.2 }
G {}
K {type=primitive
function4="0 1 2 3 | | |"
format="@name @@A @@B @@C @@D @VGND @VNB @VPB @VPWR @@X @prefix\\\\or4_1"
template="name=x1 VGND=VGND VNB=VNB VPB=VPB VPWR=VPWR prefix=sky130_fd_sc_hd__ "
extra="VGND VNB VPB VPWR prefix"
highlight=true
function4="0 1 2 3 | | |"
}
V {}
S {}

View File

@ -341,7 +341,7 @@ tclcommand=" set count 0
"
}
C {inv_2.sym} 2620 -1960 0 0 {name=x1 VGND=VGND VNB=VNB VPB=VPB VPWR=VPWR prefix=sky130_fd_sc_hd__ }
C {giant_label.sym} 2040 -1430 0 1 {name=l1 sig_type=std_logic lab=CLK text=CLK}
C {giant_label.sym} 1910 -1430 0 1 {name=l1 sig_type=std_logic lab=CLK text=CLK}
C {giant_label.sym} 2660 -1960 0 1 {name=l3 sig_type=std_logic lab=R text="RESET
COUNTER"}
C {giant_label.sym} 1900 -1180 0 1 {name=l4 sig_type=std_logic lab=CLEAR_ text="CLEAR (active low)"}