uniquify __UNCONNECTED_NODE__ by appending a unique number to avoid shorting multiple missing connecting nodes

This commit is contained in:
Stefan Frederik 2021-01-14 18:12:02 +01:00
parent e332008fa8
commit 934e16ab87
8 changed files with 16 additions and 3 deletions

View File

@ -54,6 +54,7 @@ int find_script_lua(const char *name, int logdepth, int fatal)
/* OS specific include dir */
if (try_icl(logdepth, "libs/script/lua", test_c, NULL, "-I/usr/include", "-llua -llualib -lm")) return 0;
if (try_icl(logdepth, "libs/script/lua", test_c, NULL, "-I/usr/include/lua5.3", "-llua5.3 -lm")) return 0;
if (try_icl(logdepth, "libs/script/lua", test_c, NULL, "-I/usr/include/lua5.2", "-llua5.2 -lm")) return 0;
if (try_icl(logdepth, "libs/script/lua", test_c, NULL, "-I/usr/local/include", "-llua -llualib -lm")) return 0;
if (try_icl(logdepth, "libs/script/lua", test_c, NULL, "-I/usr/include", "-llua -lm")) return 0;

View File

@ -41,13 +41,14 @@ void global_spice_netlist(int global) /* netlister driver */
char cellname[PATH_MAX]; /* 20081211 overflow safe 20161122 */
char *subckt_name;
xctx->netlist_unconn_cnt=0; /* unique count of unconnected pins while netlisting */
statusmsg("",2); /* clear infowindow */
if(xctx->modified) {
save_ok = save_schematic(xctx->sch[xctx->currsch]);
if(save_ok == -1) return;
}
free_hash(subckt_table);
free_hash(model_table);
statusmsg("",2); /* clear infowindow */
record_global_node(2, NULL, NULL); /* delete list of global nodes */
top_subckt = 0;
spiceprefix=1;

View File

@ -2285,7 +2285,7 @@ const char *net_name(int i, int j, int *multip, int hash_prefix_unnamed_net, int
{
int tmp;
char errstr[2048];
static const char unconn[]="__UNCONNECTED_PIN__";
static char unconn[50];
char str_node[40]; /* 20161122 overflow safe */
if(xctx->inst[i].node && xctx->inst[i].node[j]!=NULL)
{
@ -2330,6 +2330,7 @@ const char *net_name(int i, int j, int *multip, int hash_prefix_unnamed_net, int
xctx->hilight_nets=1;
}
}
my_snprintf(unconn, S(unconn), "__UNCONNECTED_PIN__%d", xctx->netlist_unconn_cnt++);
return unconn;
}
}

View File

@ -39,12 +39,13 @@ void global_verilog_netlist(int global) /* netlister driver */
struct stat buf;
char *subckt_name;
xctx->netlist_unconn_cnt=0; /* unique count of unconnected pins while netlisting */
statusmsg("",2); /* clear infowindow */
if(xctx->modified) {
save_ok = save_schematic(xctx->sch[xctx->currsch]);
if(save_ok == -1) return;
}
free_hash(subckt_table);
statusmsg("",2); /* clear infowindow */
netlist_count=0;
/* top sch properties used for library use declarations and type definitions */
/* to be printed before any entity declarations */

View File

@ -39,6 +39,7 @@ void global_vhdl_netlist(int global) /* netlister driver */
struct stat buf;
char *subckt_name;
xctx->netlist_unconn_cnt=0; /* unique count of unconnected pins while netlisting */
statusmsg("",2); /* clear infowindow */
/* top sch properties used for library use declarations and type definitions */
/* to be printed before any entity declarations */

View File

@ -416,6 +416,7 @@ void alloc_xschem_data()
xctx->get_tok_size = 0;
xctx->get_tok_value_size = 0;
xctx->netlist_name[0] = '\0';
xctx->netlist_unconn_cnt = 0; /* unique count of unconnected pins while netlisting */
xctx->current_dirname[0] = '\0';
for(i = 0; i < NBOXES; i++) {
for(j = 0; j < NBOXES; j++) {

View File

@ -571,6 +571,7 @@ typedef struct {
int get_tok_value_size;
char netlist_name[PATH_MAX];
char current_dirname[PATH_MAX];
int netlist_unconn_cnt; /* unique count of unconnected pins while netlisting */
struct instpinentry *instpintable[NBOXES][NBOXES];
struct wireentry *wiretable[NBOXES][NBOXES];
struct instentry *insttable[NBOXES][NBOXES];

View File

@ -245,6 +245,10 @@ N 280 -360 390 -360 { lab=D}
N 550 -400 590 -400 { lab=G}
N 340 -320 390 -320 { lab=D}
N 340 -360 340 -320 { lab=D}
N 1035 -1870 1200 -1870 { lab=#net29}
N 1280 -1870 1360 -1870 { lab=#net30}
N 850 -1890 910 -1890 {}
N 850 -1850 910 -1850 {}
C {ipin.sym} 70 -190 0 0 { name=p20 lab=A }
C {ipin.sym} 70 -150 0 0 { name=p5 lab=C }
C {title.sym} 160 -30 0 0 {name=l1 author="Stefan Schippers"}
@ -405,3 +409,5 @@ C {lab_pin.sym} 780 -340 0 0 {name=p44 lab=CK3}
C {inv_2.sym} 430 -320 0 0 {name=x2 VGND=VGND VNB=VNB VPB=VPB VPWR=VPWR prefix=sky130_fd_sc_hd__ }
C {lab_pin.sym} 470 -320 0 1 {name=p45 lab=DN}
C {lab_pin.sym} 810 -210 0 1 {name=p46 lab=DN}
C {inv_2.sym} 1240 -1870 0 0 {name=x7 VGND=VGND VNB=VNB VPB=VPB VPWR=VPWR prefix=sky130_fd_sc_hd__ }
C {nand2_1.sym} 970 -1870 0 0 {name=x6 VGND=VGND VNB=VNB VPB=VPB VPWR=VPWR prefix=sky130_fd_sc_hd__ }