stefan schippers
|
65bd4ce766
|
fix is_quoted() (reported "aaa\\\"bbb" as unquoted)
|
2024-10-31 11:06:19 +01:00 |
stefan schippers
|
835b05ce9f
|
subst_token(): if s is empty and tok, new_val are gien just set return string to tok=new_val (no newlines whatsoever)
|
2024-10-05 11:43:57 +02:00 |
stefan schippers
|
4311ac424a
|
handle NULL analysis type in debug messages (extra_rawfile()), recursive value substitution in symbol displayed strings: if translated text begins with @ search for recursive upper level definitions for text following @, example: @model symbol text, instance has model=@modeln, upper instance has modeln=nfet: resolve symbol text and display "@model" as "nfet", proc inutile: add optional wait argument to block xschem while dialog displayed
|
2024-10-03 13:08:32 +02:00 |
stefan schippers
|
1108a71263
|
replace "UNDEF" with "-" in backannotated nodes that have no value in raw file.
|
2024-09-09 23:15:05 +02:00 |
stefan schippers
|
1dd3e28b32
|
remove memory tracking alloc IDs
|
2024-09-06 22:27:05 +02:00 |
stefan schippers
|
391464bab9
|
fix another small memory leak due to tclvareval("xschem exit...")--> use tcleval()
|
2024-09-06 22:19:36 +02:00 |
stefan schippers
|
eb7b9ae018
|
removed pointless my_strcat() in translate3()
|
2024-08-29 07:56:22 +02:00 |
stefan schippers
|
d06e999daf
|
better backslash handling in translate3()
|
2024-08-28 23:37:43 +02:00 |
stefan schippers
|
a725838850
|
fix escape recognition in translate3(), so in symbol texts it is possible to write \\@name to an instance attribute to get literal @name in displayed text instead of the instance name. fix typo in tutorial_use_existing_subckt.html. some schematic updates (no more enable show_pin_net_names tcl variable)
|
2024-08-28 09:39:43 +02:00 |
stefan schippers
|
4e236750ed
|
add abs_path parameter to get_sym_name() for more flexibility
|
2024-06-21 11:33:28 +02:00 |
stefan schippers
|
5ce1f01f43
|
correctly evaluate tcleval(....) in spice_sym_def attributes (ie after substituting @vars)
|
2024-06-21 01:41:42 +02:00 |
stefan schippers
|
36c79f262c
|
add @symref (in addition to @symname) substitution in spice_sym_def processing
|
2024-06-21 01:03:08 +02:00 |
stefan schippers
|
fa4d4a0970
|
enhance spice_sym_def used in instances (with schematic=...) by substituting @param with values defined in instance if any (param=xxx)
|
2024-06-14 08:55:35 +02:00 |
stefan schippers
|
f267077e99
|
allow @symname , @param (param defined in symbol template string) translation in instance or symbol spice_sym_def attributes
|
2024-06-14 08:21:43 +02:00 |
stefan schippers
|
5e5dc5c3e5
|
translate(): return @spice_get_* tokens in engineerring notation if no tcleval(...) is used (no further expr processing)
|
2024-05-04 09:02:34 +02:00 |
stefan schippers
|
60c5230727
|
resolved_net(): resolve nets passed to symbols via attributes, avoid using dtoa_eng() in returned spice voltages, use dtoa(), since it may be used further in tcl expressions.
|
2024-05-03 15:00:51 +02:00 |
stefan schippers
|
7d181e43a1
|
spice_get_voltage attributes: assume "0" and "GND" equal to 0.0V (not saved by simulator), added vgs and vds showing in nmos4.sym and pmos4.sym if show/hide->show hidden texts enabled
|
2024-05-03 12:10:37 +02:00 |
stefan schippers
|
91fafecffb
|
added some @#pin_name:spice_get_voltage examples on symbols, if no voltage is found return "" instead of "--UNDEF--"
|
2024-05-02 15:19:34 +02:00 |
stefan schippers
|
9c750b5044
|
add @#pin:spice_get_voltage attribute for pin texts that displays voltage of net attached to pin. remove net_name=... attributes from symbols and instance global attributes since it is no more used. set default value for show_pin_net_names to 1.
|
2024-05-02 10:32:12 +02:00 |
stefan schippers
|
3d20b44ced
|
translate3(): add eat_escapes parameter
|
2024-04-14 11:38:35 +02:00 |
stefan schippers
|
35dffef618
|
has_included_subcircuit(): extend case insensitivity also on included subckt pins vs symbol pins
|
2024-04-03 00:56:05 +02:00 |
stefan schippers
|
bcd4e9367b
|
has_included_subcircuit(): use lowercase symname to check with lowercase spice_sym_def included netlist to avoid case mismatches (spice is case-insesitive)
|
2024-04-02 23:54:40 +02:00 |
stefan schippers
|
1ed64e95ca
|
optimize a bit draw_graph() (no allocate measure_*[] vars if no cursor)
|
2024-04-01 11:42:54 +02:00 |
stefan schippers
|
5dc27fb364
|
fix 2nd level @param subst in instances (like model=xxx@name in instances)
|
2024-03-31 00:36:42 +01:00 |
stefan schippers
|
058b96ba7a
|
fix a crash when netlisting top level elements in print_spice_element(), attempting to look up format string tokens into non-existent parent level (xctx->currsch-1 = -1))
|
2024-03-21 14:41:15 +01:00 |
stefan schippers
|
cc1a70d340
|
quoting hell mitigation: translate3() should not eat backslashes
|
2024-03-20 15:08:12 +01:00 |
stefan schippers
|
91a2c98fed
|
has_included_subcircuit(): generate correct port order looking in spice_sym_def provided subcircuit netlist, in case of symbol with vectored ports. TODO: handle vectored instances of such symbols like x1[3:0]
|
2024-03-15 02:29:49 +01:00 |
stefan schippers
|
354f027b9b
|
call translate(-1, ..) for text objects containing @... and referencing no valid instance (floater=true) so non instance-related @vars are resolved. translate(): resolve @spice_get_voltage(net) without trying to calculated fqnet from net if no valid inst (-1) is given
|
2024-02-26 16:05:11 +01:00 |
stefan schippers
|
7a45497b45
|
add `xschem raw del node` command
|
2024-02-25 12:21:13 +01:00 |
stefan schippers
|
a176f99db5
|
svgdraw.c: avoid setting stroke-width to excessively small (invisible) values; print_spice_element(): in format string if @param is given and in instance atttributes param=value@tag do a round of resolution of @tag looking in instance attributes, then in parent symbol instance attributes (in case of per-instance implementation (schematic=... attr) and finally in parent symbol template string. Doc udpades
|
2024-02-16 16:44:33 +01:00 |
stefan schippers
|
531a9c168c
|
pass @device_model in symbols through translate() if it contains @xxx tokens
|
2024-02-11 11:47:13 +01:00 |
stefan schippers
|
b3daf97cc4
|
remove @path resolution in print_*_element(): meaningless
|
2024-02-11 03:06:22 +01:00 |
stefan schippers
|
1cbbed77ba
|
first commit for parametric models in subckts --DO NOT USE--
|
2024-02-09 17:00:56 +01:00 |
stefan schippers
|
c06a896d4f
|
instance based schematic selection: if instance specified schematic=... not existing use base schematic (symbolname.sch)
|
2024-02-09 02:37:53 +01:00 |
stefan schippers
|
29d2541b21
|
fix regression in get_sym_template()
|
2024-02-05 16:37:00 +01:00 |
stefan schippers
|
fa533c725a
|
remove dbg messages
|
2024-02-05 14:49:20 +01:00 |
stefan schippers
|
96494dc73a
|
get_sym_template: fix possible unterminated result string
|
2024-02-05 13:47:49 +01:00 |
stefan schippers
|
8ec3e52122
|
allow parametric models in subcircuits. Symbol inv.sym contains template="... modp=cmos_p_10 ...", pmos instance in inv.sch contains model=@modp, instance format string contains format="@name @pinlist @model w=@w l=@l, result is: "m2 y a VCCPIN VCCPIN cmos_p_10 w=wp l=lp"
|
2024-02-03 13:43:18 +01:00 |
stefan schippers
|
a1c2569506
|
revert previous: print_spice_element(): do 2nd level translate() only on `model` tokens whose value contains @variables.
|
2024-01-22 18:57:42 +01:00 |
stefan schippers
|
24844b3d4c
|
print_spice_element(): do 2nd level translate() only on `device_model` tokens whose value contains @variables.
|
2024-01-22 18:53:04 +01:00 |
stefan schippers
|
9ceb274b5e
|
print_spice_element(): when expanding format @variables, if substituted value contains @var do another round of translate() to replace @var with instance assigned var=xxx value
|
2024-01-21 00:00:01 +01:00 |
stefan schippers
|
17e24e0f5f
|
has_included_subcircuit(): correctly handle bussed ports in symbol and spice .subckt file
|
2024-01-14 11:28:51 +01:00 |
stefan schippers
|
6c163d5cb0
|
has_included_subcircuit(): get symname from `schematic` attribute if set in instance or symbol, or use actual symbol name, add tb_symbol_include.sch example circuit
|
2024-01-08 17:19:12 +01:00 |
stefan schippers
|
0597bae9dc
|
various improvements for automatic port order detection from included subcircuit via spice_sym_def and @pinlist in format string, documentation updates in tutorial_use_existing_subckt.html
|
2024-01-08 14:57:21 +01:00 |
stefan schippers
|
d2c6566030
|
when doing spice netlist, if a symbol has the spice_sym_def attribute set and is using @pinlist in format string for port order, get the port order from the subckt given in spice_sym_def, either directly or through a .include line
|
2024-01-08 03:24:59 +01:00 |
Stefan Schippers
|
0f7785d588
|
initial implementation of `has_included_subcircuit()`
|
2024-01-07 19:51:48 +01:00 |
stefan schippers
|
f0e739cf02
|
.load.l.paneright.list better positioning (remember last selection), print_spice_subckt_nodes(): use my_mstrcat() instead of fprintf, for future enhancements
|
2024-01-06 12:14:36 +01:00 |
stefan schippers
|
f50a3b15fa
|
doc updates (graphs)
|
2023-12-18 23:36:01 +01:00 |
stefan schippers
|
a0237b59b3
|
eliminated some redundant operations on instance flags (set_inst_flags() does the job)
|
2023-12-07 18:07:42 +01:00 |
stefan schippers
|
b2aad10650
|
changed attribute text_n_size to text_size_n (for efficienty reasons), improved get_tok_val() (use strstr for quick return "" if no token found)
|
2023-12-03 23:11:36 +01:00 |
stefan schippers
|
898d0538a0
|
Allow tcleval() in vhdl_format attributes, allow intance setting of vhdl_format (override symbol). Add missing space in @pinlist expansion in print_verilog_primitive and print_vhdl_primitive
|
2023-11-29 13:46:24 +01:00 |
stefan schippers
|
30b77d7447
|
allow tcleval() in verilog_format attributes, allow intance setting of verilog_format (override symbol)
|
2023-11-29 12:20:35 +01:00 |
stefan schippers
|
fdc3ceefeb
|
vsource.sym and ammeter.sym no more use tcleval() to handle @savecurrent attribute (calling tcleval() is overkill for such a trivial task and may expose to side effects if $ (and other) characters are used )
|
2023-11-27 12:13:53 +01:00 |
stefan schippers
|
26fbb82f6b
|
fix unwanted head_undo_ptr change when doing a netlist. Add current backannotation info in capa.sym, ind.sym, isource.sym, isource_table.sym
|
2023-11-27 00:01:45 +01:00 |
stefan schippers
|
b1f72ada59
|
isonlydigit() will return true also for negative integers
|
2023-11-15 20:15:02 +01:00 |
stefan schippers
|
0df3cfcc7b
|
better recognize global nets in LCC schematics (translate(), @spice_get_voltage(..) )
|
2023-11-12 13:43:31 +01:00 |
stefan schippers
|
ecca0ba2be
|
better swap_windows() function (used when closing a window in multi-window(non-tabbed) interface, resolved_net() recognize global nodes. remove static data from record_global_node(), put in xctx. Remove dead code from translate() (@spice_get_voltage)
|
2023-11-12 13:01:11 +01:00 |
Stefan Schippers
|
8c29d0e812
|
fix error in capa-2.sym and missing check for null xctx->inst[].instname in get_pin_attr()
|
2023-11-11 20:03:20 +01:00 |
stefan schippers
|
584f88fba1
|
object iterator, object spatial hash table for all objects. tbu in the future maybe. Fix crashing bug when copying ngspice_probe.sym if annotation is enabled
|
2023-11-09 13:57:58 +01:00 |
stefan schippers
|
7022fbf073
|
xschem simulate sets the Simulate button color. removed redundant proc simulate_button
|
2023-11-04 14:49:15 +01:00 |
stefan schippers
|
bd43be9be6
|
rename a local variable to make tcc happy
|
2023-11-04 12:03:41 +01:00 |
stefan schippers
|
2c26bfbaa9
|
fix some garbage while moving / copying and zooming. faster draw_selection(gctiled) if big selection (use a single XCopyArea), do not allow to descend/go_back if other UI action is pending, initial implementation of `xschem floaters_from_selected_inst` command, get_tok_val() allow quotes in tokens, like a"22"33=123 even if with_quotes unset (it is intended for token values not for tokens themselves)
|
2023-11-03 14:36:35 +01:00 |
stefan schippers
|
512b297e35
|
add validity checks for xctx->inst[n].ptr < 0 (unresolved instance)
|
2023-10-23 22:49:52 +02:00 |
stefan schippers
|
0178e1c287
|
add @symref attribute that resolves to the full symbol reference as specified in instance: example: "sky130_fd_pr/pfet_01v8_lvt.sym"
|
2023-10-18 13:18:29 +02:00 |
stefan schippers
|
f10555917e
|
optimized usage of interpolate_yval(), add raw->cursor_b_val[]
|
2023-10-16 09:53:03 +02:00 |
stefan schippers
|
d1309a8a47
|
fix uninitialized var in interpolate_yval()
|
2023-10-15 13:24:19 +02:00 |
stefan schippers
|
a7bcfb7941
|
do interpolation when annotating "b" cursor values in schematic, as done with measurements with "a" cursor.
|
2023-10-15 12:05:48 +02:00 |
stefan schippers
|
e457292e04
|
trim_chars() function for various string operations
|
2023-10-11 16:31:42 +02:00 |
stefan schippers
|
9b4bd44fd0
|
merged in fast_raw_read branch
|
2023-10-11 14:05:27 +02:00 |
stefan schippers
|
c4e1fb6a31
|
fix a memory leak in translate()
|
2023-10-05 20:15:47 +02:00 |
stefan schippers
|
9ecc5859b2
|
fix new_prop_string() when doing a name change on multiple selected instances
|
2023-10-04 00:44:43 +02:00 |
stefan schippers
|
5c7abfa048
|
optimization for new_prop_string() done. doc updates for instance hide_texts=true attribute, align strboolcmp() to tcl allowed boolean values (1, true, on, yes)
|
2023-10-03 15:20:30 +02:00 |
stefan schippers
|
d441ba6966
|
fix missing update of name_is_used() call
|
2023-10-03 13:24:54 +02:00 |
stefan schippers
|
24bc44ad0c
|
doc updates (text attributes), prepare improvements for new_prop_string()
|
2023-10-03 13:21:04 +02:00 |
stefan schippers
|
3ed97b3df2
|
some code refactoring, more usage of tclgetboolvar()
|
2023-10-03 10:27:29 +02:00 |
stefan schippers
|
db1bf8818a
|
cleanup in usage of new_prop_string() and hash_names()
|
2023-09-28 23:19:14 +02:00 |
stefan schippers
|
e13922e94f
|
simplify place_symbol(), hash newly placed component name, so successive placements will not clash instance name. hash_all_names() renamed to hash_names()
|
2023-09-28 13:28:16 +02:00 |
stefan schippers
|
5df9347533
|
removed tcl variable connect_by_kissing (to many options is a mess)
|
2023-09-28 12:34:10 +02:00 |
stefan schippers
|
5080c2c33f
|
fix unitialized vars (mostly false errors, but why not...)
|
2023-09-28 00:30:00 +02:00 |
stefan schippers
|
db9c014566
|
move "auto join/trim wires" to Options menu, "m" and "ctrl-m" move commands are swapped if enable_stretch is enabled. new_prop_string() now check for true uniqueness (all inst names are expanded with expandlabel() and all bits are hashed). Fixed regression in check_unique_names()
|
2023-09-25 15:28:40 +02:00 |
stefan schippers
|
6c7d7080b9
|
some code refactoring (inst_table -> inst_name_table)
|
2023-09-25 09:05:10 +02:00 |
stefan schippers
|
129dd68b20
|
translate(): check for NULL xctx and xctx->inst
|
2023-09-21 09:56:29 +02:00 |
stefan schippers
|
ee26a247c5
|
fix a crash if translate() invoked for an instance with instname=NULL (due to incomplete symbol definition)
|
2023-09-20 15:13:44 +02:00 |
stefan schippers
|
1c3c9ff889
|
do not show ERC info window if netlisting invoked via CLI; global variable show_infowindow_after_netlist can now take 3 values: always, onerror, never, to decide when showing the ERC info window after netlisting. Old values (1, 0) still accepted as aliases for always and onerror
|
2023-08-27 23:55:48 +02:00 |
stefan schippers
|
bf46fd3e7b
|
allow "1" / "0" in addition to "true" / "false" in all boolean attributes
|
2023-07-14 00:49:51 +02:00 |
stefan schippers
|
a20fce8cdf
|
fix tedax netlisting (do not netlist noconn devices), recognize @#pin_name:net_name and @#pin_name:pin_attr attributes in tedax format string
|
2023-07-01 09:22:24 +02:00 |
stefan schippers
|
c97dfddd4e
|
fix memory leak due to improper use of get_pin_and_attr()
|
2023-06-17 10:14:55 +02:00 |
stefan schippers
|
a6462269dc
|
refactor token.c: added get_pin_number(), get_pin_and_attr()
|
2023-06-16 23:08:00 +02:00 |
stefan schippers
|
3c16c4bf20
|
separated @#pin:attr handling in translate() into *get_pin_attr(), replaced sscanf() with dedicated get_pin_and_attr() so we are able to handle stuff like "@#ADD[7:0]:net_name"
|
2023-06-16 10:55:22 +02:00 |
stefan schippers
|
89d847fb62
|
fix a bug in `xschem annotate_op` function not showing data if `Live annotation...` option was not set beforehand.
|
2023-06-12 09:13:20 +02:00 |
stefan schippers
|
818950980c
|
drill_hilight(): propagate unnamed nets connected to multiple instances (R1[3:0]), do not try to get single bits out of unnamed nets, as the whole netname is hashed
|
2023-06-12 07:25:05 +02:00 |
stefan schippers
|
fc897c641b
|
fix a potential crash if a ngspice_probe.sym device is placed and live cursor annotation is enabled (this instance has no lab attribute)
|
2023-06-11 07:24:00 +02:00 |
stefan schippers
|
394db224d1
|
added global tcl variable `lvs_ignore` that can be used to enable instance or symbol attributes `lvs_ignore=open` or `lvs_ignore=short` while netlisting, added `test_lvs_ignore.sch` example
|
2023-06-06 15:22:45 +02:00 |
stefan schippers
|
a3ac9f6d1d
|
fix portmap of single-bit unnamed nets in descend_schematic() (do not add [0] to single bit #netxxx nets)
|
2023-06-05 13:27:19 +02:00 |
stefan schippers
|
4f387f3bbe
|
disable displaying backannotation data if `b` cursor is hidden or `Simulation->Live annotation with b cursor` is disabled. Use resolved_net() in translate() when displaying @spice_get_voltage so it will work on sub block ports
|
2023-06-05 12:58:19 +02:00 |
stefan schippers
|
1ea1e835ae
|
@spice_get_voltage: do not process if net is a multiple bit bundle
|
2023-06-02 08:10:47 +02:00 |
stefan schippers
|
0d44c0ce13
|
fix wrong pin label net gathering in translate()
|
2023-06-02 07:48:09 +02:00 |
Stefan Schippers
|
f5c592c889
|
xschem resolved_net command: add [net] parameter; instcheck(): use inst[].lab instead of get_tok_value(inst[].prop_ptr, "lab",0)
|
2023-06-01 18:00:47 +02:00 |
Stefan Schippers
|
f3f12da486
|
updated test_extracted_netlist.sch example
|
2023-06-01 16:02:40 +02:00 |
stefan schippers
|
620217788f
|
do not process @#n:resolved_net attributes if net_name=true not set on symbol or instance and option "show netnames on symbol pins/floaters" is not enabled
|
2023-05-28 08:13:01 +02:00 |