From 92c99c10f99352868460b362667320ee2b8c5c24 Mon Sep 17 00:00:00 2001 From: stefan schippers Date: Tue, 5 Nov 2024 13:59:37 +0100 Subject: [PATCH] get_additional_symbols(): some sanity checks, descend_schematic() more options in set_title argument (avoid set title, avoid processing pins/nets, avoid descending into i-th xdec[3] instance, descend as a whole xdec[3:0], add `xschem get_additional_symbols what` command, allow `xschem get_sch_from_sym -1 inv.sym` to get schematic associated with symbol. hier_psprint(): avoid printing / listing duplicate schematics, improved traversal.tcl --- XSchemWin/INSTALL_WIN | 10 +- XSchemWin/README_WIN | 17 +- XSchemWin/XSchemWix/Product.wxs | 426 +- XSchemWin/XSchemWix/doc.wxs | 6985 ++++++++++++++- XSchemWin/XSchemWix/heat_xschem_library.wxs | 3920 ++++----- XSchemWin/XSchemWix/xschem_library.wxs | 7670 +---------------- XSchemWin/XSchemWix/xschemrc | 90 +- src/actions.c | 41 +- src/scheduler.c | 51 +- src/spice_netlist.c | 34 +- src/traversal.tcl | 40 +- src/xinit.c | 27 +- src/xschemrc | 28 +- tests/cleanup_debug_file.awk | 2 + .../inst_sch_select/comp3_empty.sch | 5 +- 15 files changed, 9765 insertions(+), 9581 deletions(-) diff --git a/XSchemWin/INSTALL_WIN b/XSchemWin/INSTALL_WIN index ad099cfd..1d22d779 100644 --- a/XSchemWin/INSTALL_WIN +++ b/XSchemWin/INSTALL_WIN @@ -9,10 +9,10 @@ These instructions are relevant if you're installing Xschem with the Windows Ins - Windows Ghostscript (to print; Add directory of gswin64.exe to PATH, if it's not already done so) 2. Install Tree -C:/Program Files/XSchem/bin - Binaries (executable file). -C:/Program Files/XSchem/doc - Various documentation. -C:/Program Files/XSchem/share - default share directory containing systemlib, utile, xschem.tcl, xschemrc and *.awk (can be overriden with XSCHEM_SHARE_DIR) -C:/Program Files/XSchem/xschem_library - XSchem library consisting of .sch and .sym -C:/Users//xschem - User configuration directory +C:/Program Files/XSchem/bin - Binaries (executable file). +C:/Program Files/XSchem/share/doc - Various documentation and examples schematics +C:/Program Files/XSchem/share/xschem - default share directory containing systemlib, utile, xschem.tcl, xschemrc and *.awk (can be overriden with XSCHEM_SHARE_DIR) +C:/Program Files/XSchem/share/xschem/xschem_library - XSchem library devices consisting of .sch and .sym +C:/Users//xschem - User configuration directory It's important to maintain this Install tree for XSchem to work correctly \ No newline at end of file diff --git a/XSchemWin/README_WIN b/XSchemWin/README_WIN index da7a2028..29b93f72 100644 --- a/XSchemWin/README_WIN +++ b/XSchemWin/README_WIN @@ -84,17 +84,16 @@ INSTRUCTIONS TO COMPILE XSCHEM IN VISUAL STUDIO 2022 Outputs: expandlabel.c 3. Compiling - - config.h can be edited to change default's XSCHEM_LIBRARY_PATH. It's defaulted to include the following directories: - C:/Program Files/XSchem/xschem_library/devices - C:/Program Files/XSchem/xschem_library/examples - C:/Program Files/XSchem/xschem_library/ngspice - C:/Program Files/XSchem/xschem_library/logic - C:/Program Files/XSchem/xschem_library/binto7seg - C:/Program Files/XSchem/xschem_library/generators - C:/Program Files/XSchem/xschem_library/pcb - C:/Program Files/XSchem/xschem_library/rom8k + C:/Program Files/XSchem/share/xschem/xschem_library/devices + C:/Program Files/XSchem/share/doc/examples + C:/Program Files/XSchem/share/doc/ngspice + C:/Program Files/XSchem/share/doc/logic + C:/Program Files/XSchem/share/doc/binto7seg + C:/Program Files/XSchem/share/doc/generators + C:/Program Files/XSchem/share/doc/pcb + C:/Program Files/XSchem/share/doc/rom8k Ctrl-b - After compiling the first time, add expandlabel.c, expandlabel.h, parselabel.c into the project. diff --git a/XSchemWin/XSchemWix/Product.wxs b/XSchemWin/XSchemWix/Product.wxs index fdfb95fe..a8819d99 100644 --- a/XSchemWin/XSchemWix/Product.wxs +++ b/XSchemWin/XSchemWix/Product.wxs @@ -72,7 +72,7 @@ + Target="[SHAREFOLDER]/doc/xschem/xschem_man/xschem_manual.pdf" /> @@ -110,221 +110,223 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + - - - + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/XSchemWin/XSchemWix/doc.wxs b/XSchemWin/XSchemWix/doc.wxs index 7a0f2e72..225a0eeb 100644 --- a/XSchemWin/XSchemWix/doc.wxs +++ b/XSchemWin/XSchemWix/doc.wxs @@ -1,8 +1,5252 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1173,10 +6417,1749 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/XSchemWin/XSchemWix/heat_xschem_library.wxs b/XSchemWin/XSchemWix/heat_xschem_library.wxs index 01f363f5..6c8db367 100644 --- a/XSchemWin/XSchemWix/heat_xschem_library.wxs +++ b/XSchemWin/XSchemWix/heat_xschem_library.wxs @@ -3,5899 +3,5917 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -5947,6 +5965,7 @@ + @@ -7544,6 +7563,8 @@ + + @@ -7580,6 +7601,7 @@ + @@ -7614,6 +7636,8 @@ + + diff --git a/XSchemWin/XSchemWix/xschem_library.wxs b/XSchemWin/XSchemWix/xschem_library.wxs index 948c8256..4bce22b7 100644 --- a/XSchemWin/XSchemWix/xschem_library.wxs +++ b/XSchemWin/XSchemWix/xschem_library.wxs @@ -1,5598 +1,366 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -5628,6 +396,7 @@ + @@ -5708,1732 +477,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/XSchemWin/XSchemWix/xschemrc b/XSchemWin/XSchemWix/xschemrc index 63d9dd3f..94adef3a 100644 --- a/XSchemWin/XSchemWix/xschemrc +++ b/XSchemWin/XSchemWix/xschemrc @@ -63,17 +63,23 @@ # append XSCHEM_LIBRARY_PATH :${xschem_doc_dir}/gschem_import/sym #### For Windows, use ; instead of :, and enclosed pathname with "" -# append XSCHEM_LIBRARY_PATH ";${XSCHEM_SHAREDIR}/../xschem_library" -# append XSCHEM_LIBRARY_PATH ";${XSCHEM_SHAREDIR}/../xschem_library/devices" -# append XSCHEM_LIBRARY_PATH ";${XSCHEM_SHAREDIR}/../xschem_library/examples" -# append XSCHEM_LIBRARY_PATH ";${XSCHEM_SHAREDIR}/../xschem_library/ngspice" -# append XSCHEM_LIBRARY_PATH ";${XSCHEM_SHAREDIR}/../xschem_library/logic" -# append XSCHEM_LIBRARY_PATH ";${XSCHEM_SHAREDIR}/../xschem_library/xschem_simulator" -# append XSCHEM_LIBRARY_PATH ";${XSCHEM_SHAREDIR}/../xschem_library/generators" -# append XSCHEM_LIBRARY_PATH ";${XSCHEM_SHAREDIR}/../xschem_library/inst_sch_select" -# append XSCHEM_LIBRARY_PATH ";${XSCHEM_SHAREDIR}/../xschem_library/binto7seg" -# append XSCHEM_LIBRARY_PATH ";${XSCHEM_SHAREDIR}/../xschem_library/pcb" -# append XSCHEM_LIBRARY_PATH ";${XSCHEM_SHAREDIR}/../xschem_library/rom8k" +# append XSCHEM_LIBRARY_PATH ";${XSCHEM_SHAREDIR}/xschem_library" +# append XSCHEM_LIBRARY_PATH ";${XSCHEM_SHAREDIR}/xschem_library/devices" +# append XSCHEM_LIBRARY_PATH ";${xschem_doc_dir}/examples" +# append XSCHEM_LIBRARY_PATH ";${xschem_doc_dir}/ngspice" +# append XSCHEM_LIBRARY_PATH ";${xschem_doc_dir}/logic" +# append XSCHEM_LIBRARY_PATH ";${xschem_doc_dir}/xschem_simulator" +# append XSCHEM_LIBRARY_PATH ";${xschem_doc_dir}/generators" +# append XSCHEM_LIBRARY_PATH ";${xschem_doc_dir}/inst_sch_select" +# append XSCHEM_LIBRARY_PATH ";${xschem_doc_dir}/binto7seg" +# append XSCHEM_LIBRARY_PATH ";${xschem_doc_dir}/pcb" +# append XSCHEM_LIBRARY_PATH ";${xschem_doc_dir}/rom8k" +#### Optional, often not needed... +# append XSCHEM_LIBRARY_PATH ";${xschem_doc_dir}/symgen" +# append XSCHEM_LIBRARY_PATH ";${xschem_doc_dir}/xTAG" +# append XSCHEM_LIBRARY_PATH ";${xschem_doc_dir}/rulz-r8c33" +# append XSCHEM_LIBRARY_PATH ";${xschem_doc_dir}/gschem_import" +# append XSCHEM_LIBRARY_PATH ";${xschem_doc_dir}/gschem_import/sym" ########################################################################### #### SET CUSTOM COLORS FOR XSCHEM LIBRARIES MATCHING CERTAIN PATTERNS @@ -200,6 +206,10 @@ #### default: not enabled (0) # set unselect_partial_sel_wires 0 +#### if set select objects if touched by selection rectangle while dragging to the left +#### Default: enabled (1) +# set select_touch 0 + #### if set show selected elements while dragging the selection rectangle. #### once selected these can not be unselected by retracting the selection rectangle #### if not set show selected items at end of drag. Default: enabled (1) @@ -234,6 +244,9 @@ #### enable drawing the grid. Default: enabled (1) # set draw_grid 1 +#### auto highlight nodes shown in graphs: default: not enabled (0) +# set auto_hilight_graph_nodes 0 + #### enable stretch mode: when dragging a selection rectangle that cuts wires these are stretched #### to follow the selected objects when moved. Default: not enabled (0). #### This can be normally done by dragging with the Control key pressed. @@ -302,6 +315,15 @@ set to_pdf {gswin64c -sDEVICE=pdfwrite -o} # set to_pdf ps2pdf # set to_pdf {ps2pdf -dAutoRotatePages=/None} +########################################################################### +#### IMPORT SVG IMAGES +########################################################################### +#### this is a filter command that processes svg files and writes png data +#### listed in my personal order of preference. +#### filter must read stdin and write to stdout. +# set svg_to_png {rsvg-convert} +# set svg_to_png {inkscape --pipe --export-type=png --export-filename=-} +# set svg_to_png {convert - png:-} ########################################################################### #### UNDO: SAVE ON DISK OR KEEP IN MEMORY @@ -341,6 +363,25 @@ set to_pdf {gswin64c -sDEVICE=pdfwrite -o} # "#ff7777" "#bfff81" "#00ffcc" "#ce0097" "#d2d46b" # "#ef6158" "#fdb200" } +########################################################################### +#### CUSTOM FILL PATTERNS MAY BE DEFINED HERE +########################################################################### +#### every 0x#### hex data represents one 16 bit row of the 16x16 bit fill bitmap +#### of the specified layer number. +#### following examples set a checkerboard fill pattern +#### for symbol shape drawing layer (layer 4) +#### and for pin layer (layer 5) +# +# set pixdata(4) { +# 0x8888 0x0000 0x0000 0x0000 0x2222 0x0000 0x0000 0x0000 +# 0x8888 0x0000 0x0000 0x0000 0x2222 0x0000 0x0000 0x0000 +# } + +# set pixdata(5) { +# 0x5555 0xaaaa 0x5555 0xaaaa 0x5555 0xaaaa 0x5555 0xaaaa +# 0x5555 0xaaaa 0x5555 0xaaaa 0x5555 0xaaaa 0x5555 0xaaaa +# } + ########################################################################### #### CAIRO STUFF ########################################################################### @@ -444,7 +485,32 @@ set editor {notepad.exe} ########################################################################### #### TCL COMMANDS TO BE EXECUTED AFTER COMPLETING STARTUP ########################################################################### +#### some examples: # set postinit_commands {puts [xschem get version]} +# set postinit_commands { +# .menubar.netlist configure -command {xschem netlist -erc; edit_netlist [xschem get netlist_name fallback]} +# .menubar.simulate configure -command {xschem netlist -erc; simulate_from_button} +# } +# +# +#### example: if a raw file already exists re-run a tran simulation. +#### and schedule a waveform load at the end. +# set postinit_commands { +# set rawfile $netlist_dir/[file rootname [xschem get current_name]].raw +# if {[file exists $rawfile]} { +# xschem netlist +# set sim(spice,default) 1 ;# ngspice control mode (no xterminal) +# set sim(spice,1,st) 0 ;# no status report +# set sim(spice,1,fg) 0 ;# background +# simulate_from_button { +# viewdata $execute(data,last) +# xschem raw read $rawfile tran +# xschem redraw +# } +# } +# } + + ########################################################################### #### WEB URL DOWNLOAD HELPER APPLICATION @@ -498,7 +564,7 @@ set editor {notepad.exe} #### LIVE BACKANNOTATION OF DATA AT CURSOR 2 (B) POSITION ########################################################################### #### if enabled will backannotate values in schematic at cursor 'b' position -#### in graph. Default: not enabled (0) +#### in graph. Default: enabled (1) # set live_cursor2_backannotate 1 ########################################################################### diff --git a/src/actions.c b/src/actions.c index 3d433e12..e6dde1e6 100644 --- a/src/actions.c +++ b/src/actions.c @@ -1953,6 +1953,8 @@ void get_additional_symbols(int what) char *sch = NULL; char symbol_base_sch[PATH_MAX] = ""; + const char *sch_ptr = + if(xctx->inst[i].ptr < 0) continue; /* copy instance based *_sym_def attributes to symbol */ my_strdup(_ALLOC_ID_, &spice_sym_def, get_tok_value(xctx->inst[i].prop_ptr,"spice_sym_def",6)); my_strdup(_ALLOC_ID_, &verilog_sym_def, get_tok_value(xctx->inst[i].prop_ptr,"verilog_sym_def",4)); @@ -1961,12 +1963,13 @@ void get_additional_symbols(int what) str_replace( get_tok_value(xctx->inst[i].prop_ptr,"schematic",2), "@symname", get_cell(xctx->inst[i].name, 0), '\\'))); dbg(1, "get_additional_symbols(): inst=%d sch=%s\n",i, sch); - if(sch[0] && stat(abs_sym_path(sch, ""), &buf)) {/* schematic does not exist */ + /* schematic does not exist */ + if(sch[0] && stat(abs_sym_path(sch, ""), &buf)) { my_snprintf(symbol_base_sch, PATH_MAX, "%s.sch", get_cell(xctx->sym[xctx->inst[i].ptr].name, 9999)); dbg(1, "get_additional_symbols(): schematic not existing\n"); dbg(1, "using: %s\n", symbol_base_sch); } - if(xctx->tok_size && xctx->inst[i].ptr>= 0) { /* token exists and instance points to valid symbol */ + if(xctx->tok_size && sch[0]) { /* "schematic" token exists and a schematic is specified */ int j; char *sym = NULL; char *templ = NULL; @@ -1976,7 +1979,8 @@ void get_additional_symbols(int what) my_strdup2(_ALLOC_ID_, &default_schematic, get_tok_value(symptr->prop_ptr,"default_schematic",0)); ignore_schematic = !strcmp(default_schematic, "ignore"); - dbg(1, "get_additional_symbols(): inst=%d, sch=%s\n", i, sch); + dbg(1, "get_additional_symbols(): inst=%d, sch=%s instname=%s\n", i, sch, xctx->inst[i].instname); + dbg(1, "get_additional_symbols(): current_name=%s\n", xctx->current_name); is_gen = is_generator(sch); @@ -2039,12 +2043,12 @@ void get_additional_symbols(int what) } my_free(_ALLOC_ID_, &sym); my_free(_ALLOC_ID_, &default_schematic); - } + } /* if(xctx->tok_size && sch[0]) */ my_free(_ALLOC_ID_, &sch); my_free(_ALLOC_ID_, &spice_sym_def); my_free(_ALLOC_ID_, &vhdl_sym_def); my_free(_ALLOC_ID_, &verilog_sym_def); - } + } /* for(i=0;iinstances; ++i) */ int_hash_free(&sym_table); } else { /* end */ for(i = xctx->symbols - 1; i >= num_syms; --i) { @@ -2144,7 +2148,7 @@ void get_sch_from_sym(char *filename, xSymbol *sym, int inst, int fallback) } /* When descended into an i-th instance of a vector instance this function allows - * to change the path to the j-hj instance. the instnumber parameters follows the same rules + * to change the path to the j-th instance. the instnumber parameters follows the same rules * as descend_schematic() */ int change_sch_path(int instnumber, int dr) { @@ -2175,7 +2179,7 @@ int change_sch_path(int instnumber, int dr) my_strcat(_ALLOC_ID_, &xctx->sch_path[xctx->currsch], "."); xctx->sch_path_hash[xctx->currsch] = 0; xctx->sch_inst_number[level] = instnumber; - dbg(0, "instname=%s, path=%s\n", instname, path); + dbg(1, "instname=%s, path=%s\n", instname, path); path[pathlen - 1] = '.'; res = 1; if(dr && has_x) { @@ -2188,7 +2192,14 @@ int change_sch_path(int instnumber, int dr) return res; } -/* fallback = 1: if schematic=.. attr is set but file not existing descend into symbol base schematic */ +/* fallback = 1: if schematic=.. attr is set but file not existing descend into symbol base schematic + * instnumber: instance to descend into in case of vector instances (1 = leftmost, -1=rightmost) + * if set_title == 0 do not set window title (faster) + * == 1 do set_title + * == 2 do not process instance pins/nets + * == 4 do not descend into i-th instance of vecrtor instance. just + * concatenate instance name as is to path and descend. + * above flags can be ORed together */ int descend_schematic(int instnumber, int fallback, int alert, int set_title) { char *str = NULL; @@ -2247,7 +2258,13 @@ int descend_schematic(int instnumber, int fallback, int alert, int set_title) dbg(1, "descend_schematic(): selected instname=%s\n", xctx->inst[n].instname); if(xctx->inst[n].instname && xctx->inst[n].instname[0]) { - my_strdup2(_ALLOC_ID_, &str, expandlabel(xctx->inst[n].instname, &inst_mult)); + if(set_title & 4) { + my_strdup2(_ALLOC_ID_, &str, xctx->inst[n].instname); + inst_mult = 1; + instnumber = 1; + } else { + my_strdup2(_ALLOC_ID_, &str, expandlabel(xctx->inst[n].instname, &inst_mult)); + } } else { my_strdup2(_ALLOC_ID_, &str, ""); inst_mult = 1; @@ -2283,7 +2300,7 @@ int descend_schematic(int instnumber, int fallback, int alert, int set_title) if(xctx->portmap[xctx->currsch + 1].table) str_hash_free(&xctx->portmap[xctx->currsch + 1]); str_hash_init(&xctx->portmap[xctx->currsch + 1], HASHSIZE); - for(i = 0; i < xctx->sym[xctx->inst[n].ptr].rects[PINLAYER]; i++) { + if(set_title & 2) for(i = 0; i < xctx->sym[xctx->inst[n].ptr].rects[PINLAYER]; i++) { const char *pin_name = get_tok_value(xctx->sym[xctx->inst[n].ptr].rect[PINLAYER][i].prop_ptr,"name",0); char *pin_node = NULL, *net_node = NULL; int k, mult, net_mult; @@ -2342,7 +2359,7 @@ int descend_schematic(int instnumber, int fallback, int alert, int set_title) dbg(1, "descend_schematic(): filename=%s\n", filename); /* we are descending from a parent schematic downloaded from the web */ if(!tclgetboolvar("keep_symbols")) remove_symbols(); - load_schematic(1, filename, set_title, alert); + load_schematic(1, filename, (set_title & 1), alert); if(xctx->hilight_nets) { prepare_netlist_structs(0); propagate_hilights(1, 0, XINSERT_NOREPLACE); @@ -2408,7 +2425,7 @@ void go_back(int confirm, int set_title) /* 20171006 add confirm */ /* by default) to parent schematic if going back from embedded symbol */ my_strncpy(filename, xctx->sch[xctx->currsch], S(filename)); - load_schematic(1, filename, set_title, 1); + load_schematic(1, filename, (set_title & 1), 1); /* if we are returning from a symbol created from a generator don't set modified flag on parent * as these symbols can not be edited / saved as embedded * xctx->sch_inst_number[xctx->currsch + 1] == -1 --> we came from an inst with no embed flag set */ diff --git a/src/scheduler.c b/src/scheduler.c index d5069971..3d730151 100644 --- a/src/scheduler.c +++ b/src/scheduler.c @@ -783,7 +783,7 @@ int xschem(ClientData clientdata, Tcl_Interp *interp, int argc, const char * arg * instance number to descend into for vector instances (default: 0). * 0 or 1: leftmost instance, 2: second leftmost instance, ... * -1: rightmost instance,-2: second rightmost instance, ... - * if string 'notitle' is given do not update window title (slow) */ + * if integer 'notitle' is given pass it to descend_schematic() */ else if(!strcmp(argv[1], "descend")) { int ret=0; @@ -791,8 +791,8 @@ int xschem(ClientData clientdata, Tcl_Interp *interp, int argc, const char * arg if(!xctx) {Tcl_SetResult(interp, not_avail, TCL_STATIC); return TCL_ERROR;} if(xctx->semaphore == 0) { - if(argc > 3 && !strcmp(argv[3], "notitle")) { - set_title = 0; + if(argc > 3 ) { + set_title = atoi(argv[3]); } if(argc > 2) { int n = atoi(argv[2]); @@ -878,7 +878,7 @@ int xschem(ClientData clientdata, Tcl_Interp *interp, int argc, const char * arg int i = -1; if(!xctx) {Tcl_SetResult(interp, not_avail, TCL_STATIC); return TCL_ERROR;} if(argc > 2 && (i = get_instance(argv[2])) < 0 ) { - Tcl_SetResult(interp, "xschem getprop: instance not found", TCL_STATIC); + Tcl_SetResult(interp, "xschem drc_check: instance not found", TCL_STATIC); return TCL_ERROR; } drc_check(i); @@ -1687,6 +1687,16 @@ int xschem(ClientData clientdata, Tcl_Interp *interp, int argc, const char * arg } } + /* get_additional_symbols what + * create new symbols for instance based implementation selection */ + else if(!strcmp(argv[1], "get_additional_symbols") ) + { + if(argc > 2) { + get_additional_symbols(atoi(argv[2])); + } + Tcl_ResetResult(interp); + } + /* get_cell cell n_dirs * return result of get_cell function */ else if(!strcmp(argv[1], "get_cell") ) @@ -1883,23 +1893,36 @@ int xschem(ClientData clientdata, Tcl_Interp *interp, int argc, const char * arg } } - /* get_sch_from_sym inst - * get schematic associated with instance 'inst' */ + /* get_sch_from_sym inst [symbol] + * get schematic associated with instance 'inst' + * if inst==-1 and a 'symbol' name is given get sch associated with symbol */ else if(!strcmp(argv[1], "get_sch_from_sym") ) { int inst = -1; + int sym = -1; char filename[PATH_MAX]; my_strncpy(filename, "", S(filename)); if(!xctx) {Tcl_SetResult(interp, not_avail, TCL_STATIC); return TCL_ERROR;} + if(argc > 2) { - if((inst = get_instance(argv[2])) < 0 ) { - Tcl_SetResult(interp, "xschem get_sch_from_sym: instance not found", TCL_STATIC); - return TCL_ERROR; - } else { - if( xctx->inst[inst].ptr >= 0 ) { - get_sch_from_sym(filename, xctx->inst[inst].ptr+ xctx->sym, inst, 0); + if(argc > 3 && atoi(argv[2]) == -1) { + sym = get_symbol(argv[3]); + if(sym < 0) { + Tcl_SetResult(interp, "xschem get_sch_from_sym: symbol not found", TCL_STATIC); + return TCL_ERROR; } } + else { + inst = get_instance(argv[2]); + if(inst < 0) { + Tcl_SetResult(interp, "xschem get_sch_from_sym: instance not found", TCL_STATIC); + return TCL_ERROR; + } + } + if( xctx->inst[inst].ptr >= 0 && sym == -1) { + sym = xctx->inst[inst].ptr; + } + if(sym >= 0) get_sch_from_sym(filename, sym + xctx->sym, inst, 0); } Tcl_SetResult(interp, filename, TCL_VOLATILE); } @@ -2611,7 +2634,7 @@ int xschem(ClientData clientdata, Tcl_Interp *interp, int argc, const char * arg } /* is_symgen symbol - * tell if 'symbol' is agenerator (symbol(param1,param2,...) */ + * tell if 'symbol' is a generator (symbol(param1,param2,...) */ else if(!strcmp(argv[1], "is_symgen")) { char s[30]; @@ -5092,6 +5115,8 @@ int xschem(ClientData clientdata, Tcl_Interp *interp, int argc, const char * arg * setprop symbol name tok [val] * Set attribute 'tok' of symbol name 'name' to 'val' * If 'val' not given (no attribute value) delete attribute from symbol + * This command is not very useful since changes are not saved into symbol + * and netlisters reload symbols, so changes are lost anyway. * * setprop rect lay n tok [val] [fast|fastundo] * Set attribute 'tok' of rectangle number'n' on layer 'lay' diff --git a/src/spice_netlist.c b/src/spice_netlist.c index 54f8d30f..974d85a9 100644 --- a/src/spice_netlist.c +++ b/src/spice_netlist.c @@ -91,7 +91,7 @@ void hier_psprint(char **res, int what) /* netlister driver */ /* xctx->sym can be SCH or SYM, use hash to avoid writing duplicate subckt */ my_strdup(_ALLOC_ID_, &subckt_name, get_cell(xctx->sym[i].name, 0)); get_sch_from_sym(filename, xctx->sym + i, -1, 0); - if (str_hash_lookup(&subckt_table, filename, "", XLOOKUP)==NULL) + if (str_hash_lookup(&subckt_table, subckt_name, "", XINSERT_NOREPLACE)==NULL) { const char *default_schematic; /* do not insert symbols with default_schematic attribute set to ignore in hash since these symbols @@ -100,27 +100,27 @@ void hier_psprint(char **res, int what) /* netlister driver */ if(!strcmp(default_schematic, "ignore")) { continue; } - str_hash_lookup(&subckt_table, subckt_name, "", XINSERT); - if(is_generator(filename) || !stat(filename, &buf)) { - /* for printing we go down to bottom regardless of spice_stop attribute */ - dbg(1, "hier_psprint(): loading file: |%s|\n", filename); - load_schematic(1,filename, 0, 1); - get_additional_symbols(1); - zoom_full(0, 0, 1 + 2 * tclgetboolvar("zoom_full_center"), 0.97); - if(what & 1) ps_draw(2, 1, 0); /* page */ - if(what & 2) { /* print cellname */ - my_strcat(_ALLOC_ID_, res, hier_psprint_mtime(xctx->sch[xctx->currsch])); - my_strcat(_ALLOC_ID_, res, " {"); - my_strcat(_ALLOC_ID_, res, xctx->sch[xctx->currsch]); - my_strcat(_ALLOC_ID_, res, "}\n"); + if(str_hash_lookup(&subckt_table, get_cell_w_ext(filename, 0), "", XINSERT_NOREPLACE)==NULL) { + /* for printing we go down to bottom regardless of spice_stop attribute */ + dbg(1, "hier_psprint(): loading file: |%s|\n", filename); + load_schematic(1,filename, 0, 1); + get_additional_symbols(1); + zoom_full(0, 0, 1 + 2 * tclgetboolvar("zoom_full_center"), 0.97); + if(what & 1) ps_draw(2, 1, 0); /* page */ + if(what & 2) { /* print cellname */ + my_strcat(_ALLOC_ID_, res, hier_psprint_mtime(xctx->sch[xctx->currsch])); + my_strcat(_ALLOC_ID_, res, " {"); + my_strcat(_ALLOC_ID_, res, xctx->sch[xctx->currsch]); + my_strcat(_ALLOC_ID_, res, "}\n"); + } + dbg(1,"--> %s\n", get_cell(xctx->sch[xctx->currsch], 0) ); } - dbg(1,"--> %s\n", get_cell(xctx->sch[xctx->currsch], 0) ); } } } } - /* can not free additional syms since *_block_netlist() may have loaded additional syms */ + /* can not free additional syms since load_schematic() above may have loaded additional syms */ /* get_additional_symbols(0); */ my_free(_ALLOC_ID_, &abs_path); str_hash_free(&subckt_table); @@ -702,7 +702,7 @@ int spice_block_netlist(FILE *fd, int i) * -------------------------------------------------------------------------- * "whatever" "whatever" XINSERT insert in hash table if not in. * if already present update value if not NULL, - * return entry address. + * return entry address if found and updated, else NULL. * "whatever" "whatever" XINSERT_NOREPLACE same as XINSERT but do not replace existing value * return NULL if not found. * "whatever" "whatever" XLOOKUP lookup in hash table,return entry addr. diff --git a/src/traversal.tcl b/src/traversal.tcl index 313bbd77..c1705e54 100644 --- a/src/traversal.tcl +++ b/src/traversal.tcl @@ -23,10 +23,12 @@ # This script traverses the hierarchy and prints all instances in design. proc traversal {file {only_subckts {}}} { + global keep_symbols if { $file eq {} || [file exists $file] } { puts stderr "empty or existing file..." return } + set keep_symbols 1 xschem unselect_all xschem set no_draw 1 ;# disable screen update xschem set no_undo 1 ;# disable undo @@ -34,6 +36,7 @@ proc traversal {file {only_subckts {}}} { hier_traversal $fd 0 $only_subckts xschem set no_draw 0 xschem set no_undo 0 + set keep_symbols 0 close $fd } @@ -57,6 +60,12 @@ proc hier_traversal {fd {level 0} only_subckts} { set symbol [xschem getprop instance $i cell::name] set abs_symbol [abs_sym_path $symbol] set type [xschem getprop symbol $symbol type] + set schematic [xschem get_sch_from_sym $i] + set sch_exists [expr {[file exists $schematic] ? {} : {**missing**}}] + set sch_tail [file tail $schematic] + set sch_rootname [file rootname [file tail $schematic]] + set inst_spice_sym_def [xschem getprop instance $i spice_sym_def] + set sym_spice_sym_def [xschem getprop instance $i cell::spice_sym_def] if {$only_subckts && ($type ne {subcircuit})} { continue } set skip 0 @@ -67,23 +76,24 @@ proc hier_traversal {fd {level 0} only_subckts} { } } if {$skip} { continue } - puts $fd "[spaces $level]$schpath$instname symbol: $symbol, type: $type" + puts $fd "[spaces $level]$schpath$instname $type" + puts -nonewline $fd "[spaces $level] $symbol" + + if {$type eq {subcircuit}} { + puts -nonewline $fd { ---> } + if {$inst_spice_sym_def ne {}} {puts $fd "$sch_rootname defined in instance spice_sym_def" + } elseif {$sym_spice_sym_def ne {}} {puts $fd "$sch_rootname defined in symbol spice_sym_def" + } else { puts $fd "$sch_tail $sch_exists" } + } else { puts $fd {} } set done_print 1 if {$type eq {subcircuit}} { - set ninst [lindex [split [xschem expandlabel $instname] { }] 1] - for {set n 1} {$n <= $ninst} { incr n} { - # set dp 0 - xschem select instance $i fast - # descending ninst times is extremely inefficient - set descended [xschem descend $n notitle] - # ensure previous descend was successful - if {$descended} { - incr level - set dp [hier_traversal $fd $level $only_subckts] - xschem go_back notitle - incr level -1 - } - if {!$dp} { break } ;# nothing printed so skip all other vector instances + xschem select instance $i fast + set descended [xschem descend 1 6] + if {$descended} { + incr level + set dp [hier_traversal $fd $level $only_subckts] + xschem go_back notitle + incr level -1 } } } diff --git a/src/xinit.c b/src/xinit.c index 695dc971..a287c546 100644 --- a/src/xinit.c +++ b/src/xinit.c @@ -2382,15 +2382,15 @@ int Tcl_AppInit(Tcl_Interp *inter) const char *WIN_XSCHEM_LIBRARY_PATH[WIN_XSCHEM_LIBRARY_PATH_NUM] = { /*1*/ "xschem_library", /*2*/ "xschem_library/devices", - /*3*/ "xschem_library/examples", - /*4*/ "xschem_library/ngspice", - /*5*/ "xschem_library/logic", - /*6*/ "xschem_library/xschem_simulator", - /*7*/ "xschem_library/generators", - /*8*/ "xschem_library/inst_sch_select", - /*9*/ "xschem_library/binto7seg", - /*10*/ "xschem_library/pcb", - /*11*/ "xschem_library/rom8k" }; + /*3*/ "examples", /* See i==2 with WIN_XSCHEM_LIBRARY_PATH_NUM below */ + /*4*/ "ngspice", + /*5*/ "logic", + /*6*/ "xschem_simulator", + /*7*/ "generators", + /*8*/ "inst_sch_select", + /*9*/ "binto7seg", + /*10*/ "pcb", + /*11*/ "rom8k" }; GetModuleFileNameA(NULL, install_dir, MAX_PATH); change_to_unix_fn(install_dir); size_t dir_len=strlen(install_dir); @@ -2405,9 +2405,14 @@ int Tcl_AppInit(Tcl_Interp *inter) running_in_src_dir = 1; /* no bin, so it's running in Visual studio source directory*/ my_strdup(_ALLOC_ID_, &up_hier, "../../.."); } - else my_strdup(_ALLOC_ID_, &up_hier, ".."); + else my_strdup(_ALLOC_ID_, &up_hier, "../share/xschem"); /* my_strcat(_ALLOC_ID_, &win_xschem_library_path, "."); */ for (i = 0; i < WIN_XSCHEM_LIBRARY_PATH_NUM; ++i) { + if (running_in_src_dir==0 && i==2) + { + my_free(_ALLOC_ID_, &up_hier); + my_strdup(_ALLOC_ID_, &up_hier, "../share/doc/xschem"); + } my_snprintf(tmp, S(tmp),"%s/%s/%s", install_dir, up_hier, WIN_XSCHEM_LIBRARY_PATH[i]); if (i > 0) my_strcat(_ALLOC_ID_, &win_xschem_library_path, "\;"); my_strcat(_ALLOC_ID_, &win_xschem_library_path, tmp); @@ -2431,7 +2436,7 @@ int Tcl_AppInit(Tcl_Interp *inter) my_snprintf(tmp, S(tmp), "%s/../../../src", install_dir); } else { - my_snprintf(tmp, S(tmp), "%s/../share", install_dir); + my_snprintf(tmp, S(tmp), "%s/../share/xschem", install_dir); } tclsetvar("XSCHEM_SHAREDIR", tmp); } diff --git a/src/xschemrc b/src/xschemrc index d703a157..6e937487 100644 --- a/src/xschemrc +++ b/src/xschemrc @@ -63,17 +63,23 @@ # append XSCHEM_LIBRARY_PATH :${xschem_doc_dir}/gschem_import/sym #### For Windows, use ; instead of :, and enclosed pathname with "" -# append XSCHEM_LIBRARY_PATH ";${XSCHEM_SHAREDIR}/../xschem_library" -# append XSCHEM_LIBRARY_PATH ";${XSCHEM_SHAREDIR}/../xschem_library/devices" -# append XSCHEM_LIBRARY_PATH ";${XSCHEM_SHAREDIR}/../xschem_library/examples" -# append XSCHEM_LIBRARY_PATH ";${XSCHEM_SHAREDIR}/../xschem_library/ngspice" -# append XSCHEM_LIBRARY_PATH ";${XSCHEM_SHAREDIR}/../xschem_library/logic" -# append XSCHEM_LIBRARY_PATH ";${XSCHEM_SHAREDIR}/../xschem_library/xschem_simulator" -# append XSCHEM_LIBRARY_PATH ";${XSCHEM_SHAREDIR}/../xschem_library/generators" -# append XSCHEM_LIBRARY_PATH ";${XSCHEM_SHAREDIR}/../xschem_library/inst_sch_select" -# append XSCHEM_LIBRARY_PATH ";${XSCHEM_SHAREDIR}/../xschem_library/binto7seg" -# append XSCHEM_LIBRARY_PATH ";${XSCHEM_SHAREDIR}/../xschem_library/pcb" -# append XSCHEM_LIBRARY_PATH ";${XSCHEM_SHAREDIR}/../xschem_library/rom8k" +# append XSCHEM_LIBRARY_PATH ";${XSCHEM_SHAREDIR}/xschem_library" +# append XSCHEM_LIBRARY_PATH ";${XSCHEM_SHAREDIR}/xschem_library/devices" +# append XSCHEM_LIBRARY_PATH ";${xschem_doc_dir}/examples" +# append XSCHEM_LIBRARY_PATH ";${xschem_doc_dir}/ngspice" +# append XSCHEM_LIBRARY_PATH ";${xschem_doc_dir}/logic" +# append XSCHEM_LIBRARY_PATH ";${xschem_doc_dir}/xschem_simulator" +# append XSCHEM_LIBRARY_PATH ";${xschem_doc_dir}/generators" +# append XSCHEM_LIBRARY_PATH ";${xschem_doc_dir}/inst_sch_select" +# append XSCHEM_LIBRARY_PATH ";${xschem_doc_dir}/binto7seg" +# append XSCHEM_LIBRARY_PATH ";${xschem_doc_dir}/pcb" +# append XSCHEM_LIBRARY_PATH ";${xschem_doc_dir}/rom8k" +#### Optional, often not needed... +# append XSCHEM_LIBRARY_PATH ";${xschem_doc_dir}/symgen" +# append XSCHEM_LIBRARY_PATH ";${xschem_doc_dir}/xTAG" +# append XSCHEM_LIBRARY_PATH ";${xschem_doc_dir}/rulz-r8c33" +# append XSCHEM_LIBRARY_PATH ";${xschem_doc_dir}/gschem_import" +# append XSCHEM_LIBRARY_PATH ";${xschem_doc_dir}/gschem_import/sym" ########################################################################### #### SET CUSTOM COLORS FOR XSCHEM LIBRARIES MATCHING CERTAIN PATTERNS diff --git a/tests/cleanup_debug_file.awk b/tests/cleanup_debug_file.awk index 01f1291d..c6be6efa 100644 --- a/tests/cleanup_debug_file.awk +++ b/tests/cleanup_debug_file.awk @@ -53,6 +53,8 @@ function replace_pattern(old, new) replace_pattern("draw_string()[:(:][:):]:.*$", "draw_string(): ***Removed***") replace_pattern("find_best_color.*$", "find_best_color ***Removed***") replace_pattern("trim_wires.*$", "trim_wires ***Removed***") + replace_pattern("symbol_bbox.*$", "symbol_bbox ***Removed***") + replace_pattern("symbol bbox.*$", "symbol bbox ***Removed***") __a[__lines++] = $0 } diff --git a/xschem_library/inst_sch_select/comp3_empty.sch b/xschem_library/inst_sch_select/comp3_empty.sch index 4f02ea75..ac0fdefb 100644 --- a/xschem_library/inst_sch_select/comp3_empty.sch +++ b/xschem_library/inst_sch_select/comp3_empty.sch @@ -1,4 +1,4 @@ -v {xschem version=3.4.5 file_version=1.2 +v {xschem version=3.4.6RC file_version=1.2 * * This file is part of XSCHEM, * a schematic capture and Spice/Vhdl/Verilog netlisting tool for circuit @@ -24,10 +24,11 @@ K {} V {} S {vout out 0 2} E {} -C {architecture.sym} 70 -610 0 0 { nothing here, use global schematic properties } C {ipin.sym} 120 -550 0 0 {name=p161 lab=PLUS} C {ipin.sym} 120 -500 0 0 {name=p1 lab=MINUS} C {opin.sym} 200 -530 0 0 {name=p20 lab=OUT} C {noconn.sym} 200 -530 0 0 {name=l1} C {noconn.sym} 120 -550 0 1 {name=l2} C {noconn.sym} 120 -500 0 1 {name=l3} +C {architecture.sym} 60 -600 0 0 {code=ARCHITECTURE +"Use global schematic properties for code"}