Commit Graph

1756 Commits

Author SHA1 Message Date
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
Stefan Frederik dda7cb40db better recognize Xyce plot headers (Plotname: lines) 2022-08-12 00:06:14 +02:00
Stefan Frederik fb8a1560c6 added xschemrc variable `autofocus_mainwindow` (default setting: enabled (1) ), if this variable is set moving the mouse to the main drawing area when a dialog box is open (typically while editing a component attribute list) will focus the main window, so user can move / zoom/pan the schematic using the usual commands, for example to look at a different part of the schematic while editing the component. If this variable is unset a click is needed to focus the main window. This will thus not allow to move / zoom, but allows to type into the dialog box if the mouse goes out of it. 2022-08-11 10:58:57 +02:00
Stefan Frederik ce4bd4837a changed @schname to @schname_ext and added @schname that expands to the schematic name containing the instance, with no extension (no .sch) 2022-08-10 08:38:49 +02:00
Stefan Frederik 0e25935254 added @topschname predefined attribute that expands to the toplevel schematic name (no path) with no .sch extension 2022-08-10 01:45:07 +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 ae0ffa926d set reasonable subdiv[xy] value when user switches from linear to log axis, as 8 subdivisions are used in log axes in 99.99% of the cases. 2022-08-08 12:37:44 +02:00
Stefan Frederik 89afd902ea get_raw_value(): return plain value, no implicit log calculation if log scale on axis. Zoom full scale X and X axis pan: use 1st sweep X variable, do not assume spice sweep variable (idx==0) 2022-08-08 09:52:33 +02:00
Stefan Frederik edf185616b Y log axis option in graphs 2022-08-08 01:18:42 +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 ecd006ad5d disable `Log Y scale` checkbutton in graph dialog box until function is implemented 2022-08-05 19:29:08 +02:00
Stefan Frederik 8383030afa remove printing `[Mag]` on wave labels in AC plots. 2022-08-05 19:07:42 +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 7a0b5f3589 fix ngspice_backannotate.tcl: correctly backannotate ammeter currents; correctly handle multipoint Operating point data in graphs 2022-08-04 11:39:41 +02:00
Stefan Frederik 3b0589d2d1 store just magnitude and phase of AC vectors instead of dB and phase. Add db20() function to get dB values from magnitude in graph RPN expressions. 2022-08-03 17:44:53 +02:00
Stefan Frederik bd8c1fd6eb do not accept 0 in graph `X div` and `Y div` textboxes, as this will cause an endless loop 2022-08-03 10:44:34 +02:00
Stefan Frederik 9e888b8b44 Button 1 Double click does edit object attributes 2022-07-31 09:06:10 +02:00
Stefan Frederik 31646cf357 Windows fix: run ngspice in $netlist_dir; add res3.sym into Windows package, update instructions for compiling Cairo`s debug version 2022-07-29 23:00:34 +02:00
Stefan Frederik 62b4db861b rawtovcd.c: better description if -h is given 2022-07-29 14:31:54 +02:00
Stefan Frederik 83d44842cc remove COPYING (use LICENSE), do not install rawtovcd in SHAREDIR 2022-07-29 14:09:47 +02:00
Stefan Frederik 56d3d8f5f3 recognize \r\n sequences on windows rawfiles in "Binary:" lines, just in case ngspice developers want to add it someday. Quote ROUT ('ROUT') values for output resistors in ngspice_logic gates 2022-07-28 00:36:09 +02:00
Stefan Frederik 5af2b8eb7a fix read_dataset() for windows 2022-07-27 11:06:54 +02:00
Stefan Frederik d86a422c59 do not segfault if reading ascii raw files. print error message and tell user to generate binary rawfile. 2022-07-26 12:05:28 +02:00
Stefan Frederik a7202ddee2 avoid panning interfere with constrained (horiz/vertical) copy or move 2022-07-25 10:09:35 +02:00
Stefan Frederik baabac5fb7 bump version to 3.1.0 (candidate #1) 2022-07-19 09:25:34 +02:00
Stefan Schippers b72d8387b2 fix xschemrc grid/snap variables 2022-07-16 18:26:43 +02:00
Stefan Frederik 7d971f1f6c remove dbg message 2022-07-16 08:24:49 +02:00
Stefan Frederik e7f31cf3ee allow each window (in tabbed or window interface) to run its own simulation, preventing spawning another simulation process for same tab/window if previous not finished 2022-07-15 12:32:57 +02:00
Stefan Frederik b5662fe551 Added sweep textbox (linked to graph sweep attribute) in graph edit attributes dialog box 2022-07-12 10:57:56 +02:00
Stefan Frederik c9d16d6008 use 5 significant digits in graph (time) measures 2022-06-29 11:47:10 +02:00
Stefan Frederik cd7eb3ab54 update license info 2022-06-24 00:36:12 +02:00
Stefan Frederik 7401f1d8eb add menu "Symbol -> Search all search-paths for schematic associated to symbol". Default: not enabled. Variable: search_schematic. If enabled xschem does not assume the schematic is in the same directory of the symbol but looks in all libraries defined in XSCHEM_LIBRARY_PATH for a match. 2022-06-23 13:42:56 +02:00
Stefan Frederik be43fe41b0 added bit blasting option (default: disabled) in menu for verilog netlists: group bit slices in instance net assignments. Doc updates (FSiC-2022) 2022-06-14 10:20:06 +02:00
Stefan Frederik 28cc187b56 when placing components with lock=true set in template attribute allow to move it to its final position like any other unlocked symbol. Code in place in verilog.awk to do bit unblasting in net-> port associations, but not enalbed it for now as icarus verilog does not handle some bus slices (for example if bus slice direction is different from declared bus direction) 2022-06-09 09:32:34 +02:00
Stefan Frederik 4cb0eb0491 better check for availability of -justify option in listboxes 2022-05-29 00:36:19 +02:00
Stefan Frederik 2f3d6e0c88 fix #if __unix__ --> #ifdef __unix 2022-05-21 07:13:13 +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 15e67e04b7 added missing (src/utile/) utile.bat and utile3.bat 2022-05-06 23:42:00 +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 21a8885b65 regression fix: attempt to write into target netlist even if fopen() failed 2022-05-05 22:42:25 +02:00
Stefan Frederik eff273dd08 fix in spice.awk: do not clobber user or device format generated .save lines (no ?n tag); add devices/device_param_probe.sym 2022-04-30 10:58:15 +02:00
Stefan Frederik f882918931 more conversion warnings suppressed 2022-04-28 10:12:16 +02:00
Stefan Frederik 97911fe9fc text routines: longest_line made double (from int) for consistency 2022-04-28 00:00:51 +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 9b46db7341 module parameter declaration follow verilog2001 format if enabled ( #( parameter aaa=1, bbb=2, .... ) list before port list) 2022-04-25 11:23:28 +02:00
Stefan Frederik 89f538ffa1 added bindkey "s" for running simulation 2022-04-25 08:39:51 +02:00
Stefan Frederik bcb1f57b27 allow spiceprefix in subcircuit format strings 2022-04-24 13:59:35 +02:00
Stefan Frederik d57f8e60ee do not allow switching tabs if some editing operation ongoing to avoid incosistent states 2022-04-23 13:43:12 +02:00
Stefan Frederik eb6eeebe7f do not error out if netlisting for xyce simulator with hspice/ngspice syntax option turned off 2022-04-18 08:58:36 +02:00
Stefan Frederik 19d9d8a8f1 global Options menu "show hidden texts" to show or not show texts with attribute "hide=true" 2022-03-09 00:29:16 +01:00
Stefan Frederik a3b7ec1810 do not crash on malformed recent_files 2022-03-07 11:05:20 +01:00
Stefan Frederik 069017e07c recursively resolve parameter passing throughout hierarchy and show resolved value in leaf cells if possible 2022-03-07 01:42:53 +01:00
Stefan Frederik 00de54c582 Honor hide attribute for texts in ps/pdf and svg exports 2022-03-01 19:36:08 +01:00
Stefan Frederik c1a92ab5dc revert pro floaters. black hole, wrong approach 2022-02-22 12:09:04 +01:00
Stefan Frederik 2a205d298a TEXT_TRANSLATE flag: pro-floaters addition 2022-02-22 01:28:19 +01:00
Stefan Frederik 8be5ae7eb0 hide attribute for text items, not only if embedded in symbols 2022-02-21 10:53:06 +01:00
Stefan Frederik d457565c2d declared more functions static where possible and appropriate 2022-02-19 14:31:55 +01:00
Stefan Frederik 414cba1623 smaller threshold for minimum polygon size drawing 2022-02-19 03:59:00 +01:00
Stefan Frederik 1d8fe237ce add test_extracted_netlist circuit example 2022-02-18 15:11:44 +01:00
Stefan Frederik 609f216f8d avoid redundant cleanup call (ravg_store()) 2022-02-17 01:37:04 +01:00
Stefan Frederik fc6268395b dedicated function for calculating y extent of custom wave equations 2022-02-17 01:22:15 +01:00
Stefan Frederik 798ecd74f3 running average ravg() wave processing operator 2022-02-16 20:24:22 +01:00
Stefan Frederik f4ff14fbd8 fix bus msb nibble calculation in case of incomplete MSB nibble. Add sigma delta adc example 2022-02-16 02:27:57 +01:00
Stefan Frederik a9987b9be2 better y label alignment in digital graphs 2022-02-15 23:50:50 +01:00
Stefan Frederik 1ba83016c6 better digital graph label positioning (margin to y axis) 2022-02-15 18:57:40 +01:00
Stefan Frederik ce136d8f00 cleared some comments 2022-02-15 18:00:31 +01:00
Stefan Frederik b5eb8777c5 check for incomplete/missing/wrong attributes when drawing images 2022-02-15 17:59:45 +01:00
Stefan Frederik 9dd68436cf Handling of duplicated pins in spice netlists, added test_doublepin.sch in examples/ 2022-02-15 12:28:23 +01:00
Stefan Frederik f66f81649d fix add nodes to graph (alt-G) if quoted nodes/expressions are in graph 2022-02-15 00:43:07 +01:00
Stefan Frederik e3fe1029cd switch statements vs if-else-if in plot_raw_custom_data(); do not try to measure non existing waveforms due to expression syntax errors 2022-02-14 22:32:45 +01:00
Stefan Frederik c08cc359f3 plot_raw_custom_data() returns idx or -1 in case of expr syntax errors to avoid plotting junk 2022-02-14 19:28:24 +01:00
Stefan Frederik 59fe63cb68 swap evaluation order in if() 2022-02-14 18:56:51 +01:00
Stefan Frederik 4ebf3ea601 allow wave alias naming, fix off-by-one errors in plot_raw_custom_data() calls 2022-02-14 17:51:18 +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 1a1c6371cc better bg selectcolor in graph editprop dialog textbox 2022-02-13 03:32:06 +01:00
Stefan Frederik a6b4d998d1 better node color tagging in graph edit property dialog 2022-02-13 02:51:14 +01:00
Stefan Frederik fbeae175dd refactor some variable usage in plot_raw_custom_data() 2022-02-12 13:29:18 +01:00
Stefan Frederik c6a7d8f9bb optimize custom data plots and expression evaluation, added avg() 2022-02-12 13:20:24 +01:00
Stefan Frederik c0d2951883 better expression parsing in plot_raw_custom_data() 2022-02-12 11:04:39 +01:00
Stefan Frederik defd2a92a7 rpn expressions in graphs 2022-02-12 04:55:02 +01:00
Stefan Frederik a24fbc3645 lock attribute for rect shapes 2022-02-10 11:28:47 +01:00
Stefan Frederik 164ea94743 fix --rcfile and --no_readline options not working due to a refactoring mistake 2022-02-09 17:09:35 +01:00
Stefan Frederik a0e7a9ed78 same refactoring for bus wave drawing (set_thick_waves()) 2022-02-07 16:21:06 +01:00
Stefan Frederik f08d980558 graph function refactoring (set_thick_waves()) 2022-02-07 16:14:52 +01:00
Stefan Frederik e37d5a28b8 more flexible my_strtok_r (handle quoting and escapes), allow quoted expressions in graphs for doing math on vectors 2022-02-07 03:52:42 +01:00
Stefan Frederik 798e4a20b2 removed event handling code repetitions 2022-02-05 14:35:33 +01:00
Stefan Frederik 62766fd618 cleanup test code for custom plots 2022-02-05 02:16:27 +01:00
Stefan Frederik 178d235de6 fix: check for empty xctx->graph_names 2022-02-05 00:38:05 +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 d7c35a0a3d code comments added 2022-02-04 18:21:25 +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 1cb9645e9f xyce quircks/integration for ac analysis, refuse to stretch unscalable images, more example schematics 2022-02-03 00:40:59 +01:00
Stefan Frederik 008b289e4f ac analysis in graphs (mag + phase, log axis) 2022-02-02 18:33:16 +01:00
Stefan Frederik 5f82f63580 rename variable so tcc wont complain 2022-02-02 03:30:07 +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 a8e1a6c047 fix regression (tcl context was not saved/restored correctly) 2022-02-02 00:11:46 +01:00
Stefan Frederik 200f4210d0 renamed struct member function pointer to x_strcmp 2022-02-01 18:31:23 +01:00
Stefan Frederik bc03dedbca fix a function pointer usage not accepted on some compilers 2022-02-01 12:30:10 +01:00
Stefan Frederik 83f745accd doc updates for viewing simulation data inside xschem 2022-01-31 17:48:02 +01:00
Stefan Frederik 7e78f0994e fixes in fullscreen code 2022-01-31 02:42:52 +01:00
Stefan Frederik e7ebb2c2af Xyce support for node/current probing to graph 2022-01-31 00:14:34 +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 552bfcac4e better label text size calculation in digital graphs 2022-01-29 02:52:26 +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 ee263197d8 bold clicked wave for better visibility if multiple waves 2022-01-27 21:14:52 +01:00
Stefan Frederik 038ef39bb5 UI improvements for graphs, change colors, insert waves etc 2022-01-27 20:47:27 +01:00
Stefan Frederik bf624cfc77 fix typos 2022-01-26 15:31:32 +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 904439d751 embedded raster images in symbols rendered to svg export with correct matrix transform 2022-01-25 11:14:19 +01:00
Stefan Frederik e6f3f9898d correct size calculation when inserting new unscaled image 2022-01-25 00:52:49 +01:00
Stefan Frederik b978bd90fa images (rotated,flipped as the symbol) in symbols 2022-01-24 22:58:30 +01:00
Stefan Frederik ff1888b207 alpha (opacity) setting in raster png/jpg within svg exports 2022-01-23 23:16:31 +01:00
Stefan Frederik 348802c655 fix clipping for image redraw speed-up, embedded raster png/jpg in svg exports 2022-01-23 22:41:24 +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 7ee2c1bbc9 protect more new cairo code with #if HAS_CAIRO==1 2022-01-21 03:00:23 +01:00
Stefan Frederik 694bda1250 protect new cairo code with #if HAS_CAIRO==1 2022-01-21 02:51:58 +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 e66abe36fa 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:16:51 +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 6fcdd46022 reordering of some function calls to prevent memory leaks 2022-01-20 01:57:53 +01:00
Stefan Frederik 3958faf1aa optimizations in image display, resolved some false leak report due to untracked mallocs 2022-01-20 00:47:15 +01:00
Stefan Frederik c3af523559 better data struct for embedded image 2022-01-19 23:28:19 +01:00
Stefan Frederik f7b6bdb937 useful coments added 2022-01-19 18:44:13 +01:00
Stefan Frederik d22245b33a show and store embedded (png) images in schematics 2022-01-19 18:39:23 +01:00
Stefan Frederik 03c5330c94 fix wrong #ifdef instead of #if in psprint 2022-01-19 12:15:33 +01:00
Stefan Frederik 98bfb90e11 fix ps/pdf printing if started with no X or no graphics 2022-01-19 10:44:15 +01:00
Stefan Frederik 41738166e3 various fixes in add net when separating components 2022-01-19 10:15:52 +01:00
Stefan Frederik 0ab2a9631a fix connect by kissing undo function 2022-01-19 04:12:34 +01:00
Stefan Frederik 881b32a689 fix selection of merged instances done b4 calculating bbox (uninit. values) 2022-01-19 02:05:05 +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 6941451d9b fix crash when graph (bottom)x-scaling if dataset given > raw file datasets 2022-01-18 04:21:32 +01:00
Stefan Frederik 2e8bd72faf reverted xcb since text quality is slightly better 2022-01-18 03:37:54 +01:00
Stefan Frederik 12f9af62b8 reverted xcb since text quality is slightly better 2022-01-18 02:49:28 +01:00
Stefan Frederik 6dca33e716 xschemrc updated 2022-01-18 02:27:56 +01:00
Stefan Frederik 3c1603ea5e add wire also if separating component from a running wire (not connected at endpoints) 2022-01-18 02:10:56 +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 f0d856560f removed useless old pan command 2022-01-17 22:41:36 +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 6b97846985 fix crashing bug in split netlist mode for spice (fprintf-ing global nodes on closed netlist file) 2022-01-17 17:14:39 +01:00
Stefan Frederik 159b362c9f removed useless global tcl var token 2022-01-17 12:10:06 +01:00
Stefan Frederik 264b602b8d fix initialfile handling in load_file_dialog 2022-01-16 22:18:06 +01:00
Stefan Frederik 4379a68a19 HILIGHT_CONN macro 2022-01-16 14:49:59 +01:00
Stefan Frederik 51889e524a fix regression in zoom full with hidden graphs, reset globfilter if user clicks a file, so next directory listing will list all 2022-01-16 13:53:25 +01:00
Stefan Frederik ecf07e6761 better handling of glob patterns in save/load dialog, recognize floater label tags in files 2022-01-16 12:42:55 +01:00
Stefan Frederik c44673b2ac refactored some global var names, used only in command option processing 2022-01-16 01:12:43 +01:00
Stefan Frederik abce61655f do noop if a switch context into itself is called 2022-01-16 00:51:12 +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 3f017074be load multiple files from command line, in tabbed or foating windows mode 2022-01-15 13:19:06 +01:00
Stefan Frederik 1167b97f2e fix regression in tabbed window WM_DELETE_WINDOW protocol handler 2022-01-15 03:09:18 +01:00
Stefan Frederik 158186a9c4 better WM_DELETE_WINDOW protocol handler in case of multiple windows 2022-01-14 19:37:01 +01:00
Stefan Frederik 231660989a fix undo regression on embedded examples due to prev commit 2022-01-14 17:07:17 +01:00
Stefan Frederik 627d122937 correctly skip embedded symbol info in file if not matching instance reference 2022-01-14 16:59:40 +01:00
Stefan Frederik 9f64e87b34 comments in source files 2022-01-14 14:56:13 +01:00
Stefan Frederik 3260d438c1 better selection of closest objects 2022-01-14 13:36:17 +01:00
Stefan Frederik 622fb168c1 obsolete comments scrub 2022-01-13 17:24:04 +01:00
Stefan Frederik acae16d106 left anchor window title in tab buttons 2022-01-13 15:40:20 +01:00
Stefan Frederik 6c85ceaad8 "hide(=true)" attribute to hide specific text items in symbols 2022-01-13 12:46:55 +01:00
Stefan Frederik e0eb450881 drop zero-size elements when opening a file 2022-01-13 03:09:45 +01:00
Stefan Frederik c3ad08fdd4 sourcing of user specified tcl scripts in xschemrc done after all graphics setup complete so we can autoload multiple tabs on startup, among other funny things 2022-01-13 02:08:36 +01:00
Stefan Frederik 54f3211d51 show modify status (*) in tab names, master tab has red foreground 2022-01-13 00:58:00 +01:00
Stefan Frederik 772a6c9f39 button press on a tab, hold button and drag onto another tab --> swap tabs 2022-01-12 23:55:46 +01:00
Stefan Frederik 88945158e2 button press on a tab, hold button and drag onto another tab --> swap tabs 2022-01-12 23:44:52 +01:00
Stefan Frederik a8d3cb814b globpattern "pat" search in file selector implicitly assumed to be "*pat*" 2022-01-12 00:17:10 +01:00
Stefan Frederik da27141112 fix left/right arrow keys for tab switching on Windows and Linux 2022-01-11 22:57:55 +01:00
Stefan Frederik aec7d02c4d tedax: do not generate __UNCONNECTED_PIN__%d names for unconnected instance pins in tedax netlist, do not highlight in red instances with unconected pins, still print ERC warning just in case designer forgot a connection 2022-01-11 14:40:43 +01:00
Stefan Frederik d273d5131e doc updates 2022-01-11 12:17:15 +01:00
Stefan Frederik 54fcf126f6 doc updates (sym attributes) 2022-01-11 04:17:17 +01:00
Stefan Frederik 659217148d fix error if tabbed_interface variable set in xschemrc 2022-01-11 02:01:11 +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 b81ce64c0c ctrl-left arrow / ctrl-right arrow to quickly move between tabs 2022-01-10 04:30:51 +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 19398e8162 update window title/icon title when switching in tabbed interface 2022-01-10 03:00:33 +01:00
Stefan Frederik b93fa4794c fix regression in set_modify function 2022-01-09 23:44:43 +01:00
Stefan Frederik 01d9ba58c5 Tabbed windows: menu typo 2022-01-09 22:21:14 +01:00
Stefan Frederik 1360641d75 Tabbed windows interface option added 2022-01-09 22:19:58 +01:00
Stefan Frederik 84662451ae tabbed interface almost done 2022-01-09 14:58:45 +01:00
Stefan Frederik e238f571b0 code added for tabbed window interface 2022-01-09 05:14:25 +01:00
Stefan Frederik 536ff68143 optimizations in waves measure function 2022-01-08 01:16:13 +01:00
Stefan Frederik ef7effab69 separate bindkey (ctrl-shift-F) to zoom full selection 2022-01-08 00:00:13 +01:00
Stefan Frederik 0eaf884039 modularized usage of simconf`s scrollable frame so it can be reused 2022-01-07 12:45:18 +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 6297d1ac15 fix bus value calculation 2022-01-06 12:57:31 +01:00
Stefan Frederik 6f83b0cae5 code cleanup 2022-01-06 07:41:15 +01:00
Stefan Frederik 7c91b691ac remove dbg info 2022-01-06 07:38:59 +01:00
Stefan Frederik fdf93666b4 fix the hardest bug ever in master graph x-axis zooming (f**k!) 2022-01-06 07:37:44 +01:00
Stefan Frederik 8eae5398c5 fix clipping cursor texts 2022-01-06 05:34:42 +01:00
Stefan Frederik 9bdac2d854 fix horizontal alignment when panning multiple graphs 2022-01-06 05:00:24 +01:00
Stefan Frederik bff65b662a performance improvements (2) in draw_graph functions 2022-01-06 04:17:16 +01:00
Stefan Frederik c3f59beec1 performance improvements in draw_graph functions 2022-01-06 03:56:11 +01:00
Stefan Frederik 7f1a085656 performance improvements in draw_graph functions 2022-01-06 03:49:18 +01:00
Stefan Frederik 223b9dc0a6 various regressions due to refactoring fixed 2022-01-06 01:10:06 +01:00
Stefan Frederik c35d7b5d22 created Graph_ctx for graph data access; code refactoring 2022-01-05 23:07:08 +01:00
Stefan Frederik 09d8474a2c fix measure data in multiple sweep/wraps graphs 2022-01-05 17:38:01 +01:00
Stefan Frederik 4a705de9d0 better top/bottom clipping of waves 2022-01-04 06:21:50 +01:00
Stefan Frederik 31ba4ce0d6 added wave @ cursor measurement feature 2022-01-04 05:54:25 +01:00
Stefan Frederik 625495e27a measurement tooltip in graphs 2022-01-03 18:43:34 +01:00
Stefan Frederik 27a8e2246a full vertical resize applied only on active graph 2022-01-03 04:20:45 +01:00
Stefan Frederik 6aeb5ce4f8 nodes to plot are accepted without v(): v(nnn) --> nnn 2022-01-03 04:02:41 +01:00
Stefan Frederik 96f3914788 better zooming vertical axis of digital waves 2022-01-03 03:05:15 +01:00
Stefan Frederik 177f38ec2f better zooming vertical axis of digital waves 2022-01-03 02:38:38 +01:00
Stefan Frederik 55ad045669 checks for zero range axes, removed some unused function params 2022-01-03 02:30:10 +01:00
Stefan Frederik 33ecb08c4f checks for zero range axes, removed some unused function params 2022-01-03 02:28:34 +01:00
Stefan Frederik 2c09982e5a resolve a race condition in context menu (mouse click and immediately destroy menu by exiting the area) 2022-01-03 01:38:15 +01:00
Stefan Frederik 66152c33a5 better vertical scrolling of digital graphs 2022-01-03 00:29:05 +01:00
Stefan Frederik 81cbbfa39f better vertical scrolling of digital graphs 2022-01-03 00:27:15 +01:00
Stefan Frederik 104d0f8cc3 fixes for digital waves y axis scaling 2022-01-02 22:24:44 +01:00
Stefan Frederik 2a3e9ddea4 graph UI improved (unlock xaxis flag) 2022-01-02 04:42:15 +01:00
Stefan Frederik 2bbf967729 remove dbg message 2022-01-02 00:06:22 +01:00
Stefan Frederik 01764bc929 reset globfilter to {*} after using it 2022-01-02 00:05:05 +01:00
Stefan Frederik 1c27e4cc0a speed optimizations in draw_graph() 2022-01-01 21:47:17 +01:00
Stefan Frederik 81a7041c9f faster graph drawing by direct graph->screen transformation, avoiding double graph->xschem->screen scaling. File entry box is also a glob-search pattern in file open dialog 2022-01-01 15:46:03 +01:00
Stefan Frederik c42f37909c various fixes in multi trace/multi dataset graphs 2022-01-01 04:22:23 +01:00
Stefan Frederik 5ac44c11ea hierachical pdf export: avoid adding links to symbols that are not subcircuits 2021-12-31 12:37:28 +01:00
Stefan Frederik 06e84deb96 fix setting pdfmarks with directories in hierarchical pdf exports 2021-12-31 11:58:28 +01:00
Stefan Frederik 7600985557 fix various graph event handling issues 2021-12-30 23:22:13 +01:00
Stefan Frederik 9beda72ebb fix various graph event handling issues 2021-12-30 20:52:15 +01:00
Stefan Frederik c0ab0f1a61 hierarchy pdf prints have links to pdf pages of sub blocks 2021-12-30 20:11:41 +01:00
Stefan Frederik 6b8807e003 hierarchy pdf prints have links to pdf pages of sub blocks 2021-12-30 19:06:22 +01:00
Stefan Frederik a36ce82161 add page title: fix missing newline 2021-12-30 17:19:11 +01:00
Stefan Frederik 11dc5458af add page title in ps/pdf prints, ps and svg skip graphs if they are hidden 2021-12-30 17:15:50 +01:00
Stefan Frederik 5707b18aba wave view: added cursors for delay/time measurements 2021-12-30 15:45:38 +01:00
Stefan Frederik acb0489fcc graphical improvements for better graph scaling 2021-12-29 06:32:02 +01:00
Stefan Frederik 8cc6315e09 graphical improvements for better graph scaling 2021-12-29 06:21:51 +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 2ec66255e3 perf optimization in graph drawing 2021-12-28 00:44:59 +01:00
Stefan Frederik 5dd3f5c15d digital wave graphs, handle multiple sweep dc simulations 2021-12-27 18:42:56 +01:00
Stefan Frederik e111b2b9d6 even with multiple selected graphs apply y axis pan/zoom only on master graph. Better checks/cleanups for load/unload raw file 2021-12-27 14:12:55 +01:00
Stefan Frederik 505801c49d fix edit rect attributes crashing (due to missing param to proc text_line) 2021-12-27 05:37:56 +01:00
Stefan Frederik 547097f176 graph UI refinement and various fixes. Zoom in/out keeps value under mouse fixed 2021-12-27 05:22:19 +01:00
Stefan Frederik 7a286e5466 graph UI improvements (no require shift + mouse for global x-axis sliding) 2021-12-26 15:13:57 +01:00
Stefan Frederik 214070bb1c graph UI improvements (x-axis slider, do not force mouse motion to be inside graph after starting operation) 2021-12-26 14:57:12 +01:00
Stefan Frederik eff02f5f02 graph UI improvements (global x slider), various fixes 2021-12-26 14:35:13 +01:00
Stefan Frederik 30ce222b68 graph UI improvements (global x slider), various fixes 2021-12-26 14:33:54 +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 8fb4c9ee55 Inutile stimuli translator integrated: some fixes 2021-12-26 00:41:21 +01:00
Stefan Frederik 163cdd72e5 Inutile stimuli translator integrated in xschem.tcl, no more EXEC-uted as external process 2021-12-26 00:35:56 +01:00
Stefan Frederik f3526a5a08 Inutile stimuli translator integrated in xschem.tcl, no more EXEC-uted as external process 2021-12-26 00:33:57 +01:00
Stefan Frederik 554c1666b8 schematic_waves_loaded(): look for waveforms in parent hierarchies 2021-12-25 15:01:22 +01:00
Stefan Frederik f5a737159d axis zoom: updated examples 2021-12-25 14:43:26 +01:00
Stefan Frederik 842bcb0b93 implement zoom/move/full on y axis graphs 2021-12-25 13:44:14 +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 21d723e1a2 if user specifies start, end and only one division in a graph, don`t try to do any magic, just do what user asks, even if numbers are `ugly` 2021-12-24 23:15:36 +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 ddb4c048bd add \n to allowed separators in list of nodes to be plotted 2021-12-23 18:35:12 +01:00
Stefan Frederik c30ff852a2 fix missing check for loaded data when user tries a "full" zoom in a graph window (segfault) 2021-12-23 13:01:18 +01:00
Stefan Frederik 62e71a8bbe draw_graphs(): add flag to avoid copying secondary buffer areas to screen if called from main draw(). This makes things faster and removes an annoying "tearing" effect when moving around 2021-12-23 11:59:39 +01:00
Stefan Frederik b11955a3aa [experimental] better wave labels positioning in graphs 2021-12-23 03:43:34 +01:00
Stefan Frederik 8a0fc1c1df mouse actions (move, zoom) on waveforms 2021-12-22 18:25:15 +01:00
Stefan Frederik 673eb243e7 update test schematic 2021-12-22 14:15:43 +01:00
Stefan Frederik 7cec1d3725 allow multiple sweep variables in overlayed graphs 2021-12-22 12:59:41 +01:00
Stefan Frederik 1b24e6fcb0 [experimental] added configurable sweep parameter for x-axis 2021-12-22 12:31:26 +01:00
Stefan Frederik ab1fdce64e [experimental] added configurable sweep parameter for x-axis 2021-12-22 12:22:11 +01:00
Stefan Frederik e0cad38f17 updated xschemtest.tcl with new hashes 2021-12-22 11:11:46 +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 969f4ec1c7 removed some dead code (what & START) in draw.c, paste/merge of lines/polygons/arcs/lines did not correctly restore dash attributes. Boiler plate code for draw waves 2021-12-20 00:01:10 +01:00
Stefan Frederik 61e9c0e4e3 add flags member field in xRect struct for future additions 2021-12-19 20:53:52 +01:00
Stefan Frederik 382cba1fda added missing quotes on return value in abs_sym_path 2021-12-19 10:11:54 +01:00
Stefan Frederik 86ac93c369 some "box" vars changed to "rect" for consistency 2021-12-19 01:28:39 +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 ead63f5c39 Fix regression: in load_file_dialog make "Current file dir" button work again 2021-12-18 13:11:21 +01:00
Stefan Frederik a397d936dc if a schematic references a symbol name as "./xxx.sym" (instead of just "xxx.sym")force searching in directory of current schematic first, then in XSCHEM_LIBRARY_PATH directories. 2021-12-18 12:29:17 +01:00
Stefan Frederik e2db38c881 statement reordering for faster execution in my_round() 2021-12-17 23:56:25 +01:00
Stefan Frederik 0c9eff16d9 my_round() function instead of ROUND() macro 2021-12-17 15:40:19 +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 fd5e6caf13 preserve line ordering regardless of awk hash implementation in tedax netlists as done for vhdl and verilog; include a couple of tedax netlist checks in xschemtest 2021-12-16 00:39:09 +01:00
Stefan Frederik ba15e21b24 preserve ordering in verilog/VHDL signal/wire/reg declarations for consistent netlist hashing/checking 2021-12-15 15:17:45 +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 b7af31d38c fix regression in tcl execute procedure ("execute 0 prog" blocking if prog closes stdout/stderr file descriptors) 2021-12-13 01:52:18 +01:00
Stefan Frederik 875581a4fb avoid "rb" fopen in hash_file() on windows, who cares, code handles \r (or missing \r) to have consistent results 2021-12-10 15:19:24 +01:00
Stefan Frederik 5a3ea573cd more modularized xschemtest, use stdlib file functions for hash_file() 2021-12-10 13:17:21 +01:00
Stefan Frederik 5270d41d8d better hash_file function (more precise cr/lf scanning) 2021-12-10 03:05:53 +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 d44c733fae find_inst_to_be_redrawn(): avoid unneeded call to int_hash_free() if no show net name option active; inst_hash_lookup(): store only pointers to instnames, avoiding strdups 2021-12-09 18:01:54 +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 b0010322ec remove redundant assignment 2021-12-09 14:07:26 +01:00
Stefan Frederik 8eaada23f0 static function rename 2021-12-09 13:43:00 +01:00
Stefan Frederik 6458fdc5bd unsigned char cast in hash functions 2021-12-09 00:34:43 +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 9f99a31fac hash_inst_pin(): avoid reporting erc messages if for_netlist==0 2021-12-07 20:40:33 +01:00
Stefan Frederik 5a91aec3ff translate() refactoring/cleanup 2021-12-07 20:33:11 +01:00
Stefan Frederik 5503786979 translate(): recognize @@ and @# token patterns to avoid useless get_tok_value() calls 2021-12-07 19:43:57 +01:00
Stefan Frederik 1e2983483f comment out a couple of dbg lines in inner loops for performance 2021-12-07 19:15:37 +01:00
Stefan Frederik 989388e14b allow panning schematic even if dialog box displayes or xschem simulation ongoing; update example simulate_ff.sch 2021-12-07 14:07:36 +01:00
Stefan Frederik 0636b04d0e better find_inst_to_be_redrawn() usage in copy/move/delete operations 2021-12-07 12:53:13 +01:00
Stefan Frederik e3077c6f90 fix copy/move operation with flips/rotations: correctly restore object bboxes for correct drawing deletions (move) and restoration of originally selected component bboxes (copy) 2021-12-07 12:00:54 +01:00
Stefan Frederik 19f0fd3c6e optimizations in calc_drawing_bbox() (less get_tok_value() calls), optimizations in bus_hilight_hash_lookup() (less expandlabel() calls) 2021-12-07 02:18:23 +01:00
Stefan Frederik 4cd8642362 handle error conditions in tclget*var() functions 2021-12-06 02:00:58 +01:00
Stefan Frederik 31ff86557e single global array var `execute` instead of multiple execute_* arrays for `execute` process handling 2021-12-06 00:58:06 +01:00
Stefan Frederik 506d9683d5 no newline print on exit 2021-12-05 22:32:56 +01:00
Stefan Frederik de1db1e87a main.c do not spawn a child closing std file descriptors if -b option is given, just start xschem without interactive tcl shell, handle error condition in setup_tcp_gaw 2021-12-05 15:31:26 +01:00
Stefan Frederik e449543805 tclvareval() wrapper 2021-12-05 12:39:05 +01:00
Stefan Frederik 05f176045b remove propagate_hilights() from prepare_netlist_structs() (call explicitly when needed). Fix hilight_parent_pins()/propagate_hilights() in go_back() (some UNhilighted pins did not propagate to parent) 2021-12-05 01:34:19 +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 8832830d91 implement option `-b` for `x` hot key (to open a new xschem`s process) on Windows. (Joannne) 2021-12-04 01:50:05 +01:00
Stefan Frederik e3ab569f35 fix: xctx->inst_redraw_table can not be static, must be dinamically allocated. 2021-12-04 01:45:26 +01:00
Stefan Frederik a7277acfda some more brace protected filenames in C tcl calls 2021-12-03 23:59:46 +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 6cf6c58841 add menu command to restore all colors to default, deleting "colors" config file 2021-11-30 00:38:02 +01:00
Stefan Frederik e2197844ca fix infowindow (wrong window path) 2021-11-29 19:14:24 +01:00
Stefan Frederik 40803e47c5 Add Dismiss button to infowindow 2021-11-29 18:41:13 +01:00
Stefan Frederik 053d06c0f6 use tclgetvar for XSCHEM_TMP_DIR 2021-11-29 18:26:52 +01:00
Stefan Frederik 1c18211894 use tclgetvar for XSCHEM_TMP_DIR 2021-11-29 18:26:20 +01:00
Stefan Frederik 0ebe36bc8f avoid quitting the program for some serious but non fatal errors, add some error reporting, some documentation updates (faq.html) 2021-11-29 17:29:09 +01:00
Stefan Frederik d4fb14a0bb store server socket descriptors so they can be closed at will 2021-11-29 14:56:34 +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 1963669c3f xschemrc update (undo_type) 2021-11-29 04:14:35 +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 88b00fd546 add undo function pointers 2021-11-28 13:29:13 +01:00
Stefan Frederik 01b3401e43 in memory undo now saves / restores all symbol definitions, so no re-link to instances operation is needed 2021-11-28 13:16:01 +01:00
Stefan Frederik 1cbfc16cd9 better simconf help text 2021-11-27 03:49:39 +01:00
Stefan Frederik 965d2f3ec1 Restore default (delete simrc file) button in simulation configuration dialog 2021-11-27 03:37:36 +01:00
Stefan Frederik 551bbcec0c Windows does not recognize XPending, fix typo for verilog_format`s port name: g instead of f 2021-11-26 13:16:52 +01:00
Stefan Frederik f9b6389942 cosmetic changes ([xschem get version] print format) 2021-11-25 19:26:43 +01:00
Stefan Frederik 39a27e856e fix pcb_current_protection_embed.sch with up to date embedded symbols (previous had very old symbols with errors), fix pmos.sym (make pin names and verilog_format string consistent). All other schematics with embedded symbols updated with current library symbol. Some code in place for saving/restoring symbols in in-memory undo. This code is not compiled so does not affect xschem operation at all. 2021-11-25 04:00:01 +01:00
Stefan Frederik f67ec47f82 added some comments, commented out xctx->prep_* = 0 in save_schematic() 2021-11-24 13:52:59 +01:00
Stefan Frederik 9d38cb3823 removed debug messages 2021-11-24 04:19:32 +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 364c2f1f3a moved functions containing X calls: now only callback.c, xinit.c and draw.c contain xorg-specific function calls. 2021-11-24 01:07:33 +01:00
Stefan Frederik e77b72df9c old_winpath[] removed from globals, put as static string into callback(), fix ngspice::annotate netlist_dir fetching. 2021-11-23 23:20:10 +01:00
Stefan Frederik 9f33230f44 removed unneeded tcl global "simulate_bg" 2021-11-23 17:16:21 +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 d03147dce1 more consistent naming convention for hash table functions 2021-11-23 15:03:51 +01:00
Stefan Frederik d6d3ab502c some comments in the code, avoid potential memory leak in netlisting code 2021-11-23 01:14:49 +01:00
Stefan Frederik 88d64136a6 fix remove_symbols() not first deleting instance .node[] fields on instances 2021-11-22 21:47:13 +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 4c17e2251e undriven net warning has higher priority over open net 2021-11-22 01:32:49 +01:00
Stefan Frederik 9bca5b3f5b fix descend_symbol regression due to previous commit 2021-11-22 00:42:53 +01:00
Stefan Frederik 1c37e7eeee when descending from a modified schematic with highlight nets and not saving schematic before descending, clear highlights to avoid inconsistent state when returning back. save() and save_schematic() have more decent return values 2021-11-22 00:26:49 +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 608912078f fix "untitled" window title setting 2021-11-21 02:08:27 +01:00
Stefan Frederik 4b228737f4 fix long standing typo in file selector right listbox (-selectmode browse) 2021-11-21 01:56:54 +01:00
Stefan Frederik 10114ec838 add missing braces in update recent file submenu, fix file selector improperly setting main window title, added logic/test_mos_verilog.sch depletion mode verilog example 2021-11-20 23:44:19 +01:00
Stefan Frederik e4f4c75e9a fix stat missing arg 2021-11-20 13:47:25 +01:00
Stefan Frederik a495ada2ed When saving a schematic issue a warning if disk file has been changed since opening 2021-11-20 13:33:40 +01:00
Stefan Frederik 9ceb25716e auditing of static in-function variables, remove unnecessary, add notes for allowed ones 2021-11-20 02:37:56 +01:00
Stefan Frederik 83746efbe9 some other static data eliminated from functions (edit symbol_property), in_memory undo structure moved into schematic context 2021-11-19 23:22:54 +01:00
Stefan Frederik 4cb0a12d64 resolve a race condition between Configure event delivery, window creation, and wm hints setting for icon 2021-11-18 03:06:22 +01:00
Stefan Frederik bbba3b9c02 check for max number of subwindows, better way to set icons for windows 2021-11-18 03:01:28 +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 dcae02e8c4 remove dbg messages 2021-11-17 17:56:32 +01:00
Stefan Frederik e27c5dc21a separate pack_widgets and set_bindings 2021-11-17 17:53:18 +01:00
Stefan Frederik 1ce2d71e95 add File menu to open new recent schematic windows 2021-11-17 16:02:29 +01:00
Stefan Frederik 043e83e18f fix correct drawing of new schematic window if schematic not found 2021-11-17 13:32:32 +01:00
Stefan Frederik 7fcda987c0 proc new_window add abs_sym_path so full path is resolved if necessary 2021-11-17 11:47:12 +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 2604db125a fix typo in proc edit_vi_prop 2021-11-17 11:01:44 +01:00
Stefan Frederik f7fa39a975 track_memory.awk: option to disable source line display 2021-11-17 04:06:36 +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 937261807b fix setting snap and grid values in statusbar 2021-11-17 01:30:37 +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 290fc3c793 fix missing escaping of "[" and "]" in tcl command bound to simulate button. Thanks to Mayank Gupta for pointing out the issue 2021-11-14 11:49:12 +01:00
Stefan Frederik dfb4821ef8 2 more global window declarations removed 2021-11-10 14:11:27 +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 c6a6d1b1dc Motion and Enter events regain focus even it toolbar is displayed and user pressed "Tab" to focus a button; toolbar button focus ordering matches display ordering 2021-11-08 16:27:07 +01:00
Stefan Schippers b1f7a7a277 update bindkey description ("\" fullscreen) 2021-11-07 18:41:30 +01:00
Stefan Frederik fce2c9a292 more consistent ctx menu label texts 2021-11-07 12:57:02 +01:00
Stefan Frederik 05b8447846 better copy/paste button images 2021-11-07 12:54:15 +01:00
Stefan Frederik b175050843 gif toolbar images now with transparent background 2021-11-07 12:07:13 +01:00
Stefan Frederik 9fd56b8f91 fix waves toolbar image 2021-11-07 02:24:33 +01:00
Stefan Frederik 1b8920f3f0 more comments in resources.tcl 2021-11-07 01:32:03 +01:00
Stefan Frederik bb8ccce4d1 comments in resources.tcl, license info 2021-11-07 01:26:31 +01:00
Stefan Frederik f96ff46afc better ctx menu font on old 8.4 tcl-tk 2021-11-07 01:12:04 +01:00
Stefan Frederik 9e10a67fd1 yet another 2 pngs converted to gifs 2021-11-07 01:04:14 +01:00
Stefan Frederik e3b440f237 toolbar image data converted to gif89a. since older tcl-tk dont support png. 2021-11-07 00:59:19 +01:00
Stefan Frederik b62f8b57f7 removed useless assignments xctx->m[xy]_save = m[xy] in contexts where its unnecessary 2021-11-06 03:34:14 +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 173450edde fix wrong toolbar "Push schematic" action 2021-11-06 02:09:32 +01:00
Stefan Frederik 7efc446dae Escape key (instead of Simulation menu entry, now removed) stops ongoing xschem internal simulator engine if running 2021-11-04 23:52:24 +01:00
Stefan Frederik 4908152d99 break.awk: chop trailing white space on lines 2021-11-04 23:31:15 +01:00
Stefan Frederik 8281c67aed fix some UI glitches (place text/symbol and aborting operation during move will now delete placed objects) 2021-11-04 15:08:54 +01:00
Stefan Frederik 7490c80a9c fix UI bug when placing text and immediately deleting it (did not delete) 2021-11-04 13:30:50 +01:00
Stefan Frederik 966ebdc26e fix deletion of ctxmenu if user keeps right button pressed and exits window, icons in ctxmenu 2021-11-04 12:57:41 +01:00
Stefan Frederik fdf198d71e remove commented toolbar items in list 2021-11-04 09:30:43 +01:00
Stefan Frederik f5f6b681e2 removed rarely used toolbar buttons, added Abort context menu command 2021-11-04 02:07:41 +01:00
Stefan Frederik aadc37c2a8 More consistent context menu texts 2021-11-04 01:50:18 +01:00
Stefan Frederik 6ab004ec4b More consistent context menu texts 2021-11-04 01:43:43 +01:00
Stefan Frederik b720423eb3 comment typos 2021-11-04 01:23:40 +01:00
Stefan Frederik e85559efec context menu added in drawing area (right mouse button) 2021-11-04 01:13:44 +01:00
Stefan Frederik 5482cd0c2a redesign search toolbar button 2021-11-03 17:16:57 +01:00
Stefan Frederik c74e7fdb40 redesign of some toolbar buttons 2021-11-03 17:10:13 +01:00
Stefan Frederik 4dcb2c61a1 redesign of some toolbar buttons 2021-11-03 17:02:52 +01:00
Stefan Frederik 3ec3add6c0 redundant code elimination in new_schematic(), fixed a memory leak in update_symbol() 2021-11-03 00:31:08 +01:00
Stefan Frederik 6dbd952910 code cleanup in new_schematic(), error checks to make new window creation safe and simpler (proc new_window what path filename) 2021-11-02 02:23:45 +01:00
Stefan Frederik afa8a2d2d7 simpler yet better hash function 2021-10-31 23:38:52 +01:00
Stefan Frederik c8f6b66fdd new string hash function 2021-10-31 22:34:31 +01:00
Stefan Frederik 52c508423e eliminated duplicated string hash functions 2021-10-31 13:35:06 +01:00
Stefan Frederik 1fa2486e44 remove dbg messages in propagate_logic() 2021-10-30 21:33:12 +02:00
Stefan Frederik ebf0f0cf95 fixed simulation engine, no more bidirectional devices allowed 2021-10-30 03:12:06 +02:00
Stefan Frederik 8dbe8b7771 simplified simdata struct 2021-10-28 10:36:23 +02:00
Stefan Frederik e7d28947c1 removed redundant "valid" member in simdata struct 2021-10-27 22:56:33 +02:00
Stefan Frederik 45a567a405 fix compiler warnings (unused return value check on some function calls, missing %s on non literal string printf args) 2021-10-27 10:12:16 +02:00
Stefan Frederik fe5d2efc59 fix false positive in double-free detection, reported by updated track_memory.awk; fix missing free on allocated string 2021-10-26 01:18:16 +02: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 19f8939347 scconfig test for dup2() availability 2021-10-25 01:53:00 +02:00
Stefan Frederik 3f9e255a90 added symbols xnor2_1.sym, xor3_1.sym, xor4_1.sym in xschem_library/xschem_simulator 2021-10-24 01:41:01 +02:00
Stefan Frederik 0070498eb4 avoid printing "**** end_element" in spice netlist if current instance is skipped (no format or spice_ignore set); spice_probe_vdiff.sym will print .save v(n1) v(n2) instead of .save v(n1,n2) since this is how ngspice saves nodes (no differential voltage is saved) 2021-10-21 00:00:54 +02:00
Stefan Frederik 6223698b0b eliminated usage of flatten_savenodes.awk in spice netlist generation as hierarchical node saving (from inside subcircuits) is now a working feature of ngspice. 2021-10-20 01:50:26 +02:00
Stefan Frederik 18e78a754c token prefix for LCC embedded schematics changed from $ to %. LCC schematics saved with embedded symbols should need to be edited (replace $ with %) 2021-10-17 22:31:07 +02:00
Stefan Frederik 95c0ad1572 better identify commented pieces of code 2021-10-17 22:05:55 +02:00
Stefan Frederik a2779fab3c misc fixes in gschemtoxschem.awk 2021-10-14 02:35:43 +02:00
Stefan Frederik 2f47dfaaab updated gschem conversions, add tutorial documentation about geda translation to xschem 2021-10-12 18:03:39 +02:00
Stefan Frederik 0791a99165 updated geda translation, some additional allowed syntax in parselabel.l 2021-10-12 15:03:23 +02:00
Stefan Frederik 41419350ac gschemtoxschem.awk: make backslash insertion in gsub commands portable across awk implementations 2021-10-12 11:53:13 +02:00
Stefan Frederik fa3be90aa3 added comments in gschemtoxschem.awk converter; recognize "clk" pintype pin direction; parselabel.l: do not complain on U? refdes labels. 2021-10-12 10:52:48 +02:00
Stefan Frederik 04eee411f3 better implementation of prevous commit 2021-10-10 00:44:01 +02:00
Stefan Frederik 86dcb4cafa Do the update (process pending X events) only if a filename is given on cmdline, to avoid losing an Expose event if no file given 2021-10-09 13:30:44 +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 813f80e955 renamed --batch option to --detach as it is more appropriate. Short option -b remains unchanged 2021-10-05 22:24:38 +02:00
Stefan Frederik 945368db9c xschem simulation doc updates 2021-09-27 16:41:32 +02:00
Stefan Frederik e8e56aa025 mux simulation operator: set "X" instead of "Z" if select not "0" or "1" 2021-09-27 10:56:23 +02:00
Stefan Frederik 42de7dcf1f comments 2021-09-27 10:50:03 +02:00
Stefan Frederik 22715bf505 change mux behavior to avoid simulation deadlocks 2021-09-27 03:01:59 +02:00
Stefan Frederik 72b356df3c some simulation fixes in eval_logic_expr() 2021-09-27 02:47:23 +02:00
Stefan Frederik f00b27d97d interrupting xschem digital simulation with "Simulation->Forced stop tcl scripts" was leaving "tclstop" variable set, causing following simulation to produce erroneousr results. Any new sim resets the flag to 0. 2021-09-25 16:16:30 +02:00
Stefan Frederik fbe18fe279 some refactoring/cleanups in move.c 2021-09-24 10:20:23 +02:00
Stefan Frederik 3573fcdafb redraw / update all nodes that might change in copy/move operations if net_name=true 2021-09-24 00:39:56 +02:00
Stefan Frederik 6210f60232 fix erroneous removal of get_tok_size initialization to 0 in get_tok_value() (thanks to Joanne Low) 2021-09-23 21:06:14 +02:00
Stefan Frederik 2d054898f0 better remove rubber drawing garbage after copy/move 2021-09-23 11:47:02 +02:00
Stefan Frederik efef711d32 reverted last accidental change 2021-09-23 11:19:28 +02:00
Stefan Frederik 3ebb9566ec removed drawing redundancies in move/copy operations 2021-09-23 11:15:21 +02:00
Stefan Frederik 44f27ce79f removed drawing redundancies in move/copy operations 2021-09-23 11:13:56 +02:00
Stefan Frederik 5113b5727c fix garbage on screen when copying components that dinamically change their bbox after copy (example: net annotator ngspice_probe symbols, same fix as already done for move operation). 2021-09-22 23:33:50 +02:00
Stefan Frederik 08b5a3c87a fix tcleval(...) evaluation in spice netlist. it was disabled 2021-09-22 09:49:59 +02:00
Stefan Frederik 83c3814aa1 brace all remaining tcl "expr"essions for performance and security 2021-09-21 10:31:08 +02:00
Stefan Frederik 240cbfa935 do not call tcl_hook2() in "xschem get_tok" calls in xschem.tcl 2021-09-20 18:43:29 +02:00
Stefan Frederik f9ef05eabe execute tcleval(...) wrapped attributes in global tcl context, fix a bug (chopped newlines) in tclpropeval2 tcl proc 2021-09-20 12:08:24 +02:00
Stefan Frederik 46f5f9356a fix print_spice_element() for correct netlisting when tcleval(...) is used in some component attributes 2021-09-20 02:36:25 +02:00
Stefan Frederik 434e0f012b Any attribute embedded in a tcleval(....) construct will be passed by get_tok_value() down to tcl for evaluation. This generalizes what was done for the "schematic" attribute in 20210617 2021-09-20 00:55:33 +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 ccbd77b9d6 edit text label 2021-09-16 18:19:24 +02:00
Stefan Frederik 8e4a6250ac added spice waveform template configuration for Analog Flavor`s bespice wave (bspwave) 2021-09-16 18:07:12 +02:00
Stefan Frederik f574539e21 bump version to 3.0.0; prepare for 3.0.0 release 2021-09-11 07:53:11 +02:00
Stefan Frederik 113f25a19b commented empty assignments of xschem_libs and noprint_libs in xschemrc since by default they are empty anyway 2021-09-02 22:42:16 +02:00
Stefan Frederik 771123550e added "place=header" (in addition to "place=end" attribuite value) to print code block as a header in spice netlists 2021-09-02 10:24:30 +02:00
Stefan Frederik 5abe48f24e fix compiler warnings about unitialized variables (they arent, but ...) 2021-08-19 09:08:43 +02:00
Stefan Frederik c22039105f update license info (2) 2021-07-27 16:53:08 +02:00
Stefan Frederik 00311e7ff1 update license info 2021-07-27 16:42:54 +02:00
Stefan Frederik 25d7d323a4 force ERC info window showing in case of critical errors during netlist (unconnected nodes, shorted nodes, pin mismatch between sch and sym and similar) 2021-07-14 23:32:59 +02:00
Stefan Frederik e5208e2d99 refactoring: "plotfile[]" global moved into xctx struct 2021-07-14 01:43:29 +02:00
Stefan Frederik df0fc572f3 Talk To Gaw (ttg) improvement: use "sel" instead of "p0" for panel selection, meaning "selected panel (or 1st panel if no selected)" for waveform display 2021-07-03 08:34:38 +02:00
Stefan Frederik 03a97df404 correctly redraw schematic at end of hierarchical pdf export (full zoom and draw) 2021-06-21 19:11:36 +02:00
Stefan Frederik 9cdfad3abb do a tcl evaluation of the "schematic" attribute of a symbol if the attribute is within a tcleval(...) expression. This way tcl variables/expressions can be used to determine the schematic to descend into when traversing/netlisting. example: schematic=tcleval(poweramp_${::mode}.sch). 2021-06-17 00:25:39 +02:00
Stefan Frederik 242523cb9f typo fix 2021-06-16 07:15:31 +02:00
Stefan Frederik 36bc95ef7f add sample of to_pdf definition in xschemrc with -dAutoRotatePages=/None option to ps2pdf 2021-06-15 09:42:33 +02:00
Stefan Frederik 04d72db05f add description of xschem_libs and noprint_libs in xschemrc 2021-06-15 08:05:43 +02:00
Stefan Frederik b9f4c7aed8 remove debug message 2021-06-15 01:23:17 +02:00
Stefan Frederik e16e54d851 new list variable "noprint_libs" to specify patterns of cells NOT to print in hierarchical export. "xschem_libs" does the same thing for netlisting. 2021-06-15 01:15:32 +02:00
Stefan Frederik 6bc66fe0e7 netlist/print export: items contained in xschem_libs are matched as regular expression patterns 2021-06-14 08:42:19 +02:00
Stefan Frederik f251918a0e fix usage of "xschem_libs", list of libraries/schematics NOT to netlist / export 2021-06-14 00:35:20 +02:00
Stefan Frederik 5880e23f94 added hierarchical ps/pdf export (File menu) 2021-06-13 23:55:17 +02:00
Stefan Frederik dfef332fb5 Replace *.ipin/*.opin/*.iopin info lines with *.PININFO.... if LVS netlist is selected. Use absolute path of symbols in check_lib function. Make PNG export work if destination path contains spaces. 2021-06-12 00:54:09 +02:00
Stefan Frederik 88456ca382 add draw() at end of make_schematic_symbol_from_sel() to update schematic with generated lcc symbol 2021-06-07 00:15:00 +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 c1909334cb fix typos in debug messages 2021-05-31 07:39:23 +02:00
Stefan Frederik a1077329d8 -m declare local "a" variable in make_sym_lcc.awk/endfile() 2021-05-29 09:46:59 +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 6929cc896e use "-b" option when spawning new xschem windows, instead of redirecting i/o to /dev/null 2021-05-21 10:36:50 +02:00
Stefan Frederik fd6e5a6015 if bussed symbol ports are unconnected generate array of unconnected nets to match port multiplicity 2021-05-11 11:16:13 +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 99b0ab2ee2 if an XSCHEM_LIBRARY_PATH item contains "../" somewhere in the directory path apply [file normalize ... ] to resolve the ../../path/ path to an absolute location. 2021-04-16 13:31:20 +02:00
Stefan Frederik 7d4c208027 Save file dialog: added delete file/dir button 2021-03-18 17:16:46 +01:00
Stefan Frederik 447fca1b66 Save file dialog: added delete file/dir button 2021-03-18 17:13:36 +01:00
Stefan Frederik c5adb8a312 export images: seed text box with filename taking current schematic name; mkdir option in file / save dialog box; search dialog box: if token not found just repeat 2021-03-18 16:28:09 +01:00
Stefan Frederik ba31530e87 fix wrong displayed menu accelerator in Properties->View 2021-03-17 00:52:33 +01:00
Stefan Frederik 500feade8d Joanne fixes for potential crash in align_sch_pins_with_sym() if there is a sym/sch pin number mismatch. Moved box declaration to beginning of scope block for C89 compatibility 2021-03-07 00:15:16 +01:00
Stefan Frederik 0d3ebf7da9 add simulation menu option to create simulation/ dir under current schematic dir (local_netlist_dir) 2021-02-14 23:18:25 +01:00
Stefan Frederik df4aa83b01 fix "load most recent file" if file contains spaces. better handling of missing editor 2021-02-14 15:04:14 +01:00
Stefan Frederik 9825349f0d report error if editor not found while opening/editing with editor (netlist, stimuli file attributes) (xschemrc editor variable) 2021-02-14 13:05:11 +01:00
Stefan Frederik 9828c132ad better xschem.help formatting 2021-02-12 18:03:30 +01:00
Stefan Frederik fd561a9101 add as comments in netlist absolute paths for .sch and .sym of all expanded subcircuits 2021-02-09 23:04:26 +01:00
Stefan Frederik 238c9f592d fix -N option for output netlist filename 2021-02-09 17:19:37 +01:00
Stefan Frederik b7686bfe5c ngspice annotator: avoid adding "x" to node path names if not in spice netlist mode 2021-02-08 02:15:15 +01:00
Stefan Frederik 3d5e859766 ngspice_annotator: implicitly add "x" to subcircuit instance names that do not begin with "x" or "X" 2021-02-08 01:57:37 +01:00
Stefan Frederik 906dc4212e windows png/pdf export 2021-01-28 23:09:37 +01:00
Stefan Frederik 7bdc33d8c1 dont break .write in addition to .include lines 2021-01-24 04:23:06 +01:00
Stefan Frederik 1c19976ff5 dont break .inc in addition to .include lines 2021-01-24 04:19:52 +01:00
Stefan Frederik ac99227365 fix a bug when pasting / ctrl-v into an empty schematic (instances not selected for moving) 2021-01-22 01:03:16 +01:00
Stefan Frederik 4fd65005a1 new_wire(): update connecting bubbles when inserting new wires and no one is highlighted 2021-01-19 13:32:45 +01:00
Stefan Frederik e25f8c308a debug messages 2021-01-17 18:06:02 +01:00
Stefan Frederik 34a664e62f Fix: set_replace_key_binding was not working due to missing global array declaration. 2021-01-17 18:01:19 +01:00
Stefan Frederik 934e16ab87 uniquify __UNCONNECTED_NODE__ by appending a unique number to avoid shorting multiple missing connecting nodes 2021-01-14 18:12:02 +01:00
Stefan Frederik e332008fa8 removed/updated obsolete keybinding descriptions, removed status check on Delete key events 2021-01-13 13:44:57 +01:00
Stefan Frederik afef3e059f better handle simulation interruption 2021-01-12 22:07:27 +01:00
Stefan Frederik 6bb6553ea6 add simulation driver in switch_level_sim.sch 2021-01-12 18:35:19 +01:00
Stefan Frederik 7efc069117 fix regression in merge_polygon() after adding fscanf validity checks 2021-01-12 16:14:43 +01:00
Stefan Frederik f1b3a2d3b1 sample schematic updates 2021-01-12 03:07:20 +01:00
Stefan Frederik dddaae5099 removed redundant update_conn_cues() in some graphic operations; lower priority mux operator for logic sim, Dont change logic value added ("U"), ability to simulate bidirectional switches and simple logic MOS transistor networks. added sample circuits. 2021-01-12 00:47:56 +01:00
Stefan Frederik 50028baa9f added Hi-Z in logic values 2021-01-11 19:31:47 +01:00
Stefan Frederik 990647f4fa check all fscanf return codes, for better broken file handling and to eliminate utterly-smart-compiler warnings ons some platforms 2021-01-10 16:11:34 +01:00
Stefan Frederik cea1069656 add "mux", "tristate" functions to logic expressions 2021-01-10 12:53:10 +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 d9bfbff26f move_objects(): clear lab_show.sym symbols if nets get unhilight after wire deletion 2021-01-08 05:39:43 +01:00
Stefan Frederik db4b372719 delete(): clear lab_show.sym symbols if nets get unhilight after wire deletion 2021-01-08 05:26:37 +01:00
Stefan Frederik a7831ce972 some fixes regarding restore of areas when hilights are present, move_objects and copy_objects(): ELEMENT move/copy out of cadlayer loop. 2021-01-08 03:09:29 +01:00
Stefan Frederik c806289bee almost eliminated draw_hilight_net(1); draw() takes care of it faster 2021-01-07 18:46:39 +01:00
Stefan Frederik acb1c28921 find_inst_to_be_redrawn() fix speed issue when auto-net name showing is enabled: evaluate out of any operation loop, using hash table of changed nodes 2021-01-07 16:35:57 +01:00
Stefan Frederik 5cc1f04588 move.c: removed redundant drawing, now all areas are restored from pixmap by draw(). Postscript print: addition of (limited) unicode characters (0xC2 and 0xC3 2-byte sets are recoded to fit into the 256 slot postscript core font dictionaries). When editing multiple text objects with "preserve unchanged attrs" set do not change individual text dimensions. 2021-01-07 04:33:19 +01:00
Stefan Frederik f0256fce90 added draw() im move.c 2021-01-06 13:50:31 +01:00
Stefan Frederik c2b1edd2ab typo 2021-01-06 13:48:34 +01:00
Stefan Frederik 78b348c206 typo 2021-01-06 13:32:05 +01:00
Stefan Frederik fa2c55ba16 correctly unhilight instances after changing net labels 2021-01-06 13:29:14 +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 d64c8abb40 add -pg also in LDFLAGS if --profile is requested; add little more margin in ps page exports 2021-01-06 00:12:04 +01:00
Stefan Frederik 63f266c905 add sample file for custom menu additions 2021-01-05 15:55:12 +01:00
Stefan Frederik 229241c4a4 fix uncommented line (xschem start window) in xschemrc and link in doc main html page 2021-01-05 03:53:55 +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 8eb2147b18 removed obsoleted commands (shift/ctrl Del) 2021-01-04 18:21:29 +01:00
Stefan Frederik ce7f1d7dbf added rotate operator in logic function description 2021-01-04 17:24:57 +01:00
Stefan Frederik 2e0aa85408 more comments in sample xschemrc 2021-01-04 15:42:38 +01:00
Stefan Frederik 6cac6f2291 cleanups in sample xschemrc comments 2021-01-04 15:19:08 +01:00
Stefan Frederik 89f32313c3 doc updates; only hilight connected instances (when doing a net highlight) if symbol (or instance) has highlight=true attribute set. 2021-01-03 17:34:08 +01:00
Stefan Frederik b272080637 bind select "connected wires" to alt/ctrl-right button click 2021-01-03 12:37:15 +01:00
Stefan Frederik b63d3bec09 finalizing "select nets up to junctions" 2021-01-03 01:26:54 +01:00
Stefan Frederik 65fc659129 prepare(3) for delete connection implementation 2021-01-03 00:08:43 +01:00
Stefan Frederik 61fcefa987 prepare for delete connection implementation 2021-01-03 00:06:41 +01:00
Stefan Frederik cf5813970c prepare for delete connection implementation 2021-01-02 23:42:22 +01:00
Stefan Frederik 044892a7b3 documentation updates 2021-01-02 22:18:46 +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 1fe6508704 ngspice_probe type set from "probe" to "ngprobe" to avoid clashes 2021-01-02 19:44:01 +01:00
Stefan Frederik b76dcb0d95 moved couple of selection functions from hilight.c to select.c 2021-01-02 19:28:51 +01:00
Stefan Frederik d6b9740c4b specify state==0 (no modifiers) for Delete keypress events 2021-01-02 19:15:59 +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 6c98d34c65 make in_memory_undo work again (some variable changes missing after code refactoring) 2021-01-02 02:05:13 +01:00
Stefan Frederik 94cd0d0c7d hash_hi() made faster by caching sch_path_hash[] 2021-01-02 01:55:01 +01:00
Stefan Frederik a3d2b0c162 optimized bus_hilight_lookup() in case of non bussed nets (avoid expandlabel) 2021-01-01 21:43:08 +01:00
Stefan Frederik 304f7eee08 removed code duplication in logic_set() 2021-01-01 21:08:02 +01:00
Stefan Frederik 5f48a0ffe9 some comments in hilight routines 2021-01-01 16:32:50 +01:00
Stefan Frederik ec8eb99388 code cleanups, eliminated dead code 2021-01-01 15:43:27 +01:00
Stefan Frederik 8cd8542299 code cleanups, eliminated dead code 2021-01-01 15:25:30 +01:00
Stefan Frederik b6b6bb4f27 Fix: add symbol to space-hash in place_symbol() must be done before invoking symbol_bbox(); optimized eval_logic_expr() 2021-01-01 01:10:43 +01:00
Stefan Frederik a5c4bf8aae adjust comments 2020-12-31 18:06:54 +01:00
Stefan Frederik f18125a943 fix debug message potentially causing a crash in copy operations 2020-12-31 04:46:59 +01:00
Stefan Frederik 14d6cdc548 debug message on unconnected output in sims 2020-12-31 04:19:08 +01:00
Stefan Frederik c57b8f41ac unused data removed 2020-12-31 03:19:09 +01:00
Stefan Frederik a9d7d93e40 caching simulation data into "simdata" struct for performance 2020-12-31 03:08:24 +01:00
Stefan Frederik 14ead18ea4 "propagate_to" attribute for pins renamed to "goto" 2020-12-30 21:26:58 +01:00
Stefan Frederik c6bb28332e small perf. optimization in propagate_logic() 2020-12-30 02:21:46 +01:00
Stefan Frederik 92ba91042f fixes and comments in annotation schematic examples 2020-12-29 23:17:00 +01:00
Stefan Frederik 8cb3172f42 remove dbg msg 2020-12-29 15:42:45 +01:00
Stefan Frederik abce6ac29c fix make_sym.awk duplicating name= attribute in generated symbol 2020-12-29 15:41:15 +01:00
Stefan Frederik 7ba3001066 fix make_sym.awk duplicating name= attribute in generated symbol 2020-12-29 14:14:32 +01:00
Stefan Frederik ebaa2d932b redraw wire/line/rect/arc/poly rubbers after changing zoom/panning; do not wait for Motion events 2020-12-29 03:45:12 +01:00
Stefan Frederik 921885d654 make lookup of logic attributes faster in symbol examples 2020-12-29 00:14:23 +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 78da56aec5 added oldvalue in hilight hash table to track differences 2020-12-28 15:50:00 +01:00
Stefan Frederik 1773a2e8d2 Some more global state into Xctx 2020-12-28 14:01:03 +01:00
Stefan Frederik bcf8986314 Some more global state into Xctx 2020-12-28 13:44:10 +01:00
Stefan Frederik 4687133b5f fix unfreed pointer in get_logic_value() 2020-12-28 12:29:57 +01:00
Stefan Frederik 47ed76374e fix value for "non hilight condition" on instance .color field as small negatives are used for simulation 2020-12-28 04:47:26 +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 9e9cac0516 remember last directory in export png/svg/pdf/ps, added missing symbols 2020-12-27 22:59:15 +01:00
Stefan Frederik 5917cd9717 added flip-flop simulation capabilities. added examples: merry xmas greeter and 7 segment display driver and counter. 2020-12-27 19:20:24 +01:00
Stefan Frederik 625b378bdd comments in the code 2020-12-27 02:04:42 +01:00
Stefan Frederik 5295a6281c fix a regression in sort_labels.awk after moving tmpfile to /tmp; added oldvalue (for simulation) in hilight hash table 2020-12-26 23:53:26 +01:00
Stefan Frederik 40eaefbb82 removed logicx() obsoleted function 2020-12-26 23:05:07 +01:00
Stefan Frederik 9b4534d6b0 A change_linewidth(-1.0) is added after resetwin() creates a new pixmap (example: after a window resize) . This sets colors, backgrounds fill styles for the new pixmap. 2020-12-26 22:29:45 +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 10e47b980b folding long lines 2020-12-25 15:37:26 +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 6e8486bbf2 add mising parameter in text_bbox() needed if compiling without cairo, tedax_netlist updated to be in line with other backends. 2020-12-24 12:23:48 +01:00
Stefan Frederik fe42f65ec0 some adjustments to make xschem work without warnings if compiled with 18 years old tcl-tk 8.4, check for unconfigured simulators/viewers (example: running a simulation on tedax netlist), various fixes for the drill_hilight() function 2020-12-24 05:18:50 +01:00
Stefan Frederik 5bd6d565d1 propagate_hilights does a prepare_netlist_structs() to ensure consistent connectivity and avoid crashes when returning from lower level symbols; specialized there_are_hilights() function that tells if there still are hilights in the hash table. Checking hilights in current level of hierarchy only is an error since there might be hilights in other hierarchies. 2020-12-24 01:13:37 +01:00
Stefan Frederik b7b9d666a9 fix: avoid doing any erc checking/highlights if a schematic is explicitly loaded without linking components to symbols. This is done for instances with (spice|verilog)_stop=true attributes set to prevent unwanted symbol expansion 2020-12-23 18:16:53 +01:00
Stefan Frederik 02f0a416cc -a -m check for unbound instances (Joanne fix) 2020-12-23 15:57:28 +01:00
Stefan Frederik 5f39beab1d code formatting 2020-12-23 12:06:04 +01:00
Stefan Frederik 69b465805a eliminated unused var 2020-12-23 05:09:14 +01:00
Stefan Frederik d0fb5f94e0 eliminated some global vars 2020-12-23 05:07:39 +01:00
Stefan Frederik 11a054946b better gsave/grestore in ps/pdf export 2020-12-23 02:59:44 +01:00
Stefan Frederik c58645b8e6 fix connection bubbles not updated when adding "2 segment manhattan lines" , svg export draws highlighed nets if any 2020-12-23 02:14:27 +01:00
Stefan Frederik 26b5b67262 code formatting 2020-12-22 22:37:39 +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 9b262299ba typo in svgdraw.c 2020-12-22 14:05:51 +01:00
Stefan Frederik 5e0ba4766b use Sans-Serif for svg default font instead of SansSerif that is unrecognized on some browsers 2020-12-22 13:08:11 +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 d46abbeec1 use SansSerif default font instead of Helvetica: more general and better matching with browser display 2020-12-20 22:28:10 +01:00
Stefan Frederik 0970555869 removed obsolete --a3page command option 2020-12-20 20:42:07 +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 43f6dc03a4 fixed typo in spice.awk 2020-12-20 12:46:00 +01:00
Stefan Frederik 63a6a8767e resolved a slow path introduced in commit db6bee26 / r1406 ( rebuild xctx-<inst[].color after undo/load ) 2020-12-20 02:09:38 +01:00
Stefan Frederik a737e53be4 after a paste schematic / ctrl-v leave ui_state to SELECTION so objects can be deleted without having to re-select them 2020-12-19 23:21:47 +01:00
Stefan Frederik db6bee268a Fix: paste/ctrl-v was not leaving elements selected; select highlighted elements was not setting ui_state to SELECTION making delete not functional. After an undo rebuild xctx-<inst[].color field of labels/pins from bus_hash_lookup info. 2020-12-19 23:11:26 +01:00
Stefan Frederik f3a3c2d10d clean up of search() function (removed spaghetti drawing code, use available functions) 2020-12-19 19:58:30 +01:00
Stefan Frederik bcedaa6bc5 various drawing optimizations to speed up full zoom views 2020-12-19 17:12:46 +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 41c46bd84b fix hilights when descending / going back 2020-12-18 19:43:45 +01:00
Stefan Frederik 821ebf06f2 optimizations in instance (connected to wires/net labels) highlights 2020-12-18 19:22:08 +01:00
Stefan Frederik 3611b95444 fix debug message causing a crash when doing a net highlight if design contains cells with no pins (filler, taps, etc) and highlight=true attr is set on symbols 2020-12-18 12:38:09 +01:00
Stefan Frederik 2e18119645 remove "m=1" in xyce spice netlists as xyce does not handle m param. Translate spice_probe ".save" to xyce ".print tran", handle different hierarchical expansion of voltage/current nodes in xyce for hierarchical ammeter/spice_probe probes 2020-12-17 18:26:46 +01:00
Stefan Frederik e46033f0bb fix regression due to r1395, updated Changelog, fix set initial window size when doing ps/pdf export from cli 2020-12-17 03:48:34 +01:00
Stefan Frederik 2e20b2c6d6 escape parenthesis in postscript texts 2020-12-17 02:49:37 +01:00
Stefan Frederik c13ca9218d fix correct version syntax when saving in file 2020-12-17 02:01:38 +01:00
Stefan Frederik a438d436bf xschem page aspect ratio decides if postscript or landscape for ps/pdf 2020-12-16 23:16:43 +01:00
Stefan Frederik 887280d8a2 better postscript page align 2020-12-16 18:56:38 +01:00
Stefan Frederik 5b4d6ab640 postscript fonts in ps/pdf export 2020-12-16 18:30:33 +01:00
Stefan Frederik 1bb59cf41a cleanup in postscript print 2020-12-16 10:48:15 +01:00
Stefan Frederik f22f7a26f5 allow to specify fixed, user defined line width (does not change on zoom) and allow specify if grid points should be same size as line width 2020-12-14 19:11:24 +01:00
Stefan Frederik ce5adbffdb added flatten_savenodes.awk for flattening in-subcircuit .save instructions 2020-12-14 16:31:20 +01:00
Stefan Frederik 5af6a38d2e allow ! in net names, it got deleted after the parselabel rework. 2020-12-13 20:26:39 +01:00
Stefan Frederik e89f0e4505 code formatting; xschem(): check for command not found 2020-12-13 00:00:48 +01:00
Stefan Frederik 03c42d3ecd code formatting 2020-12-12 22:48:25 +01:00
Stefan Frederik fc5b1a9616 code formatting 2020-12-12 20:50:06 +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 0ca9464f8f "Edit Attr" combobox in edit symbol attributes and edit global attributes was adding unnecessary quotes around the attribute 2020-12-07 21:08:13 +01:00
Stefan Frederik 89da7d9ffd use #if HAS_CAIRO!=1 indtead of HAS_CAIRO==0 2020-12-07 20:12:52 +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 e80896dbf9 added render_format assignment that got deleted after xinit code refactoring 2020-12-07 18:51:15 +01:00
Stefan Frederik c5c729fc89 tcl code indentation fixes, cleanup, some global vars removed 2020-12-07 15:46:20 +01:00
Stefan Frederik 4d56fcc72d indentation cleanups 2020-12-06 22:07:33 +01:00
Stefan Frederik c3ba3112e0 remove some redundant warnings in memory allocations, since all alloc calls have an ID and wrapper issues warnings in case of failures. Use some Tk wrapper functions to get X11 related data since all windows are already opened by tcl-tk. 2020-12-06 20:52:35 +01:00
Stefan Frederik 17124c761c each schematic windows has its own "current later" (rectcolor) 2020-12-06 16:40:08 +01:00
Stefan Frederik 4d26ce66a8 more state variables into xctx: move / create new objects 2020-12-06 16:10:22 +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 fe1f7c57a7 "lazy man" (good enough for schematics) aproximated polygon clipping using the underlying xorg 16 bit integer poly clipping engine, by projecting outer vertices to the 16 bit signed coordinate system edges 2020-12-05 13:58:44 +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 f138db5aba fix linewidth when done with preview, also avoid to destroy & create main pixmap since it was saved 2020-12-05 04:12:56 +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 c3aad2fbfc remove dbg messages 2020-12-04 13:02:19 +01:00
Stefan Frederik e5205cfd1e Split mode netlisting in different formats got bitrotten due to a regression. Fixed. 2020-12-04 12:45:50 +01:00
Stefan Frederik 29d8b0c3a8 resetwin(1,1,1) instead of resetwin(1,1,0) in preview_window so save_pixmap is reset to correct size when switching back to main window 2020-12-04 02:27:35 +01:00
Stefan Frederik 1268a6faae removed redundant XSetTile in preview_window() 2020-12-04 01:38:48 +01:00
Stefan Frederik 76ef664757 undo data structures into xctx context 2020-12-04 00:30:13 +01:00
Stefan Frederik 2b7e31e0d6 add utility functions to create new schematic window 2020-12-03 23:17:13 +01:00
Stefan Frederik 2f3025cf3f rm debug msgs 2020-12-03 19:48:15 +01:00
Stefan Frederik 70cf1e8dfb fixed big performance issue when bulk-changing attributes on a big schematic and show_pin_net_names is enabled 2020-12-03 19:47:25 +01:00
Stefan Frederik ead42c17fa raise_dialog above main window 2020-12-03 18:43:48 +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 66a73e4e99 cleanup in preview code 2020-12-03 11:49:29 +01:00
Stefan Frederik 4322101f9b cleanup in preview code 2020-12-03 11:46:00 +01:00
Stefan Frederik 9588a859da cleanup in preview code 2020-12-03 11:42:06 +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 fe46725c0c in case of vector instance names and spiceprefix attr set apply spiceprefix to all members, not only on first one 2020-12-02 17:33:01 +01:00
Stefan Frederik e279262f00 more globals into xctx context struct 2020-12-02 15:10:47 +01:00
Stefan Frederik 2dc28726d3 turn off dbg messages 2020-12-02 12:50:08 +01:00
Stefan Frederik aef66d6ff6 clear debug msg 2020-12-01 14:39:02 +01:00
Stefan Frederik 83ae1c01b6 ERC checks: do sch/sym node equivalence check on expandlabel()'ed nodes, avoid flagging DATA[5,3,1] != DATA[5:1:2] != DATA[5],DATA[3],DATA[1] 2020-12-01 13:43:15 +01:00
Stefan Frederik 08e179e588 better cmdline filename path parsing 2020-12-01 13:25:00 +01:00
Stefan Frederik 2bd8a93889 preserve backslashes in instance name after doing an editprop(). get_tok_value() fix: do not eat "\" if called with with_quotes=1 2020-12-01 12:00:18 +01:00
Stefan Frederik 1055fdbf36 bounding box fix while copying objects done in r1224 was not correct. Object rotation fixed now 2020-12-01 00:03:29 +01:00
Stefan Frederik 7da61bc054 draw wide lines (bus=true attribute) in svg export 2020-11-30 23:20:06 +01:00
Stefan Frederik c8dc48f916 fix: load_wire() was using storeobject() for storing data, causing unwanted modify=1 flag (this has various side effects including changing window title) 2020-11-30 22:48:08 +01:00
Stefan Frederik 3f6a9ab1f8 allow new lines in net names (!) 2020-11-30 22:12:31 +01:00
Stefan Frederik 4ea2dde800 add ":" allowed char in instance names , this disappeared during the parselabel.l rewrite 2020-11-30 21:07:42 +01:00
Stefan Frederik db8186c213 fix mapping issue in hiertEDAx code. Thanks to Hannu for pointing it out. Allow newlines in (quoted) long vector labels, like: "AAA,BBB,\nCCC,DDD,EEE" 2020-11-30 21:01:33 +01:00
Stefan Frederik b726eb27a6 more verbose ERC message about missing attrs on pins while netlisting 2020-11-30 17:33:15 +01:00
Stefan Frederik b910d74d56 expandlabel.y: allow meaningless syntax without botching. Let the user rule 2020-11-30 14:04:38 +01:00
Stefan Frederik 7548e7a21b added some more allowed characters in node naming (parselabel.l) 2020-11-30 12:15:05 +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 b1a1442012 allow spaces in bussed nodes (A B,CC,D\ C, A B[3:0]), dont dump double quoted net names in netlists 2020-11-29 00:00:55 +01:00
Stefan Frederik d95eb0f871 fix repeated character in RE, fix changed syntax in verilog example 2020-11-28 20:08:40 +01:00
Stefan Frederik 9a03923b4e switch LC_ALL to "C" locale 2020-11-28 16:54:15 +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 ad3059dd83 added some comments 2020-11-26 04:01:11 +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 01077ea162 Tell user to check ~/gaw/gawrc setting if tcp send waves to gaw fails 2020-11-25 01:46:26 +01:00
Stefan Frederik 8fe0553f96 fix crashing netlister crashing bug if required schematic files are missing (null hier path). fix hierEDAx when netlisting empty blocks 2020-11-24 17:37:27 +01:00
Stefan Frederik d7b0c27775 hiertEDAx: don\t split on escaped white space. test schematic with weird instance/net names 2020-11-24 15:25:37 +01:00
Stefan Frederik a9a3538a71 FIX: error after recursive expansion leading to wrong netlist 2020-11-24 13:30:42 +01:00
Stefan Frederik e1110a2c98 comment hashes in column 1 for hiertEDAx according to syntax rules 2020-11-24 11:57:57 +01:00
Stefan Frederik 9c5739b0f2 allow tEDAx (flattened) netlisting of hierarchical schematics; added pcb/hierarchical_tedax example 2020-11-24 02:54:45 +01:00
Stefan Frederik 7d2875649f fix $tok_list --> [list $tok_list] in text_line proc, so weird input does not cause issues in token parsing 2020-11-23 02:15:34 +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 Frederik 84134e0d97 fix: make a copy of returned string to avoid overwrites 2020-11-20 22:02:43 +01:00
Stefan Frederik 0d59d01170 allow to pass down to tcl evaluation (via tcleval( ....) wrap) instance parameters: example of a mos transistor : name=m1 w=2 l=0.13 model=net ad="tcleval([expr @W * 0.29])" --> in netlist: m1 d g s b nfet w=2 l=0.13 ... ad=0.58 2020-11-20 18:46:27 +01:00
Stefan Schippers 759c44078e optimization: avoid calling get_tok_value in storeobject() if no attributes are given 2020-11-19 16:48:44 +01:00
Stefan Schippers 71fd1bcb68 comments about color handling in source code, set_cairo_color() function 2020-11-19 15:08:40 +01:00
Stefan Schippers 25cc006ffe removed a stray "closepath" for open polygons in postscript output 2020-11-19 11:28:04 +01:00
Stefan Schippers 20afce9ab6 code cleanups and small fixes in the svg export code 2020-11-19 01:17:22 +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 4f53cd8dbd remove noop code after cleanups 2020-11-18 18:54:41 +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 3c86f4ec64 more consistent function parameter names in svgdraw.c and draw.c 2020-11-18 12:46:57 +01:00
Stefan Schippers 78a82a9bc0 fix regression: ps and svg exports were broken due to enable_layer[] used for enabling selections 2020-11-17 02:17:34 +01:00
Stefan Schippers 7a67663330 fold long lines 2020-11-17 01:29:47 +01:00
Stefan Schippers 1634414b11 code comments 2020-11-16 16:59:55 +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 fac9cfe26b folded long lines 2020-11-16 12:33:06 +01:00
Stefan Schippers 90f6d7ee90 cleanup debug messages 2020-11-16 02:25:43 +01:00
Stefan Schippers 2d01eee04b trim_wires() made 2 O.O.M. faster on big wire meshes; rects, lines, polys, arcs on hidden layers (View -> Visible Layers) not selectable by area or by mouse click 2020-11-16 01:28:19 +01:00
Stefan Schippers d22b4c9ea0 guard against extended ascii characters in nocairo/svgdraw/psprint function 2020-11-13 12:54:07 +01:00
Stefan Schippers f3c9160cc5 keep frequently allocated memory chunks cached in get_tok_value() for better performance 2020-11-11 19:01:22 +01:00
Stefan Schippers 7f771d6329 added variable "S" containing full schematic path in "Simulations->Configure simulators and tools". This can be used to add search paths to simulators. 2020-11-10 17:59:33 +01:00
Stefan Schippers 9b5bd75ec8 allow tcl commands ( [..cmds..] ) in Simulation->configure simulators and tools (useful to retrieve needed information about current dir etc.). 2020-11-10 17:48:26 +01:00
Stefan Schippers 61dd4e99b0 better xschem icon: added shapemask for "transparent" background 2020-11-10 13:17:25 +01:00
Stefan Schippers f837353429 simpler glob expressions in xschem.tcl 2020-11-09 11:49:24 +01:00
Stefan Schippers e6808f844a better syntax for timeout cancel in gaw_cmd 2020-11-08 18:06:55 +01:00
Stefan Schippers ec6ad39acc synchronize command sending to gaw with gaw replies so at the end the tcp channel is closed gracefully (avoid port in use error messages). Timeout whatchdog is set to prevent forever waits/deadlocks. 2020-11-07 21:07:16 +01:00
Stefan Schippers 3f76397522 better synchronization of gaw_cmd so multiple commands are sent to gaw. However tcp file descriptor remains active for subsequent commands. Next improvement: count replies from gaw client and close file descriptor when last reply read. 2020-11-07 14:40:49 +01:00
Stefan Schippers 24dd02b713 Fixed Windows Xschem running from VS2019 without installing Xschem to find (Root)/xschem_library/devices as XSCHEM_LIBRARY_PATH, so that viewing schematics through VS2019 will find all symbols in xschem_library/devices. Moved doc and xschem_library XML files to its own *.wxs. Cleaned up Product.wxs by taking out doc and xschem_library files; fixed spacings in License.rtf; added condition that proper version of Active TCL is required to install 2020-11-07 10:52:50 +01:00
Stefan Schippers 191b4d8ed3 added m parameter to npn.sym and pnp.sym, text attribute edit dialog box renamed from .t to .dialog so it will be always raised on top of xschem window 2020-11-06 19:29:09 +01:00
Stefan Schippers 2a5e5a80cc put braces around "expr" tcl statements as this boosts speed 2020-11-05 00:57:16 +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 34a1cb8950 execute_fileevent: do not reset pipe to blocking mode before closing if no status is requested: this avoids close blocking if executed process closes its stdout / stderr file descriptors before ending 2020-10-31 01:45:59 +01:00
Stefan Schippers 01ed63275b do not set dircolor(...) default item colors if dircolor array defined in xschemrc 2020-10-30 01:22:25 +01:00
Stefan Schippers 73bab32aa9 __unix__: do simple tilde subst ( ~/ --> /home/user) just in case this was not done by the shell 2020-10-27 22:56:53 +01:00
Stefan Schippers 5706b12ad9 do not execute tcl proc "build_windows" in xinit.c if no X or -x option given 2020-10-27 12:00:34 +01:00
Stefan Schippers b24c9ed763 fix an issue if "xschem ./sch_file.sch" is given on commandline, in this case load_file() will set current_dirname to /some/path/., this confuses abs_sym_path, so remove trailing /. in this case. 2020-10-26 02:31:47 +01:00
Stefan Schippers 24370cb752 updated "xplot" file syntax according to recent ngspice changes 2020-10-26 01:50:45 +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 8602fa7bb6 added Shift-I bindkey as an alternative to Insert key (missing on Apple machines) to insert a component 2020-10-24 23:07:45 +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 6d4c8881f2 regression fix: unselect all when placing a component, to avoid dragging selected stuff with the new object 2020-10-24 20:06:42 +02:00
Stefan Schippers 41e5d02edb error check for strrchr() NULL return value in print_spice_element() 2020-10-24 03:15:08 +02:00
Stefan Schippers 032bbf6f24 fixed error in tripping off "eval(...)" wrapper from string in print_spice_element 2020-10-24 03:11:37 +02:00
Stefan Schippers 27d1a9e477 get_tok_value: even if called with "with_quotes=2" do not skip unescaped backslashes that are outside "quotes". Added dynamic netlisting test circuit in examples 2020-10-23 23:17:55 +02:00
Stefan Schippers 2ffb4f792e according to answer from ngspice guys ngspice does not accept continuation lines for .title, .include and .lib statements, so break.awk will avoid breaking those lines. reversed default for tcl dim_background variable, so toggle colorscheme will work. 2020-10-23 01:19:03 +02:00
Stefan Schippers ca9786ce86 some "tcl_version > 8.4" conditions in xschem.tcl to ensure proper working on old (tcl/tk8.4) machines. 2020-10-22 04:16:48 +02:00
Stefan Schippers 1536e77b62 spice netlist postprocessing will not break ".include " lines as ngspice does not like these. make_sch_from_spice.awk adapted to import sky130 standard cells, spice netlister will print extra nodes (inherited connections or pins-by-attribute) in the order specified by the format string, instead of dumping the "extra" attribute after all "real" pins, this allows to mix attribute pins with the other pins. 2020-10-21 18:18:53 +02:00
Stefan Schippers 65b7e318a9 yet amoother typo in comment 2020-10-21 00:14:31 +02:00
Stefan Schippers 3bb92f1e0d better comment in resetwin() 2020-10-21 00:11:03 +02:00
Stefan Schippers 1ec0745b54 add another condition in resetwin() to ensure the saved pixmap is reassigned to main window when returning from preview 2020-10-21 00:04:10 +02:00
Stefan Schippers 40a628dc34 resetwin(): force creation of new save_pixmap even if no resize *if* preview_window==1, since we *want* a different pixmap for preview 2020-10-20 23:45:30 +02:00
Stefan Schippers b4681b22af aligned linux code to windows: check if preview pixmap != main pixmap before destroying. probably not needed but good practice 2020-10-20 23:34:40 +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 3bbba8601f added ngspiec_probe.sym and ngspice_get_value.sym that use a pull method to fetch values from ngspice .raw datafile, fixed a long standing bug that changed bounding boxes of symbols that were selected for a copy if they were copied and copy operation involved rotations of flips. 2020-10-20 12:44:10 +02:00