Commit Graph

2323 Commits

Author SHA1 Message Date
stefan schippers eb6f9f1f4e fix a small memory leak in spice_netlist.c 2023-11-21 10:48:56 +01:00
stefan schippers 8d155af82f `Alt-e` does a true descend sub-schematic and opens it in another window 2023-11-20 17:53:28 +01:00
stefan schippers d4cde62870 add draw option in schematic_in_new_window(), create_new_tab(), create_new_window() 2023-11-20 00:12:13 +01:00
stefan schippers 2c773c4a25 poweramp.sch and mos_power_ampli.sch updates 2023-11-19 12:52:57 +01:00
stefan schippers f4f61d23a6 comments added 2023-11-18 23:13:52 +01:00
stefan schippers 84d945238f `xschem annotate_op file [level]`: added `level` optional integer to specify the hierarchy level op raw data refers to. Add xschem set raw_level to modify the raw level loaded raw file refers to 2023-11-18 12:55:57 +01:00
stefan schippers 2c48b7399e update manual page for sky130 installation (switch from adms to openvaf) 2023-11-18 12:03:09 +01:00
stefan schippers 7da63c19e2 regression fix: xschem netlist did not return exit code 2023-11-18 01:49:50 +01:00
stefan schippers 2dac7f1735 added execute(exitcode,id) will not be deleted at end of sim. proc graph_tag_nodes works with or without graphdialog open. If it is open it will tag nodes therein, if not it merely returns start and end indexes of nodes in its txt argument 2023-11-17 21:36:34 +01:00
stefan schippers 41f66117e9 more code in proc graph_tag_nodes 2023-11-17 14:32:25 +01:00
stefan schippers 48a9a94ab2 offloaded proc graph_tag_nodes from proc graph_update_nodelist, moved rcode and colors into tctx:: context 2023-11-17 14:05:49 +01:00
stefan schippers 913614b558 some fixes in draw() (transform multiple op in dc sweep also if per-node rawfile specified), handle per-node rawfile in graph_fullyzoom() 2023-11-17 01:20:52 +01:00
stefan schippers 397293f227 spice netlist: use symbol for port list of top level schematic only if it is of type subcircuit 2023-11-16 23:37:16 +01:00
stefan schippers 760fbbbc4a allow newlines in (quoted) node names in graphs:
"alias_name;
node_name %
dataset raw_file.raw sim_type
"
2023-11-16 02:58:26 +01:00
stefan schippers a50bfb3622 when doing spice netlisting if top level has a symbol (and the symbol has i/o ports) use the symbol for printing the top level subckt port list. This ensures same port ordering when netlisting a testbench containing a component and netlisting the component itself. Tab context menu: open Symbol / open Schematic will use the search_schematic setting and search counterpart accordingly. 2023-11-16 01:26:55 +01:00
stefan schippers 5117001a9c revert changes: `allow tcleval() in node alias names` and `allow tcleval(xxxx) in % dataset specification on graph nodes`: just wrap the whole list of nodes (including aliases, % specifications et all) into a tcleval(...) 2023-11-16 00:02:25 +01:00
stefan schippers c85727ae62 draw_graph(): revert back tcleval() on node, color, sweep graph attrs 2023-11-15 21:27:05 +01:00
stefan schippers be914f4ee4 raw_read(): clear text floater caches if a rawfile is successfully read 2023-11-15 21:04:10 +01:00
stefan schippers b1f72ada59 isonlydigit() will return true also for negative integers 2023-11-15 20:15:02 +01:00
stefan schippers 83345932a5 allow to specify per-node raw file in graphs with the syntax: alias_name ; node_name % [dataset] [rawfile] [sim_type] 2023-11-15 19:18:28 +01:00
stefan schippers babd340da9 report previous netlist error also if doing current level only netlist 2023-11-15 00:32:41 +01:00
stefan schippers 5d3b7bd7d0 report error if trying to do a netlist and the file can not be written (example: broken simulation symlink) 2023-11-14 23:40:41 +01:00
stefan schippers 852f2bd25d remove dbg stuff 2023-11-14 02:15:07 +01:00
stefan schippers d0ee3a34fa fix additional intersection checks in `proc touches` 2023-11-14 02:12:23 +01:00
stefan schippers 8c431a51f8 allow to block change color of selected waves using text selection in signal list 2023-11-14 01:22:41 +01:00
stefan schippers b691021f66 typo in my_strdup2() dbg message 2023-11-13 23:52:50 +01:00
stefan schippers f4df48813f copy_hierarchy_data() initial implementation for future hierarchy cloning. Alt-Shift-E and Alt-Shift-I to edit schematic / symbol in a new xschem process. `xschem raw switch`: allow also integer index (as returned by `xschem raw info`) instead of `file type` to switch raw file 2023-11-13 18:00:30 +01:00
stefan schippers 0bc0f8e5eb read_dataset(): better get name of unknown sim types from raw file 2023-11-12 22:11:51 +01:00
stefan schippers 52291c562d reset_caches() back into prepare_netlist_structs() (no measurable slowdown) 2023-11-12 20:56:57 +01:00
stefan schippers 6360fc1700 refactor reset_flags() to reset_caches(). scripts that set tcl variables that go into attributes via tcleval() should call `xschem reset_caches` to get all things updated. 2023-11-12 20:53:37 +01:00
stefan schippers 0df3cfcc7b better recognize global nets in LCC schematics (translate(), @spice_get_voltage(..) ) 2023-11-12 13:43:31 +01:00
stefan schippers ecca0ba2be better swap_windows() function (used when closing a window in multi-window(non-tabbed) interface, resolved_net() recognize global nodes. remove static data from record_global_node(), put in xctx. Remove dead code from translate() (@spice_get_voltage) 2023-11-12 13:01:11 +01:00
Stefan Schippers 8c29d0e812 fix error in capa-2.sym and missing check for null xctx->inst[].instname in get_pin_attr() 2023-11-11 20:03:20 +01:00
stefan schippers 8856ab6e0d add min() and max() clipping functions in wave calculator 2023-11-11 12:13:38 +01:00
stefan schippers d4b8f25455 xschem raw_read just loads or reloads the waves, does not toggle. use xschem raw_clear to unload 2023-11-11 11:40:36 +01:00
stefan schippers f3aac428a4 fix rel_sym_path when XSCHEM_LIBTRARY_PATH contains paths with trailing `/` 2023-11-11 11:30:27 +01:00
stefan schippers bdd641cad3 allow tcleval(xxxx) in % dataset specification on graph nodes 2023-11-11 00:03:22 +01:00
stefan schippers 2a67e60376 allow tcleval() in node alias names 2023-11-10 23:42:09 +01:00
stefan schippers 117f071500 fix del() function in wave processor (did not plot the right %n dataset if specified) 2023-11-10 23:23:13 +01:00
stefan schippers 7368344d85 waves callback(): absolute X panning will not switch raw file if no rawfile is specified in graph 2023-11-10 18:50:58 +01:00
stefan schippers ccc5dab228 better wire connection dot sizing at small smap values 2023-11-10 17:43:41 +01:00
stefan schippers 1991b409e0 fix small memory leak 2023-11-10 15:43:36 +01:00
stefan schippers 3f85766c10 add debug_tcleval variable for specific debugging of tcleval() constructs in the schematic 2023-11-10 14:57:37 +01:00
stefan schippers 565ab605cf better xschem raw clear comand (if rawfile and sim_type specified delete only specified simulation data, not all analyses of rawfile) 2023-11-10 12:24:21 +01:00
stefan schippers 87f9a4e09b reset floater caches on save(As) schematic - better done 2023-11-09 19:20:17 +01:00
stefan schippers 1b737c4ac7 reset floater caches on save(As) schematic 2023-11-09 19:13:55 +01:00
stefan schippers 40e66122e8 typo in xschemrc 2023-11-09 17:32:25 +01:00
stefan schippers 769c7d4663 Add incremental_select tcl variable. It is normally set. If set show selected objects while dragging a selection rectangle. If unset show selection at end of drag operation. Fix possible endless loop whiel zooming on X axis if raw file has only one point (OP). Also if graph specifies custom plot switch to that raw file to get correct x range. 2023-11-09 16:41:53 +01:00
stefan schippers 8231cd65db set_first_sel(): returns first selected element (if any) 2023-11-09 15:12:56 +01:00
stefan schippers 584f88fba1 object iterator, object spatial hash table for all objects. tbu in the future maybe. Fix crashing bug when copying ngspice_probe.sym if annotation is enabled 2023-11-09 13:57:58 +01:00
stefan schippers 35359aed20 backannotate_at_cursor_b_pos(): allow backannotating b cursor on graphs created from multiple OP points 2023-11-09 04:10:06 +01:00
stefan schippers 7d92a32f5e added Waves ->Op in addition to Waves->Op annotate 2023-11-09 04:04:43 +01:00
stefan schippers 518250b3cc Waves->OP does backannotation, not only loading OP raw file; removed Simulation->Graph->load/unload raw file (redundant, now in Waves) 2023-11-09 02:49:02 +01:00
stefan schippers 3751104b34 graph dialog: file selector for graph-specific raw file 2023-11-09 01:59:17 +01:00
stefan schippers 22bd6733fc better alert_ dialog, tab ctx menu: do not try to open netlist if not existing (yet), Simulation->set netlist dir will disable local_netlist_dir 2023-11-09 01:21:12 +01:00
stefan schippers 75c8376a04 fix draw_crosshair when xctx->semaphore not zero, fix tabs context menu issues with `open schematc/symbol`; set_modify: do not attempt to reconfigure menu buttons (Simulate-Netlist-Waves) if invoked from preview dialog 2023-11-08 22:45:31 +01:00
stefan schippers 4fef5e2761 enhanced Waves menu button, "Use simulation dir..." option does not pring up file selector 2023-11-08 11:16:43 +01:00
stefan schippers ed9d6905de handle errorCode=NONE (close pipe was with error but no error code) 2023-11-08 04:02:33 +01:00
stefan schippers b51af6422e call simuldir if doing netlist from commandline (xschem -x -r -n -s -q ... ) 2023-11-08 03:46:36 +01:00
stefan schippers 4ff28fd39d avoid calling simuldir in load_schematic when traversing hierarchy during netlisting 2023-11-08 02:52:50 +01:00
stefan schippers c485e7ef7a better handle error color codes for processes that get killed 2023-11-08 02:27:56 +01:00
stefan schippers eb7ad4cd8e cleanup set_netlist_dir tcl proc 2023-11-08 00:44:29 +01:00
stefan schippers a128df47e0 proc simuldir: set directory to [xschem current_dirname]/simulation but do not create it until doing the netlist 2023-11-07 23:39:18 +01:00
stefan schippers acbe76329c execute_fileevent: polling for processes that do close stdout 2023-11-07 18:10:33 +01:00
stefan schippers f04477d236 if local_netlist_dir is set to 1 change netlist_dir at circuit load (and save-as) 2023-11-07 17:25:18 +01:00
stefan schippers 41ade18616 fix previously disabled kill for foreground subprocess via Simulate button 2023-11-07 15:37:40 +01:00
stefan schippers 98a95b7f6b proc simulate: handle foreground processes correctly 2023-11-07 14:25:36 +01:00
stefan schippers c57d5d815f kill_running_cmds: do not try to kill process if execute(pipe,...) not existing; simulate_from_button : don`t do further actions and forget if no process was killed; proc simulate: dont set tctx::...simulate_id, change button color if invoked in foreground 2023-11-07 14:10:16 +01:00
stefan schippers 366fa86d57 do not sel tctc::*_simulation_id var if no process was started due to errors /missing command 2023-11-07 12:44:56 +01:00
stefan schippers 089592122d fix mis-interpretation of % as a dataset designator when present in wave alias names 2023-11-07 01:05:45 +01:00
stefan schippers a5b65ea494 add execute(win_path,$id) variable to keep track the tab/window subprocesses started from, for cleanup buttons 2023-11-07 00:40:57 +01:00
stefan schippers aeafaf5052 execute_fileevent: delete ..*simulate_id only if called from related id 2023-11-06 19:14:32 +01:00
stefan schippers 71f5994798 reset simulation button on save AS 2023-11-06 19:03:19 +01:00
stefan schippers 714724561d add a catch {} in execute_fileevent (non existent ..._simulate_id var) 2023-11-06 16:59:14 +01:00
stefan schippers 98def78164 simulation button will go yellow while sim is running.Clicking a yellow simulate button will kill simulation. 2023-11-06 16:47:14 +01:00
stefan schippers f531422761 restore semaphore on simulate button to avoid multiple clicks running multiple identical sims. 2023-11-06 03:07:20 +01:00
stefan schippers e5431d86c5 fix setting netlist button color code statwe variable (tctx::...._netlist) 2023-11-06 01:44:25 +01:00
stefan schippers 881d8a4ed9 various fixes for Simulator/Netlist button color codes 2023-11-05 14:13:20 +01:00
stefan schippers 27114408ec reset simulate and netlist button colors on load new file 2023-11-05 02:42:06 +01:00
stefan schippers a6fa6135c9 remove debug msg 2023-11-05 01:51:34 +01:00
stefan schippers 4a0c007540 fix yet another issue with set_modify() 2023-11-05 01:42:25 +01:00
stefan schippers 3bd3956042 Netlist and Simulate buttons will be colored in red or green depending on the outcome of the associated operation 2023-11-05 00:14:55 +01:00
stefan schippers 88e7f4fea4 fix a problem in set_modify() (inconsistent prev_set_modify state after netlist of modified circuit) 2023-11-04 22:50:57 +01:00
stefan schippers cfdaebf5e1 add `xschem instance_number` command to easily get/set the position of instance in the list 2023-11-04 20:43:04 +01:00
Stefan Schippers 299b29bf87 fix parameter count check in xschem getprop 2023-11-04 18:46:26 +01:00
Stefan Schippers a5f660e54a improve drawing quality of crosshair with (now default) fix for broken gpu enabled 2023-11-04 18:29:15 +01:00
Stefan Schippers fd5a1e0bdf fix draw_crosshair() (dont get obscured by rubber placement) 2023-11-04 15:56:42 +01:00
stefan schippers 4be10f1707 remove dbg message 2023-11-04 15:07:09 +01:00
stefan schippers 7022fbf073 xschem simulate sets the Simulate button color. removed redundant proc simulate_button 2023-11-04 14:49:15 +01:00
stefan schippers bd43be9be6 rename a local variable to make tcc happy 2023-11-04 12:03:41 +01:00
stefan schippers 0b93634fee Better Simulation->Graphs-> Load raw file (ask filename) 2023-11-03 23:37:09 +01:00
stefan schippers a5ee182d59 add some Symbol menu entries (place net label / change instance texts to floaters) 2023-11-03 15:10:22 +01:00
stefan schippers 2c26bfbaa9 fix some garbage while moving / copying and zooming. faster draw_selection(gctiled) if big selection (use a single XCopyArea), do not allow to descend/go_back if other UI action is pending, initial implementation of `xschem floaters_from_selected_inst` command, get_tok_val() allow quotes in tokens, like a"22"33=123 even if with_quotes unset (it is intended for token values not for tokens themselves) 2023-11-03 14:36:35 +01:00
stefan schippers b7e5af9b4b add inherited_pin[] in make_sym_from_spice.awk 2023-11-02 19:39:01 +01:00
stefan schippers 234a70d0a3 fix version print in make_sch_from_spice.awk and make_sym_from_spice.awk 2023-11-02 19:29:00 +01:00
stefan schippers e86857d410 code cleanup in make_sch_from_spice.awk and make_sym_from_spice.awk 2023-11-02 19:23:11 +01:00
stefan schippers 794df4dfc3 add make_sym_from_spice.awk, cut down from make_sch_from_spice.awk 2023-11-02 19:07:15 +01:00
stefan schippers 7727a9f924 add necessary comment in edit_text_property() 2023-11-02 13:30:03 +01:00
stefan schippers 722b1f4575 small improvements in edit_text_property() and get_instance() 2023-11-02 13:24:15 +01:00
stefan schippers 0a4c59cc30 xschem selected_set, search: include text objects. xschem getprop: allow to retrie the text value with txt_ptr 2023-11-01 14:19:26 +01:00
stefan schippers 240db67df2 add comments in xschemrc for bespice_listen_port 2023-11-01 02:27:23 +01:00
stefan schippers 1955d6d386 setup_tcp_bespice: if port 0 is given let TCL find a free port 2023-11-01 02:23:21 +01:00
stefan schippers 18f337734d setup_tcp_bespice: use stderr for messages 2023-11-01 00:31:35 +01:00
stefan schippers b60a5a4c4b Add command `xschem setprop text n txt_ptr value` to change a text object text field, set stdout in line buffer mode if used in a pipe, better protect some commands against no X connection 2023-10-31 18:39:42 +01:00
stefan schippers ff24678fec draw_temp_symbol(): update symbol bbox before doing XCopyArea (fix_broken_tiled_fill && gctiled) 2023-10-31 13:10:16 +01:00
stefan schippers 7842890f0c select_rect(): no more direct usage of fix_restore_rect() (now done in drawtemprect(xctx->gctiled,...). Some dialogs no more transient (having always on top is a hassle for some). The fix_broken_tiled_fill is now set to 1, make this alternate drawing method the default 2023-10-30 22:47:25 +01:00
stefan schippers e282abb5f1 optimized XCopyArea for draw_graph(flags & 1), removed redundant OUTSIDE macro 2023-10-30 18:03:52 +01:00
stefan schippers 11c8c47ad3 faster draw_temp_symbol() if fix_broken_tiled_fill and gc==gctiled 2023-10-30 17:17:00 +01:00
stefan schippers d7247d55e6 fix `destroy_all_windows()` not destroying windows in non tabbed interface (late usage of tclresult()) 2023-10-30 02:09:49 +01:00
stefan schippers 814839a132 fix `destroy_window()` not destroying window in non tabbed interface (late usage of tclresult()) 2023-10-30 02:02:03 +01:00
stefan schippers 8f2af6803a remove some dead code, fix redrawing in `xschem move_instance` command 2023-10-30 00:57:28 +01:00
stefan schippers 36b1a9f9e7 fix delete_only_rect_line_arc_poly() (used in change_layer) 2023-10-30 00:22:25 +01:00
stefan schippers 52e36cc46b add portable sleep_ms() function 2023-10-29 23:52:33 +01:00
stefan schippers 391a744302 xschem setprop command: redraw all viewport if show_pin_net_names is enabled 2023-10-29 22:22:05 +01:00
Stefan Schippers 958c5a1525 set_modify() returns now # of floaters, use this info to redraw all viewport in `xschn setprop` commands 2023-10-29 20:02:23 +01:00
stefan schippers d776d6a351 better handle operating point clear / update when switching / reading / clearing raw files. dont use operating point data (ngspice::ngspice) above the hierarchy level where raw file has been loaded. 2023-10-29 14:04:52 +01:00
stefan schippers b680f5da20 redraw screen if executing `xschem raw_read` (and raw file already loaded, thus unloading waves) 2023-10-29 12:54:55 +01:00
stefan schippers a19020ed78 removed find_inst_to_be_redrawn() and related code (not worth doing) 2023-10-29 11:11:45 +01:00
Stefan Schippers d5fd026196 xschem raw command: delete also last (base) raw file in clear subcommand 2023-10-28 17:12:32 +02:00
stefan schippers a76dca4f29 add menu entry in Options for fix_mouse_coord 2023-10-28 11:51:21 +02:00
stefan schippers 78981f2c2f disabled testmode 2023-10-28 11:22:37 +02:00
stefan schippers a2ed8fefb6 added an optional fix (fix_mouse_coord) that uses an alternative method for getting mouse coordinates in KeyPress/KeyRelease events. This should hopefully work around some remote desktop connection softwares that report wrong mouse coordinates (may be absolute vs relative to window?) 2023-10-28 11:19:23 +02:00
stefan schippers 8ac4c6030d getpgrp() tcgetpgrp() are unix specific: protect with #ifdef __unix__ 2023-10-28 01:20:51 +02:00
stefan schippers 8b784d01d9 fix unrestored bbox coordinates in draw_selection() 2023-10-28 01:03:21 +02:00
stefan schippers b965fb0ba4 improvements in the `Fix for GPUs with broken tiled fill`, no more flickering in selections 2023-10-27 23:45:54 +02:00
stefan schippers 364fb55df1 avoid doing unselect_all() if nothing to unselect 2023-10-27 12:42:08 +02:00
stefan schippers 6362ebb214 add tanh() function in wave expression evaluator 2023-10-27 10:48:53 +02:00
stefan schippers 9f1b447c16 previous fix did not fix. Fix the fix 2023-10-26 19:38:25 +02:00
stefan schippers 4985fb6e61 fix crash if extra_rawfile(2, ...) is called when no initial raw file is loaded 2023-10-26 19:27:11 +02:00
stefan schippers c68866c994 add `wm transient .dialog .` to all toplevel dialogs to prevent focus robbery on cinnamon/mate desktops when some other app is always-on-top 2023-10-26 19:13:49 +02:00
stefan schippers bfc60add06 tab context menu: Do not use saved file to decide if symbol or schematic. Use netlist_type 2023-10-26 08:29:52 +02:00
Stefan Schippers 34113c1c5f added tab ctx menu `Save` 2023-10-25 20:30:20 +02:00
stefan schippers 2fec681728 puntuation in texts 2023-10-25 18:13:48 +02:00
stefan schippers f9d3661c15 fix tab context menu close (invalid switching after deletion) 2023-10-25 16:47:11 +02:00
stefan schippers 8e844ff913 remove (unneeded) `edit file` tab-bar context menu entry 2023-10-25 16:33:24 +02:00
stefan schippers 27488a1020 add tabs ctx menu `open term in sim directory` 2023-10-25 16:28:10 +02:00
stefan schippers b31358a468 New thumbnails for tabs ctxmenu 2023-10-25 13:01:00 +02:00
stefan schippers 9a0375cc4b do not add `Edit netlist` ctx menu button for symbol tabs 2023-10-25 12:14:48 +02:00
stefan schippers 3d4113ad26 tabs bar context menu 2023-10-25 11:43:43 +02:00
stefan schippers d83acf710d add `xschem text_string` command, update displayed floaters if a text object is changed 2023-10-24 18:47:58 +02:00
stefan schippers 94b43d41ed add double click in process list to get status, add Simulation menu entries to display data and stderr of last completed job 2023-10-24 14:28:59 +02:00
stefan schippers 82387c7f2f remove unneeded grab set in property_search 2023-10-24 11:45:13 +02:00
stefan schippers 0819211bb0 when doing a select by area with shift pressed the object under the mouse will not be unselected if it was already selected (xctx->already_selected) 2023-10-23 23:41:39 +02:00
stefan schippers 512b297e35 add validity checks for xctx->inst[n].ptr < 0 (unresolved instance) 2023-10-23 22:49:52 +02:00
stefan schippers fec9c1b7e3 fix fullxzoom if a single curve is selected with find_closest_wave() (returns a dataset number) in a double variable DC sweep (there are no multiple datasets, just sweep var wrapping) 2023-10-23 17:20:51 +02:00
stefan schippers 2aeafac85c if selecting a waweform dataset with `t` key update text floaters that might contain the dataset information. When closing the process list dialog also close the process status sub-dialog. 2023-10-23 16:03:27 +02:00
stefan schippers 4f4872fa7b execute_fileevent: use exit status instead of stderr data in status report 2023-10-23 10:33:08 +02:00
stefan schippers d82ad002e8 better fill nodes listbox when selecting in-graph raw file, simulation->graph menu reordering 2023-10-23 09:28:29 +02:00
stefan schippers 447a5b8ae6 add ngspice interactive/control/batch simulation modes 2023-10-23 01:00:09 +02:00
stefan schippers 6e776262e6 remove debug msg 2023-10-23 00:05:34 +02:00
stefan schippers 10857629e1 add option --pipe (alias for -r / ----no_readline) 2023-10-22 22:16:17 +02:00
stefan schippers 2a8b0b40d8 add some additional help text in simulator config dialog 2023-10-22 12:14:49 +02:00
stefan schippers 8f3fedab1f fix a bug when closing with ctrl-q (ie from callback(), calling proc quit_xschem) and there are multiple windows, some with changed data (switch_tab() was skipped due to xctx->semaphore). Process status dialog window will not be updated if vertical slider is not positioned to bottom 2023-10-22 02:53:03 +02:00
stefan schippers d5d090afc0 better line-rectangle touch check for backward rectangle selection (intersection select) 2023-10-21 23:48:56 +02:00
stefan schippers 5c27e48ccf fix rectangle intersection checker macro (RECT_TOUCH) 2023-10-21 22:37:01 +02:00
Stefan Schippers 73c4a17c2c dragging to the right a selection rectangle will select objects fully enclosed. Dragging to the left will select all objects intersected by the select rectangle. 2023-10-21 19:09:17 +02:00
stefan schippers 109cef6c52 detect if program started in background and detach from console 2023-10-21 11:37:59 +02:00
stefan schippers f2fd7e6e48 remove debug messages 2023-10-21 11:05:47 +02:00
stefan schippers 99f31e4535 periodic update of process status dialog, updated delta_sigma and rom8k examples for allowing batch mode ngspice run 2023-10-21 10:58:02 +02:00
stefan schippers e603a71651 fix typo 2023-10-21 10:07:31 +02:00
stefan schippers 8a8d9f0148 added comments for sub-process management, disabled list sub-processes on windows (need specialized version) 2023-10-21 09:47:37 +02:00
stefan schippers 2e4e754a3e add context menu entries for rotate and flip selection, add basic sub-process control in Simulation menu, enabled again Rotate and Flip from Edit menu, fix svg export from CLI (was resetting line width), add cascade menus in Simulation 2023-10-21 09:27:02 +02:00
stefan schippers 8e1df1b157 add proc sim_cmd to substitute variables in simulator commands and return the resulting command 2023-10-19 18:18:20 +02:00
stefan schippers 0e583cfac1 add tooltip showing full path of schematic when hovering the mouse over a tab 2023-10-19 15:14:29 +02:00
stefan schippers 0325b14499 add `none` i/o buffering mode (in addition to `line`) in execute `status` argument 2023-10-19 13:01:25 +02:00
stefan schippers efb0351812 fix fullxzoom when selecting more (unlocked) graphs, graphs have a custom rawfile specified and current loaded sim is not of the same type (for example OP) 2023-10-19 10:47:01 +02:00
stefan schippers 1b7a035220 fix graph_fullxzoom in case of non monotonical sweep x axis variable 2023-10-18 16:10:08 +02:00
stefan schippers 0178e1c287 add @symref attribute that resolves to the full symbol reference as specified in instance: example: "sky130_fd_pr/pfet_01v8_lvt.sym" 2023-10-18 13:18:29 +02:00
stefan schippers f9114a0888 proc graph_fill_listbox : use "xschem raw read" instead of "xschem raw switch" so if user enters a new file it will be immediately loaded 2023-10-18 10:48:23 +02:00
stefan schippers cc5864e12f fix 2 bugs in extra_rawfile(): xctx->extra_idx assignment in extra_rawfile "read" subcommand and return value if no command executed. Add "file_exists "procedure to be used in graph_edit_properties for rawentry resolution 2023-10-18 10:15:39 +02:00
stefan schippers a41a0bf9fd add noise analysis recognition in raw files 2023-10-18 02:56:06 +02:00
stefan schippers ad07999dd3 do not use text widget -selectbackground on tcl8.4 2023-10-17 23:35:16 +02:00
stefan schippers ecbbb68447 replace text widget "count -displaylines" with alternative tcl8.4 compatible 2023-10-17 23:31:13 +02:00
stefan schippers 8e8145a241 fix regression on input_line tcl procedure. buggy if empty cmd ws passed as argument 2023-10-17 23:06:49 +02:00
stefan schippers 52572a6ca4 update cmos_example.sch 2023-10-17 18:16:48 +02:00
stefan schippers 9917c8276b revert to KeyRelease events (instead of FocusOut) for various widgets in graphdialog (better feedback), fix premature deallocation of data in child process in filter_data() 2023-10-17 17:05:10 +02:00
stefan schippers 025454e79e fix a regression in graph_fullyzoom() if graph contains more than one expression 2023-10-17 16:39:25 +02:00
stefan schippers 306c5d0d15 fix two small memory leaks, doc updates (xschem raw command) Raw.filename renamed to Raw.rawfile 2023-10-17 16:08:27 +02:00
stefan schippers 9fda2adccb fix graph_fullxzoom if displaying multiple op (transformed to dc sweep) sims 2023-10-17 14:20:34 +02:00
stefan schippers b165720bc8 allow loading more and different analyses from the same raw file. Implied tcleval() in rawfile given in graphdialog, transform multiple saved OP sims into a dc sweep. 2023-10-17 14:00:43 +02:00
stefan schippers 8cfd51d8f9 add the ability to load multiple raw files with different analyses in a single schematic ( extra_rawfile() ) 2023-10-17 00:42:31 +02:00
stefan schippers 5da81a7aea shut down some gcc false warnings (uninitialized vars), add read_more_rawfile() 2023-10-16 11:16:12 +02:00
stefan schippers f10555917e optimized usage of interpolate_yval(), add raw->cursor_b_val[] 2023-10-16 09:53:03 +02:00
stefan schippers d1309a8a47 fix uninitialized var in interpolate_yval() 2023-10-15 13:24:19 +02:00
stefan schippers a7bcfb7941 do interpolation when annotating "b" cursor values in schematic, as done with measurements with "a" cursor. 2023-10-15 12:05:48 +02:00
stefan schippers f87ab46310 refactor table_read(), less pointer indirections 2023-10-15 10:24:13 +02:00
stefan schippers 53286346e1 doc updates, tcl rawfile variable in place for future per-graph raw file 2023-10-14 23:41:19 +02:00
stefan schippers 663991ce70 add "filename" member in Raw (raw file) struct 2023-10-14 23:09:40 +02:00
stefan schippers 537cedbafe better graphdialog layout, remove tcl redundant raw_level var 2023-10-14 22:43:58 +02:00
stefan schippers 8ceb4b6b41 fix false wcnt warning in draw_graph() 2023-10-13 23:09:27 +02:00
stefan schippers 25ab8a8b8a cursor `a` measurements in graph match the %n dataset specified on nodes if any (or default to dataset 0) 2023-10-13 23:04:45 +02:00
Stefan Schippers c6a3880b9d fix a bug in draw_graph_points() changing and not restoring linewidths if called with idx==-1 2023-10-13 18:46:15 +02:00
stefan schippers 617e6b3b8d update live backannotation if "a" and "b" cursors are swapped, syntax node%n is now allowed to plot only dataset "n" of the node. Update html docs and example autozero_comp circuit 2023-10-13 15:51:51 +02:00
stefan schippers 6ad282a3df remove some global tcl vars 2023-10-13 09:41:34 +02:00
stefan schippers cd01e5d314 in digital graphs use gr->magy (ylabmag attribute) to rescale node names on Y axix, as done in analog graphs on Y axis labels 2023-10-13 00:25:40 +02:00
stefan schippers c86d48f321 expandlabel(): do bus_char substitution even if taking the shortcut 2023-10-13 00:04:58 +02:00
stefan schippers ae58077447 move replace_key to global_array_list (it is an array var) 2023-10-12 21:09:45 +02:00
stefan schippers 88a5befbf2 add some cascade menus for less frequently used entries. better description of xschem unselect_all command 2023-10-12 19:37:22 +02:00
stefan schippers 676ce4fe3d lock attribute for rectangles: work the same as for instances (can only double click to reset attributes, not selectable until lock reset to 0), add commands "xschem selected_set rect" and "xschem select_inside x1 y1 x2 y2" 2023-10-12 11:15:12 +02:00
stefan schippers a5545c3dbf fix keybinding doc typo 2023-10-11 23:56:36 +02:00
stefan schippers f1cb655a7a ERC: symbols with pass-through pins by definition do not match with schematic so do not check 2023-10-11 22:57:44 +02:00
stefan schippers c9a2bca5d7 add local manual link in xschem about dialog 2023-10-11 17:10:06 +02:00
stefan schippers e457292e04 trim_chars() function for various string operations 2023-10-11 16:31:42 +02:00
stefan schippers 9b4bd44fd0 merged in fast_raw_read branch 2023-10-11 14:05:27 +02:00
stefan schippers 3a25109fe1 fix compile error with CAIRO on Windows: dest_x and dest_y should be idx1 and idy1, respectively in my_cairo_fill 2023-10-11 13:59:08 +02:00
stefan schippers 6305b52d91 add safety check for null string in edit_text_property() 2023-10-09 13:53:57 +02:00
stefan schippers b56ee2c998 use my_strdup2() in all text object copies(txt_ptr, prop_ptr, floater_ptr, ...) to better handle corrupted input data 2023-10-09 13:39:45 +02:00
stefan schippers 94bccc08d9 do not duplicate empty strings as NULLs in hash tables 2023-10-09 12:49:11 +02:00
stefan schippers bb4f296211 use "2" instead of "X" for default return state in xschem logic_get_net command 2023-10-09 00:11:17 +02:00
stefan schippers 6b00a88f28 fix xschem simulator "mux" operator (M) to handle unknown selector state 2023-10-08 11:45:22 +02:00
stefan schippers 58af2567e6 fix initialization of default value for "xschem get_logic_net" 2023-10-08 11:32:56 +02:00
stefan schippers 62bc3759f0 add (disabled, should be done with keyboard shortcuts) Edit menu entries: rotate, flip, rotate_in_place, flip_in_place 2023-10-06 13:17:06 +02:00
stefan schippers 4f0377f1e9 expandlabel(): if empty node name is given return empty string instead of NULL 2023-10-06 11:24:00 +02:00
stefan schippers 3e4f49dbea further fix expandlabel() potentially returning its string argument (instead of a copy) in case of weird and wrong node syntax 2023-10-06 11:11:17 +02:00
stefan schippers 42781f8456 fix a regression in expandlabel() returning it string argument without making a copy 2023-10-06 00:08:16 +02:00
stefan schippers c4e1fb6a31 fix a memory leak in translate() 2023-10-05 20:15:47 +02:00
stefan schippers 0204b7596b first selected instance is now always the master (instead of the first in the xschem array order) when doing an edit attribute on a group of selected elements 2023-10-04 17:15:52 +02:00
stefan schippers 9ecc5859b2 fix new_prop_string() when doing a name change on multiple selected instances 2023-10-04 00:44:43 +02:00
stefan schippers 5ffc7bb5e4 select_object() returns sel instead of sel.type (more info on return) 2023-10-04 00:09:12 +02:00
stefan schippers 822910fce7 strboolcmp(): remove debug message 2023-10-03 20:46:18 +02:00
stefan schippers d613bcc47a fix strboolcmp() (return false anyway if str="") 2023-10-03 20:44:44 +02:00
stefan schippers 02086d76a7 revert from tclgetboolvar to tclgetvar for edit_symbol_prop_new_sel, as this is not a boolean 2023-10-03 15:28:42 +02:00
stefan schippers 5c7abfa048 optimization for new_prop_string() done. doc updates for instance hide_texts=true attribute, align strboolcmp() to tcl allowed boolean values (1, true, on, yes) 2023-10-03 15:20:30 +02:00
stefan schippers d441ba6966 fix missing update of name_is_used() call 2023-10-03 13:24:54 +02:00
stefan schippers 24bc44ad0c doc updates (text attributes), prepare improvements for new_prop_string() 2023-10-03 13:21:04 +02:00
stefan schippers e49f9902a7 remove redundant actions in toggle_colorscheme 2023-10-03 10:45:11 +02:00
stefan schippers 3ed97b3df2 some code refactoring, more usage of tclgetboolvar() 2023-10-03 10:27:29 +02:00
stefan schippers b613d65fd9 read_dataset(): better set return codes on errors and cleanup allocated memory 2023-10-02 19:18:12 +02:00
stefan schippers 9fee9610ab vsource.sym and ammeter.sym: add "savecurrent=1|0|true|false" attribute do decide if a .save I(...) is to be printed in netlist. default is 1 for ammeter.sym and 0 for vsource.sym. Add "deltax deltay rot flip" optional parameters for xschem "copy_objects" command to make copy operation scriptable (lot more efficient than using clipboard) 2023-10-02 12:11:05 +02:00
stefan schippers 05c79febc2 better implementation of cursor reconfiguring if draw_crosshair enabled 2023-09-30 00:22:10 +02:00
stefan schippers c25a9f9d85 if crosshair is displayed and xschem blocked by a tk_messageBox restore pointer to default, so it will be visible. Do not parse labels if not vectored labels (shortcut) 2023-09-30 00:13:33 +02:00
stefan schippers 00ef95c90e fix regression: hilight nets not incrementing color (if nets are singlebits) 2023-09-29 10:39:25 +02:00
stefan schippers 405d950412 add xctx->mouse_inside var to better decide if crosshair has to be drawn 2023-09-29 10:09:13 +02:00
stefan schippers c569f93a65 added commands xschem get schprop|schvhdprop|schverilogprop|schtedaxprop|schsymbolprop, "xschem create_text" renamed to "xschem text" for syntax consistency 2023-09-29 09:46:31 +02:00
stefan schippers 64cb20dab9 add crosshair_layer tcl variable, so user can change crosshair layer.Crosshair is deleted on LeaveNotify events. 2023-09-29 00:30:43 +02:00
stefan schippers db1bf8818a cleanup in usage of new_prop_string() and hash_names() 2023-09-28 23:19:14 +02:00
stefan schippers 433ec84278 simpler state bits checking in callback() (use rstate to avoid redundant ShiftMask checks) . Enable loading SP Analysis raw files (they are equal as AC analyses) ) 2023-09-28 21:03:28 +02:00
stefan schippers 8fe4f2fd11 add src/place_pins.tcl, src/place_sym_pins.tcl 2023-09-28 16:09:06 +02:00
stefan schippers 3a020b4305 add installation of place_sym_pins.tcl, place_pins.tcl scripts in XSCHEM_SHAREDIR 2023-09-28 16:07:01 +02:00
stefan schippers 31492b3955 added xschem set [schsymbolprop|schprop|schverilogprop|schvhdlprop|schtedaxprop] <value> commands for setting global schematic/symbol attributes 2023-09-28 15:45:07 +02:00
stefan schippers cfe97c2ccf extend "xschem rect" and "xschem line" commands, add "xschem get rects n" and "xschem get lines n" 2023-09-28 15:24:23 +02:00
stefan schippers ff2f0477a6 remove dbg message 2023-09-28 13:34:47 +02:00
stefan schippers e13922e94f simplify place_symbol(), hash newly placed component name, so successive placements will not clash instance name. hash_all_names() renamed to hash_names() 2023-09-28 13:28:16 +02:00
stefan schippers 5df9347533 removed tcl variable connect_by_kissing (to many options is a mess) 2023-09-28 12:34:10 +02:00
stefan schippers 14a674b6f4 fix a random segfault due to out of bound array ref in find_pass_through_symbols() 2023-09-28 01:06:07 +02:00
stefan schippers 5080c2c33f fix unitialized vars (mostly false errors, but why not...) 2023-09-28 00:30:00 +02:00
stefan schippers 6c4c8b3a50 handle Windows key on windows (Mod4Mask) 2023-09-27 21:15:25 +02:00
stefan schippers ba00ba2921 add #ifdef __unix__ around filter of bits 13 and above on state var in callback() 2023-09-27 21:00:02 +02:00
Stefan Schippers e7c53b59b5 callback(): filter out any state value that uses bits above 12 2023-09-27 18:35:40 +02:00
stefan schippers 0f29b53d25 remove an extra change_linewidth() in svg_embedded_graph() (now already done in resetwin()) 2023-09-27 13:22:46 +02:00
stefan schippers 97e9b27bbd fix garbage on screen if drawing something, go to another tab, return and move objects. Regression was introduced on repo.hu r3033 2023-09-27 13:13:15 +02:00
stefan schippers f3230ceb42 FIX_BROKEN_TILED_FILL can now be changed runtime (fix_broken_tiled_fill) 2023-09-27 01:28:31 +02:00
stefan schippers 9316878559 fix a bug in hilight_net(): example: if a bus 3*A was highlighted hilight color was not incremented and highlighting another net gave the same color. added xctx->some_nets_added for that 2023-09-26 12:51:41 +02:00
stefan schippers 87da969b16 don`t break "** sch_path:" / "** sym_path:" lines in spice netlists 2023-09-26 09:20:04 +02:00
stefan schippers 576a7e329b improve stretch move operations when auto trim is enabled 2023-09-26 02:19:37 +02:00
stefan schippers 983f6d9d6b add tcl variable "unselect_partial_sel_wires" and related options menu entry to unselect partially selected wires attached to component pins after a stretch move command 2023-09-26 01:38:48 +02:00
stefan schippers a4b597cfc2 add Alt-c command for copy object and create nets to connected terminals 2023-09-25 23:23:08 +02:00
stefan schippers cfc87392d2 select_attached_nets() do not select wires attached to partially selected wires when doing a stretch move 2023-09-25 17:15:15 +02:00
stefan schippers 9af33003bc rearranged menu entries. "Persistet wire/line place command" goes to Options, "Show net names on symbol pins" goes to Symbol, "Show netlist after netlist command" goes to simulation 2023-09-25 16:26:57 +02:00
stefan schippers be8324293c move "Options->Set symbol width" to "Symbol" menu 2023-09-25 15:56:17 +02:00
stefan schippers db9c014566 move "auto join/trim wires" to Options menu, "m" and "ctrl-m" move commands are swapped if enable_stretch is enabled. new_prop_string() now check for true uniqueness (all inst names are expanded with expandlabel() and all bits are hashed). Fixed regression in check_unique_names() 2023-09-25 15:28:40 +02:00
stefan schippers 6c7d7080b9 some code refactoring (inst_table -> inst_name_table) 2023-09-25 09:05:10 +02:00
stefan schippers 03003ab7bf fix redraw of move operation abort when done with "connect by kissing" (adding new wires) 2023-09-25 00:03:02 +02:00
stefan schippers 37f2edcc7e if $USER_CONF_DIR (~/.xschem) is not existing create it and also place the template xschemrc into it 2023-09-24 21:27:27 +02:00
stefan schippers 2ec4b1c8b3 added a helper command "create_user_xschemrc" that copies system xschemrc to user xschem config dir (~/.xschem/xschemrc usually) if such file is not existing. After some thinking i came to the conclusion i wont do this automatically, as there might be use cases where a user does not want such a file. 2023-09-24 12:27:14 +02:00
stefan schippers ba5eb149a8 small xschemrc edits 2023-09-24 10:55:38 +02:00
stefan schippers 41d9759953 xschem select instance given from CLI will select instances regardless of their lock attribute 2023-09-24 04:01:56 +02:00
stefan schippers db1049d469 formatting, updated create_graph.tcl 2023-09-24 03:34:01 +02:00
stefan schippers 75526cacbe add "xschem create_text" command for placing text objects with CLI 2023-09-24 03:16:53 +02:00
stefan schippers abd5f75ef5 added enable_stretch tcl variable description in xschemrc 2023-09-24 01:26:45 +02:00
stefan schippers 152623f4aa control-mouse drag select will negate the setting of enable_stretch tcl variable so drag and control-drag can be swapped vith Options->enable stretch 2023-09-24 00:29:15 +02:00
stefan schippers 4663a86da4 fix various regressions for handling instances with lock=true attribute 2023-09-24 00:17:48 +02:00
stefan schippers 112a12a87b add tcl variable no_ask_save: if set to 1 xschem will not ask to save modified schematics 2023-09-23 11:47:11 +02:00
stefan schippers 6a0fcdae05 various optimizations (do not execute graphic ops with gctiled if FIX_BROKEN_TILED_FILL is defined, optimize XCopy Area blits 2023-09-23 01:46:39 +02:00
stefan schippers aa75723446 fix MotionNotify events when crosshair is enabled and there is a selection and FIX_BROKEN_TILED_FILL not defined 2023-09-22 19:29:14 +02:00
stefan schippers 75e2efd5a7 filter unused bbox_set variable in draw_crosshair() 2023-09-22 19:15:26 +02:00
stefan schippers 274b4da441 xschem(): print an error if trying to execute commands that require schematic data structs (xctx) and xctx is not yet allocated 2023-09-22 19:13:13 +02:00
stefan schippers 426be0e68c add !defined(__unix__) in all #if defined(FIX_BROKEN_TILED_FILL) 2023-09-22 18:33:16 +02:00
stefan schippers 288c053ec6 various FIX_BROKEN_TILED_FILL fixes 2023-09-22 18:26:18 +02:00
stefan schippers 42c76c9693 doc updates (cut wires) 2023-09-22 16:13:25 +02:00
stefan schippers 3ba3bbc21a remove dbg message 2023-09-22 15:58:21 +02:00
stefan schippers 1da34af531 allow to use the Windows keys (if present) as alternatives for "Alt" 2023-09-22 15:53:23 +02:00
stefan schippers fbffeec673 some minor fixes in src/xschemrc (order of libs, avoid referencing specific install paths) 2023-09-22 13:43:43 +02:00
stefan schippers a2d3f68977 fix missing #if defined((FIX_BROKEN_TILED_FILL) in draw_crosshair() 2023-09-22 13:23:21 +02:00
stefan schippers 93291ed84b add draw_crosshair() (if enabled) at end of any draw() operation 2023-09-22 13:13:35 +02:00
stefan schippers eb91c8bbea draw crosshair at end of copy/move ops if enabled 2023-09-22 13:02:51 +02:00
stefan schippers 8f0d920a96 add draw_crosshair setting in xschemrc: draw a crosshair at mouse coordinates 2023-09-22 12:48:22 +02:00
stefan schippers a1fbbcfd80 add another command to cut wires without aligning cut point to snap (Alt-Shift-Right mouse button) 2023-09-22 10:40:57 +02:00
stefan schippers 951a18cb24 draw_selection(): erase rubbers correctly during copy/move ops if FIX_BROKEN_TILED_FILL enabled 2023-09-22 09:40:59 +02:00
stefan schippers 9e1feacab4 closest_point_calculation(): improve "closest point is on segment" detection 2023-09-22 09:33:41 +02:00
stefan schippers a53ea21026 remove debug messages in closest_point_calculation() 2023-09-22 03:46:42 +02:00
stefan schippers 5181ca77e6 break_wires_at_point(): oblique lines can be cut at any point, the break point will be aligned to the snap value and broken wires are slightly changed to land on this new point. 2023-09-22 03:45:09 +02:00
stefan schippers 4ea2ccac4c if FIX_BROKEN_TILED_FILL is defined disable all graphic operations with gctiled GC (set function to GXnoop) - Also clear selection rectangle with MyXCopyArea in select_rect() 2023-09-22 01:12:26 +02:00
stefan schippers fbe3064cf2 remove gctiled in MyXCopyArea() calls (use gc[0], background, any GC is ok as long as it does not have some strange logic operator) 2023-09-21 23:51:17 +02:00
stefan schippers 95e1c833c8 better pan operation if FIX_BROKEN_TILED_FILL is set 2023-09-21 23:01:09 +02:00
stefan schippers 301f9c4bdf add experimental compile flag in xschem.h, FIX_BROKEN_TILED_FILL, if defined work around some graphic adapters/driver implemtations that dont honor the X11 specifications for drawing with a pixmap tile fill pattern 2023-09-21 21:52:24 +02:00
stefan schippers 1479ca2ea6 fix regression in "xschem load <file> nofullzoom" (zoom was reset) 2023-09-21 10:11:39 +02:00
stefan schippers 129dd68b20 translate(): check for NULL xctx and xctx->inst 2023-09-21 09:56:29 +02:00
stefan schippers ee26a247c5 fix a crash if translate() invoked for an instance with instname=NULL (due to incomplete symbol definition) 2023-09-20 15:13:44 +02:00
stefan schippers 0119f013e3 correct implementation of previous commit 2023-09-20 11:04:30 +02:00
stefan schippers 1fdf117a84 fix a bug regression in save_schematic when saving an existing schematic to a different filename. Xschem incorretly popped up the alert "Has been changed since opening. Save it anyway?" 2023-09-20 10:19:49 +02:00
stefan schippers 8d6a71b8bd place_symbol(): make it smarter when dealing with generators. add parenthesis () after file name and better handle tcleval(...) given in file selector 2023-09-19 10:04:27 +02:00
stefan schippers 0680fd97fd place_symbol(): better handle generator symbol insertions like res.tcl(@value\): @value can be resolved only after generator has emitted the symbol, but symbol generated depends on generator actual parameter. So generators must handle unresolved @params. 2023-09-19 01:42:51 +02:00
stefan schippers 75e99cae91 update tier.tcl generator to handle unresolvable parameters 2023-09-19 01:29:52 +02:00
stefan schippers fd2be4a599 update res.tcl generator to handle unresolvable parameters 2023-09-19 00:08:42 +02:00
stefan schippers 7ffe70cb25 add other schematic manipulation script examples in developer_info.html 2023-09-18 17:16:03 +02:00
stefan schippers 98ffd177ce improve connect by kissing: now 3 move operations are present: 1) just move selection, 2) move adding wires to connected pins/wire endpoints, 3) move by stretching wires attached to pins/endpoints to follow moving objects 2023-09-18 13:29:49 +02:00
stefan schippers 690486c848 editprop.c->update_symbol(): recalculate bbox for dynamic symbols (floaters and generators) when attributes are changed. xschem.tcl: cleanly report errors in file mkdir instructions in case of permission issues 2023-09-18 09:39:52 +02:00
stefan schippers 306271e247 parselabel.l: Add ")" to list of forbidden characters in bus trailer: A[3:0])_xx 2023-09-17 22:54:17 +02:00
stefan schippers e5286a7f12 bus labels with trailing chars (A[15:0]_xx): fix rule conflicts in grammar parser. Add a trailer token in lexer 2023-09-17 21:17:35 +02:00
stefan schippers 898cfcc2e1 command "xschem change_elem_order" invalidate inst/wire hashes and connectivity to force consistency 2023-09-17 09:45:28 +02:00
stefan schippers 159f07e703 add "xschem rotate_in_place" command 2023-09-17 09:05:21 +02:00
stefan schippers 978d575e22 add tcl command "xschem change_elem_order n" add optional x0 and y0 coordinates as additional parameters to "xschem flip" and "xschem rotate" commands, add command "move_instance inst x y rot flip" 2023-09-17 00:13:52 +02:00
Stefan Schippers f99eb07e23 update keybinding list (missing "s" - simulation) and some minor corrections in commands.html 2023-09-16 17:18:10 +02:00
Stefan Schippers a32f3f0706 do not push undo state if clicking and switching graphs with graphdialog open, if no changes are made 2023-09-16 16:34:59 +02:00
stefan schippers 451cc4049e add script examples in developer_info manpage 2023-09-16 09:58:59 +02:00
stefan schippers 216d2a1297 proc execute_fileevent: change exec ps syntax to work both on Linux and MacOS 2023-09-16 01:04:29 +02:00
stefan schippers 3f299589d1 remove a forgotten debug print line 2023-09-15 18:17:24 +02:00
stefan schippers cb1b8a09a6 remove mysterious -width 1 -height 1 options when creating .graphdialog toplevel window. It seems a long standing bug, and not surprisingly it shows problems on MacOS/XQuartz 2023-09-15 18:08:26 +02:00
stefan schippers ac07510513 xschem select: extend command to allow selecting rectangles, lines, polygons, arcs. returns 1 if something selected, 0 otherwise 2023-09-15 17:53:38 +02:00
stefan schippers 7d2f737c3b attach_labels_to_inst(): do not cause an error (bbox(SET) call before bbox(START)) if invoked on selected instances who have all pins already wired up 2023-09-15 15:16:36 +02:00
stefan schippers a28f9506f8 Some code cleanups in select.c, select_connected_nets() did not select labels directly attached (not by wires) to selected instances 2023-09-15 13:29:12 +02:00
stefan schippers 82f8afbb19 optimize select_dangling_nets() a bit 2023-09-15 11:01:33 +02:00
stefan schippers 4095651863 bump to version 3.4.4, updated Changelog 2023-09-14 10:03:14 +02:00
stefan schippers e0bcc302c9 "xschem connected_nets" command now works for any selected instance, not only labels/probes/pins. Argument can be 0, 1, 2 (2-->select only wire segments drectly attached to selected net/instance) 2023-09-14 09:48:12 +02:00
stefan schippers 34946c2f0a add commands "xschem get wires", "xschem getprop wire n attr", "xschem touch x1 y1 x2 y2 x0 y0", "xschem wire_coord n" 2023-09-14 08:31:01 +02:00
stefan schippers e6211ac93b command "xschem select_dangling_nets": skip ignored instances (lvs_ignore or spice_ignore), return # of selected dangling elements instead of just 1 2023-09-14 01:34:56 +02:00
stefan schippers 210f56cccb remove debug messages in "xschem select_dangling_nets" 2023-09-14 01:04:46 +02:00
stefan schippers 75e5d3d5b0 add command "xschem select_dangling_nets" that selects all labels/wires that are not connected to any non-label/non-probe components 2023-09-14 00:57:13 +02:00
stefan schippers afd25cf430 clear_schematic(): clear xctx->sch[..] name before assigning untitled.sch / untitled.sym path name 2023-09-12 23:16:32 +02:00
stefan schippers 55fcf5d28e avoid doing a move_objects(RUBBER,...) if doing an "xschem paste xoffs yoffs" from script, to avoid graphical artifacts 2023-09-12 09:21:54 +02:00
stefan schippers c5420f4f07 fix a crashing bug if descending a schematic those symbol has a @#resolved_net:... attribute, raw file is loaded and show net_names is enabled. 2023-09-11 09:24:03 +02:00
stefan schippers 4bd758bee7 xschem tcp connections: print in/out data on console only if in tcl debug mode 2023-09-10 08:00:26 +02:00
stefan schippers 045edb5e10 xschem tcp connections: print open/close messages only if in tcl debug mode 2023-09-10 07:54:40 +02:00
stefan schippers 02dddc90ef Improve send nets to graph. do not refuse to send top level port signals, allow to send bussed signals even if graphdialog widget is not shown (proc graph_add_nodes_from_list) 2023-09-09 10:26:58 +02:00
stefan schippers ff1216e142 hilight_parent_pins(): remove dbg info 2023-09-08 01:22:39 +02:00
stefan schippers c75ddaf6ab hilight_parent_pins(): if two or more child pins are attached to the same parent net hilighting one of these child pins will not propagate to parent if the unhilight child pin comes after the hilight pin. This is now fixed. Going up in hierarchy will never clear parent hilights. It is recommended to clear all probes before tracking child pin propagation with hilights upstream. 2023-09-08 01:16:52 +02:00
stefan schippers a678c81b4c update documentation for change in return code of "xschem switch" command 2023-09-07 20:25:08 +02:00
stefan schippers b8d78e5b01 xschem switch command: return success also if command given (with right filename/winpath) when no additional windows/tabs are present 2023-09-07 08:49:39 +02:00
stefan schippers baea7ab745 xschem switch command return exit status depending if switch context was successfull or not 2023-09-06 08:30:40 +02:00
stefan schippers c23f38e10b export ps/pdf, png, svg functions now use custom file chooser widget (as Save As does) to enable creation of new folders 2023-08-30 00:42:09 +02:00
stefan schippers 8dfaedf9ea report in-hierarchy overlapped symbols when netlisting 2023-08-29 11:32:48 +02:00
stefan schippers c94d6b66cb yet some other fixes for displaying / updating ERC info data after a netlist 2023-08-28 23:21:42 +02:00
stefan schippers 590b6fb3cd better ERC messaging in case of errors (shorts, pins with missing attrs), ...) 2023-08-28 18:40:11 +02:00
stefan schippers cd3f188a30 fix wrong netlist filename if invoking netlist from GUI 2023-08-28 11:39:00 +02:00
stefan schippers 0805802bb8 fix performance issues (too many proc infowindow calls) on large schematics introduced by previous two commits 2023-08-28 10:39:11 +02:00
stefan schippers 9e4d3c111a various fixes and cleanups - followup of previous commit 2023-08-28 03:00:48 +02:00
stefan schippers 1c3c9ff889 do not show ERC info window if netlisting invoked via CLI; global variable show_infowindow_after_netlist can now take 3 values: always, onerror, never, to decide when showing the ERC info window after netlisting. Old values (1, 0) still accepted as aliases for always and onerror 2023-08-27 23:55:48 +02:00
stefan schippers 519fb2fbf2 add optional "-messages" in "xschem netlist" comand to return ERC messages instead of fail(1)/good(0) code 2023-08-27 13:04:12 +02:00
stefan schippers b521994a08 prefix ERC infowindow messages with Error: or Warning: or Info: 2023-08-26 14:28:35 +02:00
stefan schippers 6909971a61 bump to version 3.4.3, updated Changelog 2023-08-19 14:06:54 +02:00
stefan schippers 3f55893987 revert format of [xschem pinlist <instance> <attr>] to old (3.1.0) format: { {0} {PLUS} } { {1} {OUT} } { {2} {MINUS} } instead of {PLUS} {OUT} {MINUS} 2023-08-19 13:54:43 +02:00
stefan schippers e3b9e67cb8 add postinit_commands description in distribution provided xschemrc 2023-08-16 13:26:04 +02:00
stefan schippers c05c177885 add "postinit_commands" variable that can be set in xschemrc file, this variable may contain commands that will be executed after completing startup. Example: set postinit_commands {xschem set format xyce_format} 2023-08-16 08:45:41 +02:00
stefan schippers dd71d533ce make_symbol: ask before overwriting an existing symbol file. 2023-08-14 12:18:54 +02:00
stefan schippers 36f1285303 Correctly detect if DISPLAY env var is set but specified display is not existing or xserver not running, and start in text mode 2023-08-10 08:37:55 +02:00
stefan schippers 163eaea672 remove reference to cadsnap_default in menu widget "View->Set snap value" 2023-08-08 11:19:48 +02:00
stefan schippers ac042ed21f remove warning message if bespice_listen_port is not set (not necessary, scares new users) 2023-08-04 15:23:46 +02:00
stefan schippers c54e43d24f allow expandion of labels like aaa[3:2]_qq --> aaa[3]_qq,aaa[2]_qq and aaa[3..2]_qq --> aaa3_qq,aaa2_qq 2023-08-04 15:02:55 +02:00
stefan schippers f95580906a bump to version 3.4.2, updated Changelog 2023-07-26 09:32:25 +02:00
stefan schippers f847b61333 Gerard upates for Xschem <--> BeSpice TCP communication 2023-07-25 23:33:46 +02:00
stefan schippers 39b3195794 proc tk_textPaste: add author info 2023-07-20 09:24:55 +02:00
stefan schippers efecd33d51 added tcl variable text_replace_selection (default: enabled (1) ) to automatically replace selected text in text widgets when pasting from clipboard 2023-07-20 09:06:58 +02:00
stefan schippers 2d11c5086c case insensitive compare in boolean attributes (attr=false, attr=True, attr=FALSE, attr=1) 2023-07-14 08:17:04 +02:00
stefan schippers bf46fd3e7b allow "1" / "0" in addition to "true" / "false" in all boolean attributes 2023-07-14 00:49:51 +02:00
stefan schippers 231f3a38d4 make the "X" window button close the search dialog box, as Cancel (and Escape key) does 2023-07-14 00:06:39 +02:00
stefan schippers ff66a48df0 doc updates about print command 2023-07-13 14:26:42 +02:00
stefan schippers cf675be805 add "xschem print pdf_full" and "xschem print ps_full" commands to print full view properly fitting paper size, regardless of xschem window size, some fixes in circle postscript drawing (set newpath) and rectangle clipping. Add menu command "PDF/PS export full" 2023-07-13 13:24:17 +02:00
stefan schippers 3c73bb918b add case insensitive matching in xschem search function 2023-07-12 13:58:54 +02:00
stefan schippers 83b1993c32 add xschemrc variable "ps_paper_size" to specify custom paper sizes in ps/pdf exports 2023-07-12 08:10:00 +02:00
stefan schippers b646a0f79f explicitly clear instance flag bits when allocating new instance array data to avoid random data in bit 8 (IGNORE_INST). This does not cause any problem but random data in log files, causing false positives in automated regression tests 2023-07-07 23:54:46 +02:00
stefan schippers 83071b4b21 fix crash on windows if a new tab is opened and immediately closed (incorrect call of draw() after clearing pixmap) 2023-07-07 08:30:13 +02:00
stefan schippers d06b1c83ae fix regression(repo.hu: r2353, github: 0bb4c9f) : "xschem instance" command not setting modified flag on schematic, so following xschem save doing nothing. 2023-07-06 23:56:33 +02:00
stefan schippers 587a847722 add xschem command `xschem instance_coord [instance]`: returns placement coords, rotation, flip of selected or specified instance 2023-07-06 09:12:31 +02:00
stefan schippers 2b38ed5f07 initialize tcl_files to empty in xschemrc to avoid side effects if reloading another xschemrc 2023-07-03 23:12:22 +02:00
stefan schippers 970c2fce65 fix utile/ stuff uninstall in Makefile 2023-07-03 12:32:57 +02:00
stefan schippers cdecc6ad04 xschem netlist command accepts an optional filename argument 2023-07-03 09:06:46 +02:00
Stefan Schippers 9f23965096 do not use tclreadline if $tcl_interactive is 0 2023-07-02 19:47:04 +02:00
Stefan Schippers 33eb3fecce quit and detach globals refactored to cli_opt_quit and cli_opt_detach 2023-07-01 21:07:52 +02:00
stefan schippers a20fce8cdf fix tedax netlisting (do not netlist noconn devices), recognize @#pin_name:net_name and @#pin_name:pin_attr attributes in tedax format string 2023-07-01 09:22:24 +02:00
Stefan Schippers af153593e9 removed some redundant code lines in netlist.c, updated xschemtest.tcl netlist hashes with new noconn.sym 2023-06-30 20:54:07 +02:00
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 6755975369 do not create nets for devices that have *_ignore=true attribute set, this generates false warnings about undriven nets. 2023-06-30 08:29:11 +02:00
stefan schippers f2812e1444 bump to version 3.4.1, updated Changelog 2023-06-29 21:40:49 +02:00
stefan schippers 476499b250 better recognize implicit datasets (sweep var wrap to initial value in raw file) 2023-06-28 08:20:09 +02:00
stefan schippers 8399106ed4 avoid using "string is list" if tclversion <= 8.4 2023-06-28 00:32:56 +02:00
stefan schippers 39751be9e1 add mouse_bindings.tcl, courtesy Paul Bodenstab 2023-06-27 08:45:12 +02:00
stefan schippers eaa56bdc45 make the "xschem_quit" command work (close current window / tab) also if xschem started in -x (no graphics) mode 2023-06-26 07:57:00 +02:00
stefan schippers 4ec80d850b changed tcl procedure `setup_tcp_xschem` to allow setting a different port number for further tcp commuication (and freeing the original port number) 2023-06-26 00:08:13 +02:00
stefan schippers 5d9e0d3d8a enable xschem to load multiple files even if started with "-x" (only CLI mode) 2023-06-25 23:33:26 +02:00
stefan schippers 6198d21404 add "show_infowindow_after_netlist" tcl variable (default = 0) that can be set in xschemrc to always show erc window after netlist even without or no critical errors 2023-06-25 09:05:37 +02:00
stefan schippers f95a1b7244 further fix initial full zoom of schematics loaded into multiple tabs with File->Open 2023-06-24 08:25:14 +02:00
stefan schippers 31451e6be9 do not do a context switch on first invocation of callback() (set old_winpath = ".drw"). 2023-06-24 07:38:55 +02:00
stefan schippers 40d8b960f3 fix initial full zoom of schematics loaded with xschem load file from the xschem tcl prompt 2023-06-23 23:36:11 +02:00
Stefan Schippers 0f3a0c62a8 resetwin() do nor process pending_fullzoom if window size has not set by window manager (width ==1 || height ==1) 2023-06-23 20:03:48 +02:00
stefan schippers cf5c02c141 if a file is given on cmdline without any path qualifier (/.../, ./, ~/, ...) look into search paths. Fix wrong initialization of xctx->lw=-1.0 in alloc_xschem_data(), set to 0.0 2023-06-23 15:49:23 +02:00
stefan schippers d5c0fbcf15 remove debug messages 2023-06-23 11:18:02 +02:00
stefan schippers cd15362376 improve prevous commit: do not execute "pending_fullzoom" drawing if main window unmapped (do not decrement the pending_fullzoom flag and delay until window is visible) 2023-06-23 11:15:54 +02:00
stefan schippers 9ea7121846 set pending_fullzoom=1 on additionally created tabs so will display correctly if xschem started deiconified (wm withdraw .) 2023-06-23 10:59:06 +02:00
stefan schippers 70995165b0 fix regression (--command option) 2023-06-23 09:53:05 +02:00