From 14ead18ea4f12e4d89d337021f8d4b16f3ce2cc8 Mon Sep 17 00:00:00 2001 From: Stefan Frederik Date: Wed, 30 Dec 2020 21:26:58 +0100 Subject: [PATCH] "propagate_to" attribute for pins renamed to "goto" --- src/callback.c | 2 +- src/globals.c | 2 +- src/hilight.c | 23 +++++++++++++------ src/scheduler.c | 3 ++- xschem_library/devices/adc_bridge.sym | 4 ++-- xschem_library/devices/ammeter.sym | 4 ++-- xschem_library/devices/assign.sym | 2 +- xschem_library/devices/capa-2.sym | 4 ++-- xschem_library/devices/connect.sym | 4 ++-- xschem_library/devices/crystal-2.sym | 6 ++--- xschem_library/devices/crystal.sym | 4 ++-- xschem_library/devices/dac_bridge.sym | 4 ++-- xschem_library/devices/ind.sym | 4 ++-- xschem_library/devices/jumper.sym | 4 ++-- xschem_library/devices/res.sym | 4 ++-- xschem_library/devices/res_ac.sym | 4 ++-- xschem_library/devices/var_res.sym | 6 ++--- xschem_library/examples/xnor.sym | 4 ++-- .../pcb/pcb_current_protection_embed.sch | 4 ++-- xschem_library/pcb/pcb_test1_embed.sch | 4 ++-- .../pcb/pcb_voltage_protection_embed.sch | 4 ++-- xschem_library/xschem_simulator/and2_1.sym | 4 ++-- xschem_library/xschem_simulator/and3_1.sym | 6 ++--- xschem_library/xschem_simulator/and4_1.sym | 8 +++---- xschem_library/xschem_simulator/dfrtp_1.sym | 4 ++-- xschem_library/xschem_simulator/dlrtn_1.sym | 4 ++-- xschem_library/xschem_simulator/dlrtp_1.sym | 4 ++-- xschem_library/xschem_simulator/fa_1.sym | 6 ++--- xschem_library/xschem_simulator/inv_2.sym | 2 +- xschem_library/xschem_simulator/nand2_1.sym | 4 ++-- xschem_library/xschem_simulator/nand3_1.sym | 6 ++--- xschem_library/xschem_simulator/nand4_1.sym | 8 +++---- xschem_library/xschem_simulator/nor4_1.sym | 8 +++---- xschem_library/xschem_simulator/o21ai_1.sym | 6 ++--- xschem_library/xschem_simulator/or4_1.sym | 8 +++---- xschem_library/xschem_simulator/xor2_1.sym | 4 ++-- 36 files changed, 96 insertions(+), 86 deletions(-) diff --git a/src/callback.c b/src/callback.c index dd834440..113d9d56 100644 --- a/src/callback.c +++ b/src/callback.c @@ -943,7 +943,7 @@ int callback(int event, int mx, int my, KeySym key, break; } if(key=='K' && state==(ControlMask|ShiftMask)) /* hilight net drilling thru elements */ - /* with 'propagate_to' prop set on pins */ + /* with 'goto=' prop set on pins */ { if(xctx->semaphore >= 2) break; enable_drill=1; diff --git a/src/globals.c b/src/globals.c index 4f332214..356b3e88 100644 --- a/src/globals.c +++ b/src/globals.c @@ -215,7 +215,7 @@ int vertical_move=0; int pending_fullzoom=0; double color_dim=0.0; int no_undo=0; -int enable_drill=0; /* pass net hilights through components with 'propagate_to' property set on pins */ +int enable_drill=0; /* pass net hilights through components with 'goto=' property set on pins */ int batch_mode = 0; /* no tcl console if set; batch mode */ int show_erc=1; diff --git a/src/hilight.c b/src/hilight.c index 6d1f1735..7934e311 100644 --- a/src/hilight.c +++ b/src/hilight.c @@ -299,15 +299,14 @@ struct hilight_hashentry *bus_hilight_lookup(const char *token, int value, int w void clear_all_hilights(void) { int i; + xctx->hilight_color=0; if(!xctx->hilight_nets) return; free_hilight_hash(); - xctx->hilight_nets=0; for(i=0;iinstances;i++) { xctx->inst[i].color = -10000 ; } dbg(1, "clear_all_hilights(): clearing\n"); - xctx->hilight_color=0; } void hilight_net_pin_mismatches(void) @@ -501,6 +500,8 @@ int search(const char *tok, const char *val, int sub, int sel) if(!strcmp(tok,"cell::name")) { has_token = (xctx->inst[i].name != NULL) && xctx->inst[i].name[0]; str = xctx->inst[i].name; + } else if(!strcmp(tok,"cell::propstring")) { + has_token = (str = (xctx->inst[i].ptr+ xctx->sym)->prop_ptr) ? 1 : 0; } else if(!strncmp(tok,"cell::", 6)) { /* cell::xxx looks for xxx in global symbol attributes */ my_strdup(142, &tmpname,get_tok_value((xctx->inst[i].ptr+ xctx->sym)->prop_ptr,tok+6,0)); has_token = xctx->get_tok_size; @@ -658,7 +659,7 @@ int search(const char *tok, const char *val, int sub, int sel) } /* "drill" option (pass through resistors or pass gates or whatever elements with */ -/* 'propagate_to' properties set on pins) */ +/* 'goto' properties set on pins) */ void drill_hilight(int mode) { char *netname=NULL, *propagated_net=NULL; @@ -684,7 +685,7 @@ void drill_hilight(int mode) if(entry && (en_hilight_conn_inst || (symbol->type && IS_LABEL_SH_OR_PIN(symbol->type))) ) { xctx->inst[i].color = entry->value; } - my_strdup(1225, &propagate_str, get_tok_value(rct[j].prop_ptr, "propagate_to", 0)); + my_strdup(1225, &propagate_str, get_tok_value(rct[j].prop_ptr, "goto", 0)); if(propagate_str) { int n = 1; const char *propag; @@ -696,7 +697,7 @@ void drill_hilight(int mode) if(entry) { propagate = atoi(propag); if(propagate < 0 || propagate >= npin) { - dbg(0, "Error: inst: %s, pin %d, propagate_to set to %s <<%d>>\n", + dbg(0, "Error: inst: %s, pin %d, goto set to %s <<%d>>\n", xctx->inst[i].instname, j, propagate_str, propagate); continue; } @@ -966,6 +967,14 @@ int eval_logic_expr(int inst, int output) stack[sp - 2] = res; sp--; } + } else if(arg[0] == 'L') { /* logic low (0) */ + if(sp < STACKMAX) { + stack[sp++] = 0; + } + } else if(arg[0] == 'H') { /* logic high (1) */ + if(sp < STACKMAX) { + stack[sp++] = 1; + } } else if(isdigit(arg[0])) { if(sp < STACKMAX) { stack[sp++] = get_logic_value(inst, atoi(arg)); @@ -1000,7 +1009,7 @@ void propagate_logic() npin = symbol->rects[PINLAYER]; rct=symbol->rect[PINLAYER]; for(j=0; j= npin) { - dbg(0, "Error: inst: %s, pin %d, propagate_to set to %s <<%d>>\n", + dbg(0, "Error: inst: %s, pin %d, goto set to %s <<%d>>\n", xctx->inst[i].instname, j, propagate_str, propagate); continue; } diff --git a/src/scheduler.c b/src/scheduler.c index d417e57c..ed0a3e3d 100644 --- a/src/scheduler.c +++ b/src/scheduler.c @@ -2009,7 +2009,8 @@ int xschem(ClientData clientdata, Tcl_Interp *interp, int argc, const char * arg if( !strcmp(argv[2],"regex") ) r = search(argv[4],argv[5],0,select); else r = search(argv[4],argv[5],1,select); if(r == 0) { - if(has_x && !strcmp(argv[1],"searchmenu")) tcleval("tk_messageBox -type ok -message {Not found.}"); + if(has_x && !strcmp(argv[1],"searchmenu")) + tcleval("tk_messageBox -type ok -message {Not found.}"); Tcl_SetResult(interp,"0", TCL_STATIC); } else { Tcl_SetResult(interp,"1", TCL_STATIC); diff --git a/xschem_library/devices/adc_bridge.sym b/xschem_library/devices/adc_bridge.sym index 9b970050..1ce3dfad 100644 --- a/xschem_library/devices/adc_bridge.sym +++ b/xschem_library/devices/adc_bridge.sym @@ -11,7 +11,7 @@ E {} L 4 -30 0 30 0 {} L 4 -10 -5 10 0 {} L 4 -10 5 10 0 {} -B 5 27.5 -2.5 32.5 2.5 {name=d dir=out verilog_type=wire propagate_to=1} -B 5 -32.5 -2.5 -27.5 2.5 {name=s dir=in verilog_type=wire propagate_to=0} +B 5 27.5 -2.5 32.5 2.5 {name=d dir=out verilog_type=wire goto=1} +B 5 -32.5 -2.5 -27.5 2.5 {name=s dir=in verilog_type=wire goto=0} T {@name} -25 -10 0 0 0.12 0.12 {} T {@adc_bridge_model} 0 -10 0 0 0.12 0.12 {} diff --git a/xschem_library/devices/ammeter.sym b/xschem_library/devices/ammeter.sym index 2445fcc3..d6ca9298 100644 --- a/xschem_library/devices/ammeter.sym +++ b/xschem_library/devices/ammeter.sym @@ -10,8 +10,8 @@ E {} L 4 0 -30 0 30 {} L 4 -7.5 0 -0 10 {} L 4 -0 10 7.5 0 {} -B 5 -2.5 -32.5 2.5 -27.5 {name=p dir=inout propagate_to=1} -B 5 -2.5 27.5 2.5 32.5 {name=m dir=inout propagate_to=0} +B 5 -2.5 -32.5 2.5 -27.5 {name=p dir=inout goto=1} +B 5 -2.5 27.5 2.5 32.5 {name=m dir=inout goto=0} T {@current} 10 2.5 0 0 0.2 0.2 {layer=15} T {@name} 15 -18.75 0 0 0.2 0.2 {} T {@#0:net_name} 10 -28.75 0 0 0.15 0.15 {layer=15} diff --git a/xschem_library/devices/assign.sym b/xschem_library/devices/assign.sym index b9e266e4..f9e4f81f 100644 --- a/xschem_library/devices/assign.sym +++ b/xschem_library/devices/assign.sym @@ -13,5 +13,5 @@ L 4 -30 0 30 0 {} L 4 -10 -5 10 0 {} L 4 -10 5 10 0 {} B 5 27.5 -2.5 32.5 2.5 {name=d dir=out verilog_type=wire } -B 5 -32.5 -2.5 -27.5 2.5 {name=s dir=in verilog_type=wire propagate_to=0} +B 5 -32.5 -2.5 -27.5 2.5 {name=s dir=in verilog_type=wire goto=0} T {@name @delay} -25 -10 0 0 0.1 0.1 {} diff --git a/xschem_library/devices/capa-2.sym b/xschem_library/devices/capa-2.sym index c4bba81d..e52c252e 100644 --- a/xschem_library/devices/capa-2.sym +++ b/xschem_library/devices/capa-2.sym @@ -21,8 +21,8 @@ L 4 0 -30 0 -5 {} L 4 -10 -5 10 -5 {} L 4 2.5 -22.5 7.5 -22.5 {} L 4 5 -25 5 -20 {} -B 5 -2.5 -32.5 2.5 -27.5 {name=p dir=inout propagate_to=1 pinnumber=1} -B 5 -2.5 27.5 2.5 32.5 {name=m dir=inout propagate_to=0 pinnumber=2} +B 5 -2.5 -32.5 2.5 -27.5 {name=p dir=inout goto=1 pinnumber=1} +B 5 -2.5 27.5 2.5 32.5 {name=m dir=inout goto=0 pinnumber=2} A 4 0 26.25 21.25 61.92751306414704 56.14497387170592 {} T {@value} 15 0 0 0 0.25 0.2 {} T {@name} 15 -13.75 0 0 0.2 0.2 {} diff --git a/xschem_library/devices/connect.sym b/xschem_library/devices/connect.sym index 37c1f769..b86d804a 100644 --- a/xschem_library/devices/connect.sym +++ b/xschem_library/devices/connect.sym @@ -21,5 +21,5 @@ L 4 -5 5 5 -5 {} L 4 -5 10 5 0 {} L 4 -5 15 5 5 {} L 4 0 15 5 10 {} -B 5 -2.5 -32.5 2.5 -27.5 {name=p dir=out propagate_to=1} -B 5 -2.5 27.5 2.5 32.5 {name=m dir=in propagate_to=0} +B 5 -2.5 -32.5 2.5 -27.5 {name=p dir=out goto=1} +B 5 -2.5 27.5 2.5 32.5 {name=m dir=in goto=0} diff --git a/xschem_library/devices/crystal-2.sym b/xschem_library/devices/crystal-2.sym index dadc1f36..379c9cb1 100644 --- a/xschem_library/devices/crystal-2.sym +++ b/xschem_library/devices/crystal-2.sym @@ -28,9 +28,9 @@ L 4 -18.75 -7.5 -11.25 -7.5 {} L 4 -18.75 -5 -11.25 -5 {} L 4 -15 -5 -15 0 {} B 4 -7.5 -7.5 7.5 7.5 {} -B 5 -2.5 -32.5 2.5 -27.5 {name=P dir=inout propagate_to=1 pinnumber=1} -B 5 -32.5 -2.5 -27.5 2.5 {name=G dir=inout propagate_to=0 pinnumber=2} -B 5 -2.5 27.5 2.5 32.5 {name=M dir=inout propagate_to=0 pinnumber=3} +B 5 -2.5 -32.5 2.5 -27.5 {name=P dir=inout goto=1 pinnumber=1} +B 5 -32.5 -2.5 -27.5 2.5 {name=G dir=inout goto=0 pinnumber=2} +B 5 -2.5 27.5 2.5 32.5 {name=M dir=inout goto=0 pinnumber=3} T {@name} 25 -13.75 0 0 0.2 0.2 {} T {@value} 25 1.25 0 0 0.2 0.2 {} T {@#0:pinnumber} 5 -26.25 0 0 0.2 0.2 {layer=13} diff --git a/xschem_library/devices/crystal.sym b/xschem_library/devices/crystal.sym index 48c91d29..e655df22 100644 --- a/xschem_library/devices/crystal.sym +++ b/xschem_library/devices/crystal.sym @@ -20,8 +20,8 @@ L 4 0 -30 0 -12.5 {} L 4 -15 12.5 15 12.5 {} L 4 -15 -12.5 15 -12.5 {} B 4 -7.5 -7.5 7.5 7.5 {} -B 5 -2.5 -32.5 2.5 -27.5 {name=P dir=inout propagate_to=1 pinnumber=1} -B 5 -2.5 27.5 2.5 32.5 {name=M dir=inout propagate_to=0 pinnumber=2} +B 5 -2.5 -32.5 2.5 -27.5 {name=P dir=inout goto=1 pinnumber=1} +B 5 -2.5 27.5 2.5 32.5 {name=M dir=inout goto=0 pinnumber=2} T {@name} 25 -13.75 0 0 0.2 0.2 {} T {@value} 25 1.25 0 0 0.2 0.2 {} T {@#0:pinnumber} -10 -26.25 0 1 0.2 0.2 {layer=13} diff --git a/xschem_library/devices/dac_bridge.sym b/xschem_library/devices/dac_bridge.sym index 6132ad2c..1533eae4 100644 --- a/xschem_library/devices/dac_bridge.sym +++ b/xschem_library/devices/dac_bridge.sym @@ -11,7 +11,7 @@ E {} L 4 -30 0 30 0 {} L 4 -10 -5 10 0 {} L 4 -10 5 10 0 {} -B 5 27.5 -2.5 32.5 2.5 {name=d dir=out verilog_type=wire propagate_to=1} -B 5 -32.5 -2.5 -27.5 2.5 {name=s dir=in verilog_type=wire propagate_to=0} +B 5 27.5 -2.5 32.5 2.5 {name=d dir=out verilog_type=wire goto=1} +B 5 -32.5 -2.5 -27.5 2.5 {name=s dir=in verilog_type=wire goto=0} T {@name} -25 -10 0 0 0.12 0.12 {} T {@dac_bridge_model} 0 -10 0 0 0.12 0.12 {} diff --git a/xschem_library/devices/ind.sym b/xschem_library/devices/ind.sym index 9cade001..f61cd9b5 100644 --- a/xschem_library/devices/ind.sym +++ b/xschem_library/devices/ind.sym @@ -63,8 +63,8 @@ L 4 6.25 12.5 7.5 10.9375 {} L 4 0 13.75 6.25 12.5 {} L 4 7.5 -26.25 7.5 -21.25 {} L 4 5 -23.75 10 -23.75 {} -B 5 -2.5 -32.5 2.5 -27.5 {name=p dir=inout propagate_to=1 pinnumber=1} -B 5 -2.5 27.5 2.5 32.5 {name=m dir=inout propagate_to=0 pinnumber=2} +B 5 -2.5 -32.5 2.5 -27.5 {name=p dir=inout goto=1 pinnumber=1} +B 5 -2.5 27.5 2.5 32.5 {name=m dir=inout goto=0 pinnumber=2} T {@#0:pinnumber} -10 -27.5 0 1 0.2 0.2 {layer=13} T {@#1:pinnumber} -10 17.5 0 1 0.2 0.2 {layer=13} T {@#0:net_name} 5 -42.5 0 0 0.15 0.15 {layer=15} diff --git a/xschem_library/devices/jumper.sym b/xschem_library/devices/jumper.sym index 77547b24..31bf1132 100644 --- a/xschem_library/devices/jumper.sym +++ b/xschem_library/devices/jumper.sym @@ -16,8 +16,8 @@ L 4 0 15 0 30 {} L 4 0 -30 0 -15 {} L 4 2.5 -22.5 7.5 -22.5 {} L 4 5 -25 5 -20 {} -B 5 -2.5 -32.5 2.5 -27.5 {name=P dir=inout propagate_to=1 pinnumber=1} -B 5 -2.5 27.5 2.5 32.5 {name=M dir=inout propagate_to=0 pinnumber=2} +B 5 -2.5 -32.5 2.5 -27.5 {name=P dir=inout goto=1 pinnumber=1} +B 5 -2.5 27.5 2.5 32.5 {name=M dir=inout goto=0 pinnumber=2} A 4 0 12.5 2.5 270 360 {} A 4 0 -12.5 2.5 270 360 {} T {@name} 15 -13.75 0 0 0.2 0.2 {} diff --git a/xschem_library/devices/res.sym b/xschem_library/devices/res.sym index 1cf7aa6b..b61c9cf0 100644 --- a/xschem_library/devices/res.sym +++ b/xschem_library/devices/res.sym @@ -34,8 +34,8 @@ L 4 -7.5 -17.5 0 -20 {} L 4 0 -30 0 -20 {} L 4 2.5 -22.5 7.5 -22.5 {} L 4 5 -25 5 -20 {} -B 5 -2.5 -32.5 2.5 -27.5 {name=P dir=inout propagate_to=1 pinnumber=1} -B 5 -2.5 27.5 2.5 32.5 {name=M dir=inout propagate_to=0 pinnumber=2} +B 5 -2.5 -32.5 2.5 -27.5 {name=P dir=inout goto=1 pinnumber=1} +B 5 -2.5 27.5 2.5 32.5 {name=M dir=inout goto=0 pinnumber=2} T {@name} 15 -18.75 0 0 0.2 0.2 {} T {@value} 15 -6.25 0 0 0.2 0.2 {} T {@#0:pinnumber} -10 -26.25 0 1 0.2 0.2 {layer=13} diff --git a/xschem_library/devices/res_ac.sym b/xschem_library/devices/res_ac.sym index a16e8a9c..70788d9b 100644 --- a/xschem_library/devices/res_ac.sym +++ b/xschem_library/devices/res_ac.sym @@ -24,8 +24,8 @@ L 4 -7.5 -17.5 0 -20 {} L 4 0 -30 0 -20 {} L 4 2.5 -22.5 7.5 -22.5 {} L 4 5 -25 5 -20 {} -B 5 -2.5 -32.5 2.5 -27.5 {name=P dir=inout propagate_to=1 pinnumber=1} -B 5 -2.5 27.5 2.5 32.5 {name=M dir=inout propagate_to=0 pinnumber=2} +B 5 -2.5 -32.5 2.5 -27.5 {name=P dir=inout goto=1 pinnumber=1} +B 5 -2.5 27.5 2.5 32.5 {name=M dir=inout goto=0 pinnumber=2} T {@name} 15 -18.75 0 0 0.2 0.2 {} T {@value} 15 -6.25 0 0 0.2 0.2 {} T {@#0:pinnumber} -10 -26.25 0 1 0.2 0.2 {layer=13} diff --git a/xschem_library/devices/var_res.sym b/xschem_library/devices/var_res.sym index c3cd1cd6..a6b221df 100644 --- a/xschem_library/devices/var_res.sym +++ b/xschem_library/devices/var_res.sym @@ -32,9 +32,9 @@ L 4 -20 -5 -10 0 {} L 4 -20 -5 -20 5 {} L 4 -20 5 -10 -0 {} L 4 -30 0 -20 -0 {} -B 5 -32.5 -2.5 -27.5 2.5 {name=C dir=inout propagate_to=1 pinnumber=1} -B 5 -2.5 27.5 2.5 32.5 {name=M dir=inout propagate_to=0 pinnumber=2} -B 5 -2.5 -32.5 2.5 -27.5 {name=P dir=inout propagate_to=1 pinnumber=3} +B 5 -32.5 -2.5 -27.5 2.5 {name=C dir=inout goto=1 pinnumber=1} +B 5 -2.5 27.5 2.5 32.5 {name=M dir=inout goto=0 pinnumber=2} +B 5 -2.5 -32.5 2.5 -27.5 {name=P dir=inout goto=1 pinnumber=3} T {@name} 15 -13.75 0 0 0.2 0.2 {} T {@value} 15 1.25 0 0 0.2 0.2 {} T {@#2:pinnumber} -10 -28.75 0 1 0.2 0.2 {layer=13} diff --git a/xschem_library/examples/xnor.sym b/xschem_library/examples/xnor.sym index fc0a1070..59d0aeea 100644 --- a/xschem_library/examples/xnor.sym +++ b/xschem_library/examples/xnor.sym @@ -19,9 +19,9 @@ L 4 -25 -30 -5 -30 {} L 4 -25 30 -5 30 {} B 5 57.5 -2.5 62.5 2.5 {name=Z dir=out verilog_type=wire} B 5 -42.5 -22.5 -37.5 -17.5 {name=A dir=in -propagate_to=0} +goto=0} B 5 -42.5 17.5 -37.5 22.5 {name=B dir=in -propagate_to=0} +goto=0} A 4 40 0 5 180 360 {} A 4 -9.642857142857142 17.85714285714286 48.0818286351295 21.80140948635181 62.65738573560834 {} A 4 -4.6875 -11.25 41.25118369513777 269.5659493678606 74.60789655596687 {} diff --git a/xschem_library/pcb/pcb_current_protection_embed.sch b/xschem_library/pcb/pcb_current_protection_embed.sch index 6de52fc5..81783c3a 100644 --- a/xschem_library/pcb/pcb_current_protection_embed.sch +++ b/xschem_library/pcb/pcb_current_protection_embed.sch @@ -111,8 +111,8 @@ L 4 -7.5 -17.5 0 -20 {} L 4 0 -30 0 -20 {} L 4 2.5 -22.5 7.5 -22.5 {} L 4 5 -25 5 -20 {} -B 5 -2.5 -32.5 2.5 -27.5 {name=p dir=inout propagate_to=1 pinnumber=1} -B 5 -2.5 27.5 2.5 32.5 {name=m dir=inout propagate_to=0 pinnumber=2} +B 5 -2.5 -32.5 2.5 -27.5 {name=p dir=inout goto=1 pinnumber=1} +B 5 -2.5 27.5 2.5 32.5 {name=m dir=inout goto=0 pinnumber=2} T {@name} 15 -18.75 0 0 0.2 0.2 {} T {@value} 15 -3.75 0 0 0.2 0.2 {} T {m=@m} 15 11.25 0 0 0.2 0.2 {} diff --git a/xschem_library/pcb/pcb_test1_embed.sch b/xschem_library/pcb/pcb_test1_embed.sch index 06e43fe3..bd08f376 100644 --- a/xschem_library/pcb/pcb_test1_embed.sch +++ b/xschem_library/pcb/pcb_test1_embed.sch @@ -168,8 +168,8 @@ L 4 -7.5 -17.5 0 -20 {} L 4 0 -30 0 -20 {} L 4 2.5 -22.5 7.5 -22.5 {} L 4 5 -25 5 -20 {} -B 5 -2.5 -32.5 2.5 -27.5 {name=p dir=inout propagate_to=1 pinnumber=1} -B 5 -2.5 27.5 2.5 32.5 {name=m dir=inout propagate_to=0 pinnumber=2} +B 5 -2.5 -32.5 2.5 -27.5 {name=p dir=inout goto=1 pinnumber=1} +B 5 -2.5 27.5 2.5 32.5 {name=m dir=inout goto=0 pinnumber=2} T {@name} 15 -18.75 0 0 0.2 0.2 {} T {@value} 15 -3.75 0 0 0.2 0.2 {} T {m=@m} 15 11.25 0 0 0.2 0.2 {} diff --git a/xschem_library/pcb/pcb_voltage_protection_embed.sch b/xschem_library/pcb/pcb_voltage_protection_embed.sch index 6de52fc5..81783c3a 100644 --- a/xschem_library/pcb/pcb_voltage_protection_embed.sch +++ b/xschem_library/pcb/pcb_voltage_protection_embed.sch @@ -111,8 +111,8 @@ L 4 -7.5 -17.5 0 -20 {} L 4 0 -30 0 -20 {} L 4 2.5 -22.5 7.5 -22.5 {} L 4 5 -25 5 -20 {} -B 5 -2.5 -32.5 2.5 -27.5 {name=p dir=inout propagate_to=1 pinnumber=1} -B 5 -2.5 27.5 2.5 32.5 {name=m dir=inout propagate_to=0 pinnumber=2} +B 5 -2.5 -32.5 2.5 -27.5 {name=p dir=inout goto=1 pinnumber=1} +B 5 -2.5 27.5 2.5 32.5 {name=m dir=inout goto=0 pinnumber=2} T {@name} 15 -18.75 0 0 0.2 0.2 {} T {@value} 15 -3.75 0 0 0.2 0.2 {} T {m=@m} 15 11.25 0 0 0.2 0.2 {} diff --git a/xschem_library/xschem_simulator/and2_1.sym b/xschem_library/xschem_simulator/and2_1.sym index 551b3ab7..daa58578 100644 --- a/xschem_library/xschem_simulator/and2_1.sym +++ b/xschem_library/xschem_simulator/and2_1.sym @@ -17,8 +17,8 @@ L 4 -30 -30 -30 30 {} L 4 -30 30 5 30 {} L 4 -30 -30 5 -30 {} L 4 35 0 60 0 {} -B 5 -62.5 -22.5 -57.5 -17.5 {name=A dir=in propagate_to=2 } -B 5 -62.5 17.5 -57.5 22.5 {name=B dir=in propagate_to=2 } +B 5 -62.5 -22.5 -57.5 -17.5 {name=A dir=in goto=2 } +B 5 -62.5 17.5 -57.5 22.5 {name=B dir=in goto=2 } B 5 57.5 -2.5 62.5 2.5 {name=X dir=out } A 4 5 0 30 270 180 {} T {@name} -28.75 -5 0 0 0.2 0.2 {} diff --git a/xschem_library/xschem_simulator/and3_1.sym b/xschem_library/xschem_simulator/and3_1.sym index 80789243..e4431416 100644 --- a/xschem_library/xschem_simulator/and3_1.sym +++ b/xschem_library/xschem_simulator/and3_1.sym @@ -21,9 +21,9 @@ L 4 -40 20 -40 40 {} L 4 -40 20 -30 20 {} L 4 -40 -40 -40 -20 {} L 4 -40 -20 -30 -20 {} -B 5 -62.5 -42.5 -57.5 -37.5 {name=A dir=in propagate_to=3 } -B 5 -62.5 -2.5 -57.5 2.5 {name=B dir=in propagate_to=3 } -B 5 -62.5 37.5 -57.5 42.5 {name=C dir=in propagate_to=3 } +B 5 -62.5 -42.5 -57.5 -37.5 {name=A dir=in goto=3 } +B 5 -62.5 -2.5 -57.5 2.5 {name=B dir=in goto=3 } +B 5 -62.5 37.5 -57.5 42.5 {name=C dir=in goto=3 } B 5 57.5 -2.5 62.5 2.5 {name=X dir=out } A 4 5 0 30 270 180 {} T {@name} -28.75 -5 0 0 0.2 0.2 {} diff --git a/xschem_library/xschem_simulator/and4_1.sym b/xschem_library/xschem_simulator/and4_1.sym index b2445296..977b6380 100644 --- a/xschem_library/xschem_simulator/and4_1.sym +++ b/xschem_library/xschem_simulator/and4_1.sym @@ -27,10 +27,10 @@ L 4 -45 10 -45 20 {} L 4 -45 10 -30 10 {} L 4 -45 -20 -45 -10 {} L 4 -45 -10 -30 -10 {} -B 5 -62.5 -62.5 -57.5 -57.5 {name=A dir=in propagate_to=4 } -B 5 -62.5 -22.5 -57.5 -17.5 {name=B dir=in propagate_to=4 } -B 5 -62.5 17.5 -57.5 22.5 {name=C dir=in propagate_to=4 } -B 5 -62.5 57.5 -57.5 62.5 {name=D dir=in propagate_to=4 } +B 5 -62.5 -62.5 -57.5 -57.5 {name=A dir=in goto=4 } +B 5 -62.5 -22.5 -57.5 -17.5 {name=B dir=in goto=4 } +B 5 -62.5 17.5 -57.5 22.5 {name=C dir=in goto=4 } +B 5 -62.5 57.5 -57.5 62.5 {name=D dir=in goto=4 } B 5 57.5 -2.5 62.5 2.5 {name=X dir=out } A 4 5 0 30 270 180 {} T {D} -55 46 0 0 0.2 0.2 {} diff --git a/xschem_library/xschem_simulator/dfrtp_1.sym b/xschem_library/xschem_simulator/dfrtp_1.sym index bbf5dc69..c44162d5 100644 --- a/xschem_library/xschem_simulator/dfrtp_1.sym +++ b/xschem_library/xschem_simulator/dfrtp_1.sym @@ -19,10 +19,10 @@ L 4 -90 0 -70 0 {} L 4 -90 20 -70 20 {} L 4 70 -20 90 -20 {} B 5 -92.5 -22.5 -87.5 -17.5 {name=CLK dir=in -propagate_to=3 clock=1} +goto=3 clock=1} B 5 -92.5 -2.5 -87.5 2.5 {name=D dir=in } B 5 -92.5 17.5 -87.5 22.5 {name=RESET_B dir=in -propagate_to=3 +goto=3 clock=2} B 5 87.5 -22.5 92.5 -17.5 {name=Q dir=out } T {@symname} 0 -6 0 0 0.3 0.3 {hcenter=true} diff --git a/xschem_library/xschem_simulator/dlrtn_1.sym b/xschem_library/xschem_simulator/dlrtn_1.sym index 70cc5062..b282b69f 100644 --- a/xschem_library/xschem_simulator/dlrtn_1.sym +++ b/xschem_library/xschem_simulator/dlrtn_1.sym @@ -18,9 +18,9 @@ L 4 -90 0 -70 0 {} L 4 -90 20 -70 20 {} L 4 70 -20 90 -20 {} B 5 -92.5 -22.5 -87.5 -17.5 {name=D dir=in -propagate_to=3} +goto=3} B 5 -92.5 -2.5 -87.5 2.5 {name=GATE_N dir=in -propagate_to=3} +goto=3} B 5 -92.5 17.5 -87.5 22.5 {name=RESET_B dir=in } B 5 87.5 -22.5 92.5 -17.5 {name=Q dir=out } T {@symname} 20 -6 0 0 0.3 0.3 {hcenter=true} diff --git a/xschem_library/xschem_simulator/dlrtp_1.sym b/xschem_library/xschem_simulator/dlrtp_1.sym index 8c556b29..a160eccf 100644 --- a/xschem_library/xschem_simulator/dlrtp_1.sym +++ b/xschem_library/xschem_simulator/dlrtp_1.sym @@ -18,9 +18,9 @@ L 4 -90 0 -70 0 {} L 4 -90 20 -70 20 {} L 4 70 -20 90 -20 {} B 5 -92.5 -22.5 -87.5 -17.5 {name=D dir=in -propagate_to=3} +goto=3} B 5 -92.5 -2.5 -87.5 2.5 {name=GATE dir=in -propagate_to=3} +goto=3} B 5 -92.5 17.5 -87.5 22.5 {name=RESET_B dir=in } B 5 87.5 -22.5 92.5 -17.5 {name=Q dir=out } T {@symname} 0 -6 0 0 0.3 0.3 {hcenter=true} diff --git a/xschem_library/xschem_simulator/fa_1.sym b/xschem_library/xschem_simulator/fa_1.sym index 25d12e69..628e3802 100644 --- a/xschem_library/xschem_simulator/fa_1.sym +++ b/xschem_library/xschem_simulator/fa_1.sym @@ -24,11 +24,11 @@ L 4 -60 40 -40 40 {} L 4 40 -40 60 -40 {} L 4 40 40 60 40 {} B 5 -62.5 -42.5 -57.5 -37.5 {name=A dir=in -propagate_to=3,4} +goto=3,4} B 5 -62.5 -2.5 -57.5 2.5 {name=B dir=in -propagate_to=3,4} +goto=3,4} B 5 -62.5 37.5 -57.5 42.5 {name=CIN dir=in -propagate_to=3,4} +goto=3,4} B 5 57.5 -42.5 62.5 -37.5 {name=COUT dir=out } B 5 57.5 37.5 62.5 42.5 {name=SUM dir=out } T {@symname} -10 -76 0 0 0.3 0.3 {hcenter=true} diff --git a/xschem_library/xschem_simulator/inv_2.sym b/xschem_library/xschem_simulator/inv_2.sym index 78756f7a..bf71a0a6 100644 --- a/xschem_library/xschem_simulator/inv_2.sym +++ b/xschem_library/xschem_simulator/inv_2.sym @@ -16,7 +16,7 @@ L 4 -20 -20 20 0 {} L 4 -20 20 20 0 {} L 4 30 0 40 0 {} L 4 -40 0 -20 0 {} -B 5 -42.5 -2.5 -37.5 2.5 {name=A dir=in propagate_to=1} +B 5 -42.5 -2.5 -37.5 2.5 {name=A dir=in goto=1} B 5 37.5 -2.5 42.5 2.5 {name=Y dir=out } A 4 25 0 5 180 360 {} T {A} -35 -14 0 0 0.2 0.2 {} diff --git a/xschem_library/xschem_simulator/nand2_1.sym b/xschem_library/xschem_simulator/nand2_1.sym index 52a58a33..7cd35218 100644 --- a/xschem_library/xschem_simulator/nand2_1.sym +++ b/xschem_library/xschem_simulator/nand2_1.sym @@ -15,8 +15,8 @@ L 4 -30 -30 -30 30 {} L 4 -30 30 5 30 {} L 4 -30 -30 5 -30 {} L 4 45 0 60 0 {} -B 5 -62.5 -22.5 -57.5 -17.5 {name=A dir=in propagate_to=2 } -B 5 -62.5 17.5 -57.5 22.5 {name=B dir=in propagate_to=2 } +B 5 -62.5 -22.5 -57.5 -17.5 {name=A dir=in goto=2 } +B 5 -62.5 17.5 -57.5 22.5 {name=B dir=in goto=2 } B 5 57.5 -2.5 62.5 2.5 {name=Y dir=out } A 4 5 0 30 270 180 {} A 4 40 0 5 0 360 {} diff --git a/xschem_library/xschem_simulator/nand3_1.sym b/xschem_library/xschem_simulator/nand3_1.sym index 5ac94aa5..63288c38 100644 --- a/xschem_library/xschem_simulator/nand3_1.sym +++ b/xschem_library/xschem_simulator/nand3_1.sym @@ -20,9 +20,9 @@ L 4 -40 20 -40 40 {} L 4 -40 20 -30 20 {} L 4 -40 -40 -40 -20 {} L 4 -40 -20 -30 -20 {} -B 5 -62.5 -42.5 -57.5 -37.5 {name=A dir=in propagate_to=3 } -B 5 -62.5 -2.5 -57.5 2.5 {name=B dir=in propagate_to=3 } -B 5 -62.5 37.5 -57.5 42.5 {name=C dir=in propagate_to=3 } +B 5 -62.5 -42.5 -57.5 -37.5 {name=A dir=in goto=3 } +B 5 -62.5 -2.5 -57.5 2.5 {name=B dir=in goto=3 } +B 5 -62.5 37.5 -57.5 42.5 {name=C dir=in goto=3 } B 5 57.5 -2.5 62.5 2.5 {name=Y dir=out } A 4 5 0 30 270 180 {} A 4 40 0 5 0 360 {} diff --git a/xschem_library/xschem_simulator/nand4_1.sym b/xschem_library/xschem_simulator/nand4_1.sym index 03865d6e..c93e8c8d 100644 --- a/xschem_library/xschem_simulator/nand4_1.sym +++ b/xschem_library/xschem_simulator/nand4_1.sym @@ -26,10 +26,10 @@ L 4 -45 -10 -30 -10 {} L 4 -60 60 -40 60 {} L 4 -40 25 -40 60 {} L 4 -40 25 -30 25 {} -B 5 -62.5 -62.5 -57.5 -57.5 {name=A dir=in propagate_to=4 } -B 5 -62.5 -22.5 -57.5 -17.5 {name=B dir=in propagate_to=4 } -B 5 -62.5 17.5 -57.5 22.5 {name=C dir=in propagate_to=4 } -B 5 -62.5 57.5 -57.5 62.5 {name=D dir=in propagate_to=4 } +B 5 -62.5 -62.5 -57.5 -57.5 {name=A dir=in goto=4 } +B 5 -62.5 -22.5 -57.5 -17.5 {name=B dir=in goto=4 } +B 5 -62.5 17.5 -57.5 22.5 {name=C dir=in goto=4 } +B 5 -62.5 57.5 -57.5 62.5 {name=D dir=in goto=4 } B 5 57.5 -2.5 62.5 2.5 {name=Y dir=out } A 4 5 0 30 270 180 {} A 4 40 0 5 0 360 {} diff --git a/xschem_library/xschem_simulator/nor4_1.sym b/xschem_library/xschem_simulator/nor4_1.sym index edba9e25..976ca5f2 100644 --- a/xschem_library/xschem_simulator/nor4_1.sym +++ b/xschem_library/xschem_simulator/nor4_1.sym @@ -25,10 +25,10 @@ L 4 -45 -10 -22.1875 -10 {} L 4 -60 60 -40 60 {} L 4 -40 25 -40 60 {} L 4 -40 25 -27.5 25 {} -B 5 -62.5 -62.5 -57.5 -57.5 {name=A dir=in propagate_to=4 } -B 5 -62.5 -22.5 -57.5 -17.5 {name=B dir=in propagate_to=4 } -B 5 -62.5 17.5 -57.5 22.5 {name=C dir=in propagate_to=4 } -B 5 -62.5 57.5 -57.5 62.5 {name=D dir=in propagate_to=4 } +B 5 -62.5 -62.5 -57.5 -57.5 {name=A dir=in goto=4 } +B 5 -62.5 -22.5 -57.5 -17.5 {name=B dir=in goto=4 } +B 5 -62.5 17.5 -57.5 22.5 {name=C dir=in goto=4 } +B 5 -62.5 57.5 -57.5 62.5 {name=D dir=in goto=4 } B 5 57.5 -2.5 62.5 2.5 {name=Y dir=out } A 4 40 0 5 0 360 {} A 4 -77.5 0 56.18051263561058 327.7243556854224 64.55128862915524 {} diff --git a/xschem_library/xschem_simulator/o21ai_1.sym b/xschem_library/xschem_simulator/o21ai_1.sym index 79c26a33..fe86d33b 100644 --- a/xschem_library/xschem_simulator/o21ai_1.sym +++ b/xschem_library/xschem_simulator/o21ai_1.sym @@ -22,9 +22,9 @@ 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 -82.5 -42.5 -77.5 -37.5 {name=A1 dir=in goto=3 } +B 5 -82.5 -2.5 -77.5 2.5 {name=A2 dir=in goto=3 } +B 5 -82.5 37.5 -77.5 42.5 {name=B1 dir=in goto=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 {} diff --git a/xschem_library/xschem_simulator/or4_1.sym b/xschem_library/xschem_simulator/or4_1.sym index bed54a6f..5cfd9620 100644 --- a/xschem_library/xschem_simulator/or4_1.sym +++ b/xschem_library/xschem_simulator/or4_1.sym @@ -26,10 +26,10 @@ L 4 -45 -10 -22.1875 -10 {} L 4 -60 60 -40 60 {} L 4 -40 25 -40 60 {} L 4 -40 25 -27.5 25 {} -B 5 -62.5 -62.5 -57.5 -57.5 {name=A dir=in propagate_to=4 } -B 5 -62.5 -22.5 -57.5 -17.5 {name=B dir=in propagate_to=4 } -B 5 -62.5 17.5 -57.5 22.5 {name=C dir=in propagate_to=4 } -B 5 -62.5 57.5 -57.5 62.5 {name=D dir=in propagate_to=4 } +B 5 -62.5 -62.5 -57.5 -57.5 {name=A dir=in goto=4 } +B 5 -62.5 -22.5 -57.5 -17.5 {name=B dir=in goto=4 } +B 5 -62.5 17.5 -57.5 22.5 {name=C dir=in goto=4 } +B 5 -62.5 57.5 -57.5 62.5 {name=D dir=in goto=4 } B 5 57.5 -2.5 62.5 2.5 {name=X dir=out } A 4 -77.5 0 56.18051263561058 327.7243556854224 64.55128862915524 {} A 4 -21.07142857142857 36.78571428571431 67.06112046149408 33.26691584358777 51.53865524867743 {} diff --git a/xschem_library/xschem_simulator/xor2_1.sym b/xschem_library/xschem_simulator/xor2_1.sym index d3b9caad..216d5136 100644 --- a/xschem_library/xschem_simulator/xor2_1.sym +++ b/xschem_library/xschem_simulator/xor2_1.sym @@ -14,9 +14,9 @@ L 4 -60 20 -35 20 {} L 4 35 0 60 0 {} L 4 -30 -30 -15 -30 {} L 4 -30 30 -15 30 {} -B 5 -62.5 -22.5 -57.5 -17.5 {name=A dir=in propagate_to=2 +B 5 -62.5 -22.5 -57.5 -17.5 {name=A dir=in goto=2 function2="0 1 ^"} -B 5 -62.5 17.5 -57.5 22.5 {name=B dir=in propagate_to=2 } +B 5 -62.5 17.5 -57.5 22.5 {name=B dir=in goto=2 } B 5 57.5 -2.5 62.5 2.5 {name=X dir=out } A 4 -77.5 0 56.18051263561058 327.7243556854224 64.55128862915524 {} A 4 -21.07142857142857 36.78571428571428 67.06112046149408 33.26691584358777 51.53865524867743 {}