Commit Graph

668 Commits

Author SHA1 Message Date
stefan schippers c424a25d66 add xctx->last_command in xshem globals debug command 2023-12-02 00:58:57 +01:00
stefan schippers 26fbb82f6b fix unwanted head_undo_ptr change when doing a netlist. Add current backannotation info in capa.sym, ind.sym, isource.sym, isource_table.sym 2023-11-27 00:01:45 +01:00
stefan schippers c4e9310d45 allow to load raw files even if netlist type set to `symbol`. Better to_eng function, `xschem raw_query value node {}` returns value at cursor b position 2023-11-26 12:54:37 +01:00
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 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 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 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 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 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 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 1991b409e0 fix small memory leak 2023-11-10 15:43:36 +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 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 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 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 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 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 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 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 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 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 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 8f2af6803a remove some dead code, fix redrawing in `xschem move_instance` command 2023-10-30 00:57:28 +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 a76dca4f29 add menu entry in Options for fix_mouse_coord 2023-10-28 11:51:21 +02:00
Stefan Schippers 34113c1c5f added tab ctx menu `Save` 2023-10-25 20:30:20 +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 d5d090afc0 better line-rectangle touch check for backward rectangle selection (intersection select) 2023-10-21 23:48:56 +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 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 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 53286346e1 doc updates, tcl rawfile variable in place for future per-graph raw file 2023-10-14 23:41:19 +02:00
stefan schippers 537cedbafe better graphdialog layout, remove tcl redundant raw_level var 2023-10-14 22:43:58 +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 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 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 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 58af2567e6 fix initialization of default value for "xschem get_logic_net" 2023-10-08 11:32:56 +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 3ed97b3df2 some code refactoring, more usage of tclgetboolvar() 2023-10-03 10:27:29 +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 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 db1bf8818a cleanup in usage of new_prop_string() and hash_names() 2023-09-28 23:19:14 +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 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 5080c2c33f fix unitialized vars (mostly false errors, but why not...) 2023-09-28 00:30:00 +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 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 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 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 288c053ec6 various FIX_BROKEN_TILED_FILL fixes 2023-09-22 18:26:18 +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 1479ca2ea6 fix regression in "xschem load <file> nofullzoom" (zoom was reset) 2023-09-21 10:11:39 +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 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 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 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 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 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 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 a678c81b4c update documentation for change in return code of "xschem switch" command 2023-09-07 20:25:08 +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 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 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 bf46fd3e7b allow "1" / "0" in addition to "true" / "false" in all boolean attributes 2023-07-14 00:49:51 +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 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 cdecc6ad04 xschem netlist command accepts an optional filename argument 2023-07-03 09:06:46 +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 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 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 c6df85cce5 apply center full zoom in all zoom full commands if tcl variable zoom_full_center is set 2023-06-23 09:04:55 +02:00
stefan schippers c97dfddd4e fix memory leak due to improper use of get_pin_and_attr() 2023-06-17 10:14:55 +02:00
stefan schippers a6462269dc refactor token.c: added get_pin_number(), get_pin_and_attr() 2023-06-16 23:08:00 +02:00
stefan schippers c3d03cd6d2 show red dot when cuting a wire with new alt-right button click on a wire. Added also menu command in Tools 2023-06-14 10:08:50 +02:00
stefan schippers 89d847fb62 fix a bug in `xschem annotate_op` function not showing data if `Live annotation...` option was not set beforehand. 2023-06-12 09:13:20 +02:00
stefan schippers 2b0655e3e9 improve `Shift-M` command by stretching nets that land on instance pins while moving instances 2023-06-10 23:41:02 +02:00
Stefan Schippers d5cc702fe8 Add command "Tools -> Remove wires running throuh selected inst. pins" 2023-06-10 17:24:12 +02:00
stefan schippers 3eeaf53cd4 improve quit_xschem command and xschem new_schematic destroy_all 2023-06-09 08:12:39 +02:00
stefan schippers a6e5b150a5 added command `xschem getprop instance_notcl` to avoid tcl subst of the resulting attribute; improved fix_symbols to fix also parametrized generators (pcells) 2023-06-08 23:02:40 +02:00
stefan schippers f5db2b63f8 use get_window_count() instead of new_schematic("ntabs"...) 2023-06-08 11:23:25 +02:00
stefan schippers de1f4f0d86 added commands `xschem switch [win_path|schname]`, `xschem destroy_all [force]`, added `[force]` option to xschem exit 2023-06-08 10:40:52 +02:00
stefan schippers a27a187bb4 small update to `xschem exit` function documentation 2023-06-08 06:38:36 +02:00
stefan schippers edaf4ccce9 Add low level function xschem reset_symbol, changed defaults in xschem: now toolbar and tabbed interface (more robust than multi-window) is enabled by default, doc updates, improved fix_symbols for setting/removing path compoents from symbol references, now uses low-level xschem reset_symbol (faster) 2023-06-08 00:03:25 +02:00
Stefan Schippers bbb239dc21 faster `xschem replace_symbol` command 2023-06-07 20:31:25 +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 d4641f2b1a doc updates (developer_info.html) 2023-06-04 23:05:13 +02:00
stefan schippers 55d011ba7b added necessary comments in swap_windows() / swap_tabs() functions 2023-06-04 22:54:39 +02:00
stefan schippers 2312bfc34e non-empty string given as win_path in `xschem new_schematic create` will avoid warnings if opening multiple windows/tabs of the same file. do not issue warnings if calling xschem with multiple identical schematic files from the command line. `xschem new_schematic` command: use abs_sym_pth on given filename to get correct path. 2023-06-04 21:48:43 +02:00
stefan schippers 331934afc6 added abs_sym_path() in file name resoluton in `xschem load_new_window` command 2023-06-04 20:44:36 +02:00
Stefan Schippers ed78a0fe72 remove test mode 2023-06-04 17:35:43 +02:00
stefan schippers 5b5fa27408 remove unused var 2023-06-04 15:39:02 +02:00
stefan schippers 7aa6ecfbd6 make `xschem exit` (ctrl-w, close window) work in multi-window mode exactly as in tabbed interface, allowing to close the root window (will be swapped with subwindow and deleted) 2023-06-04 15:37:35 +02:00
stefan schippers ec5577c07f removed File menu commands `Empty schematic in new window` and `Empty symbol in new window` since these just create another xschem process. Added `File->Start new xschem process`. `xschem new_window` and `xschem new_symbol_window` commands removed, added `xschem new_process 2023-06-04 00:46:01 +02:00
stefan schippers e68ca0a0cc Place polygon bind key is now `p`, ctrl-w is now `Close current schematic`, while ctrl-q is `Quit xschem`. Reorganized File menu, added more orthogonal `Create new schematic/tab` removed some largely unused entries. Ctrl-w does not close the last window, just leaves it blank. Use ctrl-q to close xschem 2023-06-03 23:57:35 +02:00
stefan schippers 57ea120a33 removed some direct exit() calls in editprop.c 2023-06-03 12:19:34 +02:00
stefan schippers 6e2754020b added function swap_tabs() (wip) 2023-06-03 09:37:43 +02:00
stefan schippers 0244dc5e69 add command xschem tab_list, returns window pathname and associated filename loaded 2023-06-03 00:21:55 +02:00
Stefan Schippers f5c592c889 xschem resolved_net command: add [net] parameter; instcheck(): use inst[].lab instead of get_tok_value(inst[].prop_ptr, "lab",0) 2023-06-01 18:00:47 +02:00
stefan schippers bb9ad82d80 fix memory leak when using new resolved_net() fn 2023-05-27 14:13:50 +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 09a373954f initial implementation of portmap feature: from sub-schematics resolve hierarchic name of schematic nets connected to I/O pins (go to the upper level recursively until resolved) 2023-05-26 11:56:52 +02:00
stefan schippers 694bc631a0 redraw schematic when switching netlisting mode (Shift-V) to redraw disabled/enabled components for the new netlisting mode; The Properties->Toggle *_ignore... menu will do nothing if in symbol netlisting mode 2023-05-24 09:08:57 +02:00
stefan schippers 32460f33c9 improved "xschem display_hilights [nets|instances]" that displays highlight nets or instaces or both,with full hierarchy path, not including uninteresting net/pin/net_show elements. 2023-05-23 09:10:01 +02:00
stefan schippers 6de12e5a0f (2) update examples/test_bus_tap.sch 2023-05-22 08:09:42 +02:00
stefan schippers 8f63560737 examples/test_bus_tap.sch: auto set show_pin_net_names=1 2023-05-22 08:05:37 +02:00
stefan schippers 5c22d26072 update copyright info to 2023 2023-05-21 12:52:19 +02:00
stefan schippers c2e5c61b35 graphs: add xmag and ymag entry boxes for custom magnification factor for x/y axis labels, fix current_dirname handling when netlisting hierarchical http(s) designs. The goal is to allow netlisting remote designs seamlessly 2023-05-20 23:21:43 +02:00
stefan schippers 827d4c5aac added "xschem reset_flags" command to update and sync cached attributes of symbols and instances 2023-05-19 10:08:43 +02:00
stefan schippers 96eea54894 some code refactoring, duplicate code replaced with set_inst_flags(), set_sym_flags(), various fixes/optimizations about floaters 2023-05-14 12:58:25 +02:00
stefan schippers ee1979b8b2 low level functions for floaters and floater text caches is implemented 2023-05-13 13:13:35 +02:00
stefan schippers 9ea9d529f7 fix toggle_ignore function. If multiple elements selected with different *_ignore attributes flip each one of them accordingly. Baseline code added for text floaters 2023-05-12 14:54:22 +02:00
stefan schippers 9ea93e9938 hide_texts=true attribute added on instance will avoid the display of all symbol texts (will be probably used when using floater symbol texts) 2023-05-12 12:09:20 +02:00
stefan schippers 16b7bd068c disabled elements are displayed in grey and dashed. Properties->toggle *_ignore function can be undone 2023-05-12 10:31:09 +02:00
stefan schippers 5e281e7f10 *_ignore attributes for instances and symbols cached in .flags struct member for speed optimization. added some generator netlist testcases in xschemtest.tcl 2023-05-10 23:29:16 +02:00
stefan schippers 7ad930e7f0 istances with *_ignore=true attribute will be drawn greyed out in schematics in the corresponding netlisting mode; command in Properties menu to toggle this attribute on selected instances 2023-05-10 03:13:13 +02:00
stefan schippers f282a96cec better output formatting in "xschem instance_list" command, fix test_mosgen.sch absolute paths in symbols 2023-05-04 01:59:17 +02:00
stefan schippers 4b9f61612b symbol generators may now take attributes like: "mosgen( @model )", with @model expanded to instance (or symbol template) value. update_symbol() updated to reflect this change. 2023-05-02 17:49:44 +02:00
stefan schippers ae8931c788 remove bbox() START/ADD/SET/END from some drawing operations. No observable performance impact and redraw is now more pixel precise, reducing artifacts. 2023-05-01 22:28:56 +02:00
stefan schippers 4c3b4d0321 various tcl_hook2() additions on instance names to handle procedures, fix bbox calculation in xschem replace_symbol command 2023-05-01 14:37:10 +02:00
stefan schippers d9d66c1c90 removed redundant skip_dir(...) (use get_cell(..., 0) ), fix a couple of glitches in postscript export (filled polygons with self-coincident edgs, fix filled arc pies (missing point) 2023-04-26 23:00:20 +02:00
stefan schippers cd6ef78841 schematic generator netlisting seems to work. renamed is_symgen() -> is_generator() 2023-04-24 13:26:04 +02:00
stefan schippers 3facbf6428 spice netlisting of schematics with parametrized symbol generators should work 2023-04-23 00:37:31 +02:00
stefan schippers f1ed2bf26f fixed is_symgen() regex, added stup for tutorial_symbol_generators.html 2023-04-22 11:29:44 +02:00
stefan schippers f5ce5987c9 fixed memory leak in copy_symbol(), split copy_symbol() to copy_symbol1() in action.c 2023-04-21 23:29:26 +02:00
stefan schippers 9eb4e9440c handle symbol_ref(param1,param2,...) symbol generator scripts, added some utility functions str_chars_replace(), is_symgen(), fix some quoting/backslash subst issues in get_sym_template() 2023-04-21 11:41:20 +02:00
stefan schippers 631fedb11b enabled escape_chars convenience function, added "embedded" parameter to load_sym_def() to better distinguish loading an embedded symbol from loading a regular symbol with a provided file descriptor 2023-04-20 10:44:31 +02:00
stefan schippers a5492be752 print_spice_subckt_nodes(): use (improved to handle escape chars) str_replace() to substitute @symname, added xschem str_replace, improved xschem symbols 2023-04-18 00:20:40 +02:00
stefan schippers a5a8193231 scheduler(): add get_symbol(s), similar as get_instance(s) 2023-04-17 15:55:00 +02:00
stefan schippers ca0708a4c3 added "xschem setprop symbol" command, updated docs 2023-04-17 11:45:59 +02:00
Stefan Schippers ebfcde42de change preprocessor defined(HAS_CAIRO) to HAS_CAIRO==1 2023-04-09 15:36:06 +02:00
stefan schippers 192e873f0c fix lazy list building in "xschem ..." commands (put separator after last item), as some parsers choke on this. 2023-04-08 22:27:59 +02:00
stefan schippers 5e3445a80e implement xschem sch_pinlist command, improve xschem pinlist inst [attr], improve make_sym.awk (no trailing spaces in pin attributes) 2023-04-08 13:19:49 +02:00
stefan schippers 07bdb94601 add xschem instance_list command, updated docs 2023-04-06 20:10:57 +02:00
stefan schippers 0bb50ce7ff xschem selected_set command: return instance names properly quoted 2023-04-06 10:55:01 +02:00
stefan schippers 63d4c55a09 fix missing error setting on sym_vs_sch_pins() in tedax_netlist. 2023-03-28 22:32:28 +02:00
stefan schippers eeb71c33bf forgot to update xschem load command description 2023-03-26 11:35:06 +02:00
stefan schippers 3fd24c69c4 improve xschem load command (no warning if opening an already open file, if doing that from script) 2023-03-26 11:33:05 +02:00
stefan schippers e4e2ba37cc xschem load from script: no alert box warning if new file given 2023-03-25 09:41:53 +01:00
stefan schippers 96aa251ca0 fix execute tcl procedure (correctly handle exit status of subprocesses that write to stderr but not as a failure) 2023-03-25 02:00:50 +01:00
stefan schippers fa33aca682 do tilde substitution (with home directory) in xschem tcl commands 2023-03-24 15:37:26 +01:00
stefan schippers 6bcb74bdb0 add tcl procedures documentation in developer_info.html 2023-03-24 13:14:27 +01:00
stefan schippers 2725e0c533 add exit code to xschem netlist command, add execute(error,last) and execute(exitcode,last) to inspect stderr and exit code of last simulation job 2023-03-23 18:34:14 +01:00
stefan schippers 757fd0a378 better range checking for commands "xschem get schname" and "xschem get sch_path" 2023-03-22 11:22:41 +01:00
stefan schippers a0fb4c5ee6 improve xschem check_symbols command 2023-03-19 12:54:46 +01:00
stefan schippers 601a128e37 doc updates (xschem command reference) 2023-03-18 23:38:47 +01:00
stefan schippers b6a8add190 Warn if no application is defined to open html command reference 2023-03-15 09:01:10 +01:00
stefan schippers b5852ffc70 print current_dirname in xschem globals command for debug 2023-03-11 11:29:35 +01:00
stefan schippers a75afa56d5 xschem setprop instance: fix flags setting if hide or highlight attributes are given/changed 2023-03-10 23:45:15 +01:00
stefan schippers 3ec47760a7 xschem logic_get changed to xschem logic_get_net for consistency 2023-03-10 02:54:53 +01:00
stefan schippers af6c01ab44 add command xschem logic_set_net <net_name> <value> [ntimes] to set a specific net instead of selected nets 2023-03-10 02:42:04 +01:00
stefan schippers 847d1df1b3 xschem logic_get: return X instead of empty string if net has never been assigned 2023-03-10 02:14:55 +01:00
stefan schippers 7bc63e0dfd add xschem logic_get command to get logic state of nets 2023-03-10 02:04:08 +01:00
stefan schippers 25f34ee413 add xschemrc variable zoom_full_center, if set to 1 full zoom will center the schematic instead of anchoring to lower-left drawing area corner. 2023-03-09 22:48:25 +01:00
Stefan Schippers a01dbcb457 doc updates (better formatting) 2023-03-04 19:09:29 +01:00
stefan schippers 896bb4e317 doc update 2023-03-04 11:09:54 +01:00
stefan schippers bf6b20a1ce In source Documentation (scheduler.c) of xschem commands, html docs updated 2023-03-03 18:29:17 +01:00
stefan schippers ebf4fa1f44 Initialize stack2[] to double 0.0 2023-03-01 18:34:07 +01:00
stefan schippers 32288e056e fix xschem fullxzoom command (missing setup_graph command) 2023-02-26 23:33:07 +01:00
stefan schippers 94fee133ca add commands xschem setprop rect 2 <n> fullxzoom and fullyzoom 2023-02-26 13:07:14 +01:00
stefan schippers b162ecdf48 remove unused parameter in setup_graph_data() 2023-02-26 11:22:19 +01:00
stefan schippers f75ed4827b fix xschem load command (dont get fooled by .sym extension, could not be a symbol). Always load as a schematic (sym and sch are the same thing 2023-02-22 23:27:50 +01:00
stefan schippers a8aaf996e7 use pre-increment where expression is not used 2023-02-18 09:44:11 +01:00
stefan schippers f0a359e65a better xschem table_read command implementation 2023-02-10 18:08:45 +01:00
stefan schippers 42c3024eda remove debug allocation IDs 2023-02-09 21:06:27 +01:00
stefan schippers 3be9a66aed fix memory leak in table_read() 2023-02-09 21:04:22 +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 b2f1a22936 added command xschem hilight_instname 2023-02-01 17:47:45 +01:00
stefan schippers 29ef08e84b better memory tracking reporting (my_strcat and my_strncat allocations) 2023-02-01 11:38:28 +01:00
stefan schippers baca559ffc refactor some code (use set_text_flags() to avoid repetitive code), add xschem setprop text and xschem getprop text commands to set/get text attributes 2023-02-01 00:23:33 +01:00
stefan schippers 1da5e47d4a remove my*() allocation routines unique IDs and replace with _ALLOC_ID_ macro, to be substituted in debug sessions with create_alloc_ids.awk 2023-01-23 15:42:15 +01:00
stefan schippers 03b2b8652e fixed filter_data routine that was clobbering ps export file, now ps output is correct without the need to add fflush() functions, that are thus removed in psprint.c 2023-01-18 00:24: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 e01f545567 --diff option to visually compare two different (versions of) schematics 2022-12-13 13:51:33 +01:00
stefan schippers 3d5bb6d64a add command "Simulation->Changelog from current hierarchy" that lists schematics from current hierarchy , sorted by modification time 2022-12-10 00:28:59 +01:00
stefan schippers e54c604087 better recognize unknown commands in scheduler.c, re-enabed XCB detection in scconfig (although not used). 2022-12-07 11:32:40 +01:00
Stefan Frederik 6cd9d76f90 initial implementation of fetch schematics from web 2022-11-15 01:17:33 +01:00
Stefan Frederik 066a65bfef removed some static hashtable declarations in netlisting code 2022-10-25 23:37:28 +02:00
Stefan Frederik a6dc3d47c3 cache embed attribute of instances for faster lookup 2022-10-21 11:04:20 +02:00
Stefan Frederik a820cc2e3f removed (now) duplicated inst_hash_lookup: use int_hash_lookup. Search function does not highlight nets if searching for something that is not "lab" 2022-10-12 13:14:48 +02:00
Stefan Frederik 03d2e685fe code cleanup 2022-10-08 10:07:59 +02:00
Stefan Frederik 47fb2085ff update send_net_to graph() and send_current_to_graph() to use sch_waves_loaded() as the hierarchy level where raw file was loaded, to skip upper path designators 2022-10-05 12:06:37 +02:00
Stefan Frederik 9dbe4343e2 added label notation EN[0:3:6:5]: EN[start🔚offset:repetitions], it will expand to a 20 bit bus: a[0],a[1],a[2],a[3],a[6],a[7],a[8],a[9],a[12],a[13],a[14],a[15],a[18],a[19],a[20],a[21],a[24],a[25],a[26],a[27] 2022-10-05 02:23:37 +02:00
Stefan Frederik 5fe2f1586b refactor str_hash_* and int_hash_* functions 2022-10-05 01:18:45 +02:00
Stefan Frederik 9c29324c8a allow nets with no label pass thru symbols with duplicated pins. named nets will propagate through duplicated pins 2022-10-04 12:34:09 +02:00
Stefan Frederik 4bbed85d23 faster jump table in plot_raw_custom_data(), added simulation->add waveform reload launcher 2022-10-03 11:15:14 +02:00
Stefan Frederik d06310deae cleanups and faster branch tables in scheduler.c 2022-09-30 18:12:17 +02:00
Stefan Frederik 08aff09cf9 scheduler.c cleanup 2022-09-30 13:08:53 +02:00
Stefan Frederik fc16997d0c switch dispatcher instead of if-else in scheduler.c 2022-09-30 00:19:27 +02:00
Stefan Frederik f26d082389 cleanups(2) in scheduler.c 2022-09-29 22:52:15 +02:00
Stefan Frederik b20ca9b501 cleanups in scheduler.c 2022-09-29 22:35:44 +02:00
Stefan Frederik f45278ebe3 cleanups in scheduler.c 2022-09-29 19:16:03 +02:00
Stefan Frederik 6d17797d0b add Highlight->Select overlapped instances command 2022-09-27 18:35:42 +02:00
Stefan Frederik 472751dfc0 better file globbing in load_file_dialog 2022-09-27 13:15:04 +02:00
Stefan Frederik fd72e72dba test and got svg_embedded_graph(...) to work on Windows with Cairo (Joanne). added some #ifndef __unix__ guards to avoid compiler warnings about defined and not used functions, initial implementation of "Recent components" browser. 2022-09-25 21:11:52 +02:00
Stefan Frederik 03842a3e4a new added graphs will have dataset attr set to -1 to include by default all datasets 2022-09-22 14:55:51 +02:00
Stefan Frederik e67ff344c8 cleanup/rename some xctx variables and graph-related functions, avoid drawing graphs using data file loaded from from schematics that are unmatched with current schematic or up in the hierarchy levels 2022-09-21 11:25:45 +02:00
Stefan Frederik 933faceabf some cleanups in scheduler.c "xschem annotate_op" command. 2022-09-20 23:07:50 +02:00
Stefan Frederik af475e00df xschem raw_read accepts an optional type argument after file name (tran, ac, dc, op, ...) to select type of simulation to load from raw file. New command xschem annotate_op will replace ngspice::annotate tcl procedure. 2022-09-20 16:49:42 +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 52405a29c7 restructured graph dialog box, added min/max x, adjusted sweep variables vertical aligmnent, added atof_spice() that recognizes spice suffixes (12p, 4.2MEG etc) 2022-09-16 17:01:59 +02:00
Stefan Frederik f286b376f7 do not show bboxes of hidden texts while moving objects if global option "show hidden texts" is not set; documentation updates 2022-09-16 13:19:26 +02:00
Stefan Frederik 7d6b33cda8 limit max size of embedded graph bitmaps in svg export. added deriv0() graph function, does derivative w.r.t. index 0 (sweep) variable, regardless of graph sweep (x axis) variable. 2022-09-16 12:16:26 +02:00
Stefan Frederik 3866dc914e xschem print command: if w and h are set to 0 compute image size automatically 2022-09-16 00:04:51 +02:00
Stefan Frederik f644ce58a6 graphs are now rendered (as detailed png bitmaps) in svg exports 2022-09-15 19:39:16 +02:00
Stefan Frederik 75db846e58 ask confirmation if pressing "s" for simulate; node lists in graph dialog box are returned as they are with no tcleval() resolution; poweramp.sch now can be simulated unchanged with Xyce 2022-09-13 00:31:20 +02:00
Stefan Frederik 9e7930c8e0 fix regression in raw_query list command, store all waveform names in lowercase and with ":" path sep translated to ".", so looking them up is faster (no need to try multiple searches) 2022-09-11 10:52:52 +02:00
Stefan Frederik 50539069ff faster xschem raw_query values; fixed xchem raw_query not resetting previous result before returning infos 2022-09-10 22:33:28 +02:00
Stefan Frederik 193cf397bd more Xyce integration, transform .save in .print tran, transform x1.x2.node to X1:X2:NODE in Xyce lookups, more checks for malformed raw files 2022-09-09 18:57:34 +02:00
Stefan Frederik d4e29db770 added command "xschem get netlist_name fallback" that returns user set netlist name or fallback name derived from circuit filename. simulate and waves procedures handle user netlist name if set 2022-09-09 12:02:56 +02:00
Stefan Frederik 77d76e1a8f add commands "xschem set format ..." and "xschem get format" to change format attribute used for netlisting, overriding defaults 2022-08-31 10:47:16 +02:00
Stefan Frederik adc4eb96c8 fix net_name() crashing if inst[i].node==NULL. This may happen when pasting a component that contains a @@xxx token, that needs to be expanded to attached netname, however since we are moving the component no net name is defined --> .node==NULL. 2022-08-30 02:44:28 +02:00
Stefan Frederik 8be273b9f7 fix regression on menu fullscreen command 2022-08-28 11:23:51 +02:00
Stefan Frederik 4136f7cf10 return loaded filename in xschem load command 2022-08-27 13:30:30 +02:00