Commit Graph

513 Commits

Author SHA1 Message Date
stefan schippers 48e93c4e37 added dark_gui_colorscheme (default: 0) for dark widget colorscheme configuration. Enabled again partial select (resize) of arcs 2024-03-03 00:40:51 +01:00
stefan schippers 236f4967a9 use `flags: complex` in raw file in addition to `Plotname: ac` to determine if data is stored as complex numbers 2024-02-28 00:08:08 +01:00
stefan schippers 5fe6fa4639 xschem raw read: allow to read raw file with unspecified type (will get the first section found in file) 2024-02-27 23:42:19 +01:00
stefan schippers 2f1b819755 extra_rawfile: added null sim_type (type) check in table_read 2024-02-27 23:32:53 +01:00
stefan schippers 7ede51737d table_read: skip empty csv rows (some tools save as ,,,,,) 2024-02-27 11:56:18 +01:00
stefan schippers 95fc6377d4 get rid of `sim_type=tablefile`, use `table` (scheduler.c, extra_rawfile()) for reding tables 2024-02-27 11:27:29 +01:00
stefan schippers 1e3ac96085 table_read(): read csv files 2024-02-27 10:24:21 +01:00
stefan schippers 783b5c7aaa added wave processor functions `re()` and `im()` to get real and imaginary part from modulus and phase (expressed in deg) 2024-02-25 23:54:39 +01:00
stefan schippers 7a45497b45 add `xschem raw del node` command 2024-02-25 12:21:13 +01:00
stefan schippers 2fae34caa1 fix idx() function in wave processor, unified `xschem raw_query` and `xschem raw` commands 2024-02-25 00:06:15 +01:00
stefan schippers 5a2891e4de add idx() function (return index of point, 0, 1, 2, ...). doc updates about new wave processor functions 2024-02-24 22:35:54 +01:00
stefan schippers 203cf38e1e add option `keep_symbols in xschemrc to avoid purging symbols when netlisting /descending hierarchy. Add functions atan, asin,acos, cosh, sinh, atanh,acosh,asinh in wave processor 2024-02-24 13:15:43 +01:00
stefan schippers de2572e448 fix an off by 1 array bound in raw_add_vector 2024-02-24 01:53:26 +01:00
stefan schippers bf71dbc9e7 command xschem raw new to use `start end step` instead of `start step number` 2024-02-23 21:58:41 +01:00
stefan schippers 44707d71db extend command `xschem raw_query add [expr]` for fast (C-speed) expression calculation 2024-02-23 12:46:03 +01:00
stefan schippers d1bd5140fe various bug fixes for `xschem raw new` command 2024-02-23 04:19:29 +01:00
stefan schippers ac3f3acb62 added command `xschem raw new name type sweepvar start step number` that creates an in-memory plot (like a loaded raw file) with only the sweep variable 2024-02-23 01:03:20 +01:00
stefan schippers be22993410 add command `xschem raw_query add <node>` to add a vector <node> with all zeros to the loaded raw file. This vector can then populated with programmatic values using z `xschem raw_query set <node> point value` loop 2024-02-22 19:59:09 +01:00
stefan schippers 965bf381ea fix regression in xschem raw_read_from_attr when invoked from launcher 2024-02-22 14:36:34 +01:00
stefan schippers 446c0d687a add command `xschem raw table_read table_file` to read an ascii table file without closing other loaded raw files 2024-02-21 23:16:58 +01:00
stefan schippers 1cbbed77ba first commit for parametric models in subckts --DO NOT USE-- 2024-02-09 17:00:56 +01:00
stefan schippers 331722ab07 fix too early xctx->currsch increment in descend_symbol() 2024-02-02 10:48:51 +01:00
stefan schippers 778dd2c0dc recognize integrated_noise, improve `xschem preview_window` command 2024-01-27 11:42:05 +01:00
stefan schippers 1f35fdf05c add `spectrum` type analysis in graph dialog sim type combobox. Make sp and spectrum aliases of ac in read_dataset() and extra_rawfile() 2024-01-22 01:19:27 +01:00
stefan schippers a7f1b2a5f1 add Spectrum analysis recogniztion (yet another ac type) in raw files 2024-01-08 23:59:55 +01:00
Stefan Schippers cd6deb0bf9 xschem raw_read: allow specifying t1 and t2 to load only a portion of simulation file 2023-12-31 20:33:08 +01:00
stefan schippers 26fbb82f6b fix unwanted head_undo_ptr change when doing a netlist. Add current backannotation info in capa.sym, ind.sym, isource.sym, isource_table.sym 2023-11-27 00:01:45 +01:00
stefan schippers aafe94822a save_file_dialog: file filter by default set to `*` (show all files) 2023-11-22 01:41:16 +01:00
stefan schippers f4f61d23a6 comments added 2023-11-18 23:13:52 +01:00
stefan schippers be914f4ee4 raw_read(): clear text floater caches if a rawfile is successfully read 2023-11-15 21:04:10 +01:00
stefan schippers 83345932a5 allow to specify per-node raw file in graphs with the syntax: alias_name ; node_name % [dataset] [rawfile] [sim_type] 2023-11-15 19:18:28 +01:00
stefan schippers f4df48813f copy_hierarchy_data() initial implementation for future hierarchy cloning. Alt-Shift-E and Alt-Shift-I to edit schematic / symbol in a new xschem process. `xschem raw switch`: allow also integer index (as returned by `xschem raw info`) instead of `file type` to switch raw file 2023-11-13 18:00:30 +01:00
stefan schippers 0bc0f8e5eb read_dataset(): better get name of unknown sim types from raw file 2023-11-12 22:11:51 +01:00
stefan schippers 8856ab6e0d add min() and max() clipping functions in wave calculator 2023-11-11 12:13:38 +01:00
stefan schippers 117f071500 fix del() function in wave processor (did not plot the right %n dataset if specified) 2023-11-10 23:23:13 +01:00
stefan schippers 565ab605cf better xschem raw clear comand (if rawfile and sim_type specified delete only specified simulation data, not all analyses of rawfile) 2023-11-10 12:24:21 +01:00
stefan schippers 87f9a4e09b reset floater caches on save(As) schematic - better done 2023-11-09 19:20:17 +01:00
stefan schippers 1b737c4ac7 reset floater caches on save(As) schematic 2023-11-09 19:13:55 +01:00
stefan schippers 4ff28fd39d avoid calling simuldir in load_schematic when traversing hierarchy during netlisting 2023-11-08 02:52:50 +01:00
stefan schippers f04477d236 if local_netlist_dir is set to 1 change netlist_dir at circuit load (and save-as) 2023-11-07 17:25:18 +01:00
stefan schippers 71f5994798 reset simulation button on save AS 2023-11-06 19:03:19 +01:00
stefan schippers 98def78164 simulation button will go yellow while sim is running.Clicking a yellow simulate button will kill simulation. 2023-11-06 16:47:14 +01:00
stefan schippers 0b93634fee Better Simulation->Graphs-> Load raw file (ask filename) 2023-11-03 23:37:09 +01:00
stefan schippers d776d6a351 better handle operating point clear / update when switching / reading / clearing raw files. dont use operating point data (ngspice::ngspice) above the hierarchy level where raw file has been loaded. 2023-10-29 14:04:52 +01:00
stefan schippers b680f5da20 redraw screen if executing `xschem raw_read` (and raw file already loaded, thus unloading waves) 2023-10-29 12:54:55 +01:00
Stefan Schippers d5fd026196 xschem raw command: delete also last (base) raw file in clear subcommand 2023-10-28 17:12:32 +02:00
stefan schippers 6362ebb214 add tanh() function in wave expression evaluator 2023-10-27 10:48:53 +02:00
stefan schippers 9f1b447c16 previous fix did not fix. Fix the fix 2023-10-26 19:38:25 +02:00
stefan schippers 4985fb6e61 fix crash if extra_rawfile(2, ...) is called when no initial raw file is loaded 2023-10-26 19:27:11 +02:00
stefan schippers fec9c1b7e3 fix fullxzoom if a single curve is selected with find_closest_wave() (returns a dataset number) in a double variable DC sweep (there are no multiple datasets, just sweep var wrapping) 2023-10-23 17:20:51 +02:00
stefan schippers cc5864e12f fix 2 bugs in extra_rawfile(): xctx->extra_idx assignment in extra_rawfile "read" subcommand and return value if no command executed. Add "file_exists "procedure to be used in graph_edit_properties for rawentry resolution 2023-10-18 10:15:39 +02:00
stefan schippers a41a0bf9fd add noise analysis recognition in raw files 2023-10-18 02:56:06 +02:00
stefan schippers 52572a6ca4 update cmos_example.sch 2023-10-17 18:16:48 +02:00
stefan schippers 9917c8276b revert to KeyRelease events (instead of FocusOut) for various widgets in graphdialog (better feedback), fix premature deallocation of data in child process in filter_data() 2023-10-17 17:05:10 +02:00
stefan schippers 306c5d0d15 fix two small memory leaks, doc updates (xschem raw command) Raw.filename renamed to Raw.rawfile 2023-10-17 16:08:27 +02:00
stefan schippers b165720bc8 allow loading more and different analyses from the same raw file. Implied tcleval() in rawfile given in graphdialog, transform multiple saved OP sims into a dc sweep. 2023-10-17 14:00:43 +02:00
stefan schippers 8cfd51d8f9 add the ability to load multiple raw files with different analyses in a single schematic ( extra_rawfile() ) 2023-10-17 00:42:31 +02:00
stefan schippers 5da81a7aea shut down some gcc false warnings (uninitialized vars), add read_more_rawfile() 2023-10-16 11:16:12 +02:00
stefan schippers f10555917e optimized usage of interpolate_yval(), add raw->cursor_b_val[] 2023-10-16 09:53:03 +02:00
stefan schippers a7bcfb7941 do interpolation when annotating "b" cursor values in schematic, as done with measurements with "a" cursor. 2023-10-15 12:05:48 +02:00
stefan schippers f87ab46310 refactor table_read(), less pointer indirections 2023-10-15 10:24:13 +02:00
stefan schippers 663991ce70 add "filename" member in Raw (raw file) struct 2023-10-14 23:09:40 +02:00
stefan schippers 537cedbafe better graphdialog layout, remove tcl redundant raw_level var 2023-10-14 22:43:58 +02:00
stefan schippers 9b4bd44fd0 merged in fast_raw_read branch 2023-10-11 14:05:27 +02:00
stefan schippers b613d65fd9 read_dataset(): better set return codes on errors and cleanup allocated memory 2023-10-02 19:18:12 +02:00
stefan schippers 9fee9610ab vsource.sym and ammeter.sym: add "savecurrent=1|0|true|false" attribute do decide if a .save I(...) is to be printed in netlist. default is 1 for ammeter.sym and 0 for vsource.sym. Add "deltax deltay rot flip" optional parameters for xschem "copy_objects" command to make copy operation scriptable (lot more efficient than using clipboard) 2023-10-02 12:11:05 +02:00
stefan schippers 433ec84278 simpler state bits checking in callback() (use rstate to avoid redundant ShiftMask checks) . Enable loading SP Analysis raw files (they are equal as AC analyses) ) 2023-09-28 21:03:28 +02:00
stefan schippers 112a12a87b add tcl variable no_ask_save: if set to 1 xschem will not ask to save modified schematics 2023-09-23 11:47:11 +02:00
stefan schippers 0119f013e3 correct implementation of previous commit 2023-09-20 11:04:30 +02:00
stefan schippers 1fdf117a84 fix a bug regression in save_schematic when saving an existing schematic to a different filename. Xschem incorretly popped up the alert "Has been changed since opening. Save it anyway?" 2023-09-20 10:19:49 +02:00
stefan schippers 8dfaedf9ea report in-hierarchy overlapped symbols when netlisting 2023-08-29 11:32:48 +02:00
stefan schippers bf46fd3e7b allow "1" / "0" in addition to "true" / "false" in all boolean attributes 2023-07-14 00:49:51 +02:00
stefan schippers c6df85cce5 apply center full zoom in all zoom full commands if tcl variable zoom_full_center is set 2023-06-23 09:04:55 +02:00
stefan schippers f85d46a0cb save_schematic(): avoid copying schname to xctx->sch[xctx->currsch] if dest == src 2023-06-22 08:16:19 +02:00
stefan schippers 89d90c21db xctx->sch made an array of pointers instead of array of PATH_MAX strings (memory saver) 2023-06-17 23:58:35 +02:00
Stefan Schippers 61a659e004 text elements with attribute name=xxx or floater=xxx will go through a tcl substitution (instead of the translate(...) function if the referenced xxx instance does not exist. floater=instname can now be given instead of name=instname (they are equivalent) 2023-06-11 15:57:49 +02:00
stefan schippers ff216e8187 function reset_flags() set flags on symbols and instances; call reset_flags before rebuilding connectivity to update cached values; add short.sym component that can be used to short two nets together (and remove the short using *_ignore=true); instcheck(): do not proces instances that have *_ignore=true set. 2023-06-06 08:42:43 +02:00
stefan schippers 331934afc6 added abs_sym_path() in file name resoluton in `xschem load_new_window` command 2023-06-04 20:44:36 +02:00
Stefan Schippers cff9f7d169 some bug fixes in resolved_net hashing, use some @#n:resolved_net labels in examples 2023-05-27 21:48:21 +02:00
stefan schippers 09a373954f initial implementation of portmap feature: from sub-schematics resolve hierarchic name of schematic nets connected to I/O pins (go to the upper level recursively until resolved) 2023-05-26 11:56:52 +02:00
stefan schippers 5e90f5c319 use find_file_first instead of find_file in C code 2023-05-24 09:12:29 +02:00
stefan schippers 5c22d26072 update copyright info to 2023 2023-05-21 12:52:19 +02:00
stefan schippers 014ebf0477 is_from_web() function to avoid code repetitions, more heuristics when trying to descend into web hierarchies 2023-05-18 20:55:14 +02:00
stefan schippers e0bde2cb1c better handling of web_urls: if already cached do not download again 2023-05-18 11:03:32 +02:00
stefan schippers eef043ef2f sym_vs_sch_pins() do not try to get the "type" attribute of symbols references containing "@" characters (unresolved @parameters) by loading the symbol and checking the xctx->sym[symbol].type attribute, this usually happens in parametrized symbol generators 2023-05-16 14:45:52 +02:00
Stefan Schippers d577bdde7a resolved a memory leak (inst[..].instname) 2023-05-14 17:10:48 +02:00
stefan schippers 96eea54894 some code refactoring, duplicate code replaced with set_inst_flags(), set_sym_flags(), various fixes/optimizations about floaters 2023-05-14 12:58:25 +02:00
stefan schippers 9fcde30a52 do not perform tcl substitution before displaying netlist_commands text into an editor. Correctly restore xctx->current_dirname after netlisting. get_generator_command(): quote command name (just in case its pathname contains spaces). floater example labels in solar_panel.sch. Various corrections and optimizations in new floater labels code. 2023-05-14 01:13:18 +02:00
stefan schippers ee1979b8b2 low level functions for floaters and floater text caches is implemented 2023-05-13 13:13:35 +02:00
stefan schippers 9ea93e9938 hide_texts=true attribute added on instance will avoid the display of all symbol texts (will be probably used when using floater symbol texts) 2023-05-12 12:09:20 +02:00
stefan schippers 4919d8734b remove dbg message 2023-05-12 01:30:38 +02:00
stefan schippers 35354e8fe3 fix: check for NULL type attribute in get_sch_from_sym(). Fix web schematic navigation (descend and return) in load_schematic() 2023-05-12 01:29:38 +02:00
stefan schippers 5e281e7f10 *_ignore attributes for instances and symbols cached in .flags struct member for speed optimization. added some generator netlist testcases in xschemtest.tcl 2023-05-10 23:29:16 +02:00
stefan schippers 0a4f942fb7 symbol_ignore=true attribute can be set on all symbol elements (text, lines, rectangles, arcs, polys, instances, nets) such that these marked elements are not displayed when symbol is instantiated. 2023-05-09 23:26:46 +02:00
stefan schippers b4b2c91481 fix yet another error in "cmd" string handling in load_sym_def(). Added realloc of freed pointers detection in track_memory.awk 2023-05-05 09:29:30 +02:00
stefan schippers d23388ff71 fix cmd memory leak in load_ym_def(), make copy of returned string in some routines to reduce dependencies 2023-05-04 23:23:54 +02:00
stefan schippers 35f4826198 Fix a corruption found by joanne in load_sym_def() where a static result returned from tcl_hook2() was accidentally freed. 2023-05-04 21:20:58 +02:00
stefan schippers 2438d0fa95 translate2(): better handle %xxx tokens in LCC symbols (propagate %xxx to upper level if not assigned to anything in instance) 2023-05-02 23:21:20 +02:00
stefan schippers 9533b17a20 Allow to pass instance attributes (via translate() ) to symbol generators 2023-05-02 12:42:53 +02:00
stefan schippers 4c3b4d0321 various tcl_hook2() additions on instance names to handle procedures, fix bbox calculation in xschem replace_symbol command 2023-05-01 14:37:10 +02:00
stefan schippers aeea23a84d load_sym_def(): fix a debug message possibly printing garbage due to uninitialized variable 2023-04-29 11:02:23 +02:00
stefan schippers 9593d41f09 persistent load file dialog (Shift-Insert) now correctly handles generator script selection (do nothing until user adds () or (param1,param2,...) to generator name). 2023-04-29 00:28:24 +02:00
Stefan Schippers ee7dc8982a load_sym_def: if loading a symbol reading from a pipe (generator script) do not attempt to seek forward looking for embedded symbols. Assume no embedded symbols exist here 2023-04-28 20:33:57 +02:00
stefan schippers 0bb345f764 fix data corruption when netlisting hierarchical symbols with *_stop attribute set, thanks to Joanne Low regression tests, add option in pop_undo() to avoid saving state (push_undo()) for redo. 2023-04-27 11:52:51 +02:00
stefan schippers 10441ef901 allow tcl procedures to generate generator script and parameters, update vhdl and verilog netlisters to handle generator schematic/symbol references 2023-04-26 09:54:35 +02:00
stefan schippers a111c116d9 set netlisting type to symbol when descending into a generator-created symbol 2023-04-25 00:27:58 +02:00
stefan schippers 68cf318134 load_sym_def(): removed embedded parameter, recognize generator names and pipe in data from generator instead of loading from file. No more set flags for generated symbols to EMBEDDED 2023-04-24 23:56:56 +02:00
stefan schippers cd6ef78841 schematic generator netlisting seems to work. renamed is_symgen() -> is_generator() 2023-04-24 13:26:04 +02:00
stefan schippers 94d1865127 fix save_inst resetting all symbols EMBEDDED flags, not only the used symbols in current schematic. Created get_generator_command(), will be used also for schematic generators 2023-04-24 11:36:07 +02:00
stefan schippers 7c04b009ec do not ask to save parent schematic containing generator-created symbols even if user tries to modify them, is_xschem_file() now returns SYMBOL|SCHEMATIC|GENERATOR|0 2023-04-24 09:24:17 +02:00
stefan schippers a2de3cd787 unified copy_symbol() and copy_symbol1(), better new symbol allocation policy 2023-04-22 00:21:53 +02:00
stefan schippers 9eb4e9440c handle symbol_ref(param1,param2,...) symbol generator scripts, added some utility functions str_chars_replace(), is_symgen(), fix some quoting/backslash subst issues in get_sym_template() 2023-04-21 11:41:20 +02:00
stefan schippers 631fedb11b enabled escape_chars convenience function, added "embedded" parameter to load_sym_def() to better distinguish loading an embedded symbol from loading a regular symbol with a provided file descriptor 2023-04-20 10:44:31 +02:00
stefan schippers 340b89c58d add base_name field in xSymbol struct to keep track of the base symbol name the "virtual" symbol is inherited from (instance based implementation selection with schematic=... attribute) 2023-04-13 22:25:36 +02:00
stefan schippers e4e2ba37cc xschem load from script: no alert box warning if new file given 2023-03-25 09:41:53 +01:00
stefan schippers 6d192023de fix web hierarchy navigation error when returning to web schematic after descending into a local symbol 2023-03-13 11:11:43 +01:00
stefan schippers d2d9eaa4e8 instance attribute "hide=true" will make the instance display as a bounding box only 2023-03-10 04:42:21 +01:00
stefan schippers bf6b20a1ce In source Documentation (scheduler.c) of xschem commands, html docs updated 2023-03-03 18:29:17 +01:00
stefan schippers ebf4fa1f44 Initialize stack2[] to double 0.0 2023-03-01 18:34:07 +01:00
stefan schippers dbc123e8cc Make joanne fix for SPICE_DATA preprocessor macro comparison apply for unix as well 2023-02-27 22:32:28 +01:00
stefan schippers a8aaf996e7 use pre-increment where expression is not used 2023-02-18 09:44:11 +01:00
stefan schippers c5261a2ff6 formatting code 2023-02-13 12:18:47 +01:00
stefan schippers 1aaa48a75b 3x faster table_read() on big data 2023-02-12 13:36:03 +01:00
stefan schippers 6c22c47975 added fast newline count routine count_lines_bytes() 2023-02-12 00:53:48 +01:00
stefan schippers f5676f0d16 table_read() optimized for speed 2023-02-11 12:44:38 +01:00
stefan schippers c51f007da3 table_read(): skip initial empty lines, allow 2 or more blank lines for new dataset 2023-02-10 03:36:29 +01:00
stefan schippers 33c2c2d1b2 Some cleanups in raw_read() and table_read() 2023-02-09 21:17:31 +01:00
stefan schippers 42c3024eda remove debug allocation IDs 2023-02-09 21:06:27 +01:00
stefan schippers 3be9a66aed fix memory leak in table_read() 2023-02-09 21:04:22 +01:00
stefan schippers c882a34825 add table_read() function to read simulation data in ascii tabular form 2023-02-09 20:53:16 +01:00
stefan schippers e5227d6a31 rename top_subckt to lvs_netlist (more appropriate), better tcp interface (redirect stdout to socket in addition to command return value) 2023-02-09 11:30:27 +01:00
stefan schippers 29ef08e84b better memory tracking reporting (my_strcat and my_strncat allocations) 2023-02-01 11:38:28 +01:00
stefan schippers baca559ffc refactor some code (use set_text_flags() to avoid repetitive code), add xschem setprop text and xschem getprop text commands to set/get text attributes 2023-02-01 00:23:33 +01:00
stefan schippers 23378b8708 replace u_int32_t with unsigned int in save.c 2023-01-24 01:46:26 +01:00
stefan schippers 48549f1212 update test schematics 2023-01-23 18:23:18 +01:00
stefan schippers 1da5e47d4a remove my*() allocation routines unique IDs and replace with _ALLOC_ID_ macro, to be substituted in debug sessions with create_alloc_ids.awk 2023-01-23 15:42:15 +01:00
stefan schippers 3043989196 fix debug test 2023-01-23 12:17:47 +01:00
stefan schippers fd8f1e6b97 fix a regression in track_memory.awk (did not show leaking source code line) 2023-01-23 12:16:29 +01:00
stefan schippers cffe91146e free paddedData pointer in ascii85_encode() 2023-01-23 11:55:52 +01:00
stefan schippers 9b6b7bc19a Fix some compiler warnings and add a little optimization in ascii85 encoder 2023-01-23 11:49:08 +01:00
rafmag 898f229c61 Merge branch 'master' of https://github.com/rafmag/xschem 2023-01-22 19:44:58 -07:00
rafmag 9c83801d8f Added Ascii85Encoding for better formated & smaller PS files. 2023-01-22 19:35:10 -07:00
stefan schippers 6af6079084 set line buffering when stderr redirected to file 2023-01-20 18:25:43 +01:00
stefan schippers 90bc0fa572 "preserve unchanged props" will be automatically checked when editing attributes on multiple object selection and unchecked on single object selection as this is the 99.9% use case 2023-01-20 00:35:24 +01:00
stefan schippers 6f6bd65035 fflush() all stdio buffers before calling fork(). End child processes with _exit() instead of exit() to avoid double fflushing in parent i/o streams 2023-01-19 02:46:45 +01:00
stefan schippers e06bfe5191 remove some debug changes 2023-01-18 01:17:46 +01:00
stefan schippers 03b2b8652e fixed filter_data routine that was clobbering ps export file, now ps output is correct without the need to add fflush() functions, that are thus removed in psprint.c 2023-01-18 00:24:28 +01:00
stefan schippers af0ddb76f0 cleanups, remove redundant png_reader() definition 2023-01-17 01:23:34 +01:00
stefan schippers 19757ddd8a add menu properties -> Edit header/License text, to allow inserting header or license metadata into the sch/sym file. 2023-01-02 03:04:35 +01:00
stefan schippers 9fa05afad9 fix a bug when loading multiple AC sim datasets (wrong nvars calculation, has to be doubled due to Im/Re complex components) 2022-12-20 01:01:58 +01:00