Commit Graph

163 Commits

Author SHA1 Message Date
stefan schippers f8f7c4f230 updated moude_bindings.tcl with Paul`s new version, updated noconn.sym (do not use *_ignore attributes, put comments in netlist about NC net) 2023-06-30 09:11:04 +02:00
stefan schippers 245993f034 added attributes spice_ignore=short, verilog_ignore=short, .... that will transform the instance into a short in the current netlisting mode, shorting all pins to the same net. Works similarly as lvs_ignore=short, but does not need lvs_ignore global setting 2023-06-07 03:41:49 +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 ff216e8187 function reset_flags() set flags on symbols and instances; call reset_flags before rebuilding connectivity to update cached values; add short.sym component that can be used to short two nets together (and remove the short using *_ignore=true); instcheck(): do not proces instances that have *_ignore=true set. 2023-06-06 08:42:43 +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 5085301cd7 add net_name=true in bus_tap.sym (so avoid setting it on instancs), add documentation for bus taps 2023-05-30 11:03:07 +02:00
stefan schippers 5043b14921 fix uninitialized wave_color due to regression after rainbow wave color enablement in double dc sweeps; more bus_tap.sym usage in examples; make bus_tap.sym work correctly for all netlist formats 2023-05-27 23:36:10 +02:00
stefan schippers cf61c253c5 fix a bug in my_mstrcat if an empty string is appended; add resolved_net(n) function that returns the top-most hierarchy name of the net mapping to upper level port connections if any; add xschem resolved_net comand that returns the resolved_net of selected wire/label/pin; add @#n:resolved_net pattern in symbol texts that uses resolved_net 2023-05-27 11:20:49 +02:00
stefan schippers d3b99d3a76 update n and p jfets, added pjfet simulation 2023-05-24 10:02:26 +02:00
stefan schippers 608a144dd1 fix tcl procedures using find_file to find a component: use find_file_first (return 1st match) , since find_file may return multiple matches; add njfet.sym, pjfet.sym and test_jfet.sch 2023-05-24 08:43:05 +02:00
Stefan Schippers 1774ff4e3a allow @#n:pin_attr or @#pin_name:pin_attr in spice format string (print_spice_element), in addition to @#n (convergence to translate() 2023-05-22 21:50:14 +02:00
stefan schippers 0f1bbd24c8 devices/bus_tap.sym: remove format attr in symbol 2023-05-22 11:52:51 +02:00
stefan schippers a4d5ddb63f add examples/test_bus_tap.sch 2023-05-22 00:49:54 +02:00
stefan schippers ea533bd9e3 added bus_tap.sym 2023-05-21 23:59:50 +02:00
stefan schippers f110e817ef ammeter.sym type set to "ammeter" instead of "probe", so will be greyed out if *_ignore attr is set 2023-05-11 00:47:59 +02:00
stefan schippers 339c523f0b align symbol types, reducing number of different types (remove ngprobe, current_probe, differential_probe, raw_data_show --> probe 2023-05-10 17:46:16 +02:00
stefan schippers 0a4f942fb7 symbol_ignore=true attribute can be set on all symbol elements (text, lines, rectangles, arcs, polys, instances, nets) such that these marked elements are not displayed when symbol is instantiated. 2023-05-09 23:26:46 +02:00
stefan schippers 6b857f7b7d switch_ngspice.sym: show (in very small font) @device_model (if given) 2023-04-30 10:37:45 +02:00
stefan schippers fc18a69109 ind.sym artwork 2023-04-28 11:23:06 +02:00
stefan schippers 01bc76955e fix simulator_commands_shown.sym (wrong and incompete quoting) 2023-02-13 19:15:35 +01:00
stefan schippers e5227d6a31 rename top_subckt to lvs_netlist (more appropriate), better tcp interface (redirect stdout to socket in addition to command return value) 2023-02-09 11:30:27 +01:00
stefan schippers af22c256b3 default to unlocked state (lock=false) at title 1st placement 2023-01-07 11:34:47 +01:00
stefan schippers 4c0d5023f5 allow 0 width lines (faster device dependent implementation) if user defined line width is set (to 0), add devices/title-3.sym 2023-01-07 11:28:28 +01:00
stefan schippers 19757ddd8a add menu properties -> Edit header/License text, to allow inserting header or license metadata into the sch/sym file. 2023-01-02 03:04:35 +01:00
stefan schippers 609033e7ca fix regression (not allowing to change text size) 2022-11-23 16:57:21 +01:00
Stefan Schippers e7851d01db "xschem set format <fmt_attribute>" will change netlisting format attribute instead of default "format" (or verilog_format or vhdl_format), however fallback to default netlisting rule attribute if not defined in symbol. add tcl function "from_eng <n>" to convert spice formatted numbers to floating point 2022-11-23 16:16:38 +01:00
Stefan Frederik 3d49ca63c9 avoid tcleval() of strings returned by translate2(), show currents of resistors and diodes when annotating. 2022-11-04 13:35:06 +01:00
Stefan Frederik b98d836be3 devices/simulator_commands.sym: avoid recursive @param substitution in spice commands 2022-11-03 11:00:15 +01:00
Stefan Frederik b36cd99e01 update simulator_commands.sym (missing close parenthesis at end, not causing any problem though) 2022-11-02 23:11:23 +01:00
Stefan Frederik 666b0ebd5b show @path in title.sym 2022-11-01 13:26:22 +01:00
Stefan Frederik b1f011f933 clean up testing @path in symbols 2022-11-01 13:17:51 +01:00
Stefan Frederik b0a88325e7 "@path" will be expanded in symbols with the hierarchy path, so a fully qualified instance name is obtained with @path@name 2022-11-01 12:54:43 +01:00
Stefan Frederik 4c43e77818 eliminated hide=true attribute for backannotation current/voltage texts (will be hidden anyway if no sim data is loaded) 2022-10-24 17:28:39 +02:00
Stefan Frederik 18044abb3e iopin.sym micro edit 2022-10-24 17:06:54 +02:00
Stefan Frederik b8732f2321 ipin,iopin,opin reshaped to better show connection hotspot 2022-10-19 10:37:43 +02:00
Stefan Frederik e14c8b9a11 wire labels: default name set to p1 instead of l1, so it will not clash with typical inductor names 2022-10-12 16:36:56 +02:00
Stefan Frederik 314acbabda allow tabs and newlines in graph expressions in addition to spaces; updated example schematics 2022-09-23 02:18:51 +02:00
Stefan Frederik 3e2bc9f95e added "Annotate operating point" into Simulation menu 2022-09-22 19:47:25 +02:00
Stefan Frederik e61ef2eabf fixed a potential parse error in edit_prop if list_tokens returns a non list due to malformed input. Added @spice_get_diff_voltage to get a voltage difference between 2 nodes. 2022-09-22 17:35:14 +02:00
Stefan Frederik 6f907b5430 updated test schematics to use new xschem annotate_op instead of ngspice::annotate 2022-09-21 18:38:53 +02:00
Stefan Frederik 9c89a08111 better backannotation info placement in net labels, fixes in translate() for @spice_get_voltage and @spice_get_current, fixes in ngspice_backannotate routines. 2022-09-21 17:24:16 +02:00
Stefan Frederik 931c1520e3 make op backannotation in schematic work also if raw file loaded at hierarchy level > 0 2022-09-21 13:58:01 +02:00
Stefan Frederik b542186ebd updated example schematics to new annotate / raw file loading methods 2022-09-20 18:25:31 +02:00
Stefan Frederik 8169196b35 bypass tcl for voltage and current backannotation in schematic from cursor b positon in graph 2022-09-20 03:12:46 +02:00
Stefan Frederik 7abceb3344 fix regression in ngspice::get_current, simplified voltage reporting in net label symbols 2022-09-20 00:12:27 +02:00
Stefan Frederik 53dc7fe3bf add backannotation info (as hidden text) in lab_pin.sym, lab_wire.sym, transitioning example schematics from old (push) backannotation model to new pull model. 2022-09-19 11:22:04 +02:00
Stefan Frederik 3a10b39299 fixed current (also hierarchic) reporting in ammeter.sym and vsource.sym) 2022-09-19 09:45:35 +02:00
Stefan Frederik 96f80d1d33 Alt-a in graph annotates schematic with values at cursor b position. Simulation->Live annotate option to automatically update schematic probes if cursor moved. Some improvements and fixes in ngspice_annotate.tcl. Fix xschem setprobe command. Added missing housekeeping_ctx when a new tab is created. housekeeping_ctx: added more variables to sync. 2022-09-18 05:29:16 +02:00
Stefan Frederik d0b02724cf simpler ngspice_probe.sym 2022-09-13 01:33:09 +02:00
Stefan Frederik 907315191d added "devices/simulator_commands*.sym" to conditionally include commands in the netlist depending on selected target simulator 2022-09-09 13:06:11 +02:00
Stefan Frederik 5da8f777b2 monospaced font in code_shown.sym 2022-08-30 15:54:18 +02:00
Stefan Frederik ce4bd4837a changed @schname to @schname_ext and added @schname that expands to the schematic name containing the instance, with no extension (no .sch) 2022-08-10 08:38:49 +02:00
Stefan Frederik aa63f0adab add devices/res3.sym for generic semiconductor resistance. User must provide a 3-terminal subcircuit for this 2022-07-29 09:40:17 +02:00
Stefan Frederik 28cc187b56 when placing components with lock=true set in template attribute allow to move it to its final position like any other unlocked symbol. Code in place in verilog.awk to do bit unblasting in net-> port associations, but not enalbed it for now as icarus verilog does not handle some bus slices (for example if bus slice direction is different from declared bus direction) 2022-06-09 09:32:34 +02:00
Stefan Frederik eff273dd08 fix in spice.awk: do not clobber user or device format generated .save lines (no ?n tag); add devices/device_param_probe.sym 2022-04-30 10:58:15 +02:00
Stefan Frederik a2b0718a7a added some symbols 2022-04-10 09:05:17 +02:00
Stefan Frederik 77be19bc6a ind.sym artwork 2022-02-21 00:20:21 +01:00
Stefan Frederik 2e8bd72faf reverted xcb since text quality is slightly better 2022-01-18 03:37:54 +01:00
Stefan Frederik 19398e8162 update window title/icon title when switching in tabbed interface 2022-01-10 03:00:33 +01:00
Stefan Frederik 756a7ba06d swap s/d in verilog netlisting rule for enhancement load "rnmos4.sym" so it can be used as usually done with nmos devices (drain side up) . 2021-12-01 15:53:14 +01:00
Stefan Frederik dcb37ef295 added devices/rnmos4.sym for enhancement load nmos gate simulation in verilog, updated test_mos_verilog.sch example 2021-12-01 14:25:27 +01:00
Stefan Frederik 39a27e856e fix pcb_current_protection_embed.sch with up to date embedded symbols (previous had very old symbols with errors), fix pmos.sym (make pin names and verilog_format string consistent). All other schematics with embedded symbols updated with current library symbol. Some code in place for saving/restoring symbols in in-memory undo. This code is not compiled so does not affect xschem operation at all. 2021-11-25 04:00:01 +01:00
Stefan Frederik 7f9ee9fc2a add "xschem check_symbols" and "xschem reload_symbols" for future checking of symbols that are newer wrt to schematic. set mtime of newly created schematic (that does not exist on disk) to current time. Add verilog attributes to devices/pmos4.sym 2021-11-21 12:28:36 +01:00
Stefan Frederik 0e91351e4a fix depletion mos example 2021-11-21 01:18:12 +01:00
Stefan Frederik 64586f0c2d depletion nmos transistor drawn with drain side low as this is the way it is used 2021-11-21 00:02:48 +01:00
Stefan Frederik 10114ec838 add missing braces in update recent file submenu, fix file selector improperly setting main window title, added logic/test_mos_verilog.sch depletion mode verilog example 2021-11-20 23:44:19 +01:00
Stefan Frederik ebf0f0cf95 fixed simulation engine, no more bidirectional devices allowed 2021-10-30 03:12:06 +02:00
Stefan Frederik 0070498eb4 avoid printing "**** end_element" in spice netlist if current instance is skipped (no format or spice_ignore set); spice_probe_vdiff.sym will print .save v(n1) v(n2) instead of .save v(n1,n2) since this is how ngspice saves nodes (no differential voltage is saved) 2021-10-21 00:00:54 +02:00
Stefan Frederik e8e56aa025 mux simulation operator: set "X" instead of "Z" if select not "0" or "1" 2021-09-27 10:56:23 +02:00
Stefan Frederik f00b27d97d interrupting xschem digital simulation with "Simulation->Forced stop tcl scripts" was leaving "tclstop" variable set, causing following simulation to produce erroneousr results. Any new sim resets the flag to 0. 2021-09-25 16:16:30 +02:00
Stefan Frederik 96c84c15f9 added conn_6x1.sym in devices 2021-09-25 01:49:42 +02:00
Stefan Frederik 975b1900dc bus_connect_nolab.sym type set to "show_label" so it will be highlighted when net is highlighted, without needing to set "auto-highlight nets/pins". 2021-02-10 00:49:46 +01:00
Stefan Frederik cea1069656 add "mux", "tristate" functions to logic expressions 2021-01-10 12:53:10 +01:00
Stefan Frederik d64c8abb40 add -pg also in LDFLAGS if --profile is requested; add little more margin in ps page exports 2021-01-06 00:12:04 +01:00
Stefan Frederik cc993bfe44 added in the menu the (undocumented) "propagate-highlight" function (propagate through conductive elements) 2021-01-02 20:33:34 +01:00
Stefan Frederik 1fe6508704 ngspice_probe type set from "probe" to "ngprobe" to avoid clashes 2021-01-02 19:44:01 +01:00
Stefan Frederik 3528634124 Add Shift-Delete command that selects all nets/labels/probes physically attached to current selected wire segment/label/pin/probe 2021-01-02 18:56:42 +01:00
Stefan Frederik 73045ec1cb example schematic updated and improvements 2021-01-01 04:24:57 +01:00
Stefan Frederik 14ead18ea4 "propagate_to" attribute for pins renamed to "goto" 2020-12-30 21:26:58 +01:00
Stefan Frederik 880286bdb9 update examples and ngspice_get_value.sym (@descr attribute) 2020-12-28 23:18:13 +01:00
Stefan Frederik c897f230ce update label display in ngspice_get_value.sym 2020-12-28 20:42:44 +01:00
Stefan Frederik b71199c5b8 added "xschem_simulator" sample example directory for trying logic propagation of probed nets 2020-12-26 19:26:33 +01:00
Stefan Frederik 1cfea4d1d3 svg_draw(): do not print unused layer stylesheets, error check when opening file for printing 2020-12-22 18:31:08 +01:00
Stefan Frederik 2e18119645 remove "m=1" in xyce spice netlists as xyce does not handle m param. Translate spice_probe ".save" to xyce ".print tran", handle different hierarchical expansion of voltage/current nodes in xyce for hierarchical ammeter/spice_probe probes 2020-12-17 18:26:46 +01:00
Stefan Frederik eb2d143e77 more consistent get_tok_value() regarding escaping 2020-11-29 01:59:17 +01:00
Stefan Frederik 9c5739b0f2 allow tEDAx (flattened) netlisting of hierarchical schematics; added pcb/hierarchical_tedax example 2020-11-24 02:54:45 +01:00
Stefan Schippers bf183f0d20 Option (default now) to export svg images using the svg <text> element. This makes generated SVGs much smaller and in most cases faster to render. 2020-11-18 18:29:14 +01:00
Stefan Schippers 292958e4a2 added res_ac.sym 2020-11-06 19:43:26 +01:00
Stefan Schippers 191b4d8ed3 added m parameter to npn.sym and pnp.sym, text attribute edit dialog box renamed from .t to .dialog so it will be always raised on top of xschem window 2020-11-06 19:29:09 +01:00
Stefan Schippers d5ff835614 sqwsource: do not use tcleval, leave the simple expressions parsing to the simulator 2020-10-26 02:58:29 +01:00
Stefan Schippers 460ebe561d sqwsource.sym: better labels, various fixes, comments and more debug messages in tcleval() stuff, some fixes (error checks) in "device_model" related model_name() function 2020-10-25 03:03:23 +01:00
Stefan Schippers 7e845db5df exampels/poweramp.sch and examples/cmos_example.sch show how to use dynamuc ngspice simulation data backannotation, optimized fix of previous bbox bug 2020-10-20 19:48:59 +02:00
Stefan Schippers 3bbba8601f added ngspiec_probe.sym and ngspice_get_value.sym that use a pull method to fetch values from ngspice .raw datafile, fixed a long standing bug that changed bounding boxes of symbols that were selected for a copy if they were copied and copy operation involved rotations of flips. 2020-10-20 12:44:10 +02:00
Stefan Schippers 72e45216c2 spice_probe_dynamic.sym added to devices, retrieves node voltages with a pull method, so always updated, "@@pin" syntax in translate(), same as in format string for netlisting,print hilight nodes (ctrl-alt-j) will print .save instructions if netlist mode set to spice 2020-10-20 01:05:40 +02:00
Stefan Schippers c84d71b859 xschem setprop made way faster if "fast" argument is provided. Example "clear probes" launcher object in mos_power_ampli.sch. 2020-10-19 02:07:17 +02:00
Stefan Schippers 7360982d7c removed some redundant calls in prepare_netlist_structs(), no full instance spatial rehash if adding a component, set template name initials for components in devices/ that do not map directly to spice elements to lowercase letters. 2020-10-18 23:58:40 +02:00
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 0f94bee28e better text positioning (net_name) on some devices/ symbols 2020-10-17 01:07:18 +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 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