Commit Graph

1652 Commits

Author SHA1 Message Date
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
stefan schippers 7e865eea1d avoid doing a full zoom before loading schematic in create_new_tab() and create_new_window(), as this will result in slightly different full zoom area in new tabs w.r.t first tab. 2023-06-23 09:34:16 +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 f85d46a0cb save_schematic(): avoid copying schname to xctx->sch[xctx->currsch] if dest == src 2023-06-22 08:16:19 +02:00
stefan schippers 7ba1acb6d0 modify xschemrc file to avoid side effects if sourced (intentionally or by mistake) multiple times. 2023-06-20 23:32:04 +02:00
stefan schippers 284ff2d1db fix crash if --script is given (xctx->sch[] was not initialized, regression due to xctx->sch transformed to array of pointers) 2023-06-19 23:42:52 +02:00
stefan schippers 810b814211 added some comments in code / schematics 2023-06-18 23:44:52 +02:00
stefan schippers 89d90c21db xctx->sch made an array of pointers instead of array of PATH_MAX strings (memory saver) 2023-06-17 23:58:35 +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 3c16c4bf20 separated @#pin:attr handling in translate() into *get_pin_attr(), replaced sscanf() with dedicated get_pin_and_attr() so we are able to handle stuff like "@#ADD[7:0]:net_name" 2023-06-16 10:55:22 +02:00
stefan schippers a752bb099b better refactor text_bbox calculation in del_rect_line_arc_poly() and delete_only_rect_line_arc_poly() 2023-06-16 00:08:16 +02:00
stefan schippers 670841f361 fix segfault in delete() where del_rect_line_arc_poly() (which calculates text object bboxes) was called after text items deleted 2023-06-15 23:05:25 +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 258f794f1a set modify/rebuild connectivity/draw only if something changed in break_wires_at_point() and break_wires_at_pins() 2023-06-13 11:56:46 +02:00
stefan schippers 4f08f0a6b6 added command Alt-RightButton to cut a wire at mouse position. Do a prepare_netlist_structs(0) at end of break_wires_at_pins() for connectivity consistency 2023-06-13 11:51:16 +02:00
stefan schippers eca52e1f4a added comp_65nm_read.sym example in inst_sch_select/inst_sch_select.sch, symbol with spice_sym_def attribute 2023-06-12 18:22:40 +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 818950980c drill_hilight(): propagate unnamed nets connected to multiple instances (R1[3:0]), do not try to get single bits out of unnamed nets, as the whole netname is hashed 2023-06-12 07:25:05 +02:00
Stefan Schippers 613dae091e extended `Shift-M` command to selected nets (nets attached to them will stretch) 2023-06-11 18:46:31 +02:00
Stefan Schippers 61e368b05e update_symbol(): better redraw screen if changing generator symbols; as done with floaters redraw all screen viewport, don`t build list of objects to redraw 2023-06-11 18:18:45 +02:00
Stefan Schippers 61a659e004 text elements with attribute name=xxx or floater=xxx will go through a tcl substitution (instead of the translate(...) function if the referenced xxx instance does not exist. floater=instname can now be given instead of name=instname (they are equivalent) 2023-06-11 15:57:49 +02:00
stefan schippers fc897c641b fix a potential crash if a ngspice_probe.sym device is placed and live cursor annotation is enabled (this instance has no lab attribute) 2023-06-11 07:24:00 +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 acef2b0d2c break_wires_at_pins(): inherit selected state of new created wires from ancestor wires 2023-06-10 19:16:00 +02:00
Stefan Schippers 3b3e723f8f add new command `Shift-M`, move selected instances adding wires when separating overlapping instance pins (Connect by kissing) 2023-06-10 18:57:32 +02:00
Stefan Schippers 43befd4e3e break_wires_at_pins(): delete piece of wires connected to symbol pins that extend beyond the pin into the symbol 2023-06-10 17:55:13 +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 0c9bdba37f add some comments in break_wires_at_pins() 2023-06-10 09:04:13 +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 37a5dcee95 remove dbg messages in fix_symols. doc updates 2023-06-09 00:16:51 +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 d56e3939d5 updated xschem_library/examples/test_backannotated_subckt.sch; fix a potential segfault in proc fix_symbol 2023-06-08 01:08:05 +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 828975c19f improved fix_symbols (works both ways for sky130 <--> xschem default env conversions 2023-06-07 20:48:26 +02:00
Stefan Schippers ff99381624 add procedure `fix_symbols <n>`to set `n` last directory components to all symbols in current design 2023-06-07 20:41:09 +02:00
Stefan Schippers bbb239dc21 faster `xschem replace_symbol` command 2023-06-07 20:31:25 +02:00
stefan schippers 245993f034 added attributes spice_ignore=short, verilog_ignore=short, .... that will transform the instance into a short in the current netlisting mode, shorting all pins to the same net. Works similarly as lvs_ignore=short, but does not need lvs_ignore global setting 2023-06-07 03:41:49 +02:00
stefan schippers 38a28a3acb add lvs_ignore to context saved vars. Refactored some preprocessor macros SPICE_IGNORE_INST --> SPICE_IGNORE) 2023-06-06 23:38:29 +02:00
stefan schippers b6e9ab33cc fix compare schematics if no file for schematic to compare with is given. In this case compare current schematic with saved version. Also issue a warning if swapping compare schematics if comparing schematic with disk version of itself. 2023-06-06 19:39:40 +02:00
stefan schippers b23d7518bb find_inst_to_be_redrawn(): add `lvs_ignore=short` devices to list, fix uninitialized xctx->inst_redraw_table 2023-06-06 18:40:27 +02:00
stefan schippers 394db224d1 added global tcl variable `lvs_ignore` that can be used to enable instance or symbol attributes `lvs_ignore=open` or `lvs_ignore=short` while netlisting, added `test_lvs_ignore.sch` example 2023-06-06 15:22:45 +02:00
stefan schippers ff216e8187 function reset_flags() set flags on symbols and instances; call reset_flags before rebuilding connectivity to update cached values; add short.sym component that can be used to short two nets together (and remove the short using *_ignore=true); instcheck(): do not proces instances that have *_ignore=true set. 2023-06-06 08:42:43 +02:00
stefan schippers a3ac9f6d1d fix portmap of single-bit unnamed nets in descend_schematic() (do not add [0] to single bit #netxxx nets) 2023-06-05 13:27:19 +02:00
stefan schippers 4f387f3bbe disable displaying backannotation data if `b` cursor is hidden or `Simulation->Live annotation with b cursor` is disabled. Use resolved_net() in translate() when displaying @spice_get_voltage so it will work on sub block ports 2023-06-05 12:58:19 +02:00
stefan schippers 229b07b945 fix missing save_ctx in create_new_tab and create_new_window when creating new tab/window after the 2nd one, leading to wrong context switches. Added trace command on XSCHEM_LIBRARY_PATH when changing search path. `proc set_paths` is automatically called to cache in the new search path. No need to run it manually 2023-06-05 10:54:26 +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 44d1e764ac resized some data structures for better overall speed 2023-06-04 17:56:52 +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 6d08202a5d save (ctrl-s function) normally does not save if no changes are made. However if file timestamp has changed since opening (by someone else) prompt user to decide what to do (save or not) 2023-06-04 10:16:17 +02:00
stefan schippers c708050baf make ctrl-ArrowLeft/ctrl-ArrowRight work again (move to next/prev tab) 2023-06-04 09:28:22 +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 d4116a3bb0 cleaner exit -f xschem -v is given 2023-06-03 11:41:07 +02:00
stefan schippers f9610851e8 cleanup exit procedures: tcl exit command will cleanly delete additional tabs/windows data structures before closing 2023-06-03 11:37:37 +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 1ea1e835ae @spice_get_voltage: do not process if net is a multiple bit bundle 2023-06-02 08:10:47 +02:00
stefan schippers 0d44c0ce13 fix wrong pin label net gathering in translate() 2023-06-02 07:48:09 +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 f3f12da486 updated test_extracted_netlist.sch example 2023-06-01 16:02:40 +02:00
stefan schippers d68e25016b fix long standing bug: redundant grammar rule in expandlabel.y causing it to fail recognizing nodes like GND*16 2023-06-01 07:09:43 +02:00
stefan schippers e948edbffa descend_schematic(): vectorize #netxxx nets if connected to bussed pins, before hashing, so resolved_net(...) will return the correct net portmapping 2023-06-01 06:40:24 +02:00