Commit Graph

3059 Commits

Author SHA1 Message Date
stefan schippers 4155387e0d set_paths: correctly swap recent component list when changing search paths 2025-09-24 13:06:23 +02:00
stefan schippers ad31f65a61 move delay_flag global into tctx:: 2025-09-24 12:25:21 +02:00
stefan schippers 2f33d86f69 fix regression: Properties->Edit Header/License text; fix keybinding documentation for Shift-Tab, Ctrl-Shift-Tab and Ctrl-Tab (switch tabs) 2025-09-24 12:11:31 +02:00
StefanSchippers 2da2ad0cfb
Merge pull request #424 from arpadbuermen/master
Visual Ngspice/VACASK analysis setup.
2025-09-24 08:59:25 +02:00
stefan schippers 6a522a853b better source_user_tcl_files (do the [subst $tcl_files] at global scope so variables like pathlist can be used) 2025-09-23 23:36:44 +02:00
stefan schippers 49bed53ba1 tcl_files: do a tcl "subst" on tcl_files before sourcing file items, so xschem commands (like abs_sym_path) can be used 2025-09-23 22:40:05 +02:00
stefan schippers f3334cea27 evaluate xschemrc "postinit_commands" before loading schematics given on cmdline 2025-09-23 22:19:19 +02:00
Árpád Bűrmen aa72bed12b Visual Ngspice/VACASK analysis setup. 2025-09-23 10:19:06 +02:00
stefan schippers a2529cad5d allow backslash + newline as continuation of comma separated bus bit names in graphs 2025-09-23 03:19:57 +02:00
stefan schippers aa2d8b1b09 better implementation of previous commit 2025-09-23 02:42:13 +02:00
stefan schippers 6ca06347b6 when switching to a different tab/window the related schematic will be marked as dirty (asterisk) if underlying file is changed. 2025-09-23 02:08:17 +02:00
stefan schippers b5de718d63 fix an issue with compare schematics (set tcl compare_sch variable after calling xschem compare_schematics) 2025-09-23 01:39:59 +02:00
stefan schippers 916027ddba cleanup code for add and delete waves in graphdialog 2025-09-22 17:33:28 +02:00
stefan schippers 70ee45f812 add Del button in graphdialog: better undo handling 2025-09-22 16:56:32 +02:00
stefan schippers 9277a844e5 add Del button in graphdialog to delete a wave preserving colors of all others 2025-09-22 16:51:38 +02:00
stefan schippers c41d4a42ba make wave change color undoable 2025-09-22 15:37:20 +02:00
stefan schippers f6b05b15e1 in graphdialog move colors above Add: button 2025-09-22 15:18:56 +02:00
stefan schippers ac4e7fc7fb inserting a wave with Add button in graphdialog will preserve previous wave colors 2025-09-22 14:23:27 +02:00
stefan schippers bd0e07fbe7 proc graph_tag_nodes: better tagging of multi-line nodes that use escaped newlines 2025-09-22 12:06:12 +02:00
stefan schippers 65fe79e621 refactor proc graphdialog_set_raw_props to proc graph_set_raw_props 2025-09-22 10:56:05 +02:00
stefan schippers ba259b751d descend instance in case of vectored instances. Pressing Cancel when asked which instance to descend into aborts instead of descending into first instance 2025-09-22 10:21:50 +02:00
stefan schippers ad9ad03810 proc traversal: better show indentation of sub blocks 2025-09-21 23:42:04 +02:00
stefan schippers c67aa48c03 send_net_to_graph(): resolve ports of subcircuits to topmost net names 2025-09-21 23:02:17 +02:00
stefan schippers 356b9fb008 small layer color changes 2025-09-21 14:58:16 +02:00
stefan schippers e4dac334a9 show all layers (including layers 0,1,2,3) in wave dialog box 2025-09-21 08:07:16 +02:00
stefan schippers 9f11ff4924 minimum width of bold waveforms set to 2*tk_scaling, so will be visible even if zoomed out a lot 2025-09-20 21:58:36 +02:00
stefan schippers cfff96093d fix crash if doing alt-g on a subschematic port and no raw file loaded (send_net_to_graph()) 2025-09-20 09:28:33 +02:00
stefan schippers ca786b60ab fix error "invalid command name .processlist.f2.lib" in process list and status view 2025-09-19 23:34:35 +02:00
stefan schippers 4428c2ab67 find_closest_box(): allow selection of rectangles if clicking close (close-in or close-out) to the rectangle border. 2025-09-19 23:11:24 +02:00
stefan schippers 318323267c some comments in spice.awk 2025-09-19 18:42:47 +02:00
stefan schippers 2d81de2166 remove old stuff from spectre.awk (was from spice.awk, irrelevant for spectre) 2025-09-19 18:28:42 +02:00
stefan schippers 46ffdfcf8c preserve indentation (if present in spectre_forat attr) in spectre netlists 2025-09-19 18:03:19 +02:00
stefan schippers 92bc9cad34 some fixes for gcc-15 (-std=c23), smaller threshold for click & move that will abort move, added smaller verilog cosim example (tb_counter_wrapper.sch), arbitrary top level names allowed in create_new_window() and switch_window() (no tabbed interface) 2025-09-19 14:18:06 +02:00
stefan schippers 1f52d630f5 better distance threshold tuning for object selection 2025-09-15 09:18:25 +02:00
stefan schippers 987faa1a41 set tk_scaling C variable global, updated in draw(), caching tcl tk_scaling variable, add tk_scaling in threshold expression in find_closest_*() functions 2025-09-15 01:38:10 +02:00
stefan schippers ee920560ff update docs for new bindkeys 2025-09-13 11:06:00 +02:00
stefan schippers dbdfb3015e implement Alt-o and menu "File->Open in new window" 2025-09-13 10:46:14 +02:00
stefan schippers 17c5d229db fix Tab key moving focus (as per tk default action) to avoid having focus changed (keyboard not working any more in canvas) if Ctrl-Tab is pressed to switch to previous tab 2025-09-13 10:16:23 +02:00
stefan schippers 44a80ed200 rename open_in_new_window_or_tab to open_in_new_window 2025-09-12 12:47:05 +02:00
stefan schippers 2bd0cd3e4b fix: open_in_new_window_or_tab TCL var should be unique (no one per window context) 2025-09-12 12:41:09 +02:00
stefan schippers 1b3d0dd9f6 add xschemrc variable open_in_new_window_or_tab (default: 0) to let File->Open open in a new tab/window 2025-09-12 12:16:47 +02:00
stefan schippers 60f5f7f291 when closing a tab switch to previous instead of first tab 2025-09-12 11:23:41 +02:00
stefan schippers c87b6aeb2e fix typo in eval_expr.y: add tan() function (was exp() due to copy/paste error) 2025-09-11 09:02:28 +02:00
stefan schippers e37aed78c9 global namespace cleanup (retval, retval_orig) 2025-09-11 00:23:03 +02:00
stefan schippers 20bccdc589 global attribute editing: add a Mode: combobox to select the global attribute to change: spice/vhdl/verilog/symbol/.... 2025-09-10 19:26:25 +02:00
stefan schippers e5a3ac19b8 move.c: better debug msg 2025-09-10 15:06:15 +02:00
stefan schippers 37d41151bc right use of tk_scaling in sticky click + move 2025-09-10 13:49:27 +02:00
stefan schippers c301a5ed67 increase debug level of some unimportant messages 2025-09-10 13:04:07 +02:00
stefan schippers 43109725fd remove debug event printouts 2025-09-10 10:31:36 +02:00
stefan schippers bd477bcf23 tcl 8.4: avoid -nolinestop, do not pack combobox labels in dialogs 2025-09-10 09:53:12 +02:00
stefan schippers e7ed61a6b0 avoid use of -tabstyle for tcl-tk 8.4 2025-09-10 08:09:09 +02:00
stefan schippers 1a898f63ef proc is_xschem_file: if symbol contains instances of "logo" or "launcher" type do not consider it as a schematic. add "xschem get_sym_type" command 2025-09-09 11:24:39 +02:00
stefan schippers 3efe7bfbec button3 right click on signal names in graphs works now better, no context menu in the way. 2025-09-09 00:09:29 +02:00
stefan schippers aa493783ac better inner border selection area for graphs, easier to right click on signal names 2025-09-08 09:54:57 +02:00
stefan schippers b72c6885b9 xschem show_unconnected_pins: hilight unconnecteds even if netlist not extrated or hilights cleared after netlisting 2025-09-07 15:42:43 +02:00
stefan schippers 458de325cc add command "xschem attach_labels 2" to attach lab_show.sym on selected component with unconnected pins, add command "xschem show_unconnected_pins" to add to all instances, added also in Highlight menu 2025-09-07 13:06:47 +02:00
stefan schippers 04f2586c9c fix previous commit: do not affect ctrl-shift drag (move adding wires in separated pins) 2025-09-07 00:27:12 +02:00
stefan schippers f6565977dc intuitive interface. Set xctx->mouse_moved if movement is above a certain threshold in *screen* units (actally 10pixels * tk_scaling). This avoids unintended click + move, when user just wants to click an instance. 2025-09-06 12:42:53 +02:00
stefan schippers 78fdab27fc fix typo in "".menubar entryconfigure Simulate -background" in actions.c:set_modify() 2025-09-02 21:31:08 +02:00
stefan schippers 37d74d4470 comment out a focus line in "proc set_bindings" as it prevents from focusing snap and grid entries. Will check if someone has issues with main canvas focus 2025-09-02 15:25:36 +02:00
stefan schippers 649eae6ac3 hierarchical ps/pdf export: fix embedded images rendering in sub schematics down in hierarchy 2025-09-02 02:12:47 +02:00
stefan schippers 465e715e48 add info (*BUSY*) in status bar if xschem is busy (for now: when doing logic simulation) 2025-08-28 10:00:21 +02:00
stefan schippers 7c013d2fee allow to add attribute select=attr_name also in instances to override symbol setting, will pre-select attr_name value when editing component attributes 2025-08-26 10:57:57 +02:00
stefan schippers 3e3f4bfef1 adding select=attr_name in a symbol will select the text of attr_name value when editing attributes of a placed instance of the symbol. Specifying select=* will select all the text. If select attribute in symbol is not present try to select "value, lab, name" in this order, if found. Also select all text in text objects when editing their content. 2025-08-26 10:46:50 +02:00
stefan schippers 48968f0e71 Fix: aborting a ctrl-v (paste) with escape did leave copied objects on top of previous if no second Esc was pressed 2025-08-25 09:43:34 +02:00
stefan schippers 010a31d779 easier selection of graph rectangles (click inner border), add graph resize in intuitive_interface_cheatsheet.sch 2025-08-24 17:41:00 +02:00
stefan schippers 5338deac78 add erc_open_net_is_error and erc_shorted_output_is_error xschemrc variables to turn related ERC warnings into errors (force popup ERC window) 2025-08-23 00:35:27 +02:00
stefan schippers a9e4bc1300 add `y`or `Return` and `n` hotkeys to dismiss ask save confirmation dialog 2025-08-23 00:11:10 +02:00
stefan schippers 3b08bf8f7c add Esc binding for closing view data dialogs. Add no_ask_simulate variable to avoid asking confirmation to simulate 2025-08-22 23:55:40 +02:00
stefan schippers d6d39bdb5f proc swap_tabs: fix B1-Motion event clear 2025-08-22 15:44:15 +02:00
stefan schippers f27d4b9773 ctrl-Tab: toggle to previously active tab: make it work also after new tab creation 2025-08-22 15:39:19 +02:00
stefan schippers fc6fefff35 ctrl-Tab: toggle to previously active tab (only tabbed i/f) 2025-08-22 12:09:04 +02:00
stefan schippers 61517b388f remove debug msg 2025-08-22 10:05:48 +02:00
stefan schippers d6c8ab2efc add visual feedback when dragging tabs 2025-08-22 10:04:53 +02:00
stefan schippers e64f76a4fd avoid additional "escape char eating" when rendering symbol texts (translate() + translate3() ) 2025-08-22 00:08:22 +02:00
stefan schippers 3c65268de6 do not backannotate if cursor_b is not enabled when swapping or setting with CLI the cursor_b position 2025-08-21 21:18:35 +02:00
stefan schippers 3b104995fc check if cursor-b is enabled before annotating cursor-b position after descending schematic 2025-08-21 20:49:57 +02:00
stefan schippers 07e79908f1 add Ctrl-Tab and Ctrl-Shift-Tab as aliases to ctrl-Right and ctrl-Left (switch tabs), also add wrap around (last->first or first->last). 2025-08-21 10:23:58 +02:00
stefan schippers d778a738b2 add "Waves->Load first analysis found" so xschem will load first section found in raw file (and matching following ones if any) 2025-08-20 08:53:50 +02:00
stefan schippers 0657c44e02 select by area or select by touch: select also attached objects as done in select by click or select all 2025-08-20 08:37:47 +02:00
stefan schippers 854b0969a7 fix "xschem get netlist_name" command for spectre (.spectre ext instead of .sim) 2025-08-19 12:04:20 +02:00
stefan schippers 059ac92695 fix catch command in tclvareval(....menubar entryconfigure ...) commands 2025-08-19 09:00:09 +02:00
stefan schippers cd41540c5d record_global_node(): handle ground nodes (spectre netlist only); use global=ground for nodes that need to be declared as ground nodes. Ground nodes in Spectre netlist are also considered global 2025-08-19 08:37:33 +02:00
stefan schippers 7e20ea0127 catch all calls to .menubar entruconfigure commands to change bg color of buttons to avoid errors if buttons are removed 2025-08-09 10:57:17 +02:00
stefan schippers 24ff9ab8f0 xinit.c: source tcl_files before calling load_schematic(), so "load_file_postprocess" (that is triggered by load_schematic() will work (supplied scripts are already loaded) when starting xschem 2025-08-09 10:41:03 +02:00
stefan schippers 6bf4fd4da6 vector unnamed nets are set as net%d_[%d..0] instead of net%d[%d:0] so they are compatible with spice and Vacask 2025-08-03 00:15:57 +02:00
stefan schippers 46fdeb2fd4 additions for VACASK backannotation (vsource currents). nmos4.sym updated to support Spectre netlist (Vacask simulation) 2025-08-02 12:40:43 +02:00
stefan schippers 4cf22d61a5 bump file_version to 1.3 from 1.2 (Spectre global attribute F {...}) 2025-08-01 10:37:18 +02:00
stefan schippers 06dfef3876 fix spectre.awk postprocessor (subckt instead of spice .subckt) 2025-08-01 09:52:41 +02:00
stefan schippers 68f84ea9f2 other small improvements in XSCHEM_SHAREDIR buildup in xinit.c 2025-07-28 00:12:21 +02:00
stefan schippers 9e22068651 small improvements in XSCHEM_SHAREDIR path building ( Check installed location (/path/to/bin/../share/xschem -> /path/to/share/xschem)) 2025-07-28 00:04:38 +02:00
stefan schippers 957dba4c30 if src/xschem is invoked do in-src execution even if called outside teh src/ dir 2025-07-27 10:34:24 +02:00
stefan schippers edcd141a22 updates for Vacask netlister 2025-07-25 14:53:15 +02:00
stefan schippers 6f6f4a3028 allow @model as alternative to @symname in format strings (format and spectre_format) of subcircuit symbols, where "model=something" is given in symbol template string. This allows to use subcircuit with name that is different from the filename. 2025-07-21 08:31:42 +02:00
stefan schippers aa99f1b174 add "spectre_device_model" attr in spectre netlister code 2025-07-21 07:57:14 +02:00
stefan schippers 5a3c97d64e add vccs_limit.sym and vcvs_limit.sym that use the XSPICE limit code model (saturated controlled sources). [WIP] support for spectre netlist format (for the VACASK simulator) - still incomplete 2025-07-16 00:12:26 +02:00
stefan schippers f5bd459082 add new xschemrc global variable "load_file_postprocess" that might contain tcl commands to be executed whenever a new file is loaded. 2025-07-09 10:37:18 +02:00
stefan schippers 8fe82cf4ce set netlist_dir if unset or empty before netlisting, add env(PDK) and env(PDK_ROOT) to list of tcl preserved globals in ctx switch 2025-07-02 11:18:20 +02:00
stefan schippers 2300597ca3 propagate hilight nets when descending with "Alt-e" (in new window or tab) - ***needs some testing*** 2025-06-23 09:39:46 +02:00
stefan schippers ec57806816 spice.awk: allow to expand nodes placed after an = sign as in some cdl netlists: $SUB=@@B --> $SUB=?1 B --> spice.awk --> $SUB=B 2025-05-30 21:16:48 +02:00