Commit Graph

394 Commits

Author SHA1 Message Date
stefan schippers 0024dc2759 more comments and refactoring in token.c 2025-02-07 14:23:58 +01:00
stefan schippers 51ff56357d some simplification and refactoring of print_spice_element() and translate() 2025-02-07 13:22:08 +01:00
stefan schippers 1573ea3cad improvements in eval_expr.y, print_spice_element(), translate() to allow multiple expr(...) patterns in strings, they all will be evaluated if possible or returned unevaluated (without `expr(` and `)` ) 2025-02-06 23:57:01 +01:00
stefan schippers a4ce2d1b64 subst_token(): better token removal (remove space or newline to avoid having many remaining blanks); `netlist_postprocess` xschemrc tcl variable to insert commands after netlist is created 2025-02-06 12:45:21 +01:00
stefan schippers 53fda635c9 remove dbg msg, reduce precision in eval_expr(), add expr() resolution at end of translate() 2025-02-06 10:39:50 +01:00
stefan schippers 70c1e542b2 attributes within expr(...) where expr() contains an infix arith expression will evaluate if possible. Otherwise the string within expr(...) will be returned unchanged. Changes done in translate() and print_spice_element() 2025-02-05 18:20:36 +01:00
stefan schippers 795b5557a5 print_spice_element(), primnt_verilog_primitive(), print_vhdl_primitive(): format string is passed to translate() to do a round of @xxx param substitutions looking up xxx=... in instance attributes. 2025-02-03 02:15:41 +01:00
stefan schippers 05d61b3987 optimization: replace some sumbol "template" token lookups with existing cached sym[].templ field 2025-02-02 23:59:41 +01:00
stefan schippers 5517c8b3f0 has_included_subcircuit(): fix spice netlisting error when using a symbol with bussed ports and implementation specified via a spice_sym_def attribute. bussed ports must be expanded and resulting total number of bits of symbol (grater than number of I/O pins!!) must be calculated and sent to the tcl has_included_subcircuit proc. 2025-02-02 00:33:55 +01:00
stefan schippers 31a3a00c46 clean up translate() deallocation 2025-01-30 23:33:51 +01:00
stefan schippers 60d180de33 translate(): fix `regfree(get_sp_cur);` not followed by `get_sp_cur = NULL;`, leading to a random pointer to nowhere 2025-01-30 22:43:35 +01:00
stefan schippers c9f60ce1c8 clanup / better implementation of previous fix 2025-01-20 18:39:46 +01:00
stefan schippers 7523c0015c correctly mangle generator calls with parameters containing forbidden characters. Transliterate to get valid SPICE identifiers 2025-01-20 17:54:06 +01:00
stefan schippers cb38deffa6 add -keep_symbols to `xschem load command`, options changed to have a leading dash, and moved at beginning of command arg list; `xschem netlist` command: add -keep_symbols option; `xschem setprop` command: move fast and fastundo to beginning of arg list with a leading dash; update proc cellview 2025-01-20 02:30:46 +01:00
stefan schippers 4759d58ad5 add a prepare_netlist_structs() in get_pin_attr() to update net names for @#pin tokens 2025-01-19 02:31:58 +01:00
stefan schippers cfb491adb3 draw_crosshair(): parameter del renamed to what; @spice_get_current: special handling for resistors that are converted to b-sources: i(@r.x4.r1[i]) --> i(@b.x4.br1[i]) 2025-01-18 12:38:12 +01:00
stefan schippers bcca65da90 translate(), @spice_get_current, typo led to missing argument in printf() 2025-01-16 15:35:11 +01:00
stefan schippers 315c5bd600 added symbol attributes @spice_get_current_<param>, @spice_get_modelparam_<param>, @spice_get_modelvoltage_<param> 2025-01-16 02:52:52 +01:00
stefan schippers f79f9ecf1d removed dbg mesages 2025-01-15 19:12:30 +01:00
stefan schippers f2b9d0c6f3 added attribute @spice_get_current<n> for retrieving current through terminal <n> of primitive device; example: @spice_get_current2 to get base current of BJT device 2025-01-15 17:39:59 +01:00
stefan schippers a24145c16c revert change `LCC symbols: make 1st LCC level pins display spice_get_voltage annotation data` (not working as expected) 2025-01-14 01:13:14 +01:00
stefan schippers b0973ae8c0 add_pinlayer_boxes(): fix uninitialized bb[PINLAYER][i].fill, LCC symbols: make 1st LCC level pins display spice_get_voltage annotation data 2025-01-13 17:30:11 +01:00
stefan schippers 172ab4081d changed `xschem is_symgen` to `xschem is_generator` as name is more appropriate 2025-01-11 14:17:30 +01:00
stefan schippers 9d54269d25 doc updates (@spice_get_node) 2025-01-11 01:34:41 +01:00
stefan schippers 59e7872f67 reduce some pointer indirections to array subscripts (readability) 2025-01-10 16:00:47 +01:00
stefan schippers 0a3fd95e06 code formatting 2025-01-10 14:58:10 +01:00
stefan schippers ef5d0e1b96 str_replace(): add parameter to specify number of substituitions (or all); replaced atof_spice() with atof_eng() in various parts related to numbers that do not come from spice netlists; fix numerical setting of cursors if log scale is set (wrong preset was shown); make wave labels in graph scale with gr->magx as X-axis labels; fix scaling roundoff issues in dtoa_eng(); add new `@spice_get_node <spice_node> ` token (where spice_node may contain @variables) in symbol texts to display indicated spice node value. Does not use TCL, thus faster and less "quoting hell" problems 2025-01-10 01:52:54 +01:00
stefan schippers aa36cbb897 @path expansion in translate(): remove path components above the level where raw file (if any) was loaded; added @spice_get_current in bsource.sym 2025-01-09 15:35:35 +01:00
stefan schippers 69a23355fb refactor some debug print messages for NULL strings 2025-01-04 11:33:58 +01:00
stefan schippers e77cc334f4 has_included_subcircuit() and proc has_included_subcircuit: compare and reorder only ports with associated symbol pin. do not consider `extra` ports assigned via attributes 2025-01-03 00:49:54 +01:00
stefan schippers 2bd205427d load_schematic(): do not set xctx->time_last_modify if called with reset_undo == 0; fix persistent command mode when started from menu; update traversal procedures 2025-01-02 12:52:51 +01:00
stefan schippers 6682965dba make @spice_get_current work for pnp and npn symbols 2024-12-21 00:49:44 +01:00
stefan schippers b892ad8ac7 Make @spice_get_current report Id (drain current) for mos devices (defined as plain mosfets in model (ngspice syntax), may be to extend for Xyce) 2024-12-20 22:25:19 +01:00
stefan schippers 20359ed43e update license info. Remove unneeded newline saving in version line of .sch/.sym files, remove c89 flag based on lib versions 2024-11-12 20:23:18 +01:00
stefan schippers f3abdf2eb8 avoid another crash in case of malformed raw files (if raw->npoints not allocated return without attempting to read raw file) 2024-11-01 00:27:29 +01:00
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