Stefan Schippers
|
8a45e319c9
|
if xschem is started with -n (netlist) load_schematic will not call tcl proc is_xschem_file to determine if sch or sym type, since command line option has higher priority. reverted back possibility in update_symbol() to have double quotes around name attribute (name="My strange name"). This has toooo many implications everywhere. name attribute must be wihout double quotes, xschem will strip them off if any.
|
2020-10-17 02:54:42 +02:00 |
Stefan Schippers
|
55723e9429
|
line width is related to the schematic, so it is moved under xctx; removed all integer versions (lw, bus_width) that needed to be kept in sync, created two macros to get the integer values from xctx->lw. main window save_pixmap is preserved when doing a schematic preview in file open dialog, so no need to regenerate its content (with a draw() call) after preview.
|
2020-10-17 00:53:19 +02:00 |
Stefan Schippers
|
9e38fbd173
|
fix wrong const declaration in save.c
|
2020-10-16 23:19:20 +02:00 |
Stefan Schippers
|
a0661be86c
|
"proc is_xschem_file" reports SYMBOL if file contains <=2 instances of symbols. Need to figure out a different, simple and reliable way to recognize symbols that contain a title and/or a "architecture" symbol. For the time being reverted to previous state. Thanks to JL for pointing out the issue
|
2020-10-16 22:47:27 +02:00 |
Stefan Schippers
|
666f05c3d5
|
typo in spice.awk, fix check symbol storage before caching xctx->sym and xctx->symbols in load_sym_def(). Thanks to JL
|
2020-10-16 22:16:54 +02:00 |
Stefan Schippers
|
1967bbff00
|
fix trim_wires(), caching xctx->wires into wires missed update done by freenet_nocheck()
|
2020-10-16 21:21:01 +02:00 |
Stefan Schippers
|
f0e6559324
|
fix: restore modified state (set_modify() ) was done before swicthing back xctx to current schematic
|
2020-10-16 19:36:21 +02:00 |
Stefan Schippers
|
7c757f9803
|
removed unused set_fill() function
|
2020-10-16 19:27:19 +02:00 |
Stefan Schippers
|
aa2a47c5b9
|
grouping X11 specific global declarations
|
2020-10-16 19:16:03 +02:00 |
Stefan Schippers
|
f0f1f9c2f0
|
optimization in preview function: no un-needed redraw of current schematic; no window title change when previewing xschem files
|
2020-10-16 18:24:06 +02:00 |
Stefan Schippers
|
b626dfb599
|
replaced frequent "xctx->something" accesses with "something" for code readability, optimizations in hash_wire() when incremental wires added, STR_ALLOC() macro (performance reasons)
|
2020-10-16 16:34:15 +02:00 |
Stefan Schippers
|
35c2d0fa93
|
better node multiplicity detection in spice and verilog awk netlist post-processors (\?-?[0-9]+)
|
2020-10-16 00:13:39 +02:00 |
Stefan Schippers
|
742f854964
|
check for NULL symbol "type" pointer
|
2020-10-15 19:20:55 +02:00 |
Stefan Schippers
|
b88c4bab9e
|
-m better relative path recognition in abs_sym_path
|
2020-10-15 18:42:08 +02:00 |
Stefan Schippers
|
1c294ce31d
|
preview function now does no more need to save whole schematic on the undo stack, it is just a matter of pointer switching
|
2020-10-15 18:08:14 +02:00 |
Stefan Schippers
|
e7928727d6
|
all xctx context is now a dynamically allocated structure; no observable performace impact
|
2020-10-15 17:39:21 +02:00 |
Stefan Schippers
|
0eb706a67e
|
removed changes in strings due to variable refactoring
|
2020-10-15 17:05:30 +02:00 |
Stefan Schippers
|
6d96c8bd61
|
move xctx.sch_path free under free_xschem_data()
|
2020-10-15 16:32:09 +02:00 |
Stefan Schippers
|
c87f44a441
|
added "xchem load_symbol" command to load a symbol without binding to any instance, text edit attribute "Load" button will start in "$current_dirname"
|
2020-10-15 15:37:06 +02:00 |
Stefan Schippers
|
4362c44a8d
|
fix various regressions: escape the ? pattern in awk, be more selective in ? node multiplicity tag recognition in spice.awk, yet some more fixes in abs_sym_path thanks to JL
|
2020-10-15 13:38:27 +02:00 |
Stefan Schippers
|
35f47beca9
|
force a rebuild selected_array when swapping element order (S key) to rebind correctly. renamed <UNCONNECTED_PIN> to __UNCONNECTED_PIN__ to avoid useless syntax warnings from the node label grammar parser.
|
2020-10-15 02:16:57 +02:00 |
Stefan Schippers
|
acb5c45db1
|
avoid printing erc warnings about missing "name=" attribute in symbols if there is a definition in symbol template string
|
2020-10-15 01:43:53 +02:00 |
Stefan Schippers
|
8e5bfe2a13
|
remove instname and symname parameters to tclpropeval2 as they are no more necessary
|
2020-10-14 23:44:53 +02:00 |
Stefan Schippers
|
e82f270f61
|
replaced @ character with ? for spice netlist node multiplicity tags, so translate() will not try to expand them, do not print erc warnings for "non electrical" symbols (architecture, package, port_attributes, use, etc), print_spice_element() result string will be forwarded to translate() if enclosed within tcleval(...), so all @vars will be expanded. translate() in turn will forward to tcl_hook() if necessary.
|
2020-10-14 23:15:05 +02:00 |
Stefan Schippers
|
8bb6b0e3f7
|
pass name and symname to tcl_hook, add @symname_ext in print_spice_element
|
2020-10-14 21:04:45 +02:00 |
Stefan Schippers
|
c70aa9b06d
|
update_symbol() do not throw away quotes in name attrs (name="some thing")
|
2020-10-14 16:02:05 +02:00 |
Stefan Schippers
|
d92bd6590d
|
restructure abs_sym_path
|
2020-10-14 14:59:55 +02:00 |
Stefan Schippers
|
d696924615
|
fix: better handle relative paths
|
2020-10-14 12:59:55 +02:00 |
Stefan Schippers
|
abb698ea63
|
fix regression: correctly resolve ../../some/path/to/file in abs_sym_path
|
2020-10-14 11:14:15 +02:00 |
Stefan Schippers
|
b834df35e7
|
ALLOC() macro replaced with function str_alloc()
|
2020-10-14 05:25:20 +02:00 |
Stefan Schippers
|
4682613290
|
exported tcl_hook() at global scope for future enhancements
|
2020-10-14 04:59:20 +02:00 |
Stefan Schippers
|
c7ae5183fe
|
removed dbg message
|
2020-10-14 04:14:43 +02:00 |
Stefan Schippers
|
f4e5f70de1
|
fix bug in ALLOC() macro, tcl_hook() function
|
2020-10-14 04:12:34 +02:00 |
Stefan Schippers
|
5d26115bd2
|
refactored token.c, differentiate between windows and unix in absolute filename construction in xinit.c
|
2020-10-14 01:38:51 +02:00 |
Stefan Schippers
|
28fe7d993a
|
removed xschem samefile command as there is "file stat" for that
|
2020-10-13 18:10:05 +02:00 |
Stefan Schippers
|
1c2bbc609f
|
added "xschem samefile" command to verify if 2 files are the same entity by comparing inodes, pwd_dir set in xinit.c to $env(PWD) if PWD var is defined as it does not dereference symlinks
|
2020-10-13 17:51:14 +02:00 |
Stefan Schippers
|
8ea275013e
|
updated print_spice_subckt() to reflect updates done in print_spice_element(); abs_sym_path recognize ././././, ./., other strange paths., use $env(PWD) for current_dirname on startup instead of getcwd() if possible, to avoid dereferencing symlinks
|
2020-10-13 16:23:48 +02:00 |
Stefan Schippers
|
f8f1626c1b
|
cleanup in print_spice_element(), print_verilog_primitive(), print_vhdl_primitive(), print_tedax_element(), parselabel allows ~ in node names (XSPICE inversion operator)
|
2020-10-13 02:52:37 +02:00 |
Stefan Schippers
|
6f80fdbf76
|
fix once again an issue when working in symlinked directories and giving a relative .sch file path on cmdline; clean up print_spice_element(). JL to check if tclgetvar("env(PWD)") works on windows (xinit.c:1435)
|
2020-10-13 01:07:28 +02:00 |
Stefan Schippers
|
26fdaae83d
|
if strings passed to translate() are encloded in tcleval(...) the translated string is passed to tcl for evaluation. This allows to display formula results for symbols, for example capacitance values based on W and L: tcleval(C=[ expr @ca * @L * @W ]) --> tcl will substitute the calculated value: C=1.234e-14
|
2020-10-12 17:25:57 +02:00 |
Stefan Schippers
|
42a8e55956
|
@tcleval() hook in translate()
|
2020-10-12 14:25:12 +02:00 |
Stefan Schippers
|
64c0abc58e
|
code refactoring (global context in Xschem_ctx), "New Schematic" or "New Symbol" will set netlist_type to "spice" or "symbol" respectively
|
2020-10-12 13:13:31 +02:00 |
Stefan Schippers
|
32f85ac4f4
|
do not force a full hash_wires() on every net insertion; code formatting
|
2020-10-11 13:08:32 +02:00 |
Stefan Schippers
|
077fde9350
|
removed redundant command in xschem() command parser
|
2020-10-11 11:26:22 +02:00 |
Stefan Schippers
|
b006c82bad
|
slight resize in pin text size for better look. top frame in insert text dialog does not extend vertically.
|
2020-10-11 01:38:28 +02:00 |
Stefan Schippers
|
0ce6f6ba5d
|
when netlisting primitive elements (not subcircuits) the "format", "verilog_format", "vhdl_format, "tedax_format" can be specified in instance attributes to override symbol. This allows to adapt primitives (example digital standard cells) to different design kits without using wrapper subcircuits. Together with "symname" redefinition in instance this allows to completely customize element netlisting.
|
2020-10-11 00:13:52 +02:00 |
Stefan Schippers
|
617d708009
|
verilog_preprocessor and verilog_timescale now use verilog_format instead of format (which is for spice), corrected verilog_netlist.c; better backslash and quote (") escaping and unescaping when using attribute select combobox; for unquoting use "xschem get_tok tok 2" instead of "xschem get_tok tok 0" + regsub ....(remove backslashes)...
|
2020-10-10 23:21:23 +02:00 |
Stefan Schippers
|
4d0a3d8f7c
|
allow probing to gaw current in voltage sources in addition to ammeters
|
2020-10-09 22:19:54 +02:00 |
Stefan Schippers
|
19753992f4
|
"Option->Show info win" moved to "View->Show ERC info window"
|
2020-10-09 17:36:22 +02:00 |
Stefan Schippers
|
644641ed23
|
Preserve existing text (notably license info) in xschem files under version "v" tag; some code refactoring, removed obsoleted comments
|
2020-10-09 17:29:04 +02:00 |
Stefan Schippers
|
f419381361
|
added support for probing waveforms into gaw if raw file written by Xyce; Xyce uses uppercase, does not wrap voltage nodes into V(...). uses ":" instead of "." as hierarchy separator and other quirks.
|
2020-10-09 01:21:27 +02:00 |
Stefan Schippers
|
f2d7cc4ca8
|
fix hierarchical pathname for current probes to gaw
|
2020-10-08 03:32:23 +02:00 |
Stefan Schippers
|
1f588d843d
|
doing ALt-g on an ammeter (devices->ammeter, a current probe type symbol) will send the current to gaw
|
2020-10-08 00:47:51 +02:00 |
Stefan Schippers
|
2287a15e52
|
better wire connecting bubble zoom scaling at different snap levels
|
2020-10-07 19:45:40 +02:00 |
Stefan Schippers
|
0f61e0fe0f
|
JL fix regression for path resolution on windows, Esc resets manhattan_lines setting
|
2020-10-07 16:12:33 +02:00 |
Stefan Schippers
|
060e53f1d2
|
correctly draw net labels / pins when they are highlighted and user changes their lab attribute so they become unhilighted
|
2020-10-07 03:45:50 +02:00 |
Stefan Schippers
|
d9488fa5ea
|
small sample xschemrc fix
|
2020-10-06 21:59:23 +02:00 |
Stefan Schippers
|
a10cb2c429
|
added warnings (Options -> Show info window) if components are missing a name=... attribute / if symbols are missing a type=... attribute; eliminated usage of tcl "file normalize..." statements to avoid symlink dereferencing (if using symlinked libraries), aligned version/file_version tags in support awk scripts
|
2020-10-06 16:19:52 +02:00 |
Stefan Schippers
|
11d664b4a8
|
fix a memory leak, spatial hash table tuning, better clear find_inst_to_be_redrawn() nodetable
|
2020-10-05 13:29:57 +02:00 |
Stefan Schippers
|
72363cf2d4
|
better wire bbox calculation in find_inst_to_be_redrawn()
|
2020-10-05 04:18:31 +02:00 |
Stefan Schippers
|
82051a33e5
|
simplify / break down complex expressions for code readability
|
2020-10-05 03:00:40 +02:00 |
Stefan Schippers
|
051b20c014
|
code formating, use some intermediate variables for code readability, line length limited to 124 chars
|
2020-10-04 23:55:43 +02:00 |
Stefan Schippers
|
3060217aec
|
simplified complex logical expressions on symbol type by using macros
|
2020-10-04 19:53:09 +02:00 |
Stefan Schippers
|
12f74b1265
|
split a couple of xinit.c functions
|
2020-10-04 12:51:34 +02:00 |
Stefan Schippers
|
3cf9d53182
|
comments in code
|
2020-10-04 11:19:50 +02:00 |
Christian Svensson
|
ac398820d9
|
make reload dialog text a bit clearer
|
2020-10-04 00:09:57 +02:00 |
Stefan SChippers
|
cd556d4d6e
|
fixed typo in read_line() fscanf...
|
2020-10-03 19:50:29 +02:00 |
Stefan Schippers
|
f8708d60c7
|
replace all fscanf(fd, "%*1[\n]"); with fscanf(fd, " "), so CRLF will be handled as well as LF.
|
2020-10-03 12:49:45 +02:00 |
Stefan Schippers
|
39cd1a77ed
|
fix a regression in delete(): instance hash was not updated. removed some redundant drawing in copy operations
|
2020-10-03 04:33:52 +02:00 |
Stefan Schippers
|
5b72e307df
|
fix erroneous slotted instance recognition (confuse U2[3:0] with U3:2) in translate(), breaking in some cases the "net name on instance pin" feature
|
2020-10-03 01:13:35 +02:00 |
Stefan Schippers
|
40d05a2c60
|
fix erroneous slotted instance recognition (confuse U2[3:0] with U3:2) in translate(), breaking in some cases the "net name on instance pin" feature
|
2020-10-03 01:04:57 +02:00 |
Stefan Schippers
|
657e8d7fff
|
performance boost in edit attribute on multiple objects when "show net name on symbol pins" is active.
|
2020-10-02 19:09:09 +02:00 |
Stefan Schippers
|
164ce52945
|
performance boost of "show net on symbol pins" feature
|
2020-10-02 18:19:31 +02:00 |
Stefan Schippers
|
6805335a09
|
regression fix: correctly hash new wires when inserted
|
2020-10-02 16:12:08 +02:00 |
Stefan Schippers
|
621b2157dc
|
more precise bounding box calculation for net highlights (will extend the bbox to cover wide (bus) wires and solder dots) so there are no more "half coloured" connecting dots etc.
|
2020-10-02 03:51:03 +02:00 |
Stefan Schippers
|
8807c7250d
|
various graphic rendering fixes for the new "view instance pin net names" function. Fixed some errors in merge schematic in callback.c and paste.c
|
2020-10-02 03:21:22 +02:00 |
Stefan Schippers
|
cf0db629c4
|
make move operations display updated @#n:net_name attributes after move operation
|
2020-10-01 02:58:05 +02:00 |
Stefan Schippers
|
d706e45987
|
set max width of .c files <=130 chars; Fix netlist regression: if no "lab=value" is given in instance attributes get lab from symbol "template=" string. This was commented out recently and now reverted back. "View->Enable show net names on symbol pins" global menu added: if unset no symbol pin net names will be shown regardless of instance/symbol "net_name=true" and pin @#n:net_name attributes.
|
2020-09-30 23:55:07 +02:00 |
Stefan Schippers
|
d0b659c455
|
fix potential uninitialized rot, flip variables for text rotation in load_sym_def()
|
2020-09-30 03:26:45 +02:00 |
Stefan Schippers
|
f0b4ab060a
|
optimized translate()
|
2020-09-30 03:06:56 +02:00 |
Stefan Schippers
|
3f482fd8a4
|
optimize unselect_all()
|
2020-09-30 02:53:20 +02:00 |
Stefan Schippers
|
6c425e60b8
|
if component has "net_name=true" and pins have "@#n:net_name" attributes, show "<UNCONN>" if a pin terminal is not attached to any net.
|
2020-09-30 01:57:38 +02:00 |
Stefan Schippers
|
392e7f9b57
|
"@#n:net_name" attribute (n = pin name or number) in symbols translates to net name attached to pin. "lab_show.sym" component that shows (does not assign) net name. "highlight=true" attribute can be given on instances in addition to symbols. Set filename in recent history also when given on command line.
|
2020-09-30 00:55:34 +02:00 |
Stefan Schippers
|
91e74fadcb
|
"@#n:net_name" attribute (n = pin name or number) in symbols translates to net name attached to pin. "lab_show.sym" component that shows (does not assign) net name. "highlight=true" attribute can be given on instances in addition to symbols
|
2020-09-30 00:30:48 +02:00 |
Stefan Schippers
|
f699d187e6
|
save embedded components not only on first embeded instance but on all of them. This makes reloading easier and the overall thing much simpler. In LCC schematic allow get_sym_type() to read symbol data from folowing embedded tags "[...]" if any. Fix potential segfault in preview_window()
|
2020-09-29 11:17:10 +02:00 |
Stefan Schippers
|
e7b0a5b9a3
|
better read_line(): handle unextected EOFs (noeol last lines)
|
2020-09-28 15:21:26 +02:00 |
Stefan Schippers
|
ebdd4e827c
|
read_line() function improvements, "]" tag recognized also if there is garbage following it
|
2020-09-28 08:35:00 +02:00 |
Stefan Schippers
|
59d4608ac0
|
completely eliminated match_symbol() (which in turn may call load_sym_def() ) calls from within load_sym_def(), even for aligning LCC schematic pin ordering to symbol. A dedicated "align_sch_pins_with_sym()" together with "get_sym_type()" does the job in O(N) instead of using a sort routine.
|
2020-09-27 12:41:36 +02:00 |
Stefan Schippers
|
ac1aa29281
|
more robust and efficient symbol type probing in get_symbol_type()
|
2020-09-26 10:30:16 +02:00 |
Stefan Schippers
|
b5d21e54f1
|
removed debug messages
|
2020-09-26 01:29:28 +02:00 |
Stefan Schippers
|
16edd087e4
|
off-loaded some functions from load_sym_def() to make it smaller, avoid overkill recursive load_sym_def() calls to get only the type of a component in LCC schematic instances.
|
2020-09-26 01:15:33 +02:00 |
Stefan Schippers
|
6990d48d1a
|
remove old obsolete comments
|
2020-09-25 18:09:49 +02:00 |
Stefan Schippers
|
b2e7c28127
|
remove old obsolete comments
|
2020-09-25 17:54:50 +02:00 |
Stefan Schippers
|
28e2085e47
|
just some code cleanups & comments
|
2020-09-25 17:11:43 +02:00 |
Stefan Schippers
|
5e85a87545
|
Alt-b command toggles bounding box view: 0: view all, 1: bbox view for subcircuits, 2: bbox view for all symbols.
|
2020-09-25 00:23:34 +02:00 |
Stefan Schippers
|
c627f21057
|
optimize previous fix, avod skipping lines after embedded symbol (embed_fd)
|
2020-09-24 17:46:58 +02:00 |
Stefan Schippers
|
66a8eabf7e
|
fix un-graceful termination of load_sym_def() in case of recursive schematics instantiating themselves. It was not allowed to unroll all hierarchy levels cleaning up allocated memory after issuing the max-hierarchy warning.
|
2020-09-24 15:59:01 +02:00 |
Stefan Schippers
|
54a1d9b2c9
|
fix inaccurate mouse to arc distance calculation for selections
|
2020-09-24 12:11:55 +02:00 |
Stefan Schippers
|
7a0fa15238
|
add gtkwave_server.tcl hook for gtkwave to listen to a tcp port
|
2020-09-24 02:28:00 +02:00 |
Stefan Schippers
|
da74e5ad36
|
Fixed some flaws in execute/execute_wait/simulate procedures (Simulate button was not cleared after a foreground simulation)
|
2020-09-24 02:20:09 +02:00 |