Commit Graph

668 Commits

Author SHA1 Message Date
stefan schippers 3c73bb918b add case insensitive matching in xschem search function 2023-07-12 13:58:54 +02:00
stefan schippers d06b1c83ae fix regression(repo.hu: r2353, github: 0bb4c9f) : "xschem instance" command not setting modified flag on schematic, so following xschem save doing nothing. 2023-07-06 23:56:33 +02:00
stefan schippers 587a847722 add xschem command `xschem instance_coord [instance]`: returns placement coords, rotation, flip of selected or specified instance 2023-07-06 09:12:31 +02:00
stefan schippers cdecc6ad04 xschem netlist command accepts an optional filename argument 2023-07-03 09:06:46 +02:00
stefan schippers eaa56bdc45 make the "xschem_quit" command work (close current window / tab) also if xschem started in -x (no graphics) mode 2023-06-26 07:57:00 +02:00
stefan schippers 5d9e0d3d8a enable xschem to load multiple files even if started with "-x" (only CLI mode) 2023-06-25 23:33:26 +02:00
stefan schippers 40d8b960f3 fix initial full zoom of schematics loaded with xschem load file from the xschem tcl prompt 2023-06-23 23:36:11 +02:00
stefan schippers c6df85cce5 apply center full zoom in all zoom full commands if tcl variable zoom_full_center is set 2023-06-23 09:04:55 +02:00
stefan schippers c97dfddd4e fix memory leak due to improper use of get_pin_and_attr() 2023-06-17 10:14:55 +02:00
stefan schippers a6462269dc refactor token.c: added get_pin_number(), get_pin_and_attr() 2023-06-16 23:08:00 +02:00
stefan schippers c3d03cd6d2 show red dot when cuting a wire with new alt-right button click on a wire. Added also menu command in Tools 2023-06-14 10:08:50 +02:00
stefan schippers 89d847fb62 fix a bug in `xschem annotate_op` function not showing data if `Live annotation...` option was not set beforehand. 2023-06-12 09:13:20 +02:00
stefan schippers 2b0655e3e9 improve `Shift-M` command by stretching nets that land on instance pins while moving instances 2023-06-10 23:41:02 +02:00
Stefan Schippers d5cc702fe8 Add command "Tools -> Remove wires running throuh selected inst. pins" 2023-06-10 17:24:12 +02:00
stefan schippers 3eeaf53cd4 improve quit_xschem command and xschem new_schematic destroy_all 2023-06-09 08:12:39 +02:00
stefan schippers a6e5b150a5 added command `xschem getprop instance_notcl` to avoid tcl subst of the resulting attribute; improved fix_symbols to fix also parametrized generators (pcells) 2023-06-08 23:02:40 +02:00
stefan schippers f5db2b63f8 use get_window_count() instead of new_schematic("ntabs"...) 2023-06-08 11:23:25 +02:00
stefan schippers de1f4f0d86 added commands `xschem switch [win_path|schname]`, `xschem destroy_all [force]`, added `[force]` option to xschem exit 2023-06-08 10:40:52 +02:00
stefan schippers a27a187bb4 small update to `xschem exit` function documentation 2023-06-08 06:38:36 +02:00
stefan schippers edaf4ccce9 Add low level function xschem reset_symbol, changed defaults in xschem: now toolbar and tabbed interface (more robust than multi-window) is enabled by default, doc updates, improved fix_symbols for setting/removing path compoents from symbol references, now uses low-level xschem reset_symbol (faster) 2023-06-08 00:03:25 +02:00
Stefan Schippers bbb239dc21 faster `xschem replace_symbol` command 2023-06-07 20:31:25 +02:00
stefan schippers ff216e8187 function reset_flags() set flags on symbols and instances; call reset_flags before rebuilding connectivity to update cached values; add short.sym component that can be used to short two nets together (and remove the short using *_ignore=true); instcheck(): do not proces instances that have *_ignore=true set. 2023-06-06 08:42:43 +02:00
stefan schippers d4641f2b1a doc updates (developer_info.html) 2023-06-04 23:05:13 +02:00
stefan schippers 55d011ba7b added necessary comments in swap_windows() / swap_tabs() functions 2023-06-04 22:54:39 +02:00
stefan schippers 2312bfc34e non-empty string given as win_path in `xschem new_schematic create` will avoid warnings if opening multiple windows/tabs of the same file. do not issue warnings if calling xschem with multiple identical schematic files from the command line. `xschem new_schematic` command: use abs_sym_pth on given filename to get correct path. 2023-06-04 21:48:43 +02:00
stefan schippers 331934afc6 added abs_sym_path() in file name resoluton in `xschem load_new_window` command 2023-06-04 20:44:36 +02:00
Stefan Schippers ed78a0fe72 remove test mode 2023-06-04 17:35:43 +02:00
stefan schippers 5b5fa27408 remove unused var 2023-06-04 15:39:02 +02:00
stefan schippers 7aa6ecfbd6 make `xschem exit` (ctrl-w, close window) work in multi-window mode exactly as in tabbed interface, allowing to close the root window (will be swapped with subwindow and deleted) 2023-06-04 15:37:35 +02:00
stefan schippers ec5577c07f removed File menu commands `Empty schematic in new window` and `Empty symbol in new window` since these just create another xschem process. Added `File->Start new xschem process`. `xschem new_window` and `xschem new_symbol_window` commands removed, added `xschem new_process 2023-06-04 00:46:01 +02:00
stefan schippers e68ca0a0cc Place polygon bind key is now `p`, ctrl-w is now `Close current schematic`, while ctrl-q is `Quit xschem`. Reorganized File menu, added more orthogonal `Create new schematic/tab` removed some largely unused entries. Ctrl-w does not close the last window, just leaves it blank. Use ctrl-q to close xschem 2023-06-03 23:57:35 +02:00
stefan schippers 57ea120a33 removed some direct exit() calls in editprop.c 2023-06-03 12:19:34 +02:00
stefan schippers 6e2754020b added function swap_tabs() (wip) 2023-06-03 09:37:43 +02:00
stefan schippers 0244dc5e69 add command xschem tab_list, returns window pathname and associated filename loaded 2023-06-03 00:21:55 +02:00
Stefan Schippers f5c592c889 xschem resolved_net command: add [net] parameter; instcheck(): use inst[].lab instead of get_tok_value(inst[].prop_ptr, "lab",0) 2023-06-01 18:00:47 +02:00
stefan schippers bb9ad82d80 fix memory leak when using new resolved_net() fn 2023-05-27 14:13:50 +02:00
stefan schippers cf61c253c5 fix a bug in my_mstrcat if an empty string is appended; add resolved_net(n) function that returns the top-most hierarchy name of the net mapping to upper level port connections if any; add xschem resolved_net comand that returns the resolved_net of selected wire/label/pin; add @#n:resolved_net pattern in symbol texts that uses resolved_net 2023-05-27 11:20:49 +02:00
stefan schippers 09a373954f initial implementation of portmap feature: from sub-schematics resolve hierarchic name of schematic nets connected to I/O pins (go to the upper level recursively until resolved) 2023-05-26 11:56:52 +02:00
stefan schippers 694bc631a0 redraw schematic when switching netlisting mode (Shift-V) to redraw disabled/enabled components for the new netlisting mode; The Properties->Toggle *_ignore... menu will do nothing if in symbol netlisting mode 2023-05-24 09:08:57 +02:00
stefan schippers 32460f33c9 improved "xschem display_hilights [nets|instances]" that displays highlight nets or instaces or both,with full hierarchy path, not including uninteresting net/pin/net_show elements. 2023-05-23 09:10:01 +02:00
stefan schippers 6de12e5a0f (2) update examples/test_bus_tap.sch 2023-05-22 08:09:42 +02:00
stefan schippers 8f63560737 examples/test_bus_tap.sch: auto set show_pin_net_names=1 2023-05-22 08:05:37 +02:00
stefan schippers 5c22d26072 update copyright info to 2023 2023-05-21 12:52:19 +02:00
stefan schippers c2e5c61b35 graphs: add xmag and ymag entry boxes for custom magnification factor for x/y axis labels, fix current_dirname handling when netlisting hierarchical http(s) designs. The goal is to allow netlisting remote designs seamlessly 2023-05-20 23:21:43 +02:00
stefan schippers 827d4c5aac added "xschem reset_flags" command to update and sync cached attributes of symbols and instances 2023-05-19 10:08:43 +02:00
stefan schippers 96eea54894 some code refactoring, duplicate code replaced with set_inst_flags(), set_sym_flags(), various fixes/optimizations about floaters 2023-05-14 12:58:25 +02:00
stefan schippers ee1979b8b2 low level functions for floaters and floater text caches is implemented 2023-05-13 13:13:35 +02:00
stefan schippers 9ea9d529f7 fix toggle_ignore function. If multiple elements selected with different *_ignore attributes flip each one of them accordingly. Baseline code added for text floaters 2023-05-12 14:54:22 +02:00
stefan schippers 9ea93e9938 hide_texts=true attribute added on instance will avoid the display of all symbol texts (will be probably used when using floater symbol texts) 2023-05-12 12:09:20 +02:00
stefan schippers 16b7bd068c disabled elements are displayed in grey and dashed. Properties->toggle *_ignore function can be undone 2023-05-12 10:31:09 +02:00
stefan schippers 5e281e7f10 *_ignore attributes for instances and symbols cached in .flags struct member for speed optimization. added some generator netlist testcases in xschemtest.tcl 2023-05-10 23:29:16 +02:00
stefan schippers 7ad930e7f0 istances with *_ignore=true attribute will be drawn greyed out in schematics in the corresponding netlisting mode; command in Properties menu to toggle this attribute on selected instances 2023-05-10 03:13:13 +02:00
stefan schippers f282a96cec better output formatting in "xschem instance_list" command, fix test_mosgen.sch absolute paths in symbols 2023-05-04 01:59:17 +02:00
stefan schippers 4b9f61612b symbol generators may now take attributes like: "mosgen( @model )", with @model expanded to instance (or symbol template) value. update_symbol() updated to reflect this change. 2023-05-02 17:49:44 +02:00
stefan schippers ae8931c788 remove bbox() START/ADD/SET/END from some drawing operations. No observable performance impact and redraw is now more pixel precise, reducing artifacts. 2023-05-01 22:28:56 +02:00
stefan schippers 4c3b4d0321 various tcl_hook2() additions on instance names to handle procedures, fix bbox calculation in xschem replace_symbol command 2023-05-01 14:37:10 +02:00
stefan schippers d9d66c1c90 removed redundant skip_dir(...) (use get_cell(..., 0) ), fix a couple of glitches in postscript export (filled polygons with self-coincident edgs, fix filled arc pies (missing point) 2023-04-26 23:00:20 +02:00
stefan schippers cd6ef78841 schematic generator netlisting seems to work. renamed is_symgen() -> is_generator() 2023-04-24 13:26:04 +02:00
stefan schippers 3facbf6428 spice netlisting of schematics with parametrized symbol generators should work 2023-04-23 00:37:31 +02:00
stefan schippers f1ed2bf26f fixed is_symgen() regex, added stup for tutorial_symbol_generators.html 2023-04-22 11:29:44 +02:00
stefan schippers f5ce5987c9 fixed memory leak in copy_symbol(), split copy_symbol() to copy_symbol1() in action.c 2023-04-21 23:29:26 +02:00
stefan schippers 9eb4e9440c handle symbol_ref(param1,param2,...) symbol generator scripts, added some utility functions str_chars_replace(), is_symgen(), fix some quoting/backslash subst issues in get_sym_template() 2023-04-21 11:41:20 +02:00
stefan schippers 631fedb11b enabled escape_chars convenience function, added "embedded" parameter to load_sym_def() to better distinguish loading an embedded symbol from loading a regular symbol with a provided file descriptor 2023-04-20 10:44:31 +02:00
stefan schippers a5492be752 print_spice_subckt_nodes(): use (improved to handle escape chars) str_replace() to substitute @symname, added xschem str_replace, improved xschem symbols 2023-04-18 00:20:40 +02:00
stefan schippers a5a8193231 scheduler(): add get_symbol(s), similar as get_instance(s) 2023-04-17 15:55:00 +02:00
stefan schippers ca0708a4c3 added "xschem setprop symbol" command, updated docs 2023-04-17 11:45:59 +02:00
Stefan Schippers ebfcde42de change preprocessor defined(HAS_CAIRO) to HAS_CAIRO==1 2023-04-09 15:36:06 +02:00
stefan schippers 192e873f0c fix lazy list building in "xschem ..." commands (put separator after last item), as some parsers choke on this. 2023-04-08 22:27:59 +02:00
stefan schippers 5e3445a80e implement xschem sch_pinlist command, improve xschem pinlist inst [attr], improve make_sym.awk (no trailing spaces in pin attributes) 2023-04-08 13:19:49 +02:00
stefan schippers 07bdb94601 add xschem instance_list command, updated docs 2023-04-06 20:10:57 +02:00
stefan schippers 0bb50ce7ff xschem selected_set command: return instance names properly quoted 2023-04-06 10:55:01 +02:00
stefan schippers 63d4c55a09 fix missing error setting on sym_vs_sch_pins() in tedax_netlist. 2023-03-28 22:32:28 +02:00
stefan schippers eeb71c33bf forgot to update xschem load command description 2023-03-26 11:35:06 +02:00
stefan schippers 3fd24c69c4 improve xschem load command (no warning if opening an already open file, if doing that from script) 2023-03-26 11:33:05 +02:00
stefan schippers e4e2ba37cc xschem load from script: no alert box warning if new file given 2023-03-25 09:41:53 +01:00
stefan schippers 96aa251ca0 fix execute tcl procedure (correctly handle exit status of subprocesses that write to stderr but not as a failure) 2023-03-25 02:00:50 +01:00
stefan schippers fa33aca682 do tilde substitution (with home directory) in xschem tcl commands 2023-03-24 15:37:26 +01:00
stefan schippers 6bcb74bdb0 add tcl procedures documentation in developer_info.html 2023-03-24 13:14:27 +01:00
stefan schippers 2725e0c533 add exit code to xschem netlist command, add execute(error,last) and execute(exitcode,last) to inspect stderr and exit code of last simulation job 2023-03-23 18:34:14 +01:00
stefan schippers 757fd0a378 better range checking for commands "xschem get schname" and "xschem get sch_path" 2023-03-22 11:22:41 +01:00
stefan schippers a0fb4c5ee6 improve xschem check_symbols command 2023-03-19 12:54:46 +01:00
stefan schippers 601a128e37 doc updates (xschem command reference) 2023-03-18 23:38:47 +01:00
stefan schippers b6a8add190 Warn if no application is defined to open html command reference 2023-03-15 09:01:10 +01:00
stefan schippers b5852ffc70 print current_dirname in xschem globals command for debug 2023-03-11 11:29:35 +01:00
stefan schippers a75afa56d5 xschem setprop instance: fix flags setting if hide or highlight attributes are given/changed 2023-03-10 23:45:15 +01:00
stefan schippers 3ec47760a7 xschem logic_get changed to xschem logic_get_net for consistency 2023-03-10 02:54:53 +01:00
stefan schippers af6c01ab44 add command xschem logic_set_net <net_name> <value> [ntimes] to set a specific net instead of selected nets 2023-03-10 02:42:04 +01:00
stefan schippers 847d1df1b3 xschem logic_get: return X instead of empty string if net has never been assigned 2023-03-10 02:14:55 +01:00
stefan schippers 7bc63e0dfd add xschem logic_get command to get logic state of nets 2023-03-10 02:04:08 +01:00
stefan schippers 25f34ee413 add xschemrc variable zoom_full_center, if set to 1 full zoom will center the schematic instead of anchoring to lower-left drawing area corner. 2023-03-09 22:48:25 +01:00
Stefan Schippers a01dbcb457 doc updates (better formatting) 2023-03-04 19:09:29 +01:00
stefan schippers 896bb4e317 doc update 2023-03-04 11:09:54 +01:00
stefan schippers bf6b20a1ce In source Documentation (scheduler.c) of xschem commands, html docs updated 2023-03-03 18:29:17 +01:00
stefan schippers ebf4fa1f44 Initialize stack2[] to double 0.0 2023-03-01 18:34:07 +01:00
stefan schippers 32288e056e fix xschem fullxzoom command (missing setup_graph command) 2023-02-26 23:33:07 +01:00
stefan schippers 94fee133ca add commands xschem setprop rect 2 <n> fullxzoom and fullyzoom 2023-02-26 13:07:14 +01:00
stefan schippers b162ecdf48 remove unused parameter in setup_graph_data() 2023-02-26 11:22:19 +01:00
stefan schippers f75ed4827b fix xschem load command (dont get fooled by .sym extension, could not be a symbol). Always load as a schematic (sym and sch are the same thing 2023-02-22 23:27:50 +01:00
stefan schippers a8aaf996e7 use pre-increment where expression is not used 2023-02-18 09:44:11 +01:00
stefan schippers f0a359e65a better xschem table_read command implementation 2023-02-10 18:08:45 +01:00
stefan schippers 42c3024eda remove debug allocation IDs 2023-02-09 21:06:27 +01:00
stefan schippers 3be9a66aed fix memory leak in table_read() 2023-02-09 21:04:22 +01:00
stefan schippers e5227d6a31 rename top_subckt to lvs_netlist (more appropriate), better tcp interface (redirect stdout to socket in addition to command return value) 2023-02-09 11:30:27 +01:00
stefan schippers b2f1a22936 added command xschem hilight_instname 2023-02-01 17:47:45 +01:00
stefan schippers 29ef08e84b better memory tracking reporting (my_strcat and my_strncat allocations) 2023-02-01 11:38:28 +01:00
stefan schippers baca559ffc refactor some code (use set_text_flags() to avoid repetitive code), add xschem setprop text and xschem getprop text commands to set/get text attributes 2023-02-01 00:23:33 +01:00
stefan schippers 1da5e47d4a remove my*() allocation routines unique IDs and replace with _ALLOC_ID_ macro, to be substituted in debug sessions with create_alloc_ids.awk 2023-01-23 15:42:15 +01:00
stefan schippers 03b2b8652e fixed filter_data routine that was clobbering ps export file, now ps output is correct without the need to add fflush() functions, that are thus removed in psprint.c 2023-01-18 00:24:28 +01:00
stefan schippers 19757ddd8a add menu properties -> Edit header/License text, to allow inserting header or license metadata into the sch/sym file. 2023-01-02 03:04:35 +01:00
stefan schippers e01f545567 --diff option to visually compare two different (versions of) schematics 2022-12-13 13:51:33 +01:00
stefan schippers 3d5bb6d64a add command "Simulation->Changelog from current hierarchy" that lists schematics from current hierarchy , sorted by modification time 2022-12-10 00:28:59 +01:00
stefan schippers e54c604087 better recognize unknown commands in scheduler.c, re-enabed XCB detection in scconfig (although not used). 2022-12-07 11:32:40 +01:00
Stefan Frederik 6cd9d76f90 initial implementation of fetch schematics from web 2022-11-15 01:17:33 +01:00
Stefan Frederik 066a65bfef removed some static hashtable declarations in netlisting code 2022-10-25 23:37:28 +02:00
Stefan Frederik a6dc3d47c3 cache embed attribute of instances for faster lookup 2022-10-21 11:04:20 +02:00
Stefan Frederik a820cc2e3f removed (now) duplicated inst_hash_lookup: use int_hash_lookup. Search function does not highlight nets if searching for something that is not "lab" 2022-10-12 13:14:48 +02:00
Stefan Frederik 03d2e685fe code cleanup 2022-10-08 10:07:59 +02:00
Stefan Frederik 47fb2085ff update send_net_to graph() and send_current_to_graph() to use sch_waves_loaded() as the hierarchy level where raw file was loaded, to skip upper path designators 2022-10-05 12:06:37 +02:00
Stefan Frederik 9dbe4343e2 added label notation EN[0:3:6:5]: EN[start🔚offset:repetitions], it will expand to a 20 bit bus: a[0],a[1],a[2],a[3],a[6],a[7],a[8],a[9],a[12],a[13],a[14],a[15],a[18],a[19],a[20],a[21],a[24],a[25],a[26],a[27] 2022-10-05 02:23:37 +02:00
Stefan Frederik 5fe2f1586b refactor str_hash_* and int_hash_* functions 2022-10-05 01:18:45 +02:00
Stefan Frederik 9c29324c8a allow nets with no label pass thru symbols with duplicated pins. named nets will propagate through duplicated pins 2022-10-04 12:34:09 +02:00
Stefan Frederik 4bbed85d23 faster jump table in plot_raw_custom_data(), added simulation->add waveform reload launcher 2022-10-03 11:15:14 +02:00
Stefan Frederik d06310deae cleanups and faster branch tables in scheduler.c 2022-09-30 18:12:17 +02:00
Stefan Frederik 08aff09cf9 scheduler.c cleanup 2022-09-30 13:08:53 +02:00
Stefan Frederik fc16997d0c switch dispatcher instead of if-else in scheduler.c 2022-09-30 00:19:27 +02:00
Stefan Frederik f26d082389 cleanups(2) in scheduler.c 2022-09-29 22:52:15 +02:00
Stefan Frederik b20ca9b501 cleanups in scheduler.c 2022-09-29 22:35:44 +02:00
Stefan Frederik f45278ebe3 cleanups in scheduler.c 2022-09-29 19:16:03 +02:00
Stefan Frederik 6d17797d0b add Highlight->Select overlapped instances command 2022-09-27 18:35:42 +02:00
Stefan Frederik 472751dfc0 better file globbing in load_file_dialog 2022-09-27 13:15:04 +02:00
Stefan Frederik fd72e72dba test and got svg_embedded_graph(...) to work on Windows with Cairo (Joanne). added some #ifndef __unix__ guards to avoid compiler warnings about defined and not used functions, initial implementation of "Recent components" browser. 2022-09-25 21:11:52 +02:00
Stefan Frederik 03842a3e4a new added graphs will have dataset attr set to -1 to include by default all datasets 2022-09-22 14:55:51 +02:00
Stefan Frederik e67ff344c8 cleanup/rename some xctx variables and graph-related functions, avoid drawing graphs using data file loaded from from schematics that are unmatched with current schematic or up in the hierarchy levels 2022-09-21 11:25:45 +02:00
Stefan Frederik 933faceabf some cleanups in scheduler.c "xschem annotate_op" command. 2022-09-20 23:07:50 +02:00
Stefan Frederik af475e00df xschem raw_read accepts an optional type argument after file name (tran, ac, dc, op, ...) to select type of simulation to load from raw file. New command xschem annotate_op will replace ngspice::annotate tcl procedure. 2022-09-20 16:49:42 +02:00
Stefan Frederik 96f80d1d33 Alt-a in graph annotates schematic with values at cursor b position. Simulation->Live annotate option to automatically update schematic probes if cursor moved. Some improvements and fixes in ngspice_annotate.tcl. Fix xschem setprobe command. Added missing housekeeping_ctx when a new tab is created. housekeeping_ctx: added more variables to sync. 2022-09-18 05:29:16 +02:00
Stefan Frederik 52405a29c7 restructured graph dialog box, added min/max x, adjusted sweep variables vertical aligmnent, added atof_spice() that recognizes spice suffixes (12p, 4.2MEG etc) 2022-09-16 17:01:59 +02:00
Stefan Frederik f286b376f7 do not show bboxes of hidden texts while moving objects if global option "show hidden texts" is not set; documentation updates 2022-09-16 13:19:26 +02:00
Stefan Frederik 7d6b33cda8 limit max size of embedded graph bitmaps in svg export. added deriv0() graph function, does derivative w.r.t. index 0 (sweep) variable, regardless of graph sweep (x axis) variable. 2022-09-16 12:16:26 +02:00
Stefan Frederik 3866dc914e xschem print command: if w and h are set to 0 compute image size automatically 2022-09-16 00:04:51 +02:00
Stefan Frederik f644ce58a6 graphs are now rendered (as detailed png bitmaps) in svg exports 2022-09-15 19:39:16 +02:00
Stefan Frederik 75db846e58 ask confirmation if pressing "s" for simulate; node lists in graph dialog box are returned as they are with no tcleval() resolution; poweramp.sch now can be simulated unchanged with Xyce 2022-09-13 00:31:20 +02:00
Stefan Frederik 9e7930c8e0 fix regression in raw_query list command, store all waveform names in lowercase and with ":" path sep translated to ".", so looking them up is faster (no need to try multiple searches) 2022-09-11 10:52:52 +02:00
Stefan Frederik 50539069ff faster xschem raw_query values; fixed xchem raw_query not resetting previous result before returning infos 2022-09-10 22:33:28 +02:00
Stefan Frederik 193cf397bd more Xyce integration, transform .save in .print tran, transform x1.x2.node to X1:X2:NODE in Xyce lookups, more checks for malformed raw files 2022-09-09 18:57:34 +02:00
Stefan Frederik d4e29db770 added command "xschem get netlist_name fallback" that returns user set netlist name or fallback name derived from circuit filename. simulate and waves procedures handle user netlist name if set 2022-09-09 12:02:56 +02:00
Stefan Frederik 77d76e1a8f add commands "xschem set format ..." and "xschem get format" to change format attribute used for netlisting, overriding defaults 2022-08-31 10:47:16 +02:00
Stefan Frederik adc4eb96c8 fix net_name() crashing if inst[i].node==NULL. This may happen when pasting a component that contains a @@xxx token, that needs to be expanded to attached netname, however since we are moving the component no net name is defined --> .node==NULL. 2022-08-30 02:44:28 +02:00
Stefan Frederik 8be273b9f7 fix regression on menu fullscreen command 2022-08-28 11:23:51 +02:00
Stefan Frederik 4136f7cf10 return loaded filename in xschem load command 2022-08-27 13:30:30 +02:00
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 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 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 0dfbc9ded9 added return status from descend_schematic() 2022-08-21 12:24:26 +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 bd35e177f1 unselect_all() before inserting wire label or text from the menu to avoid moving previously selected objects 2022-08-09 23:08:00 +02:00
Stefan Frederik de5eb7446d scheduler.c "place_symbol" : analyze selected symbol and set INITIALINSTDIR before doing unselect_all() 2022-08-06 23:42:43 +02:00
Stefan Frederik 9177bcf8bc unselect objects when inserting a symbol using menu or toolbar to avoid moving them together with the inserted symbol 2022-08-06 23:19:26 +02:00
Stefan Frederik 15e367ba73 user selectable log X scale instead of assiming log X for AC analyses only 2022-08-05 00:57:03 +02:00
Stefan Frederik cd7eb3ab54 update license info 2022-06-24 00:36:12 +02:00
Stefan Frederik f2097bac0b Correct background color for monochrome svg exports, close stdin if xschem started with -b to avoid blocking when spawning ngspice batch tasks 2022-05-12 23:32:57 +02:00
Stefan Frederik d0b273c2c5 add "--command" command line option to execute commands after initialization (whereas "--tcl" executes commands before initialization) 2022-05-06 23:19:41 +02:00
Stefan Frederik f882918931 more conversion warnings suppressed 2022-04-28 10:12:16 +02:00
Stefan Frederik 23102433c2 fixed lot of conversion warnings/ bugs (int/double/size_t) 2022-04-27 13:18:45 +02:00
Stefan Frederik d457565c2d declared more functions static where possible and appropriate 2022-02-19 14:31:55 +01:00
Stefan Frederik 798ecd74f3 running average ravg() wave processing operator 2022-02-16 20:24:22 +01:00
Stefan Frederik b95d78734f allow ";" in addition to "," for separator in nodes to be plotted. ";" will be used for node alias. Fix potential uninitialzed data in get_bus_idx_array() 2022-02-13 22:54:28 +01:00
Stefan Frederik b697ec448d fix find_nth if multiple / leading separators are present 2022-02-13 12:12:37 +01:00
Stefan Frederik 13aca67a4d find_nth() generalized to accept multiple separators 2022-02-13 11:24:38 +01:00
Stefan Frederik d6d932e730 fix save simconf (thanks mkk). put template code for custom function plots 2022-02-05 00:28:06 +01:00
Stefan Frederik d7b45bfbf9 cleanup raw_query sub command, added "values" opcode, speedup some "xschem" subcommands 2022-02-04 17:35:07 +01:00
Stefan Frederik 6fb20b8c5e (only) on fat32 or similar case insensitive FS and if case_insensitive is set to 1 in xschemrc do not consider case in symbol lookup 2022-02-04 02:56:11 +01:00
Stefan Frederik 77b900569b correctly save embedded symbol attributes in embeeded symbols, do not save multiple times the same embedded symbol definition 2022-02-02 02:14:23 +01:00
Stefan Frederik 200f4210d0 renamed struct member function pointer to x_strcmp 2022-02-01 18:31:23 +01:00
Stefan Frederik a79af0c7e5 send currents to graph 2022-01-30 14:39:11 +01:00
Stefan Frederik faa210fb2f code cleanup, removed code redundancy, itoa(), dtoa() functions, removed unnecessary tcl graph_* global vars, mstrcat function. 2022-01-30 03:10:09 +01:00
Stefan Frederik 4ec5d2ce9e send selected nets to last selected graph if graph configure dialog not open 2022-01-29 12:27:54 +01:00
Stefan Frederik c083491738 probe nodes from xschem into its own wave viewer 2022-01-29 02:36:54 +01:00
Stefan Frederik 4c174d2311 Graph UI: unlock X-axis checkbox 2022-01-28 05:25:50 +01:00
Stefan Frederik 0b0e749801 Graph UI improvements. Persistent bold waves. Graph UI bug fixes 2022-01-28 04:44:07 +01:00
Stefan Frederik 038ef39bb5 UI improvements for graphs, change colors, insert waves etc 2022-01-27 20:47:27 +01:00
Stefan Frederik f5fd1ef352 use cairo png export if Xrender extensions present (alpha), editprop code for graph node list 2022-01-26 15:20:00 +01:00
Stefan Frederik c8ec7a77f2 allow embedding all image formats if a xxx-->png filter shell command is provided as attribute 2022-01-23 04:51:41 +01:00
Stefan Frederik 90f1a00a6f add filter_data() generic file conversion function 2022-01-23 01:21:36 +01:00
Stefan Frederik 81a612d5a3 menu entry for adding pictures, added alpha parameter for opacity 2022-01-22 04:55:59 +01:00
Stefan Frederik 320ad6e2aa embedded raw file storage 2022-01-21 19:17:43 +01:00
Stefan Frederik 609d0d0fdf windows lack regexp search--> use substring search 2022-01-21 03:27:32 +01:00
Stefan Frederik 42703b020d fix wave panning if a non graph added, better error reporting in png writer function, better flags option names for special objejcts (image and graphs) 2022-01-21 02:18:07 +01:00
Stefan Frederik a3ccc094f5 handle errors in image data, modified base64 decode to handle white space 2022-01-20 18:28:29 +01:00
Stefan Frederik 1fb23208bc remove all xrender and all xcb code, remove detection as well. Fix a couple of potentially uninitialized variables 2022-01-19 00:49:46 +01:00
Stefan Frederik 12f9af62b8 reverted xcb since text quality is slightly better 2022-01-18 02:49:28 +01:00
Stefan Frederik 74ebc3d887 add "connect by kissing (edit menu)" option, whereas separating with a move operation touching pins creates a net in between 2022-01-18 00:58:53 +01:00
Stefan Frederik 2d6a0fea52 remove XCB code (HAS_XCB=1 macro), align find_gl_fb_attachment() prototype declaration to match other functions, avoiding warning in dep_add() 2022-01-17 17:40:07 +01:00
Stefan Frederik c7b9e8206f various checks to prevent multiple file loading if no X or -x option used, put xpm header in icon.c so it can be opened by image viewers 2022-01-15 23:35:37 +01:00
Stefan Frederik 7d3c19441d cleanup in tabbed/multi-context code, remoevd redundant functions, more tests in xschemtest 2022-01-11 01:09:56 +01:00
Stefan Frederik d6b513e1e2 issue warning if opening same circuit in different tabs, if tabbed if is active edit sch/sym in new window will do in a new tab 2022-01-10 18:54:07 +01:00
Stefan Frederik a19bdc01a6 followup of previous commit: better set window title when swicthing context 2022-01-10 03:07:57 +01:00
Stefan Frederik 1360641d75 Tabbed windows interface option added 2022-01-09 22:19:58 +01:00
Stefan Frederik e238f571b0 code added for tabbed window interface 2022-01-09 05:14:25 +01:00
Stefan Frederik d9a51e4b1a bus value viewer show transitions (`X`), adding some query commands to get/set waveform attributes/plot data 2022-01-07 01:54:41 +01:00
Stefan Frederik 71a98e78f5 don`t try bring up the info ERC window if xschem is used in cli mode without X; filter out some events from graph event callback 2022-01-06 22:38:00 +01:00
Stefan Frederik 09d8474a2c fix measure data in multiple sweep/wraps graphs 2022-01-05 17:38:01 +01:00
Stefan Frederik 625495e27a measurement tooltip in graphs 2022-01-03 18:43:34 +01:00
Stefan Frederik 81cbbfa39f better vertical scrolling of digital graphs 2022-01-03 00:27:15 +01:00
Stefan Frederik d6c197d108 fix BadDrawable regression in free_rawfile(): after deleting data a draw() was called, but since this function is called also in exit handler all windows are already closed. Added digital waveforms and bussed signal display 2021-12-29 05:11:39 +01:00
Stefan Frederik a0e057a52d added typedefs on used structs, updated xschemtest with new hashes 2021-12-28 01:33:01 +01:00
Stefan Frederik 37575e9404 allow button1 in addition to button2 for panning / zooming waveforms, add menu commands to insert graph, display/hide empty graphs, load raw file 2021-12-26 04:09:55 +01:00
Stefan Frederik 1f44a960cb implement zoom/move/full on y axis graphs 2021-12-25 13:37:49 +01:00
Stefan Frederik 0d6a6c488b handle spice simulation files with multiple datasets 2021-12-25 05:15:52 +01:00
Stefan Frederik d423545ccc fix: missing graph borders 2021-12-24 21:17:52 +01:00
Stefan Frederik 70adb61410 Better axis label placement, smooth waves move/zoom with mouse, compile option to store sim data as floats instead of doubles, option for axis scaling (p,n,u,m,k,M,G), load waveforms command is a toggle (load / free) 2021-12-24 12:17:00 +01:00
Stefan Frederik b11955a3aa [experimental] better wave labels positioning in graphs 2021-12-23 03:43:34 +01:00
Stefan Frederik 76b537a587 [experimental] add waveform display of ngspice simulation data directly in xschem drawing area 2021-12-22 04:39:23 +01:00
Stefan Frederik b0af12d529 better layout of load_file_dialog widget; better handling of (strange) pathnames in abs_sym_path 2021-12-19 00:20:20 +01:00
Stefan Frederik 993c3a24c2 rename xschem_simulator/ n.sym and p.sym to ntrans.sym and ptrans.sym to avoid confusion with symbols in rom8k/; place tk_messageBox above right xschem window when using multiple (single process) windows. 2021-12-17 03:29:53 +01:00
Stefan Frederik 72f365f995 fix regression in tclgetvar() not returning NULL for non existent variables (place text dialog box did not show text size) 2021-12-16 23:09:23 +01:00
Stefan Frederik 95ea920faf do not hash the comments containing absolute paths in xschemtest netlist check, since these vary on different systems 2021-12-14 12:40:32 +01:00
Stefan Frederik deec11851b C 32 bit hash_file accessible from tcl for faster hash calculatons 2021-12-10 01:08:31 +01:00
Stefan Frederik 9e2f3816fd xschem paste command: allow set x and y on cmdline to avoid interactive placement 2021-12-09 20:31:06 +01:00
Stefan Frederik 5b01b0c4f1 xctx->inst[].instname set (whenever changing it) directly in new_prop_string() 2021-12-09 17:25:27 +01:00
Stefan Frederik 8eaada23f0 static function rename 2021-12-09 13:43:00 +01:00
Stefan Frederik e45e3caa84 avoid allocating 0 byte objects in hash_iterator.c, some fixes in xschem subcommands ("clear", "get lastsel", "align", "wire") 2021-12-08 02:38:56 +01:00
Stefan Frederik fa25edabec fix 3 potential (small) memory leaks 2021-12-08 00:38:19 +01:00
Stefan Frederik 4cd8642362 handle error conditions in tclget*var() functions 2021-12-06 02:00:58 +01:00
Stefan Frederik e449543805 tclvareval() wrapper 2021-12-05 12:39:05 +01:00
Stefan Frederik 9afce9efee report compile options in `xschem globals` command, more precisely calculate deleted object bboxes (recalculate at current zoom level due to text size roudings) to avoid some small leftover graphics after deletion 2021-12-04 11:23:38 +01:00
Stefan Frederik 954979e200 brace filenames (to protect spaces) in Tcl_VarEval() calls from C as per Joanne findings. 2021-12-03 19:37:59 +01:00
Stefan Frederik 629917cfcd new find_inst_to_be_redrawn() implementation to recalculate area to be redrawn with/without show net names on symbol pins, simplified new_window() call in callback `x` command, code formatting in globals.c, added xschem get [xy]origin commands 2021-12-03 19:15:07 +01:00
Stefan Frederik 02173373cb some little optimizations, redundant code removed, better formatting in globals.c 2021-12-02 13:28:40 +01:00
Stefan Frederik cb8ffce9cf fix save() function usage, in case user cancels save 2021-12-01 17:00:01 +01:00
Stefan Frederik f466ce5ad4 better menu text 2021-12-01 12:42:40 +01:00
Stefan Frederik d98c855135 remove calls to ngspice::resetdata in C code, done in ngspice annotator when reading a new file and in xinit.c when exiting the program. Some File menu item reordering 2021-12-01 00:35:52 +01:00
Stefan Frederik 887c546d00 more consistent naming for some xschem subcommands, added and updated "xschem help" command (still wip) 2021-11-29 14:37:39 +01:00
Stefan Frederik fe549c0f5c readable function pointer call syntax 2021-11-29 11:52:32 +01:00
Stefan Frederik d3ef2038ed "xschem change_colors" to "xschem build_colors" in tcl command language for consistency 2021-11-29 11:27:11 +01:00
Stefan Frederik 2442a3dfc0 runtime menu option to set undo stack on disk or in memory 2021-11-29 02:47:37 +01:00
Stefan Frederik 03f973e203 use undo function pointers 2021-11-28 14:35:55 +01:00
Stefan Frederik f9b6389942 cosmetic changes ([xschem get version] print format) 2021-11-25 19:26:43 +01:00
Stefan Frederik e7aa7b9d04 fix netlisting errors on schematics with embedded symbols. When purging unused symbols schematic was re-linked with library symbols instead of embedded symbols, leading to errors if the symbols differ. Fixed popping schematic from undo stack instead of calling link_symbols_to_instances() 2021-11-24 03:47:04 +01:00
Stefan Frederik 78934d363f removed duplicate netlist_dir global var in C code, use tcl netlist_dir variable, some widgets now display on top of current schematic window instead of xschem`s master window (use [xschem get topwindow] instead of ".") 2021-11-23 17:02:36 +01:00
Stefan Frederik 14e94eb615 remove_symbols() and remove_symbol(): some symbol fields were not correctly cleared when removing all symbols. Ensure inst[].name and sym[].name are not strdup`ed as NULLs 2021-11-22 12:42:33 +01:00
Stefan Frederik fddd3f84fb avoid force-saving changed schematic before doing netlist (use push/pop undo instead of load_schematic() to restore circuit after traversing hierarchy) 2021-11-21 23:04:48 +01:00
Stefan Frederik 7f9ee9fc2a add "xschem check_symbols" and "xschem reload_symbols" for future checking of symbols that are newer wrt to schematic. set mtime of newly created schematic (that does not exist on disk) to current time. Add verilog attributes to devices/pmos4.sym 2021-11-21 12:28:36 +01:00
Stefan Frederik d1a922643d Bunch of function static variables moved into xctx struct for safety 2021-11-18 01:55:01 +01:00
Stefan Frederik eecc81437c flat_netlist and only_probes moved into xctx struct 2021-11-17 23:12:17 +01:00
Stefan Frederik daf90b0645 fix icon pixmap on child schematic windows 2021-11-17 22:15:36 +01:00
Stefan Frederik 1ce2d71e95 add File menu to open new recent schematic windows 2021-11-17 16:02:29 +01:00
Stefan Frederik 59fccdee14 proc new_window remove file normalize as it messes up symlinks 2021-11-17 11:34:58 +01:00
Stefan Frederik ed87f28b23 fix typo in proc edit_vi_prop 2021-11-17 11:08:25 +01:00
Stefan Frederik dfc8031786 add File menu to open another schematic window in same xschem process 2021-11-17 03:49:32 +01:00
Stefan Frederik bd626427fd fix status bar info correctly swicthing when focusing multiple xschem child windows; multiple schematic window handling within one xschem instance is now working 2021-11-17 01:12:55 +01:00
Stefan Frederik ad05513838 some parameter checks in xschem commands, global var removal in simulation help window - No use for production yet 2021-11-16 22:28:10 +01:00
Stefan Frederik 59198f2dda removed a whole bunch of global UI-related variables and tcl/C redundancies 2021-11-10 13:43:08 +01:00
Stefan Frederik c3c1b39cb5 (2) full widget creation for xschem new windows, code cleanup, removed old stuff 2021-11-09 19:05:56 +01:00
Stefan Frederik 7985e8d22c fix some positioning glithes in UI when placing text via bindkey or menu or context menu 2021-11-06 03:24:45 +01:00
Stefan Frederik e85559efec context menu added in drawing area (right mouse button) 2021-11-04 01:13:44 +01:00
Stefan Frederik 04e670b3cf fine tuning of previous commit 2021-10-26 00:04:13 +02:00
Stefan Frederik b81325ea00 code cleanup, comments, more globals in Xctx context structure 2021-10-25 17:05:43 +02:00
Stefan Frederik 4f8120cd2d add "update" after binding creation in xinit.c, to avoid incomplete initialization of event binding if xschem called with non-existent file 2021-10-09 10:25:24 +02:00
Stefan Frederik 205bda387a Add File menu commands to open empty schematic or symbol in new window 2021-10-09 00:41:39 +02:00
Stefan Frederik 090cc5052e added xschem X-probe to bespice (from Analog flavor) waveform viewer. Works with eval version too. 2021-09-19 00:21:20 +02:00
Stefan Frederik 00311e7ff1 update license info 2021-07-27 16:42:54 +02:00
Stefan Frederik e5208e2d99 refactoring: "plotfile[]" global moved into xctx struct 2021-07-14 01:43:29 +02:00
Stefan Frederik 5880e23f94 added hierarchical ps/pdf export (File menu) 2021-06-13 23:55:17 +02:00
Stefan Frederik ddaa431144 make_sym_lcc.awk: declare "value" as local variable inside process_box_line() to avoid clashes with global "value" 2021-06-05 08:58:38 +02:00
Stefan Frederik bda3d9d426 Added new feature "Make schematic and symbol from selected components" with command "xschem make_sch_from_sel" and function make_schematic(..)
added proc make_symbol_lcc and make_symbol_lcc.awk
sch and sym components to specially process dash in prop_ptr.
2021-05-29 00:45:01 +02:00
Stefan Frederik ce5d9e40a6 pdf and png export: handle filenames with spaces in output filters 2021-04-16 16:27:32 +02:00
Stefan Frederik 50028baa9f added Hi-Z in logic values 2021-01-11 19:31:47 +01:00
Stefan Frederik 2063b42613 fixed a hypotetical integer overflow issue, do increment and modulo of hilight_color , remove some spaghetti code (use propagate_hilights() ) 2021-01-08 21:25:11 +01:00
Stefan Frederik 7fc5b4cf1a various fixes for corner cases where changing labels of hilight nets (update inst[].color), update symbol bboxes when toggling show_pin_net_names 2021-01-06 05:47:05 +01:00
Stefan Frederik b25bd1d06d saving to file made 4x faster, this implies less latency due to undo buffer savings on freaking big schematics. 2021-01-06 03:01:14 +01:00
Stefan Frederik ef1f297290 more flexibility in constrained move operations (draw wires, lines, copy/move), pressing h/v again toggles constrained / unsonstrained move 2021-01-05 01:24:45 +01:00
Stefan Frederik cf5813970c prepare for delete connection implementation 2021-01-02 23:42:22 +01:00
Stefan Frederik cc993bfe44 added in the menu the (undocumented) "propagate-highlight" function (propagate through conductive elements) 2021-01-02 20:33:34 +01:00
Stefan Frederik 3528634124 Add Shift-Delete command that selects all nets/labels/probes physically attached to current selected wire segment/label/pin/probe 2021-01-02 18:56:42 +01:00
Stefan Frederik 46e986cc62 added "auto join/trim wires" menu option since now the trim operation is doing fast even on big designs 2021-01-02 03:24:26 +01:00
Stefan Frederik 94cd0d0c7d hash_hi() made faster by caching sch_path_hash[] 2021-01-02 01:55:01 +01:00
Stefan Frederik 14ead18ea4 "propagate_to" attribute for pins renamed to "goto" 2020-12-30 21:26:58 +01:00
Stefan Frederik 17d8db59ff num parameter to logic_set() to perform "num" toggling operations 2020-12-28 20:20:45 +01:00
Stefan Frederik bcf8986314 Some more global state into Xctx 2020-12-28 13:44:10 +01:00
Stefan Frederik 41d9e17527 option for transparent background in svg export; added ngspice backannotation tutorial 2020-12-28 02:52:44 +01:00
Stefan Frederik 40eaefbb82 removed logicx() obsoleted function 2020-12-26 23:05:07 +01:00
Stefan Frederik b71199c5b8 added "xschem_simulator" sample example directory for trying logic propagation of probed nets 2020-12-26 19:26:33 +01:00
Stefan Frederik 9604b8cc82 removed redundant code in calc_drawing_bbox(),removed trim_wires, push & pop undo in print export routines, exported images should be wysiwyg 2020-12-25 21:31:15 +01:00
Stefan Frederik 3f452beb8e Fix: search() "unselect" function was not updating drawing 2020-12-25 15:14:41 +01:00
Stefan Frederik 582863f825 added menu option to load most recent file: ctrl-shift-o, fix menu entry "unhilight selected nets" (did unhilight all); removed a wire[].node clear in hash_wire() that caused broken connectivity. this data is cleared in delete_netlist_structs when needed. 2020-12-25 04:37:53 +01:00
Stefan Frederik 1cfea4d1d3 svg_draw(): do not print unused layer stylesheets, error check when opening file for printing 2020-12-22 18:31:08 +01:00
Stefan Frederik 0783ff7002 fix error in link_symbols_to_instances(): potential call of symbol_bbox() -> translate() -> prepare_netlist_structs() before completing xctx->inst[i].lab assignments 2020-12-22 16:10:27 +01:00
Stefan Frederik ae11f27db0 make svg/ps font naming consistent between tcl/c. Filter out some code if X not available (command mode) 2020-12-22 11:35:42 +01:00
Stefan Frederik 779c789100 better "xschem print" command accepting viewport and image dimensions, better zoom_full (with margin), good for embedding in script and do automatic export generation 2020-12-22 00:13:25 +01:00
Stefan Frederik 4ddc9654e8 add xschem commands for specifying image size for png and pdf: xschem print svg file.svg 800 600; svg background color taken from svg_colors variable so it can be changed like any other color 2020-12-21 04:38:57 +01:00
Stefan Frederik 35efb0228a speed up draw selection for big datasets, make "drill_hilight" work again after hilight infrastructure changes, fix hilight elements with errors after netlisting, after hilight changes 2020-12-20 19:48:37 +01:00
Stefan Frederik dfa58a0a08 spaghetti code removal, more reused code 2020-12-20 15:56:29 +01:00
Stefan Frederik 1184312527 various fixes around the highlight speed improvements 2020-12-19 05:06:57 +01:00
Stefan Frederik a837682731 caching "lab" and "highlight" attributes for speed 2020-12-19 03:22:38 +01:00
Stefan Frederik 821ebf06f2 optimizations in instance (connected to wires/net labels) highlights 2020-12-18 19:22:08 +01:00
Stefan Frederik 5b4d6ab640 postscript fonts in ps/pdf export 2020-12-16 18:30:33 +01:00
Stefan Frederik e89f0e4505 code formatting; xschem(): check for command not found 2020-12-13 00:00:48 +01:00
Stefan Frederik a3e1564c48 option for variable-width grid points for better visibility on hyper-resolution monitors 2020-12-12 13:36:39 +01:00
Stefan Frederik a642d6e05e if cadlayers set in xschemrc reduce / pad color lists accordingly; handle the case of insufficient number of layers set. Sorted "xschem" command "get" substrings for later lookup optimizations 2020-12-08 12:35:21 +01:00
Stefan Frederik bb64297b6e better #if/#endif configuration of various xrender/xcb/cairo combinations 2020-12-07 20:04:57 +01:00
Stefan Frederik 17124c761c each schematic windows has its own "current later" (rectcolor) 2020-12-06 16:40:08 +01:00
Stefan Frederik e7e5ad190b more schematic context in xctx: cairo surfaces and context, save buffer graphic context (GC), hilight hash tables and data, node name hash tables. Refactoring of resetwin , resetcairo routines (also used in xinit to avoid code duplication), switching schematics seems almost complete now 2020-12-06 02:10:53 +01:00
Stefan Frederik f9f9de3371 added "PWD" button in file load/place component dialog box that brings back to the directory containing current schematic. Selecting a component before doing "place component" will make the file load dialog start from the directory containing the selected component 2020-12-05 05:18:35 +01:00
Stefan Frederik 780b994aeb use short data type for small integer data: rot, flip, dash, bus etc... 2020-12-05 03:16:01 +01:00
Stefan Frederik 4e08f347da Tcl_SetResult() used in place of Tcl_AppendResult() in xschem() whenever possible 2020-12-05 01:20:35 +01:00
Stefan Frederik e6d522bf69 xschem() tcl extension function (scheduler.c) command lookup made much faster by ordering command strings 2020-12-05 00:01:09 +01:00
Stefan Frederik 2b7e31e0d6 add utility functions to create new schematic window 2020-12-03 23:17:13 +01:00
Stefan Frederik 3732bd8d01 put cairo save surface and context into xctx, faster and smoother preview (avoid unload/load if no filename change) 2020-12-03 18:21:23 +01:00
Stefan Frederik a64d69ed7a some code refactoring, more globals in xctx context, fixed unnoticed shift-reduce conflict in expandlabel 2020-12-03 04:20:05 +01:00
Stefan Frederik 8902f3b56b more state in xctx context 2020-12-02 19:35:42 +01:00
Stefan Frederik e279262f00 more globals into xctx context struct 2020-12-02 15:10:47 +01:00
Stefan Frederik 5533ca87a4 updated parselabel.l to allow more generic node names and/or spaces: these are now valid "a a,bb[3 : 0] , ccc", "1,2,3" and various other improvemenst and "ugly" code removals 2020-11-30 01:36:28 +01:00
Stefan Frederik eda64b7ee1 removed event_reporting feature 2020-11-29 03:27:45 +01:00
Stefan Frederik eb2d143e77 more consistent get_tok_value() regarding escaping 2020-11-29 01:59:17 +01:00
Stefan Frederik d47a569f9f bussed nets/pins in hierTEDAx netlists 2020-11-28 16:41:35 +01:00
Stefan Frederik 0e35d65cac "xschem replace_symbol instance instname" --> "xschem replace_symbol instname", "xschem inst_pin_coord" made slot-aware, added comments in query functions 2020-11-26 13:31:42 +01:00
Stefan Frederik 7a7868318b Added various procedures to select flat / hierarchical instances and re-route a terminal to a different net. reroute_inst -> change a pin connection, reroute_net -> change net updating all connected components. "xschem instances_to_net", "xschem instance_nodemap", "xschem instance_pin_coord" new query commands added. "xschem get expandlabel node" renamed to "xschem expandlabel node". 2020-11-26 03:46:55 +01:00
Stefan Frederik d93826f61c wrap long lines in source code, set default direction of pins to "B"(idirectional) if not specified in spice netlist (no *.PININFO information) 2020-11-22 00:51:24 +01:00
Stefan Frederik 427bce91e7 use get_tok_size instead of returned value from get_tok_value() to decide if token was existing or not in attribute string 2020-11-21 01:23:00 +01:00
Stefan Schippers 070ec71800 reduce svg size by avoiding redundant attributes in elements, fix a regression in scheduler.c (missing else clause) 2020-11-18 23:20:50 +01:00
Stefan Schippers bf183f0d20 Option (default now) to export svg images using the svg <text> element. This makes generated SVGs much smaller and in most cases faster to render. 2020-11-18 18:29:14 +01:00
Stefan Schippers f6e85bc90c replaced select_connected_nets() with faster select_hilight_net(), net_name() used only for displaying net names will not trigger erc messages 2020-11-16 15:44:51 +01:00
Stefan Schippers 90f6d7ee90 cleanup debug messages 2020-11-16 02:25:43 +01:00
Stefan Schippers 957b9888d1 Removed all static/global name conflicts, avoided global conflicts with flex/bison generated code so xschem (as a test bench) can be compiled as a single big file that includes all other sources 2020-11-03 12:10:55 +01:00
Stefan Schippers 460ebe561d sqwsource.sym: better labels, various fixes, comments and more debug messages in tcleval() stuff, some fixes (error checks) in "device_model" related model_name() function 2020-10-25 03:03:23 +01:00
Stefan Schippers 679348b7f8 "Delete files" menu command added 2020-10-24 23:46:19 +02:00
Stefan Schippers 367810f6dc add some hideen commands in menu: "place net label(2)", "highlight net/pin name mismatches of selected instances", "Flip", "Rotate" 2020-10-24 23:00:41 +02:00
Stefan Schippers 7e845db5df exampels/poweramp.sch and examples/cmos_example.sch show how to use dynamuc ngspice simulation data backannotation, optimized fix of previous bbox bug 2020-10-20 19:48:59 +02:00
Stefan Schippers c84d71b859 xschem setprop made way faster if "fast" argument is provided. Example "clear probes" launcher object in mos_power_ampli.sch. 2020-10-19 02:07:17 +02:00
Stefan Schippers c90f188703 do not call calc_drawing_bbox() on monster schematics as it takes more time than just drawing the viewport 2020-10-18 13:53:58 +02:00
Stefan Schippers 55723e9429 line width is related to the schematic, so it is moved under xctx; removed all integer versions (lw, bus_width) that needed to be kept in sync, created two macros to get the integer values from xctx->lw. main window save_pixmap is preserved when doing a schematic preview in file open dialog, so no need to regenerate its content (with a draw() call) after preview. 2020-10-17 00:53:19 +02:00
Stefan Schippers 7c757f9803 removed unused set_fill() function 2020-10-16 19:27:19 +02:00
Stefan Schippers e7928727d6 all xctx context is now a dynamically allocated structure; no observable performace impact 2020-10-15 17:39:21 +02:00
Stefan Schippers c87f44a441 added "xchem load_symbol" command to load a symbol without binding to any instance, text edit attribute "Load" button will start in "$current_dirname" 2020-10-15 15:37:06 +02:00
Stefan Schippers 35f47beca9 force a rebuild selected_array when swapping element order (S key) to rebind correctly. renamed <UNCONNECTED_PIN> to __UNCONNECTED_PIN__ to avoid useless syntax warnings from the node label grammar parser. 2020-10-15 02:16:57 +02:00
Stefan Schippers f4e5f70de1 fix bug in ALLOC() macro, tcl_hook() function 2020-10-14 04:12:34 +02:00
Stefan Schippers 28fe7d993a removed xschem samefile command as there is "file stat" for that 2020-10-13 18:10:05 +02:00
Stefan Schippers 1c2bbc609f added "xschem samefile" command to verify if 2 files are the same entity by comparing inodes, pwd_dir set in xinit.c to $env(PWD) if PWD var is defined as it does not dereference symlinks 2020-10-13 17:51:14 +02:00
Stefan Schippers 8ea275013e updated print_spice_subckt() to reflect updates done in print_spice_element(); abs_sym_path recognize ././././, ./., other strange paths., use $env(PWD) for current_dirname on startup instead of getcwd() if possible, to avoid dereferencing symlinks 2020-10-13 16:23:48 +02:00
Stefan Schippers 64c0abc58e code refactoring (global context in Xschem_ctx), "New Schematic" or "New Symbol" will set netlist_type to "spice" or "symbol" respectively 2020-10-12 13:13:31 +02:00
Stefan Schippers 32f85ac4f4 do not force a full hash_wires() on every net insertion; code formatting 2020-10-11 13:08:32 +02:00
Stefan Schippers 077fde9350 removed redundant command in xschem() command parser 2020-10-11 11:26:22 +02:00
Stefan Schippers 0ce6f6ba5d when netlisting primitive elements (not subcircuits) the "format", "verilog_format", "vhdl_format, "tedax_format" can be specified in instance attributes to override symbol. This allows to adapt primitives (example digital standard cells) to different design kits without using wrapper subcircuits. Together with "symname" redefinition in instance this allows to completely customize element netlisting. 2020-10-11 00:13:52 +02:00
Stefan Schippers 617d708009 verilog_preprocessor and verilog_timescale now use verilog_format instead of format (which is for spice), corrected verilog_netlist.c; better backslash and quote (") escaping and unescaping when using attribute select combobox; for unquoting use "xschem get_tok tok 2" instead of "xschem get_tok tok 0" + regsub ....(remove backslashes)... 2020-10-10 23:21:23 +02:00
Stefan Schippers 051b20c014 code formating, use some intermediate variables for code readability, line length limited to 124 chars 2020-10-04 23:55:43 +02:00
Stefan Schippers 3060217aec simplified complex logical expressions on symbol type by using macros 2020-10-04 19:53:09 +02:00
Stefan Schippers 8807c7250d various graphic rendering fixes for the new "view instance pin net names" function. Fixed some errors in merge schematic in callback.c and paste.c 2020-10-02 03:21:22 +02:00