Commit Graph

380 Commits

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