diff --git a/src/actions.c b/src/actions.c index b7a0b00d..59afb731 100644 --- a/src/actions.c +++ b/src/actions.c @@ -2845,6 +2845,7 @@ void set_viewport_size(int w, int h, double lw) void save_restore_zoom(int save, Zoom_info *zi) { if(save) { + dbg(1, "save_restore_zoom: save width= %d, height=%d\n", xctx->xrect[0].width, xctx->xrect[0].height); zi->savew = xctx->xrect[0].width; zi->saveh = xctx->xrect[0].height; zi->savelw = xctx->lw; @@ -2856,6 +2857,7 @@ void save_restore_zoom(int save, Zoom_info *zi) xctx->xrect[0].y = 0; xctx->xrect[0].width = (unsigned short)zi->savew; xctx->xrect[0].height = (unsigned short)zi->saveh; + dbg(1, "save_restore_zoom: restore width= %d, height=%d\n", xctx->xrect[0].width, xctx->xrect[0].height); xctx->areax2 = zi->savew+2*INT_WIDTH(zi->savelw); xctx->areay2 = zi->saveh+2*INT_WIDTH(zi->savelw); xctx->areax1 = -2*INT_WIDTH(zi->savelw); diff --git a/src/callback.c b/src/callback.c index eb929ea4..e0e59f92 100644 --- a/src/callback.c +++ b/src/callback.c @@ -441,10 +441,6 @@ static int waves_callback(int event, int mx, int my, KeySym key, int button, int /* determine if mouse pointer is below xaxis or left of yaxis in some graph */ setup_graph_data(i, 0, gr); - - - - /* check if user clicked on a wave label -> draw wave in bold */ if(event == ButtonPress && button == Button3 && edit_wave_attributes(2, i, gr)) { @@ -908,7 +904,10 @@ static int waves_callback(int event, int mx, int my, KeySym key, int button, int } /* loop: after having operated on the master graph do the others */ for(i=0; i< xctx->rects[GRIDLAYER]; ++i) { + int same_sim_type = 0; + char *curr_sim_type = NULL; r = &xctx->rect[GRIDLAYER][i]; + my_strdup2(_ALLOC_ID_, &curr_sim_type, get_tok_value(r->prop_ptr, "sim_type", 0)); need_redraw = 0; if( !(r->flags & 1) ) continue; /* 1: graph; 3: graph_unlocked */ gr->gx1 = gr->master_gx1; @@ -918,6 +917,12 @@ static int waves_callback(int event, int mx, int my, KeySym key, int button, int if(gr->dataset >= 0 /* && gr->dataset < xctx->raw->datasets */) dataset =gr->dataset; else dataset = -1; + if(!strcmp(curr_sim_type, + get_tok_value(xctx->rect[GRIDLAYER][xctx->graph_master].prop_ptr, "sim_type", 0))) { + same_sim_type = 1; + } + my_free(_ALLOC_ID_, &curr_sim_type); + if(event == MotionNotify && (state & Button1Mask) && !xctx->graph_bottom && !(xctx->graph_flags & (16 | 32 | 512 | 1024))) { double delta; @@ -955,7 +960,7 @@ static int waves_callback(int event, int mx, int my, KeySym key, int button, int delta = gr->gw; delta_threshold = 0.01; /* selected or locked or master */ - if( r->sel || !(r->flags & 2) || i == xctx->graph_master) { + if( r->sel || (same_sim_type && !(r->flags & 2)) || i == xctx->graph_master) { dbg(1, "moving waves: %d\n", i); if(fabs(xctx->mx_double_save - xctx->mousex_snap) > fabs(gr->cx * delta) * delta_threshold) { xx1 = gr->gx1 + (xctx->mx_double_save - xctx->mousex_snap) / gr->cx; @@ -994,7 +999,7 @@ static int waves_callback(int event, int mx, int my, KeySym key, int button, int /* horizontal move of waveforms with mouse wheel */ else { /* selected or locked or master */ - if( r->sel || !(r->flags & 2) || i == xctx->graph_master) { + if( r->sel || (same_sim_type && !(r->flags & 2)) || i == xctx->graph_master) { delta = gr->gw; delta_threshold = 0.05; xx1 = gr->gx1 - delta * delta_threshold; @@ -1031,7 +1036,7 @@ static int waves_callback(int event, int mx, int my, KeySym key, int button, int /* horizontal move of waveforms with mouse wheel */ else { /* selected or locked or master */ - if(r->sel || !(r->flags & 2) || i == xctx->graph_master) { + if(r->sel || (same_sim_type && !(r->flags & 2)) || i == xctx->graph_master) { delta = gr->gw; delta_threshold = 0.05; xx1 = gr->gx1 + delta * delta_threshold; @@ -1072,7 +1077,7 @@ static int waves_callback(int event, int mx, int my, KeySym key, int button, int } } else { /* selected or locked or master */ - if(r->sel || !(r->flags & 2) || i == xctx->graph_master) { + if(r->sel || (same_sim_type && !(r->flags & 2)) || i == xctx->graph_master) { double var = 0.2 * gr->gw; xx2 = gr->gx2 + var * (1 - zoom_m); xx1 = gr->gx1 - var * zoom_m; @@ -1111,7 +1116,7 @@ static int waves_callback(int event, int mx, int my, KeySym key, int button, int } } else { /* selected or locked or master */ - if(r->sel || !(r->flags & 2) || i == xctx->graph_master) { + if(r->sel || (same_sim_type && !(r->flags & 2)) || i == xctx->graph_master) { double var = 0.2 * gr->gw; xx2 = gr->gx2 - var * (1 - zoom_m); xx1 = gr->gx1 + var * zoom_m; @@ -1190,13 +1195,15 @@ static int waves_callback(int event, int mx, int my, KeySym key, int button, int need_redraw = 1; } } else { - delta = gr->gw; - delta_threshold = 0.05; - xx1 = gr->gx1 - delta * delta_threshold; - xx2 = gr->gx2 - delta * delta_threshold; - my_strdup(_ALLOC_ID_, &r->prop_ptr, subst_token(r->prop_ptr, "x1", dtoa(xx1))); - my_strdup(_ALLOC_ID_, &r->prop_ptr, subst_token(r->prop_ptr, "x2", dtoa(xx2))); - need_redraw = 1; + if(r->sel || (same_sim_type && !(r->flags & 2)) || i == xctx->graph_master) { + delta = gr->gw; + delta_threshold = 0.05; + xx1 = gr->gx1 - delta * delta_threshold; + xx2 = gr->gx2 - delta * delta_threshold; + my_strdup(_ALLOC_ID_, &r->prop_ptr, subst_token(r->prop_ptr, "x1", dtoa(xx1))); + my_strdup(_ALLOC_ID_, &r->prop_ptr, subst_token(r->prop_ptr, "x2", dtoa(xx2))); + need_redraw = 1; + } } } else if(event == KeyPress && key == XK_Right) { @@ -1215,13 +1222,15 @@ static int waves_callback(int event, int mx, int my, KeySym key, int button, int need_redraw = 1; } } else { - delta = gr->gw; - delta_threshold = 0.05; - xx1 = gr->gx1 + delta * delta_threshold; - xx2 = gr->gx2 + delta * delta_threshold; - my_strdup(_ALLOC_ID_, &r->prop_ptr, subst_token(r->prop_ptr, "x1", dtoa(xx1))); - my_strdup(_ALLOC_ID_, &r->prop_ptr, subst_token(r->prop_ptr, "x2", dtoa(xx2))); - need_redraw = 1; + if(r->sel || (same_sim_type && !(r->flags & 2)) || i == xctx->graph_master) { + delta = gr->gw; + delta_threshold = 0.05; + xx1 = gr->gx1 + delta * delta_threshold; + xx2 = gr->gx2 + delta * delta_threshold; + my_strdup(_ALLOC_ID_, &r->prop_ptr, subst_token(r->prop_ptr, "x1", dtoa(xx1))); + my_strdup(_ALLOC_ID_, &r->prop_ptr, subst_token(r->prop_ptr, "x2", dtoa(xx2))); + need_redraw = 1; + } } } else if(event == KeyPress && key == XK_Down) { @@ -1258,7 +1267,7 @@ static int waves_callback(int event, int mx, int my, KeySym key, int button, int } /* graph_master */ } else { /* not graph_left, full X zoom*/ /* selected or locked or master */ - if(r->sel || !(r->flags & 2) || i == xctx->graph_master) { + if(r->sel || (same_sim_type && !(r->flags & 2)) || i == xctx->graph_master) { need_redraw = graph_fullxzoom(i, gr, dataset); } } @@ -1268,7 +1277,7 @@ static int waves_callback(int event, int mx, int my, KeySym key, int button, int else if(event == MotionNotify && (state & Button1Mask) && xctx->graph_bottom ) { if(xctx->raw && xctx->raw->values) { /* selected or locked or master */ - if(r->sel || !(r->flags & 2) || i == xctx->graph_master) { + if(r->sel || (same_sim_type && !(r->flags & 2)) || i == xctx->graph_master) { /* xx1 and xx2 calculated for master graph above */ my_strdup(_ALLOC_ID_, &r->prop_ptr, subst_token(r->prop_ptr, "x1", dtoa(xx1))); @@ -1288,7 +1297,7 @@ static int waves_callback(int event, int mx, int my, KeySym key, int button, int else if(button == Button3 && (xctx->ui_state & GRAPHPAN) && !xctx->graph_left && !xctx->graph_top) { /* selected or locked or master */ - if(r->sel || !(r->flags & 2) || i == xctx->graph_master) { + if(r->sel || (same_sim_type && !(r->flags & 2)) || i == xctx->graph_master) { if(xctx->mx_double_save != xctx->mousex_snap) { clear_graphpan_at_end = 1; diff --git a/src/draw.c b/src/draw.c index ea1b9513..b7c057dc 100644 --- a/src/draw.c +++ b/src/draw.c @@ -4850,7 +4850,7 @@ void svg_embedded_graph(FILE *fd, xRect *r, double rx1, double ry1, double rx2, xctx->do_copy_area=save; tclsetboolvar("draw_grid", save_draw_grid); save_restore_zoom(0, &zi); - resetwin(1, 1, 1, xctx->xrect[0].width, xctx->xrect[0].height); + resetwin(1, 1, 1, 0, 0); h = fabs(y2 - y1); w = fabs(x2 - x1); diff --git a/src/psprint.c b/src/psprint.c index 3f2f46e7..295ed1ed 100644 --- a/src/psprint.c +++ b/src/psprint.c @@ -301,6 +301,7 @@ static int ps_embedded_graph(xRect* r, double rx1, double ry1, double rx2, doubl rwi = (int)(rw * scale + 1.0); rhi = (int)(rh * scale + 1.0); dbg(1, "graph size: %dx%d\n", rwi, rhi); + dbg(1, "ps_embedded_graph: saving zoom\n"); save_restore_zoom(1, &zi); set_viewport_size(rwi, rhi, xctx->lw); @@ -353,8 +354,9 @@ static int ps_embedded_graph(xRect* r, double rx1, double ry1, double rx2, doubl cairo_surface_destroy(png_sfc); xctx->draw_pixmap = 1; tclsetboolvar("draw_grid", save_draw_grid); + dbg(1, "ps_embedded_graph: restoring zoom\n"); save_restore_zoom(0, &zi); - resetwin(1, 1, 1, xctx->xrect[0].width, xctx->xrect[0].height); + resetwin(1, 1, 1, 0, 0); change_linewidth(xctx->lw); tclsetboolvar("dark_colorscheme", d_c); build_colors(0, 0); @@ -1178,8 +1180,8 @@ void create_ps(char **psfile, int what, int fullzoom, int eps) fprintf(errfp, "ps_draw(): can not create tmpfile %s\n", *psfile); return; } + setbuf(fd, NULL); /*To prevent buffer errors, still investigating cause. */ } - setbuf(fd, NULL); /*To prevent buffer errors, still investigating cause. */ ps_colors=my_calloc(_ALLOC_ID_, cadlayers, sizeof(Ps_color)); if(ps_colors==NULL){ fprintf(errfp, "create_ps(): calloc error\n"); @@ -1190,78 +1192,83 @@ void create_ps(char **psfile, int what, int fullzoom, int eps) old_grid=tclgetboolvar("draw_grid"); tclsetvar("draw_grid", "0"); - /* xschem window aspect ratio decides if portrait or landscape */ - boundbox.x1 = xctx->areax1; - boundbox.x2 = xctx->areax2; - boundbox.y1 = xctx->areay1; - boundbox.y2 = xctx->areay2; - dx=boundbox.x2-boundbox.x1; - dy=boundbox.y2-boundbox.y1; - - /* xschem drawing bbox decides if portrait or landscape */ - if(fullzoom == 1) { - calc_drawing_bbox(&boundbox, 0); - dx=boundbox.x2-boundbox.x1; - dy=boundbox.y2-boundbox.y1; - } - if(dx >= dy) { - landscape = 1; - } else { - landscape = 0; - } - dbg(1, "dx=%g, dy=%g\n", dx, dy); - if(fullzoom == 1) { - /* save size and zoom factor */ - save_restore_zoom(1, &zi); - /* this zoom only done to reset lw */ - zoom_full(0, 0, 1 + 2 * tclgetboolvar("zoom_full_center"), 0.97); - /* adjust aspect ratio to paper size */ - if(landscape) - xctx->xrect[0].height = (short unsigned int) (xctx->xrect[0].width * pagey / pagex); - else - xctx->xrect[0].width = (short unsigned int) (xctx->xrect[0].height * pagey / pagex); - dbg(1, "xrect.width=%d, xrect.height=%d\n", xctx->xrect[0].width, xctx->xrect[0].height); - xctx->areax1 = -2*INT_WIDTH(xctx->lw); - xctx->areay1 = -2*INT_WIDTH(xctx->lw); - xctx->areax2 = xctx->xrect[0].width+2*INT_WIDTH(xctx->lw); - xctx->areay2 = xctx->xrect[0].height+2*INT_WIDTH(xctx->lw); - xctx->areaw = xctx->areax2-xctx->areax1; - xctx->areah = xctx->areay2 - xctx->areay1; - dbg(1, "dx=%g, dy=%g\n", dx, dy); - /* fit schematic into adjusted size */ - zoom_full(0, 0, 0 + 2 * tclgetboolvar("zoom_full_center"), 0.97); + if(!(what & 4)) { + /* xschem window aspect ratio decides if portrait or landscape */ boundbox.x1 = xctx->areax1; boundbox.x2 = xctx->areax2; boundbox.y1 = xctx->areay1; boundbox.y2 = xctx->areay2; dx=boundbox.x2-boundbox.x1; dy=boundbox.y2-boundbox.y1; - } - - if(!landscape) { /* decide paper orientation for best schematic fit */ - double tmp; - tmp = pagex; - pagex = pagey; - pagey = tmp; - } - if(fullzoom == 2) { /* set media size to bbox */ - double sc; - my_strncpy(papername, "bbox", S(papername)); - pagex = xctx->xrect[0].width; - pagey = xctx->xrect[0].height; - if(pagex > pagey) { - sc = 842. / pagex; - pagex = my_round(pagex * sc); - pagey = my_round(pagey * sc); - } else { - sc = 842. / pagey; - pagex = my_round(pagex * sc); - pagey = my_round(pagey * sc); + + /* xschem drawing bbox decides if portrait or landscape */ + if(fullzoom == 1) { + calc_drawing_bbox(&boundbox, 0); + dx=boundbox.x2-boundbox.x1; + dy=boundbox.y2-boundbox.y1; } - margin = 0.0; - } + if(dx >= dy) { + landscape = 1; + } else { + landscape = 0; + } + dbg(1, "dx=%g, dy=%g\n", dx, dy); + + + if(fullzoom == 1) { + /* save size and zoom factor */ + dbg(1, "create_ps: saving zoom\n"); + save_restore_zoom(1, &zi); + /* this zoom only done to reset lw */ + zoom_full(0, 0, 1 + 2 * tclgetboolvar("zoom_full_center"), 0.97); + /* adjust aspect ratio to paper size */ + if(landscape) + xctx->xrect[0].height = (short unsigned int) (xctx->xrect[0].width * pagey / pagex); + else + xctx->xrect[0].width = (short unsigned int) (xctx->xrect[0].height * pagey / pagex); + dbg(1, "xrect.width=%d, xrect.height=%d\n", xctx->xrect[0].width, xctx->xrect[0].height); + xctx->areax1 = -2*INT_WIDTH(xctx->lw); + xctx->areay1 = -2*INT_WIDTH(xctx->lw); + xctx->areax2 = xctx->xrect[0].width+2*INT_WIDTH(xctx->lw); + xctx->areay2 = xctx->xrect[0].height+2*INT_WIDTH(xctx->lw); + xctx->areaw = xctx->areax2-xctx->areax1; + xctx->areah = xctx->areay2 - xctx->areay1; + dbg(1, "dx=%g, dy=%g\n", dx, dy); + /* fit schematic into adjusted size */ + zoom_full(0, 0, 0 + 2 * tclgetboolvar("zoom_full_center"), 0.97); + boundbox.x1 = xctx->areax1; + boundbox.x2 = xctx->areax2; + boundbox.y1 = xctx->areay1; + boundbox.y2 = xctx->areay2; + dx=boundbox.x2-boundbox.x1; + dy=boundbox.y2-boundbox.y1; + } + + if(!landscape) { /* decide paper orientation for best schematic fit */ + double tmp; + tmp = pagex; + pagex = pagey; + pagey = tmp; + } + if(fullzoom == 2) { /* set media size to bbox */ + double sc; + my_strncpy(papername, "bbox", S(papername)); + pagex = xctx->xrect[0].width; + pagey = xctx->xrect[0].height; + if(pagex > pagey) { + sc = 842. / pagex; + pagex = my_round(pagex * sc); + pagey = my_round(pagey * sc); + } else { + sc = 842. / pagey; + pagex = my_round(pagex * sc); + pagey = my_round(pagey * sc); + } + margin = 0.0; + } + } /* if(!(what & 4)) */ if(what & 1) {/* prolog */ dbg(1, "ps_draw(): bbox: x1=%g y1=%g x2=%g y2=%g\n", boundbox.x1, boundbox.y1, boundbox.x2, boundbox.y2); @@ -1334,7 +1341,6 @@ void create_ps(char **psfile, int what, int fullzoom, int eps) fprintf(fd, "%%%%EndProlog\n"); } - if(what & 2) { /* page */ ++numpages; @@ -1491,7 +1497,7 @@ void create_ps(char **psfile, int what, int fullzoom, int eps) dbg(1, "ps_draw(): INT_WIDTH(lw)=%d plotfile=%s\n",INT_WIDTH(xctx->lw), xctx->plotfile); fprintf(fd, "showpage\n\n"); - } + } /* if(what & 2) */ if(what & 4) { /* trailer */ fprintf(fd, "%%%%trailer\n"); fprintf(fd, "%%%%Pages: %d\n", numpages); @@ -1509,10 +1515,10 @@ void create_ps(char **psfile, int what, int fullzoom, int eps) /* restore original size and zoom factor */ - if(fullzoom == 1) { + if(!(what & 4) && fullzoom == 1) { + dbg(1, "create_ps: restoring zoom\n"); save_restore_zoom(0, &zi); } - } int ps_draw(int what, int fullzoom, int eps) diff --git a/src/scheduler.c b/src/scheduler.c index 69413af3..b5611a46 100644 --- a/src/scheduler.c +++ b/src/scheduler.c @@ -5784,7 +5784,7 @@ int xschem(ClientData clientdata, Tcl_Interp *interp, int argc, const char * arg char n[100]; if(!xctx) {Tcl_SetResult(interp, not_avail, TCL_STATIC); return TCL_ERROR;} if(argc > 2 && !strcmp(argv[2], "derived_symbols")) derived_symbols = 1; - else if(argc > 2 && argv[2][0]) { + else if(argc > 2 && argv[2][0] && isonlydigit(argv[2])) { one_symbol = 1; i = get_symbol(argv[2]); if(i >=0) Tcl_AppendResult(interp, my_itoa(i), " {", xctx->sym[i].name, "}", NULL); diff --git a/src/xschem.tcl b/src/xschem.tcl index a586d53a..6b7c26bb 100644 --- a/src/xschem.tcl +++ b/src/xschem.tcl @@ -1771,7 +1771,7 @@ proc simconf_add {tool} { # proc cellview prints symbol bindings (default binding or "schematic" attr in symbol) # of all symbols used in current and sub schematics. proc cellview_setlabels {w symbol derived_symbol} { - global dark_gui_colorscheme + global dark_gui_colorscheme netlist_type if {$dark_gui_colorscheme} { set instfg orange1 set symfg SeaGreen1 @@ -1783,6 +1783,7 @@ proc cellview_setlabels {w symbol derived_symbol} { set symbg SeaGreen1 set missingbg IndianRed1 } + set save_netlist_type [xschem get netlist_type] set current [xschem get current_name] set sym_spice_sym_def [xschem getprop symbol $symbol spice_sym_def 2] set abs_sch [xschem get_sch_from_sym -1 $symbol] @@ -1816,8 +1817,10 @@ proc cellview_setlabels {w symbol derived_symbol} { xschem set schsymbolprop $newprop xschem set_modify 3 ;# set only modified flag to force a save, do not update window/tab titles xschem save fast - # xschem remove_symbols ;# purge all symbols to force a reload from disk + xschem remove_symbols ;# purge all symbols to force a reload from disk xschem load -keep_symbols -nodraw -noundoreset $current + set netlist_type $save_netlist_type + xschem set netlist_type $netlist_type xschem netlist -keep_symbols -noalert;# traverse the hierarchy and retain all encountered symbols puts "get netlist" } @@ -1828,6 +1831,8 @@ proc cellview_setlabels {w symbol derived_symbol} { } proc cellview_edit_item {symbol w} { + global netlist_type + set save_netlist_type [xschem get netlist_type] set sym_spice_sym_def [xschem getprop symbol $symbol spice_sym_def 2] if {[xschem is_generator [$w get]]} { set f [$w get] @@ -1848,6 +1853,8 @@ proc cellview_edit_item {symbol w} { xschem save fast puts "$symbol: updated spice_sym_def attribute" xschem load -keep_symbols -nodraw -noundoreset $current + set netlist_type $save_netlist_type + xschem set netlist_type $netlist_type xschem reload_symbols ;# update in-memory symbol data } } @@ -1864,8 +1871,10 @@ proc cellview_edit_sym {w} { xschem load_new_window $sym } -proc cellview { {derived_symbols {}} {upd 0} } { - global keep_symbols nolist_libs dark_gui_colorscheme +proc cellview { {derived_symbols {}} {upd 0}} { + global keep_symbols nolist_libs dark_gui_colorscheme netlist_type + + set save_netlist_type [xschem get netlist_type] if {$dark_gui_colorscheme} { set instfg orange1 @@ -1885,6 +1894,8 @@ proc cellview { {derived_symbols {}} {upd 0} } { } if {!$upd} { + set netlist_type $save_netlist_type + xschem set netlist_type $netlist_type xschem reload_symbols ;# purge unused symbols xschem netlist -keep_symbols -noalert;# traverse the hierarchy and retain all encountered symbols puts "get netlist" @@ -2012,9 +2023,10 @@ proc cellview { {derived_symbols {}} {upd 0} } { ############ traversal proc traversal_setlabels {w parent_sch instname inst_sch sym_sch default_sch inst_spice_sym_def sym_spice_sym_def} { - global traversal dark_gui_colorscheme + global traversal dark_gui_colorscheme netlist_type set sf .trav.center.f.scrl + set save_netlist_type [xschem get netlist_type] # puts "traversal_setlabels: $w parent: |$parent_sch| inst: $instname def: $sym_sch $inst_sch --> [$w get]" # update schematic if {$parent_sch ne {}} { @@ -2032,6 +2044,8 @@ proc traversal_setlabels {w parent_sch instname inst_sch sym_sch default_sch set inst_sch [$w get] # puts "inst_sch set to: $inst_sch" xschem load -undoreset -nodraw $current + set netlist_type $save_netlist_type + xschem set netlist_type $netlist_type } } # /update schematic diff --git a/xschem_library/rom8k/lvnand2.sym b/xschem_library/rom8k/lvnand2.sym index 2fa69bb9..805f94a1 100644 --- a/xschem_library/rom8k/lvnand2.sym +++ b/xschem_library/rom8k/lvnand2.sym @@ -1,4 +1,4 @@ -v {xschem version=3.4.4 file_version=1.2 +v {xschem version=3.4.6 file_version=1.2 * * This file is part of XSCHEM, * a schematic capture and Spice/Vhdl/Verilog netlisting tool for circuit @@ -31,7 +31,8 @@ template="name=x1 m=1 + VCCPIN=VCC VSSPIN=VSS" extra="VCCPIN VSSPIN" generic_type="m=integer wna=real lna=real wpa=real lpa=real wnb=real lnb=real wpb=real lpb=real VCCPIN=string VSSPIN=string" -verilog_stop=true} +verilog_stop=true +} V {} S {} E {} diff --git a/xschem_library/rom8k/lvnor2.sym b/xschem_library/rom8k/lvnor2.sym index 28cea362..95672ee9 100644 --- a/xschem_library/rom8k/lvnor2.sym +++ b/xschem_library/rom8k/lvnor2.sym @@ -1,4 +1,4 @@ -v {xschem version=3.4.4 file_version=1.2 +v {xschem version=3.4.6 file_version=1.2 * * This file is part of XSCHEM, * a schematic capture and Spice/Vhdl/Verilog netlisting tool for circuit @@ -19,7 +19,8 @@ v {xschem version=3.4.4 file_version=1.2 * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA } -G {type=subcircuit +G {} +K {type=subcircuit vhdl_stop=true verilog_stop=true format="@name @pinlist @VCCPIN @VSSPIN @symname wna=@wna lna=@lna wpa=@wpa lpa=@lpa wnb=@wnb lnb=@lnb wpb=@wpb lpb=@lpb m=@m" diff --git a/xschem_library/rom8k/lvnot.sym b/xschem_library/rom8k/lvnot.sym index 59321d63..2f4980f0 100644 --- a/xschem_library/rom8k/lvnot.sym +++ b/xschem_library/rom8k/lvnot.sym @@ -1,4 +1,4 @@ -v {xschem version=3.4.4 file_version=1.2 +v {xschem version=3.4.6 file_version=1.2 * * This file is part of XSCHEM, * a schematic capture and Spice/Vhdl/Verilog netlisting tool for circuit @@ -30,7 +30,8 @@ template="name=x1 m=1 + VCCPIN=VCC VSSPIN=VSS" extra="VCCPIN VSSPIN" generic_type="m=integer wn=real lln=real wp=real lp=real VCCPIN=string VSSPIN=string" -verilog_stop=true} +verilog_stop=true +} V {} S {} E {} diff --git a/xschem_library/rom8k/rom2_predec1.sym b/xschem_library/rom8k/rom2_predec1.sym index 630760ce..524d5cc4 100644 --- a/xschem_library/rom8k/rom2_predec1.sym +++ b/xschem_library/rom8k/rom2_predec1.sym @@ -1,4 +1,4 @@ -v {xschem version=3.4.4 file_version=1.2 +v {xschem version=3.4.6 file_version=1.2 * * This file is part of XSCHEM, * a schematic capture and Spice/Vhdl/Verilog netlisting tool for circuit @@ -19,7 +19,8 @@ v {xschem version=3.4.4 file_version=1.2 * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA } -G {type=subcircuit +G {} +K {type=subcircuit format="@name @pinlist @symname" template="name=x1" }