Commit Graph

358 Commits

Author SHA1 Message Date
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