fix make_sym.awk duplicating name= attribute in generated symbol

This commit is contained in:
Stefan Frederik 2020-12-29 14:14:32 +01:00
parent ebaa2d932b
commit 7ba3001066
3 changed files with 34 additions and 25 deletions

View File

@ -884,6 +884,15 @@ int get_logic_value(int inst, int n)
my_free(1221, &netname);
return val;
}
void print_stack(int *stack, int sp)
{
int i;
fprintf(errfp, "stack: ");
for(i = 0; i < sp; i++) {
fprintf(errfp, "%d ", stack[i]);
}
fprintf(errfp, "\n");
}
int eval_logic_expr(int inst, int output)
{
@ -903,7 +912,12 @@ int eval_logic_expr(int inst, int output)
ptr2 = saveptr;
while( (arg = my_strtok_r(ptr2, " ", &ptr1)) ) {
ptr2 = NULL;
if(arg[0] == '~') {
if(arg[0] == 'd') { /* duplicate top element*/
if(sp > 0 && sp < STACKMAX) {
stack[sp] = stack[sp - 1];
sp++;
}
} else if(arg[0] == '~') {
if(sp > 0) {
sp--;
if(stack[sp] != 2) stack[sp] = !stack[sp];
@ -953,7 +967,9 @@ int eval_logic_expr(int inst, int output)
sp--;
}
} else if(isdigit(arg[0])) {
if(sp < STACKMAX) stack[sp++] = get_logic_value(inst, atoi(arg));
if(sp < STACKMAX) {
stack[sp++] = get_logic_value(inst, atoi(arg));
}
else dbg(0, "eval_logic_expr(): stack overflow!\n");
}
}

View File

@ -150,6 +150,7 @@ function rest_of_props()
sub(/sig_type[ \t]*=[ \t]*[^ \t]+[ \t]?/, "")
sub(/lab[ \t]*=[ \t]*[^ \t]+[ \t]?/, "")
sub(/value[ \t]*=[ \t]*[^ \t]+[ \t]?/, "")
sub(/name[ \t]*=[ \t]*[^ \t]+[ \t]?/, "")
sub(/^[ \t]*$/, "")
return $0
}

View File

@ -1,40 +1,32 @@
v {xschem version=2.9.9 file_version=1.2 }
v {xschem version=2.9.9 file_version=1.2}
G {}
K {type=subcircuit
format="@name @pinlist @symname"
template="name=x1"
net_name=true
}
V {}
S {}
E {}
T {@symname} -85.5 -6 0 0 0.3 0.3 {}
T {@name} 135 -62 0 0 0.2 0.2 {}
L 4 -130 -50 130 -50 {}
L 4 -130 50 130 50 {}
L 4 -130 -50 -130 50 {}
L 4 130 -50 130 50 {}
B 5 -152.5 -42.5 -147.5 -37.5 {name=MINUS dir=in }
L 4 -150 -40 -130 -40 {}
L 4 -150 -20 -130 -20 {}
L 4 -150 0 -130 0 {}
L 4 130 -40 150 -40 {}
L 4 -150 20 -130 20 {}
L 4 -150 40 -130 40 {}
B 5 -152.5 -42.5 -147.5 -37.5 {name=MINUS dir=in name=p1 }
B 5 -152.5 -22.5 -147.5 -17.5 {name=PLUS dir=in name=p0 }
B 5 -152.5 -2.5 -147.5 2.5 {name=VSS dir=in name=p4 }
B 5 147.5 -42.5 152.5 -37.5 {name=OUT dir=out name=p5 }
B 5 -152.5 17.5 -147.5 22.5 {name=VPP dir=in name=p2 }
B 5 -152.5 37.5 -147.5 42.5 {name=VNN dir=in name=p3 }
T {@symname} -85.5 -6 0 0 0.3 0.3 {}
T {@name} 73.75 -63.25 0 0 0.2 0.2 {}
T {MINUS} -125 -44 0 0 0.2 0.2 {}
B 5 -152.5 -22.5 -147.5 -17.5 {name=PLUS dir=in }
L 4 -150 -20 -130 -20 {}
T {PLUS} -125 -24 0 0 0.2 0.2 {}
B 5 -152.5 -2.5 -147.5 2.5 {name=VSS dir=in }
L 4 -150 0 -130 0 {}
T {VSS} -125 -4 0 0 0.2 0.2 {}
B 5 147.5 -42.5 152.5 -37.5 {name=OUT dir=out }
L 4 130 -40 150 -40 {}
T {OUT} 125 -44 0 1 0.2 0.2 {}
B 5 -152.5 17.5 -147.5 22.5 {name=VPP dir=in }
L 4 -150 20 -130 20 {}
T {VPP} -125 16 0 0 0.2 0.2 {}
B 5 -152.5 37.5 -147.5 42.5 {name=VNN dir=in }
L 4 -150 40 -130 40 {}
T {VNN} -125 36 0 0 0.2 0.2 {}
T {@#MINUS:net_name} -132.5 -52.5 0 1 0.15 0.15 {layer=15}
T {@#PLUS:net_name} -132.5 -32.5 0 1 0.15 0.15 {layer=15}
T {@#VSS:net_name} -132.5 -12.5 0 1 0.15 0.15 {layer=15}
T {@#VPP:net_name} -132.5 7.5 0 1 0.15 0.15 {layer=15}
T {@#VNN:net_name} -132.5 27.5 0 1 0.15 0.15 {layer=15}
T {@#OUT:net_name} 132.5 -52.5 0 0 0.15 0.15 {layer=15}