Commit Graph

2323 Commits

Author SHA1 Message Date
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
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
stefan schippers e9c8569800 remove debug mesg 2023-05-31 10:25:54 +02:00
stefan schippers 4a06176f0d comments, more test_bus_tap examples 2023-05-29 16:48:13 +02:00
stefan schippers 487b1eb202 more flexible bus_tap syntax 2023-05-29 09:17:06 +02:00
stefan schippers 06d8a548d3 fix expandlabel.y (remove excess rules) 2023-05-29 07:41:53 +02:00
stefan schippers 6bbc60f8fb add more ".." bus notations: XX[4,2,8..1..3,12,23] and others. bus_tap.sym: if no "[n]" pattern is given assume it is the complete name of the slice (does not need bus basename) 2023-05-28 15:30:40 +02:00
stefan schippers 620217788f do not process @#n:resolved_net attributes if net_name=true not set on symbol or instance and option "show netnames on symbol pins/floaters" is not enabled 2023-05-28 08:13:01 +02:00
stefan schippers 5043b14921 fix uninitialized wave_color due to regression after rainbow wave color enablement in double dc sweeps; more bus_tap.sym usage in examples; make bus_tap.sym work correctly for all netlist formats 2023-05-27 23:36:10 +02:00
Stefan Schippers cff9f7d169 some bug fixes in resolved_net hashing, use some @#n:resolved_net labels in examples 2023-05-27 21:48:21 +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 970c8597f6 First version: create_alloc_ids_windows.awk can be used with Windows GNU GAWK by running Windows batch file create_alloc_ids_windows.bat. It`s the equivalent to linux version of create_alloc_ids.awk. 2023-05-25 21:56:55 +02:00
Stefan Schippers b5b1339653 enable rainbow colored graphs also for double dc sweeps 2023-05-24 19:31:47 +02:00
Stefan Schippers ba402e65c0 remove unneeded variable in create_new_tab() 2023-05-24 18:20:18 +02:00
stefan schippers 5e90f5c319 use find_file_first instead of find_file in C code 2023-05-24 09:12:29 +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 608a144dd1 fix tcl procedures using find_file to find a component: use find_file_first (return 1st match) , since find_file may return multiple matches; add njfet.sym, pjfet.sym and test_jfet.sch 2023-05-24 08:43:05 +02:00
stefan schippers d993292f0f fix unindented lines 2023-05-23 10:16:38 +02:00
stefan schippers e7366741ed allow @#n:pin_attr or @#pin_name:pin_attr in verilog and vhdl format string (print_vhdl_primitive, print_verilog_primitive), in addition to @#n (convergence to translate() 2023-05-23 09:58:28 +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 1774ff4e3a allow @#n:pin_attr or @#pin_name:pin_attr in spice format string (print_spice_element), in addition to @#n (convergence to translate() 2023-05-22 21:50:14 +02:00
stefan schippers 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 637ada331e remove dbg message 2023-05-22 07:46:36 +02:00
stefan schippers b68dd8c099 when a bus label is edited correctly propagate list of instances to be redrawn if show net names on components is enabled (ie: propagate thru bus taps) 2023-05-22 07:28:12 +02:00
stefan schippers 5bd2c624a8 fixed regression: editing global attributes did not trigger modified status 2023-05-22 00:20:55 +02:00
stefan schippers 140aba3449 added handling of bus_tap.sym (wip) 2023-05-21 23:58:17 +02:00
stefan schippers 313f5898eb add guards against freee of null pointers in name_nodes_of_pins_labels_and_propagate() 2023-05-21 13:47:05 +02:00
stefan schippers 5c22d26072 update copyright info to 2023 2023-05-21 12:52:19 +02:00
stefan schippers 893389b01d hier_psprint_mtime(): fix wrong mtime calculation for (non existent file) generators 2023-05-21 09:25:19 +02:00
stefan schippers 7b12159e0c do not add hidden texts in symbol bboxes (symbol_bbox()) 2023-05-21 00:07:08 +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 616364106f replace @symname in instance "schematic" attribute with basename of symbol (without extension) 2023-05-19 13:15:59 +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 80acbfb107 set content-disposition flags in wget (--content-disposition) and curl (-J) helper downloaders to save downloaded files with correct names (no http queries) 2023-05-19 01:15:09 +02:00
stefan schippers 014ebf0477 is_from_web() function to avoid code repetitions, more heuristics when trying to descend into web hierarchies 2023-05-18 20:55:14 +02:00
stefan schippers e0bde2cb1c better handling of web_urls: if already cached do not download again 2023-05-18 11:03:32 +02:00
stefan schippers eef043ef2f sym_vs_sch_pins() do not try to get the "type" attribute of symbols references containing "@" characters (unresolved @parameters) by loading the symbol and checking the xctx->sym[symbol].type attribute, this usually happens in parametrized symbol generators 2023-05-16 14:45:52 +02:00
stefan schippers 71c04ad071 fix unneeded there_are_floaters() call in callback.c 2023-05-16 09:52:23 +02:00
stefan schippers ce8adbb60e if multiple objects are selected (instances, texts, wires, ...) and there is an instance in the set edit instance attributes 2023-05-15 09:02:14 +02:00
stefan schippers 70ea2bb7f1 for better consistency floater=... attribute for text floaters changed to name=... so token name matches instance refdes (name=...). Documentation added for netlist_dir (netlisting.html) and local_netlist_dir 2023-05-14 23:43:16 +02:00
Stefan Schippers d577bdde7a resolved a memory leak (inst[..].instname) 2023-05-14 17:10:48 +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 9d58f8cbbc clear text member `floater_ptr` when text is changed to force cache update 2023-05-14 02:45:56 +02:00
stefan schippers 1ea0516b55 if floaters are used to display simulation data (@spice_get_voltage) force update on floater text caches on `b` cursor move 2023-05-14 02:22:18 +02:00
stefan schippers 9fcde30a52 do not perform tcl substitution before displaying netlist_commands text into an editor. Correctly restore xctx->current_dirname after netlisting. get_generator_command(): quote command name (just in case its pathname contains spaces). floater example labels in solar_panel.sch. Various corrections and optimizations in new floater labels code. 2023-05-14 01:13:18 +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 4919d8734b remove dbg message 2023-05-12 01:30:38 +02:00
stefan schippers 35354e8fe3 fix: check for NULL type attribute in get_sch_from_sym(). Fix web schematic navigation (descend and return) in load_schematic() 2023-05-12 01:29:38 +02:00
stefan schippers f110e817ef ammeter.sym type set to "ammeter" instead of "probe", so will be greyed out if *_ignore attr is set 2023-05-11 00:47:59 +02:00
stefan schippers 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 339c523f0b align symbol types, reducing number of different types (remove ngprobe, current_probe, differential_probe, raw_data_show --> probe 2023-05-10 17:46:16 +02:00
stefan schippers 4308b86744 add noconn symbol type to list of symbols NOT to grey out even if they have *_ignore=true attributes set 2023-05-10 14:53:49 +02:00
stefan schippers 626f2729ce remove used_symbols feature (may fail in some hierarchical situations) 2023-05-10 10:13:38 +02:00
stefan schippers d7557d7945 fix netlisting schematics with generator name containing extension ( like symgen.tcl(1,2,3) ) 2023-05-10 04:40:22 +02:00
stefan schippers 1e74b21c49 get_trailing_path(): do not confuse generator extension with schematic/symbol extension 2023-05-10 04:08:47 +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 f2214150ae tedax, verilog, spice netlists: do not expand unused subcircuits (due to *_ignore attrs on instances/symbols) 2023-05-10 01:02:28 +02:00
stefan schippers 0a4f942fb7 symbol_ignore=true attribute can be set on all symbol elements (text, lines, rectangles, arcs, polys, instances, nets) such that these marked elements are not displayed when symbol is instantiated. 2023-05-09 23:26:46 +02:00
stefan schippers 376e547c48 find_file and match_file utility functions: do not try to descend unreadable dirs 2023-05-08 12:29:44 +02:00
stefan schippers b233963079 update xschem_library/Makefile to include generators in install 2023-05-06 09:04:06 +02:00
stefan schippers 4baf5f9803 add warnings in my_strdup() and my_strdup2() if src and *dest are the same address 2023-05-05 10:44:04 +02:00
stefan schippers b4b2c91481 fix yet another error in "cmd" string handling in load_sym_def(). Added realloc of freed pointers detection in track_memory.awk 2023-05-05 09:29:30 +02:00
stefan schippers d23388ff71 fix cmd memory leak in load_ym_def(), make copy of returned string in some routines to reduce dependencies 2023-05-04 23:23:54 +02:00
stefan schippers 35f4826198 Fix a corruption found by joanne in load_sym_def() where a static result returned from tcl_hook2() was accidentally freed. 2023-05-04 21:20:58 +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 2438d0fa95 translate2(): better handle %xxx tokens in LCC symbols (propagate %xxx to upper level if not assigned to anything in instance) 2023-05-02 23:21:20 +02:00
stefan schippers 7e1f591b18 align TOK_TOKEN state change of translate() and translate2() to all other parsers 2023-05-02 18:54:27 +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 eb50f9c26a code formatting in update_symbol() 2023-05-02 14:12:37 +02:00
stefan schippers e6224bfb09 when changing a symbol on an instance do not force change prefix (1st name char) if old and new symbol have same prefix 2023-05-02 13:00:14 +02:00
stefan schippers 9533b17a20 Allow to pass instance attributes (via translate() ) to symbol generators 2023-05-02 12:42:53 +02:00
stefan schippers fd0e036492 remove dbg message 2023-05-01 23:20:11 +02:00
stefan schippers a9ffa50ed8 add "ndir" parameter to get_sym_name(), some fixes in sym_vs_sch_pins() 2023-05-01 23:17:57 +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 aeea23a84d load_sym_def(): fix a debug message possibly printing garbage due to uninitialized variable 2023-04-29 11:02:23 +02:00
stefan schippers 3f2e4f2647 yet another small improvement in load_file_dialog to reduce redundant verbosity 2023-04-29 09:09:06 +02:00
stefan schippers 0703f90629 make persistent load_file_dialog work correctly for xschem files, non xschem files and generators 2023-04-29 03:48:20 +02:00
stefan schippers c7c69cc5de invoke myload_place_symbol when leaving .load (instead of leaving .load.buttons_bot.entry) if persistent load dialog is displayed 2023-04-29 02:20:36 +02:00
stefan schippers 67e9e305ec fix persistent insert symbol dialog by not placing anything if selecting multiple times the same symbol. proc myload_place_symbol: add an update statement to resolve race conditions. 2023-04-29 01:59:35 +02:00
stefan schippers a3347710db improve persistent insert symbol dialog (Shift-Insert) by not asking multiple times what to do when selecting a non xschem file 2023-04-29 01:41:02 +02:00
stefan schippers 9593d41f09 persistent load file dialog (Shift-Insert) now correctly handles generator script selection (do nothing until user adds () or (param1,param2,...) to generator name). 2023-04-29 00:28:24 +02:00
Stefan Schippers ee7dc8982a load_sym_def: if loading a symbol reading from a pipe (generator script) do not attempt to seek forward looking for embedded symbols. Assume no embedded symbols exist here 2023-04-28 20:33:57 +02:00
stefan schippers e044ed4c54 proc load_file_dialog: do not clear search pattern (if any) when changing directory in left listbox 2023-04-28 18:19:46 +02:00
stefan schippers b30eda3bb0 remove unused file 2023-04-28 17:58:35 +02:00
stefan schippers 710e694f40 merge_file(): handle generators so generated schematics (pcells) can be merged into an existing schematic 2023-04-28 17:34:04 +02:00
stefan schippers 26e088e729 add graph_linewidth_mult xschemrc variable to set default multiplier for graph line width w.r.t. xschem (current) line width. Add "Line width:" entry in graph_edit_properties dialog box 2023-04-28 10:45:56 +02:00
stefan schippers 410135cf44 align set_thick_waves() to comply with previous commit 2023-04-27 22:49:43 +02:00
stefan schippers 36f71708e6 added linewidth_mult=<double> attribute in graphs for per-graph line width adjustment 2023-04-27 20:55:17 +02:00
stefan schippers 0bb345f764 fix data corruption when netlisting hierarchical symbols with *_stop attribute set, thanks to Joanne Low regression tests, add option in pop_undo() to avoid saving state (push_undo()) for redo. 2023-04-27 11:52:51 +02:00
stefan schippers 52f35e30c2 avoid video updating when loading multiple files in hierarchical ps/pdf export 2023-04-27 08:49:52 +02:00
stefan schippers 2e7eb9e38b instance based schematic selection: place get_additional_symbols(1) after every load_schematic() to consistently add new virtual symbols for every instance based "schematic" attribute across the whole hierarchy. This is done for all netlisting code and hier_psprint() 2023-04-27 01:14:10 +02:00
stefan schippers 2189aaa932 fix unbalanced gsave/grestore in psprint (setting colors of empty text strings) 2023-04-27 00:36:50 +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 3e320b56d2 fix wrong pdfmarks in hierarchical pdf export, after changes to handle generated sch/sym 2023-04-26 18:50:39 +02:00
stefan schippers 07fcdfbde4 fix hier_psprint() to handle all previous enhancements 2023-04-26 11:35:32 +02:00
stefan schippers 7a16859702 update tedax netlister with previous enhancements 2023-04-26 10:26:21 +02:00
stefan schippers 10441ef901 allow tcl procedures to generate generator script and parameters, update vhdl and verilog netlisters to handle generator schematic/symbol references 2023-04-26 09:54:35 +02:00
stefan schippers 3142279d02 Add inst_sch_select/ example directory (instance based implementation selection) 2023-04-25 09:15:17 +02:00
stefan schippers a111c116d9 set netlisting type to symbol when descending into a generator-created symbol 2023-04-25 00:27:58 +02:00
stefan schippers 68cf318134 load_sym_def(): removed embedded parameter, recognize generator names and pipe in data from generator instead of loading from file. No more set flags for generated symbols to EMBEDDED 2023-04-24 23:56:56 +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 94d1865127 fix save_inst resetting all symbols EMBEDDED flags, not only the used symbols in current schematic. Created get_generator_command(), will be used also for schematic generators 2023-04-24 11:36:07 +02:00
stefan schippers 7c04b009ec do not ask to save parent schematic containing generator-created symbols even if user tries to modify them, is_xschem_file() now returns SYMBOL|SCHEMATIC|GENERATOR|0 2023-04-24 09:24:17 +02:00
stefan schippers 70ef115a13 do not try to preview generator scripts 2023-04-23 10:29:01 +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 bbb5363da9 removed debug msg 2023-04-22 11:54:16 +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 d5aca937ce removed debug messages 2023-04-22 00:55:34 +02:00
stefan schippers 5daf41ca1b removed unused variable 2023-04-22 00:23:11 +02:00
stefan schippers a2de3cd787 unified copy_symbol() and copy_symbol1(), better new symbol allocation policy 2023-04-22 00:21:53 +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 eb6705d0f4 fixed regression introduced by get_additional_symbols() (memory leak) 2023-04-21 15:31:27 +02:00
stefan schippers 0102438751 fix some unfreed data in recent commits 2023-04-21 13:55:21 +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 6c364a74cc revert str_replace @symname in print_spice_subckt_nodes() 2023-04-18 00:49:25 +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 88fdc83b34 get_sch_from_sym(): do not replace @symname if @ escaped 2023-04-17 17:44:51 +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 728cfb22fc print_spice_subckt_nodes(): remove closing bracket in case of tcleval(...) failure 2023-04-17 10:33:45 +02:00
stefan schippers ff9f92646c draw_graph_points() split big XDrawLines requests into smaller chunks to handle raw files with > 4M points 2023-04-14 15:41:00 +02:00
stefan schippers 340b89c58d add base_name field in xSymbol struct to keep track of the base symbol name the "virtual" symbol is inherited from (instance based implementation selection with schematic=... attribute) 2023-04-13 22:25:36 +02:00
stefan schippers fb2500c83f enable spice_sym_def, verilog_sym_def, vhdl_sym_def on instances in addition as globally on symbols, for instance based specific implementations. These attributes must be paired with an instance "schematic=..." attribute that sets the subcircuit name of the alternate implementation. docs updated. 2023-04-13 02:12:02 +02:00
stefan schippers c71c15e967 various enhancements around the new instance based schematic=... attribute, doc updates. 2023-04-13 00:49:38 +02:00
stefan schippers 590bf8b6ec add instance based "schematic=..." attribute. This allows multiple instances of the same symbol to have different implementations. 2023-04-12 18:28:19 +02:00
stefan schippers 5b3b3d0662 function copy_symbol() extracted from undo code for reuse 2023-04-12 12:09:45 +02:00
stefan schippers e6fc1d9fe4 Correct menu accelerator shown for "merge" function (b key) 2023-04-11 09:33:25 +02:00
Stefan Schippers 4482ac3705 do a "xschem redraw" instead of a "xschem save; xschem reload" when use spiceprefix is toggled in menu 2023-04-09 20:05:45 +02:00
Stefan Schippers ebfcde42de change preprocessor defined(HAS_CAIRO) to HAS_CAIRO==1 2023-04-09 15:36:06 +02:00
stefan schippers f3196bbd10 -b option: redirect stdout/stderr to /dev/null, better explain -b in help, update manpage, and docs 2023-04-09 02:12:54 +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 c98f0afec5 avoid redundant newline trailer in tcp responses 2023-04-07 23:50:04 +02:00
stefan schippers 705f279a23 xschem tcp interface: accept whole multiline text input from clients, (no more limit to 1 line text input), hier_psprint(): do not descend to subcircuit schematic if file not existing 2023-04-07 23:38:33 +02:00
stefan schippers 34800870fe xschem tcp server: drop connection at end of response to make client reads easier (eof detection) 2023-04-07 11:46:27 +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 7ac9443f4f further improve execute_fileevent to handle subprocesses that close stdout 2023-03-31 18:08:03 +02:00
stefan schippers e2490034ed better execute_fileevent implementation 2023-03-31 14:28:59 +02:00
stefan schippers e031780f14 fix regression in execute_fileevent (hadling subprocesses that close stdout/stderr, like rxvt) 2023-03-31 12:01:21 +02:00
stefan schippers d0d31a87c8 update src/add_custom_button.tcl to match code refactoring done in r2264 2023-03-29 23:41:28 +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 69277c1066 add use_tclreadline variable that can be set to 0 in xschemrc to avoid using the tclreadline package 2023-03-27 18:25:12 +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 f5224ede00 better cleanup execute(callback,...) array members 2023-03-24 13:37:10 +01:00
stefan schippers 6bcb74bdb0 add tcl procedures documentation in developer_info.html 2023-03-24 13:14:27 +01:00
stefan schippers e7b4dcfaae better tilde substitution in some tcl procedures 2023-03-24 00:49:44 +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 2e61f26be8 fix issues when doing a compare schematics, local vs remote (http[s]) one 2023-03-17 10:03:20 +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 4569a0747a fix executing xschem load_new_window from launcher (UI semaphore save/restore) 2023-03-13 12:37:30 +01:00
stefan schippers c38779fb35 refactor descend_schematic() 2023-03-13 11:49:20 +01:00
stefan schippers 6d192023de fix web hierarchy navigation error when returning to web schematic after descending into a local symbol 2023-03-13 11:11:43 +01:00
stefan schippers 6e13f3cd77 handle netlisting remote (http[s]) hierarchic objects 2023-03-12 11:11:11 +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 a8e95e220b if a custom format netlist is given (for example lvs_netlist) and lvs_netlist attribute in instance or symbol is existing but empty device will not be netlisted 2023-03-10 18:36:55 +01:00
stefan schippers d2d9eaa4e8 instance attribute "hide=true" will make the instance display as a bounding box only 2023-03-10 04:42:21 +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 9de818c8e9 improve Simulation->Monitor current simulation to also display sim stdout after simulation is completed 2023-03-05 01:01:43 +01:00
stefan schippers 947406481a add Simulation->Monitor current simulation to display stdout of running simulation (to get simulation status / ETA and the like... ) 2023-03-05 00:44:56 +01:00
stefan schippers e3d5dc9cd9 added execute(cmd,last), execute(data,last), execute(status,last) for post-mortem inspection of last simulation 2023-03-04 23:22:31 +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 dbc123e8cc Make joanne fix for SPICE_DATA preprocessor macro comparison apply for unix as well 2023-02-27 22:32:28 +01:00
stefan schippers c908c77351 remove dbg message 2023-02-26 23:46:54 +01:00
stefan schippers 32288e056e fix xschem fullxzoom command (missing setup_graph command) 2023-02-26 23:33:07 +01:00
stefan schippers 3b41a486f6 avoid executing fullyzoom xschem command if no data loaded 2023-02-26 13:56:52 +01:00
stefan schippers 0a015f25db add create_graph.tcl example procedure 2023-02-26 13:39:57 +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 a3263aca0b refactor some variable names in waves_callback() 2023-02-21 16:47:40 +01:00
stefan schippers a8aaf996e7 use pre-increment where expression is not used 2023-02-18 09:44:11 +01:00
stefan schippers c5261a2ff6 formatting code 2023-02-13 12:18:47 +01:00
stefan schippers 9e7f67aca6 more robust my_atof and my_atod 2023-02-13 10:38:31 +01:00
stefan schippers 67c5cced1e code formatting 2023-02-12 13:41:26 +01:00
stefan schippers 1aaa48a75b 3x faster table_read() on big data 2023-02-12 13:36:03 +01:00
stefan schippers 6c22c47975 added fast newline count routine count_lines_bytes() 2023-02-12 00:53:48 +01:00
stefan schippers f5676f0d16 table_read() optimized for speed 2023-02-11 12:44:38 +01:00
stefan schippers f0a359e65a better xschem table_read command implementation 2023-02-10 18:08:45 +01:00
stefan schippers c51f007da3 table_read(): skip initial empty lines, allow 2 or more blank lines for new dataset 2023-02-10 03:36:29 +01:00
stefan schippers 33c2c2d1b2 Some cleanups in raw_read() and table_read() 2023-02-09 21:17:31 +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 c882a34825 add table_read() function to read simulation data in ascii tabular form 2023-02-09 20:53:16 +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 44ee2b593f added "s" bindkey in graphs to swap "a" and "b" cursors 2023-02-08 04:13:50 +01:00
stefan schippers 09868a0782 put a typedef in xschem.h to avoid duplicate declarations. add env tcl to global list in proc simulate 2023-02-06 14:36:24 +01:00
stefan schippers 6e524624e7 fix wrong closest wave finding ("t" keybind in graphs) 2023-02-03 03:35:55 +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 7ebb79c2ea get rid of stdint.h in postscript jpeg export code 2023-01-25 02:25:24 +01:00
stefan schippers 23378b8708 replace u_int32_t with unsigned int in save.c 2023-01-24 01:46:26 +01:00
stefan schippers 48549f1212 update test schematics 2023-01-23 18:23:18 +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 5c59b69865 add _ALLOC_ID_ macro 2023-01-23 15:07:15 +01:00
stefan schippers 41b7bfb580 remove dbg messge in track_memory.awk 2023-01-23 13:27:10 +01:00
stefan schippers 3043989196 fix debug test 2023-01-23 12:17:47 +01:00
stefan schippers fd8f1e6b97 fix a regression in track_memory.awk (did not show leaking source code line) 2023-01-23 12:16:29 +01:00
stefan schippers cffe91146e free paddedData pointer in ascii85_encode() 2023-01-23 11:55:52 +01:00
stefan schippers 9b6b7bc19a Fix some compiler warnings and add a little optimization in ascii85 encoder 2023-01-23 11:49:08 +01:00
rafmag 9e027fc46c Missing #endif after merge 2023-01-22 19:51:38 -07:00
rafmag 898f229c61 Merge branch 'master' of https://github.com/rafmag/xschem 2023-01-22 19:44:58 -07:00
rafmag 9c83801d8f Added Ascii85Encoding for better formated & smaller PS files. 2023-01-22 19:35:10 -07:00
stefan schippers d7ddb17a50 revert and fix regression (graphical artifacts due to wrong change_linewidth() 2023-01-22 00:21:46 +01:00
stefan schippers d3c6bf3c6e add postscript quality attrs to some example schematics 2023-01-21 23:47:43 +01:00
stefan schippers 6af6079084 set line buffering when stderr redirected to file 2023-01-20 18:25:43 +01:00
stefan schippers c8a60b4ee4 better image bbox calculation for svg and ps 2023-01-20 13:25:23 +01:00
stefan schippers 90bc0fa572 "preserve unchanged props" will be automatically checked when editing attributes on multiple object selection and unchecked on single object selection as this is the 99.9% use case 2023-01-20 00:35:24 +01:00
stefan schippers 6f6bd65035 fflush() all stdio buffers before calling fork(). End child processes with _exit() instead of exit() to avoid double fflushing in parent i/o streams 2023-01-19 02:46:45 +01:00
stefan schippers 49135f3f2e added jpeg_quality attribute that can be used in images / graphs to specify the quality factor of jpg embedded images in ps export. If unspecified quality=100 is used. A value of 25 results in 6x smaller files and acceptable results, so it is worth using a quality factor less than 100 2023-01-18 04:09:30 +01:00
stefan schippers 69aef1ffce added libjpeg detection code, so postscript image embedding will be disabled if libjpeg not present 2023-01-18 03:33:28 +01:00
stefan schippers e06bfe5191 remove some debug changes 2023-01-18 01:17:46 +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 af0ddb76f0 cleanups, remove redundant png_reader() definition 2023-01-17 01:23:34 +01:00
stefan schippers b6200abb5a removed untracked files 2023-01-16 21:12:46 +01:00
rafmag 023089c0e4 Fixes after merge 2023-01-16 11:54:39 -07:00
rafmag 9194440e3b Merge branch 'master' of https://github.com/rafmag/xschem 2023-01-16 11:54:12 -07:00
rafmag 9105bef5f5 Fixed issues with rotating and fliping images + other bugs 2023-01-16 11:33:59 -07:00
stefan schippers fba0db0c2d fix corrupted postscript generation on test_images3.sch. Need to investigate why fflush()es are needed. in psprint.c 2023-01-16 18:06:50 +01:00
stefan schippers 4c59008bc5 ps/pdf ecxport: dont print rectangle frames around images 2023-01-16 16:46:57 +01:00
stefan schippers 9a59679dcf use cairo_image_surface_write_to_jpeg_mem() instead of cairo_image_surface_write_to_jpeg(), avoid temp files 2023-01-16 16:31:18 +01:00
stefan schippers 2ea5c7af04 use my_free/my_malloc for memory leak checks 2023-01-16 15:26:07 +01:00
stefan schippers 5cae589e33 psprint.c: fix some compiler warnings 2023-01-16 13:51:35 +01:00
rafmag 5faefbdf8d sync changes 2023-01-16 05:47:18 -07:00
Rafmag Cabrera 588fcb22ad
Merge branch 'StefanSchippers:master' into master 2023-01-16 12:37:35 +00:00
stefan schippers 249fdd69a2 temporary fix for building xschem. Some warnings due to rev >c89 to be fixed, and proper detection of libjpeg must be added 2023-01-16 12:21:35 +01:00
stefan schippers 0627791cc1 removed unecessary files 2023-01-16 10:40:12 +01:00
Rafmag Cabrera 0570c5d21b Delete Makefile 2023-01-16 10:35:29 +01:00
rafmag 7aa2379a4a Moved temp.jpg to tmp folder 2023-01-16 10:35:29 +01:00
rafmag 06840efac0 Added png and embedded graphs to ps and pdf export 2023-01-16 10:35:29 +01:00
Rafmag Cabrera 7e3133804b
Delete Makefile 2023-01-15 22:28:34 -07:00
rafmag 7b80287b75 Moved temp.jpg to tmp folder 2023-01-15 22:00:45 -07:00
rafmag e29bfe2c98 Added png and embedded graphs to ps and pdf export 2023-01-15 21:34:43 -07:00
stefan schippers 2fa0155ca6 fix inutile template procedure call 2023-01-12 16:33:59 +01:00
stefan schippers 115f0fdf0c improve cairo draw options 2023-01-11 12:02:21 +01:00
stefan schippers 4c0d5023f5 allow 0 width lines (faster device dependent implementation) if user defined line width is set (to 0), add devices/title-3.sym 2023-01-07 11:28:28 +01:00
stefan schippers 709c37429d Add description for keybinding (Shift-B) of "Properties->Edit header/license text" 2023-01-03 18:27:11 +01:00
Stefan Schippers 479b8ef6e9 add accelerator Shift-B for edit schematic header/license 2023-01-02 19:34:27 +01:00
stefan schippers 329d472d56 add installation of icon.xpm into .../share/xschem installation directory 2023-01-02 12:43:23 +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 cee4d218e2 use "configure -cursor {}" instead of "configure -cursor arrow" to switch back mouse cursor to default when exiting graph 2022-12-31 10:22:41 +01:00
stefan schippers aa70d90c46 fix cairo font reference counting 2022-12-25 23:13:59 +01:00
stefan schippers 75fbb76543 optimization: split cairo font creation into create + set 2022-12-25 10:42:07 +01:00
stefan schippers 1f76b297db allow schematic="tcleval([tcl_proc @symname])" for runtime schematic selection when descending into a symbol. tcl_proc might return a schematic candidate associated to @symname depending on some user setting 2022-12-20 02:21:48 +01:00
stefan schippers 9fa05afad9 fix a bug when loading multiple AC sim datasets (wrong nvars calculation, has to be doubled due to Im/Re complex components) 2022-12-20 01:01:58 +01:00
stefan schippers 2cb58c5c5c added generators/ dir, removed redundant variable in load_schematic() 2022-12-19 23:05:09 +01:00
stefan schippers 1a76f89464 added xschem_library/generators directory for future schematic/symbol generator scripts. Handle empty XSCHEM_LIBRARY_PATH (use [pwd]). 2022-12-18 13:03:38 +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 5a8e0c9ba2 for hierarchy cellname listing use nolist_libs for exclucing patterns, instead of xschem_libs, which is used for netlisting 2022-12-10 01:15:18 +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 919cf3b870 more flexible "execute" procedure to handle bidirectional communication with subprocesses 2022-12-09 00:02:34 +01:00
stefan schippers 7629e8e406 fixed xcb detection (but disabled for now) 2022-12-08 14:19:02 +01:00
stefan schippers 888ff17305 for now #undef HAS_XCB until I figure out to make configure detect and work 2022-12-08 13:46:45 +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 schippers b23988ccdf added commented lines for antialiasing; JL:cairo_set_line_width should only be called with has_x as xctx->cairo_ctx and xctx->cairo_save_ctx is NULL when run with -x; JL:XCopyArea must be called to draw correctly with Cairo on Windows 2022-12-02 16:43:01 +01:00
stefan schippers f18ed49f6f adjust dash line threshold for graphs 2022-12-02 00:13:54 +01:00
stefan schippers babc6d7e82 huge graphic speed improvement for dashed lines (graph grid) on some GPUs 2022-12-01 16:30:02 +01:00
stefan schippers fabace7505 cosmetic code formatting 2022-12-01 14:57:48 +01:00
stefan schippers 7ae10bd7da add macro DRAW_ALL_CAIRO: if set to 1 graphics primitives will use cairo instead of Xlib. Currently work in progress, as of now only the grid and the final XCopyArea done in draw() will use Cairo if macro is set 2022-11-30 00:59:45 +01:00
schippes 9244b33495 When setting Simulation->LVS netlist, use "lvs_format" attribute for netlisting if this attribute is existing, otherwise keep using "format" 2022-11-24 19:32:16 +01:00
stefan schippers 609033e7ca fix regression (not allowing to change text size) 2022-11-23 16:57:21 +01:00
Stefan Schippers e7851d01db "xschem set format <fmt_attribute>" will change netlisting format attribute instead of default "format" (or verilog_format or vhdl_format), however fallback to default netlisting rule attribute if not defined in symbol. add tcl function "from_eng <n>" to convert spice formatted numbers to floating point 2022-11-23 16:16:38 +01:00
Stefan Schippers 1a01114af4 use verilogprefix also when expanding symbol schematics in verilog 2022-11-22 17:13:45 +01:00
schippes 0d2738254a added verilogprefix symbol attribute: will be prefixed to symbol name references in verilog netlists 2022-11-22 16:30:59 +01:00
stefan schippers 9c31682517 test and get reading schematics from the web on Windows working 2022-11-18 16:06:06 +01:00
Stefan Frederik 4d3ede661a cleanup $XSCHEM_TMP_DIR/xschem_web cache on startup 2022-11-15 17:56:56 +01:00
Stefan Frederik e27eea8233 added comments and a fix in descend_symbol() 2022-11-15 15:08:11 +01:00
Stefan Frederik a7066600b4 use tmp subdirectory: better string matching 2022-11-15 13:21:16 +01:00
Stefan Frederik 8f6aaa0ec2 use tmp subdirectory to group web schematics 2022-11-15 12:59:52 +01:00
Stefan Frederik c9380bd8f0 use local name (/tmp/xxx.sch) when displaying schematic name in title, indtead of full url (too long) 2022-11-15 10:25:19 +01:00
Stefan Frederik ea50037b10 update xschem comments (url download) 2022-11-15 02:35:25 +01:00
Stefan Frederik b2f159706c if loading a new schematic (currsch==0) reset current_dirname 2022-11-15 02:10:18 +01:00
Stefan Frederik 6cd9d76f90 initial implementation of fetch schematics from web 2022-11-15 01:17:33 +01:00
Stefan Frederik 349bebda20 more on recognizing web urls 2022-11-13 10:59:36 +01:00
Stefan Frederik 94247770ce when placing symbols user can also type file name (with full path also) inside File/search box instead of clicking in the list box. web URLs will be returned as they are with no further interpretation 2022-11-12 12:16:21 +01:00
Stefan Frederik ca8ffafe8a code refactoring (update_conn_cues()) 2022-11-07 14:23:57 +01:00
Stefan Frederik 8f055ebb5f only_probes: dim toward light grey if light colorscheme is in use 2022-11-07 14:03:27 +01:00
Stefan Frederik faaa79d35a dim schematic to grey if showing only probes, instead of hiding it completely 2022-11-07 13:34:48 +01:00
Stefan Frederik 3d49ca63c9 avoid tcleval() of strings returned by translate2(), show currents of resistors and diodes when annotating. 2022-11-04 13:35:06 +01:00
Stefan Frederik 0b863993b1 correctly translate ngspice diode current ->xyce diode current in ngspice::get_current 2022-11-02 11:59:48 +01:00
Stefan Frederik 98d59cd8e9 better handle xyce nodes in ngspice:: functions 2022-11-02 11:17:22 +01:00
Stefan Frederik 4bb321af68 add @path attribute for spice/verilog/vhdl/tedax backends 2022-11-02 00:47:59 +01:00
Stefan Frederik fe0dc46c81 remove debug msgs 2022-11-01 12:57:29 +01:00
Stefan Frederik b0a88325e7 "@path" will be expanded in symbols with the hierarchy path, so a fully qualified instance name is obtained with @path@name 2022-11-01 12:54:43 +01:00
Stefan Frederik dc6e9e2d9c (JL) update abs_sym_path such that using network drive (ie. //192.168.1.102/test) will return as is, (JL) add example for network drive to add to XSCHEM_LIBRARY_PATH 2022-10-31 23:48:34 +01:00
Stefan Frederik 153929806b fill attribute on rectangles to override layer fill style: fill=false will not fill 2022-10-29 23:49:00 +02:00
Stefan Frederik 04c05a5703 proc set_paths will set initial dirs (set_initial_dirs) so no need to press Home button after reconfiguring XSCHEM_LIBRARY_PATH and running set_paths 2022-10-29 21:17:13 +02:00
Stefan Frederik ed0924e6ca drill_hilight(): propagate only selected bits of bus nets 2022-10-29 11:06:46 +02:00
Stefan Frederik 9c5fc0b266 add option add_all_windows_drives 2022-10-28 08:54:52 +02:00
Stefan Frederik 5fb452f37f Further hardening of source_user_tcl_files against files containing strange characters including ". 2022-10-27 19:32:46 +02:00
Stefan Frederik 6e43afaa46 drill_hilight() refactoring 2022-10-27 12:43:18 +02:00
Stefan Schippers aa213cc103 formatting changes in drill_hilight() 2022-10-26 19:00:05 +02:00
Stefan Frederik 066a65bfef removed some static hashtable declarations in netlisting code 2022-10-25 23:37:28 +02:00
Stefan Frederik 2c9151ea92 set up a tcl event handler if xschem is run without other event loops (no tk event loop, -x option, no tclreadline event loop, -r option) so xschem will respond to tcp connections 2022-10-25 01:00:51 +02:00
Stefan Frederik a236918f5c do not trigger modify status if enter_text dialog box closed with no changes 2022-10-24 16:07:13 +02:00
Stefan Frederik d1aa8a9e42 global properties dialog box: close if clicking outside or pressing Shift-Return 2022-10-24 14:11:34 +02:00
Stefan Frederik a8689becd6 shift-enter/clicking outside ends text insert widget. Entry widget for text properties string replaced with multiline text widget 2022-10-24 13:05:32 +02:00
Stefan Frederik d20ef12b15 put cairo variable declaration inside #if HAS_CAIRO to avoid compiler warnings. 2022-10-23 00:26:43 +02:00
Stefan Frederik cb652adb5f skip NULL or empty texts in draw_symbol, translate2() skip @@... and @#... tokens (return empty) 2022-10-21 17:48:54 +02:00
Stefan Frederik 4e05fe1bab comment some unneeded dbg messages, update install html page 2022-10-21 12:54:02 +02:00
Stefan Frederik a6dc3d47c3 cache embed attribute of instances for faster lookup 2022-10-21 11:04:20 +02:00
Stefan Frederik e34211368f translate2() fix recursive param substitution 2022-10-20 23:31:02 +02:00
Stefan Frederik bc33261f90 better parsing xxx='<expr>' or xxx={expr} patterns in flatten.awk. Doc upcates, test circuit updates. 2022-10-20 20:25:49 +02:00
Stefan Frederik 506cf627cd use rel_sym_path + find_file to place components (pins, labels) in the schematic 2022-10-20 14:23:18 +02:00
Stefan Frederik 0f25befe31 recursive attribute substitution. use also template attribute of parents if not found in instance prop_ptr 2022-10-20 10:30:48 +02:00
Stefan Frederik 59fb225a36 fix potential string overflow. Thanks JL 2022-10-18 08:38:09 +02:00
Stefan Frederik e8e9afb488 match_file. better file list concatenating 2022-10-18 00:48:29 +02:00
Stefan Frederik edd1e3a370 improved find_file proc, added match_file 2022-10-18 00:02:10 +02:00
Stefan Frederik 33d9afd3a1 avoid hardcoded (relative) paths for label/pins searching, use more general find_file method 2022-10-17 17:20:40 +02:00
Stefan Frederik dad83010f0 perf. improvements in plot_raw_custom_data() / ravg_store() 2022-10-17 15:17:47 +02:00
Stefan Frederik b0359d880a use sim_pinnumber for port ordering in simulation netlists and leave pinnumber for package pin position. These two collide, for example in spice port ordering vs (transistor problem) device package pinnumbers. Dont load graphs in lcc symbols 2022-10-17 12:05:54 +02:00
Stefan Frederik cecd205ff7 Faster implementation of previous change 2022-10-17 00:30:20 +02:00
Stefan Frederik 63a27e410e Engineering notation in wave measurement tooltip 2022-10-17 00:26:28 +02:00
Stefan Frederik f6207070d0 translate() --> @spice_get_current(): find last hier.separator occurrentce with strrchr() 2022-10-16 23:57:07 +02:00
Stefan Frederik 78ca99e4bf save symbol with ordered pins if pinnumber is present in all pins 2022-10-16 22:26:35 +02:00
Stefan Frederik 407bac461d sort symbol pins: remove useless debug messages 2022-10-16 16:23:00 +02:00
Stefan Frederik fc576f69ac sort symbol pins if key pinnumber is present on all of them 2022-10-16 16:18:38 +02:00
Stefan Frederik e8b2385f24 update xschemtest hashes, uniquify allocation IDs 2022-10-16 14:21:22 +02:00
Stefan Frederik 91ba5fd1d3 annotation of voltage and currents in (nested) LCC instances 2022-10-16 13:08:52 +02:00
Stefan Frederik 0e6c35f598 translate2(): return @spice_get_voltage* strings unchanged; get rid of "@#..." tokens in translate2 (return empty) 2022-10-15 22:50:18 +02:00
Stefan Frederik 93fe5bf414 fix handling empty return value of translate2() in load_sym_def() 2022-10-15 11:16:36 +02:00
Stefan Frederik 3adb192936 @spice_get_voltage(net) error checking 2022-10-15 10:52:07 +02:00
Stefan Frederik 56b63df2fc added @spice_get_voltage(net) recognize in translate() for voltage value update inside LCC schematics 2022-10-15 10:08:58 +02:00
Stefan Frederik adf477fbcc optimization in translate(): @spice_get_voltage will use the "lab" attribute (if existing) to build up the net name to look up in raw file, before reverting to a call to net_name() to get the net from the attached net 2022-10-15 08:55:32 +02:00
Stefan Frederik 1482279224 better tcl evaluate command dialog 2022-10-14 18:43:10 +02:00
Stefan Frederik 41c62134a2 change_layer() now works also for text objects 2022-10-14 00:08:46 +02:00
Stefan Frederik 3c4d9e99fb allow changing start color in rainbow multi-dataset graphs 2022-10-13 19:33:30 +02:00
Stefan Frederik 4833f126f7 fix axis start label positioning (axis_start() and axis_within_range()) 2022-10-13 17:36:42 +02:00
Stefan Frederik 7c60f37f54 better atof_spice() suffix checking, set xctx->current_dirname to $PWD when creating an empty new tab (untitled schematic) 2022-10-13 16:45:27 +02:00
Stefan Frederik f7738329a5 my_fgets() 2022-10-13 13:43:01 +02:00
Stefan Frederik 86e8ee2aae added rainbow checkbutton for multicolor waves in case of multiple datasets 2022-10-13 01:00:55 +02:00
Stefan Frederik 7a7b49f383 removed debug message in verilog_netlist.c 2022-10-12 18:21:28 +02:00
Stefan Frederik c065996057 fix some unfreed pointers -b vhdl_netlist.c 2022-10-12 17:04:29 +02:00
Stefan Frederik 3729a4b3d1 inst_hilight_hash_lookup(): fix wrong format string in debug message 2022-10-12 16:50:09 +02:00
Stefan Frederik e14c8b9a11 wire labels: default name set to p1 instead of l1, so it will not clash with typical inductor names 2022-10-12 16:36:56 +02:00
Stefan Frederik 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 7a1fbb4809 better check_unique_names() and hash_all_names() implementation (do not skip label instances or instances with no format attr). Button click focuses main drawing window even if autofocus_mainwindow is set to 0, to avoid losing keyboard focus forever if TAB is pressed. 2022-10-12 11:56:02 +02:00
Stefan Frederik 7d016eab28 small netlist syntax fix in token.c (correctly skip VHDL time attributes), tedax backend: avoid printing mapping comments for duplicated pins 2022-10-12 09:32:37 +02:00
Stefan Frederik 4664202d9d hilight.c: remove a couple of redundant lines 2022-10-12 01:26:33 +02:00
Stefan Frederik 662c14143d update xschemtest, more robust spice flatten.awk netlist flattener, specifically when translating expressions containing electrical nodes and parameters, all these need to be translated/substituted. 2022-10-12 01:16:23 +02:00
Stefan Frederik 3f627123b2 persists highlights on instances: remove highlighted instance from hash if user selects and presses ctrl-k as it is done for nets. Avoid instance highlight to also highlight net with identical name (example instance x1 and net x1). Verilog and Vhdl netlists handle duplicated (pass-through) pins 2022-10-11 13:12:17 +02:00
Stefan Frederik 137ca971d3 add cmdline option --preinit <commands> to execute given commands before executing xschemrc file. This can be used to switch library search paths depending on a variable setting. 2022-10-11 00:26:06 +02:00
Stefan Frederik b93c9af97c flatten.awk: allow to specify additional custom devices node number with metacomments inserted in the netlist, like *.nodes[W] = 2, or *. nodes["W"]=2 2022-10-10 17:45:56 +02:00
Stefan Frederik 118e937e7f flatten.awk: derive element pattern list ^[EGHFCMDQRGIV] from nodes[] array, to facilitate addition of new devices. 2022-10-10 15:36:50 +02:00
Stefan Frederik 68bf5e4640 netlister code rewrite to allow any combination of pass-through symbols 2022-10-10 14:54:32 +02:00
Stefan Frederik 150c2663b9 added netlist_options as list of symbols not to load in schematics-as-symbol instances, load_file_dialog: make remember last dir work again 2022-10-09 23:49:28 +02:00
Stefan Frederik c5e7e3be29 cleaner get_unnamed_node() function 2022-10-08 22:16:27 +02:00
Stefan Frederik 03d2e685fe code cleanup 2022-10-08 10:07:59 +02:00
Stefan Frederik 4e6513e713 typo fix 2022-10-08 09:52:54 +02:00
Stefan Frederik 5c2b14ebb8 add generic pointer hash table 2022-10-08 09:46:30 +02:00
Stefan Frederik 6be0fc392b refactoring of netlister code 2022-10-07 23:29:42 +02:00
Stefan Frederik 945a26c8f6 handle pass-through symbols chained with wires and no labels attached to wires 2022-10-06 11:48:22 +02:00
Stefan Frederik c5e91f209e allow to use @pinlist in format string even for symbols with duplicated ports. Duplicated entries will be skipped. Add component_browser_on_top tcl variable in xschemrc (default setting: enabled (1) to enable or disable component browser window always on top 2022-10-05 16:47:34 +02:00
Stefan Frederik 0c590e4f0a allow negative integers in expandlabel() ( xx[6:5:-2:3] ) 2022-10-05 15:34:38 +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 1c407e5dd6 faster implementation of name_pass_through_nets() so almost zero overhead when netlisting big circuits with no pass-thru symbols 2022-10-04 15:39: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 06fc742e60 doc updates about {verilog,vhdl,spice}_sym_def, fix regression (possible crash) in verilog_block_netlist (thanks to Joanne), fix regression (wrong verilog test netlist) in print_verilog_primitive() (thanks to Joanne) 2022-10-04 00:37:09 +02:00
Stefan Frederik 29d6655a01 use limiting mylog()/mylog10() functions in expression calculator 2022-10-03 18:29:36 +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 64d947a9dd fix extra and verilog_extra handling in instance lines (verilog netlists) 2022-10-03 09:10:58 +02:00
Stefan Frederik d174306880 added verilog_extra attribute for list of implicit node connections to symbol in verilog netlists. extra attribute still used in verilog as a list of attributes NOT use as component attributes / symbol parameters. 2022-10-03 01:20:33 +02:00
Stefan Frederik 28c644fba7 doc updates (new graph functions) 2022-10-02 20:52:17 +02:00
Stefan Frederik 9acbf3fb41 added prev(), del() function in graph processing. Extend calculation 1 or 2 point beyond viewport for exact deriv/integ/prev/del calculation at left edge 2022-10-02 11:05:29 +02:00
Stefan Frederik 5a39f7be40 cleanups in plot_raw_custom_data() 2022-10-01 10:38:27 +02:00
Stefan Frederik db94f9fb25 @pinlist will be comma separated in verilog netlists 2022-10-01 09:46:58 +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 6296bbc1c6 compile option for 2nd order 3-point backward derivative calculation formulaes for graph expressions 2022-09-29 18:22:55 +02:00
Stefan Frederik 6b4ce14e7d some refactoring of tcl globals, engineering format in cursor display (on unscaled axes) 2022-09-29 14:22:33 +02:00
Stefan Frederik b7c7c336dd added vhdl_sym_def, spice_sym_def, verilog_sym_def attributes for symbols. If defined and not empty the corresponding netlister will insert the content of the attribute instead of the subcircuit schematic implementation. Typically used to include a definition file. Updated documentation 2022-09-29 11:59:43 +02:00
Stefan Frederik ae4b74f2d8 graph axes in engineering notation (20u, 10p, 3k), fix an issue in graph panning with button1 mouse; ngspice:: get_current, get_voltage, get_diff_voltage, get_node embedded into xschem.tcl, to_eng tcl procedure to convert number to engineering form. 2022-09-28 19:14:31 +02:00
Stefan Frederik 9d9a4826fc (Joanne) update to be clearer on how to compile xschem (from scratch vs using XSchemWin.sln) on Windows using VS2022. font.sch micro edits 2022-09-28 11:33:48 +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 d4b6986e24 added File -> Component browser, clicking recent component buttons displays preview 2022-09-27 12:28:54 +02:00
Stefan Frederik 25f0334110 resize some widgets, add femto and tera for x/y axis units 2022-09-27 10:09:51 +02:00
Stefan Frederik 3e6815ccc5 recent components are in paned window (can be resized) 2022-09-27 09:27:39 +02:00
Stefan Frederik 0bb4c9f2e0 New option for non blocking file selector, so it will remain open allowing to pick multiple components (Shft-Insert). Aborted place symbol operation will no more set schematic status to modified 2022-09-26 18:38:19 +02:00
Stefan Frederik 3f11b5fdf6 fix wrong positioning of hash_string 2022-09-25 21:26:22 +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 314acbabda allow tabs and newlines in graph expressions in addition to spaces; updated example schematics 2022-09-23 02:18:51 +02:00
Stefan Frederik 48d1b44220 allow spice multipliers in numbers (20u, 10k, 20p) in graph expressions 2022-09-22 21:12:40 +02:00
Stefan Frederik 3e2bc9f95e added "Annotate operating point" into Simulation menu 2022-09-22 19:47:25 +02:00
Stefan Frederik 9dc1fde024 remove dbg messages 2022-09-22 17:40:36 +02:00
Stefan Frederik e61ef2eabf fixed a potential parse error in edit_prop if list_tokens returns a non list due to malformed input. Added @spice_get_diff_voltage to get a voltage difference between 2 nodes. 2022-09-22 17:35:14 +02:00
Stefan Frederik 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 2487ee98e2 do not set time_last_modify (set to 0, undefined) when loading a schematic that does not exist (untitled) 2022-09-22 14:46:52 +02:00
Stefan Frederik d473e8b1ab updated docs with additional video on graphs and Xyce sim 2022-09-22 13:45:55 +02:00
Stefan Frederik 6f907b5430 updated test schematics to use new xschem annotate_op instead of ngspice::annotate 2022-09-21 18:38:53 +02:00
Stefan Frederik 9c89a08111 better backannotation info placement in net labels, fixes in translate() for @spice_get_voltage and @spice_get_current, fixes in ngspice_backannotate routines. 2022-09-21 17:24:16 +02:00
Stefan Frederik 931c1520e3 make op backannotation in schematic work also if raw file loaded at hierarchy level > 0 2022-09-21 13:58:01 +02:00
Stefan Frederik 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 c5c4d48729 fix expandlabel.y, avoid producing a[7],a[5],a[3],a[1],a[-1] when expanding a[7:0:2] 2022-09-20 23:58:29 +02:00
Stefan Frederik ea702976ee cleanup/free data in read_dataset() on malformed input file 2022-09-20 23:16:59 +02:00
Stefan Frederik 933faceabf some cleanups in scheduler.c "xschem annotate_op" command. 2022-09-20 23:07:50 +02:00
Stefan Frederik c695c435d2 move initialization of s=0 outside the loop in backannotate_at_cursor_b_pos(). If only_probes is set do not display graphs and images. 2022-09-20 17:59:01 +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 8169196b35 bypass tcl for voltage and current backannotation in schematic from cursor b positon in graph 2022-09-20 03:12:46 +02:00
Stefan Frederik 7abceb3344 fix regression in ngspice::get_current, simplified voltage reporting in net label symbols 2022-09-20 00:12:27 +02:00
Stefan Frederik f73166efd1 better number formatting in backannotation. Alt-e if nothing selected opens another copy (tab/window) of current schematic (after warning) 2022-09-19 22:27:42 +02:00
Stefan Frederik e8b7714eca fixes in ngspice_backannotate.tcl to work with Xyce as well as ngspice 2022-09-19 12:54:56 +02:00
Stefan Frederik 73e8b440c8 if sweep variables are defined on X axis (instead of default index 0) use first sweep X-axis var in live cursor backannotation 2022-09-19 12:19:39 +02:00
Stefan Frederik 6f102ff05a make cursor live backannotation work on logscale X axes 2022-09-19 12:08:07 +02:00
Stefan Frederik 53dc7fe3bf add backannotation info (as hidden text) in lab_pin.sym, lab_wire.sym, transitioning example schematics from old (push) backannotation model to new pull model. 2022-09-19 11:22:04 +02:00
Stefan Frederik 09f2727168 fix: update backannotation data in schematic if changing dataset with "t" key 2022-09-19 02:04:14 +02:00
Stefan Frederik ad6cbb4df6 let cursor graph backannotation work for multiple sweeps (implicit datasets) 2022-09-18 23:29:48 +02:00
Stefan Frederik 7afbd6a51d various small fixes for cursor b backannotation, updated xschemtest netlist hashes 2022-09-18 12:25:09 +02:00
Stefan Frederik c06034e33e performance optimization in live cursor b backannotation 2022-09-18 11:06:48 +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 5dc0b14de4 fix a crash due to reentrant call of preview schematic drawing caused by an Expose event if an alert box is displayed due to errors in schematic to preview 2022-09-17 11:27:42 +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 5305e593ff correct full zoom when swicthing full screen 2022-09-16 08:43:01 +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 decf7d9d2e add #if conditions for svg_embedded_graph() 2022-09-15 20:16:35 +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 Schippers 87937a5add full zoom applied when going to true fullscreen 2022-09-14 20:59:38 +02:00
Stefan Frederik f40a3d9b7e remove redundant extern declaration 2022-09-14 13:36:37 +02:00
Stefan Frederik e5d60bb92a tuning of is_xschem_file proc to avoid misdetecton of valid files 2022-09-14 11:37:39 +02:00
Stefan Frederik 6655a4a616 add more informative message (name of schematic with error) in case of parselabel failing to recognize an identifier (net name or instance name usually) 2022-09-14 09:11:40 +02:00
Stefan Schippers f6e9ec3233 removed useless code left over after previous commit 2022-09-13 19:06:01 +02:00
Stefan Schippers 66bcc876a7 look for inutile stimuli files in schematic directory instead of in simulation directory 2022-09-13 18:53:17 +02:00
Stefan Frederik 6effda2bfc fix find_closest_dataset() if log scale axes are used 2022-09-13 13:39:25 +02:00
Stefan Frederik d4fe981525 ngspice_backannotate.tcl: handle Xyce operating point data, removed hspice_netlist (no more existent) 2022-09-13 12:01:58 +02:00
Stefan Frederik 835b420df1 tclpropeval2(): hierarchy separator replacement for Xyce no more necessary 2022-09-13 00:53:47 +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 e2846daca5 inst_hash_lookup() will insert and lookup only instance basename (x1[3:0] --> x1) so better and stronger uniquenes of instance names is ensured. ngspice_backannotate accepts a filename (if not given assume as before <circuit_name>.raw) 2022-09-12 12:01:26 +02:00
Stefan Frederik cd083c91e8 improve xyce netlist processing hooks (save ammeter currents), cmos_example.sch can now be simulated in ngspice and xyce 2022-09-11 13:21:24 +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 1ad524829b enabled (empty) custom completer for tclreadline 2022-09-10 09:29:45 +02:00
Stefan Frederik 9c636cbee1 fixed a possible out of bound array writing (crash) on malformed graph bussed nodes in get_bus_idx_array() 2022-09-10 01:39:30 +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 d05926e0ca better template for Xyce parallel launcher 2022-09-09 08:41:00 +02:00
Stefan Frederik 3ef32a1eef try more upper/lower case combinations in get_raw_index() function, removed some debugging messages 2022-09-09 02:11:09 +02:00
Stefan Frederik 6baeb53a51 added template for parallel Xyce run in Configure simulators and tools dialog box, added sim_is_ngspice convenience procedure. This allows (together with sim_is_xyce and may be others) to differentiate commands depending on simulator type 2022-09-09 01:46:46 +02:00
Stefan Frederik f78fc5494d set_text_custom_font xctx->cairo_ctx can be NULL when netlisting without X with 0_examples_top.sch; net_name(..) doesnt work on duplicate pin for test_doublepin.sch so added back the condition in rev 2243; added HAS_CAIRO directive to compile on Windows that dont have CAIRO turned on.
remove some old unused variables
2022-09-08 20:58:12 +02:00
Stefan Frederik 9efacd8a8b Revert r2272; zoom by area plots reverse x axis if done with Shift key pressed 2022-09-07 09:31:09 +02:00
Stefan Frederik 503f080db1 balloon tooltip procedure made more general. Easy to reuse for any widget 2022-09-05 18:06:57 +02:00
Stefan Frederik ecca24191e fixes in fullscreen code (restore zoom lavels) 2022-09-04 14:16:38 +02:00
Stefan Frederik f022fae205 correctly reset size of 1st tab if other tabs are closed and the window size was changed meanwhile 2022-09-04 09:39:19 +02:00
Stefan Frederik 02c1dce486 zomm area in graphs: if dragging backward (in x direction) reverse x axis. 2022-09-04 01:09:05 +02:00
Stefan Frederik c7501d4a28 fix UI lockout (can not switch tabs) if a tab is closed with bindkey ctrl-q 2022-09-03 22:19:49 +02:00
Stefan Frederik 2095995b51 apply [t]rack operation to all locked (instead of selected) graphs 2022-09-03 09:46:22 +02:00
Stefan Frederik b7bf351801 [t]rack bindkey applied to digital graphs if they are selected, although track does not work if pointing in digital graphs 2022-09-02 18:19:39 +02:00
Stefan Frederik 5c808505b3 [t]rack bindkey applied to all selected plots in addition to graph where mouse is pointing 2022-09-02 18:09:51 +02:00
Stefan Frederik ae1bed65f4 added [t]rack bindkey in graph to display the wave closest to mouse in multiple dataset plots 2022-09-02 17:11:50 +02:00
Stefan Frederik ad152b24a3 fixed and simplified toggle_fullscreen() 2022-09-02 12:09:56 +02:00
Stefan Frederik b065986c87 reduce tcl global namespace pollution, better widget packing in main window (toolbar/tabs/menubar/statusbar) 2022-09-02 10:41:06 +02:00
Stefan Frederik f7336e9064 better placement and layout of the 5 main window parts: .menubar, .toolbar, .tabs, .drw and .statusbar, specifically w.r.t. runtime changes (toolbar H/V, toolbar on/off, tabs on/off ... 2022-09-02 01:21:51 +02:00
Stefan Frederik e7c4111f8e simplified print_tedax_subckt, some optimizations in netlisting code (avoid some strdups) 2022-09-01 17:25:25 +02:00
Stefan Frederik 9e9660c562 no trailing spaces in saved xschem files (there was one in version strings "v {...}" 2022-09-01 15:10:00 +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 f5b0cd933c compacted a bit the ctxmenu 2022-08-29 18:06:56 +02:00
Stefan Frederik 11babab5cf faster toolbar creation, 2px reduction in toolbar height, better add_custom_button.tcl and add_custom_menu.tcl example codes 2022-08-29 13:24:43 +02:00
Stefan Frederik 4c849c44fa force setting line width if window geometry changed and fixed/non variable line width was set. 2022-08-29 09:27:23 +02:00
Stefan Frederik bd64f86dbc no filled circles if layer has no fill (fill_type[c] == 0) 2022-08-28 23:50:57 +02:00
Stefan Frederik 050807ebe4 yet another fix in svg export code for solid/stipple/no-fill options 2022-08-28 23:11:55 +02:00
Stefan Frederik 75147ab8cc if solid pattern fill is selected globally do solid pattern fills in svg export too.; enforce 24 pixel toolbar button heights, remove border width to gain space. 2022-08-28 22:08:18 +02:00
Stefan Frederik 8be273b9f7 fix regression on menu fullscreen command 2022-08-28 11:23:51 +02:00
Stefan Frederik 1519afa241 various fixes in compare_schematics() 2022-08-28 10:23:32 +02:00
Stefan Frederik eebd2b38fa add sample add_custom_button.tcl script to add custom toolbar buttons 2022-08-28 00:27:52 +02:00
Stefan Frederik 3434331f2f add better error reporting in case of tcp port conflicts 2022-08-27 14:14:06 +02:00
Stefan Frederik 4136f7cf10 return loaded filename in xschem load command 2022-08-27 13:30:30 +02:00
Stefan Frederik 41acfd91dd some small code refactoring, allow multiple selected (bold) waves, one per graph, store the bold waves into file 2022-08-27 12:56:33 +02:00
Stefan Frederik 53efa4c381 if ALt-x (compare schematics) is given before setting a compare filename, schematic is compared with saved version of itself 2022-08-26 15:56:48 +02:00
Stefan Frederik 3c980ce956 compare schematics does not require to save schematic 1, so a comparison with the saved version of itself is possible, showing the differences after editing. 2022-08-26 15:29:10 +02:00
Stefan Frederik 5100803673 translate() optimization 2022-08-26 09:20:30 +02:00
Stefan Frederik a53fc67404 save schematic before doing schematic compare as it will be reloaded from disk at end. 2022-08-25 23:01:56 +02:00
Stefan Frederik 279e4604ea compare_schematics() do not hash wire prop_ptr (unnecessary) 2022-08-25 14:19:19 +02:00
Stefan Frederik d279783faa added menu entries to set and conmpare with schematic. 2022-08-25 13:59:36 +02:00
Stefan Frederik a2de3e9c1b Added compare_schematics() function. Empty graphs (no data loaded) are not editable. Set window title if opening a non-existent file. 2022-08-25 00:25:29 +02:00
Stefan Frederik 67ff8844f5 add xschem get zoom to query zoom factor 2022-08-24 11:22:26 +02:00
Stefan Frederik dffc266e0d improve test_backannotated_subckt.sch example, remove dbg messages 2022-08-23 10:44:00 +02:00
Stefan Frederik 0f5881cd61 print_spice_subckt(): check for tcl_hook2() errors, check for NULL in strtoupper/strtolower, fix unitialized local variable 2022-08-23 10:01:32 +02:00
Stefan Frederik bd5cb7b9df add license info on traversal.tcl 2022-08-21 13:35:37 +02:00
Stefan Frederik c99282e463 fix typo in src/Makefile.in 2022-08-21 13:21:31 +02:00
Stefan Frederik a14c541d9e allow "xschem descned -<n>" (n=number) to descend into nth rightmost instance; added traversal.awk script 2022-08-21 13:18:39 +02:00
Stefan Frederik 0dfbc9ded9 added return status from descend_schematic() 2022-08-21 12:24:26 +02:00
Stefan Frederik 20d1080171 improve uniqueness name checking (do not consider non netlist elements, like pins, title, etc) 2022-08-21 11:55:34 +02:00
Stefan Frederik ef2e059c59 instance names (refdes) are hashed as uppercase, so collision check will be case insensitive, if enabled 2022-08-21 10:22:56 +02:00
Stefan Frederik 9ed7d3b039 remove ## from netlist if "#@attribute\\#@name" is used in format string and "attribute" is undefined or empty 2022-08-20 13:51:20 +02:00
Stefan Frederik 2502208671 if a subcircuit has spiceprefix set in template string do not consider it as an attribute to dump in netlist as a subckt parameter (.subckt xxxx A B C spiceprefix=X) 2022-08-20 11:23:18 +02:00
Stefan Frederik 5df286bec5 spice netlister code was incorrectly resetting spiceprefix to 1 2022-08-20 09:23:38 +02:00
Stefan Frederik 6c8d20fdc2 better bbox hashing to avoid false overlap positives 2022-08-19 12:46:35 +02:00
Stefan Frederik c134175687 better overlap detection hash calculation 2022-08-19 12:00:02 +02:00
Stefan Frederik d3cc957fa3 warning and highlight perfectly overlapped symbols 2022-08-19 10:56:26 +02:00
Stefan Frederik 84f9497755 fix graph zoom by area with mouse drag and absolute x positioning of locked graphs that are not vertically aligned 2022-08-19 01:23:45 +02:00
Stefan Frederik 3419db3601 remove extra blank in .subckt spice netlist lines 2022-08-18 12:14:23 +02:00
Stefan Frederik 9b3251b85e clear "Simulate" button background if new window/tab is created while simulation running in original window 2022-08-18 11:26:41 +02:00
Stefan Frederik c1d229b917 better str_replace() implementation 2022-08-18 10:21:14 +02:00
Stefan Frederik a3828e6641 redo r2216 change in a different way to avoid regressions 2022-08-18 01:45:02 +02:00
Stefan Frederik 15d8b8f1c8 reverted 2216 changes as these cause regressions. token.c back to r2215 2022-08-17 20:37:29 +02:00
Stefan Frederik 6e8af5410b all get_tok_value() calls in netlisting code will do tcl substitution (if attributes wrapped into tcleval()) to allow full conditional symbol netlisting 2022-08-17 09:09:00 +02:00
Stefan Frederik cc49909282 better clip off-graph data 2022-08-14 15:05:08 +02:00
Stefan Frederik 2e37724959 add "Plotname: constants" to the list of recognized ngspice plots in raw file 2022-08-14 14:14:19 +02:00
Stefan Frederik 86311f8d47 focus main window when mouse leaves SNAP or GRID text entries 2022-08-14 08:17:44 +02:00