Commit Graph

1911 Commits

Author SHA1 Message Date
stefan schippers 8e1df1b157 add proc sim_cmd to substitute variables in simulator commands and return the resulting command 2023-10-19 18:18:20 +02:00
stefan schippers 0e583cfac1 add tooltip showing full path of schematic when hovering the mouse over a tab 2023-10-19 15:14:29 +02:00
stefan schippers 0325b14499 add `none` i/o buffering mode (in addition to `line`) in execute `status` argument 2023-10-19 13:01:25 +02:00
stefan schippers efb0351812 fix fullxzoom when selecting more (unlocked) graphs, graphs have a custom rawfile specified and current loaded sim is not of the same type (for example OP) 2023-10-19 10:47:01 +02:00
stefan schippers 1b7a035220 fix graph_fullxzoom in case of non monotonical sweep x axis variable 2023-10-18 16:10:08 +02:00
stefan schippers 0178e1c287 add @symref attribute that resolves to the full symbol reference as specified in instance: example: "sky130_fd_pr/pfet_01v8_lvt.sym" 2023-10-18 13:18:29 +02:00
stefan schippers f9114a0888 proc graph_fill_listbox : use "xschem raw read" instead of "xschem raw switch" so if user enters a new file it will be immediately loaded 2023-10-18 10:48:23 +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 ad07999dd3 do not use text widget -selectbackground on tcl8.4 2023-10-17 23:35:16 +02:00
stefan schippers ecbbb68447 replace text widget "count -displaylines" with alternative tcl8.4 compatible 2023-10-17 23:31:13 +02:00
stefan schippers 8e8145a241 fix regression on input_line tcl procedure. buggy if empty cmd ws passed as argument 2023-10-17 23:06:49 +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 025454e79e fix a regression in graph_fullyzoom() if graph contains more than one expression 2023-10-17 16:39:25 +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 9fda2adccb fix graph_fullxzoom if displaying multiple op (transformed to dc sweep) sims 2023-10-17 14:20:34 +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 d1309a8a47 fix uninitialized var in interpolate_yval() 2023-10-15 13:24:19 +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 53286346e1 doc updates, tcl rawfile variable in place for future per-graph raw file 2023-10-14 23:41:19 +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 8ceb4b6b41 fix false wcnt warning in draw_graph() 2023-10-13 23:09:27 +02:00
stefan schippers 25ab8a8b8a cursor `a` measurements in graph match the %n dataset specified on nodes if any (or default to dataset 0) 2023-10-13 23:04:45 +02:00
Stefan Schippers c6a3880b9d fix a bug in draw_graph_points() changing and not restoring linewidths if called with idx==-1 2023-10-13 18:46:15 +02:00
stefan schippers 617e6b3b8d update live backannotation if "a" and "b" cursors are swapped, syntax node%n is now allowed to plot only dataset "n" of the node. Update html docs and example autozero_comp circuit 2023-10-13 15:51:51 +02:00
stefan schippers 6ad282a3df remove some global tcl vars 2023-10-13 09:41:34 +02:00
stefan schippers cd01e5d314 in digital graphs use gr->magy (ylabmag attribute) to rescale node names on Y axix, as done in analog graphs on Y axis labels 2023-10-13 00:25:40 +02:00
stefan schippers c86d48f321 expandlabel(): do bus_char substitution even if taking the shortcut 2023-10-13 00:04:58 +02:00
stefan schippers ae58077447 move replace_key to global_array_list (it is an array var) 2023-10-12 21:09:45 +02:00
stefan schippers 88a5befbf2 add some cascade menus for less frequently used entries. better description of xschem unselect_all command 2023-10-12 19:37:22 +02:00
stefan schippers 676ce4fe3d lock attribute for rectangles: work the same as for instances (can only double click to reset attributes, not selectable until lock reset to 0), add commands "xschem selected_set rect" and "xschem select_inside x1 y1 x2 y2" 2023-10-12 11:15:12 +02:00
stefan schippers a5545c3dbf fix keybinding doc typo 2023-10-11 23:56:36 +02:00
stefan schippers f1cb655a7a ERC: symbols with pass-through pins by definition do not match with schematic so do not check 2023-10-11 22:57:44 +02:00
stefan schippers c9a2bca5d7 add local manual link in xschem about dialog 2023-10-11 17:10:06 +02:00
stefan schippers e457292e04 trim_chars() function for various string operations 2023-10-11 16:31:42 +02:00
stefan schippers 9b4bd44fd0 merged in fast_raw_read branch 2023-10-11 14:05:27 +02:00
stefan schippers 3a25109fe1 fix compile error with CAIRO on Windows: dest_x and dest_y should be idx1 and idy1, respectively in my_cairo_fill 2023-10-11 13:59:08 +02:00
stefan schippers 6305b52d91 add safety check for null string in edit_text_property() 2023-10-09 13:53:57 +02:00
stefan schippers b56ee2c998 use my_strdup2() in all text object copies(txt_ptr, prop_ptr, floater_ptr, ...) to better handle corrupted input data 2023-10-09 13:39:45 +02:00
stefan schippers 94bccc08d9 do not duplicate empty strings as NULLs in hash tables 2023-10-09 12:49:11 +02:00
stefan schippers bb4f296211 use "2" instead of "X" for default return state in xschem logic_get_net command 2023-10-09 00:11:17 +02:00
stefan schippers 6b00a88f28 fix xschem simulator "mux" operator (M) to handle unknown selector state 2023-10-08 11:45:22 +02:00
stefan schippers 58af2567e6 fix initialization of default value for "xschem get_logic_net" 2023-10-08 11:32:56 +02:00
stefan schippers 62bc3759f0 add (disabled, should be done with keyboard shortcuts) Edit menu entries: rotate, flip, rotate_in_place, flip_in_place 2023-10-06 13:17:06 +02:00
stefan schippers 4f0377f1e9 expandlabel(): if empty node name is given return empty string instead of NULL 2023-10-06 11:24:00 +02:00
stefan schippers 3e4f49dbea further fix expandlabel() potentially returning its string argument (instead of a copy) in case of weird and wrong node syntax 2023-10-06 11:11:17 +02:00
stefan schippers 42781f8456 fix a regression in expandlabel() returning it string argument without making a copy 2023-10-06 00:08:16 +02:00
stefan schippers c4e1fb6a31 fix a memory leak in translate() 2023-10-05 20:15:47 +02:00
stefan schippers 0204b7596b first selected instance is now always the master (instead of the first in the xschem array order) when doing an edit attribute on a group of selected elements 2023-10-04 17:15:52 +02:00
stefan schippers 9ecc5859b2 fix new_prop_string() when doing a name change on multiple selected instances 2023-10-04 00:44:43 +02:00
stefan schippers 5ffc7bb5e4 select_object() returns sel instead of sel.type (more info on return) 2023-10-04 00:09:12 +02:00
stefan schippers 822910fce7 strboolcmp(): remove debug message 2023-10-03 20:46:18 +02:00
stefan schippers d613bcc47a fix strboolcmp() (return false anyway if str="") 2023-10-03 20:44:44 +02:00
stefan schippers 02086d76a7 revert from tclgetboolvar to tclgetvar for edit_symbol_prop_new_sel, as this is not a boolean 2023-10-03 15:28:42 +02:00
stefan schippers 5c7abfa048 optimization for new_prop_string() done. doc updates for instance hide_texts=true attribute, align strboolcmp() to tcl allowed boolean values (1, true, on, yes) 2023-10-03 15:20:30 +02:00
stefan schippers d441ba6966 fix missing update of name_is_used() call 2023-10-03 13:24:54 +02:00
stefan schippers 24bc44ad0c doc updates (text attributes), prepare improvements for new_prop_string() 2023-10-03 13:21:04 +02:00
stefan schippers e49f9902a7 remove redundant actions in toggle_colorscheme 2023-10-03 10:45:11 +02:00
stefan schippers 3ed97b3df2 some code refactoring, more usage of tclgetboolvar() 2023-10-03 10:27:29 +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 05c79febc2 better implementation of cursor reconfiguring if draw_crosshair enabled 2023-09-30 00:22:10 +02:00
stefan schippers c25a9f9d85 if crosshair is displayed and xschem blocked by a tk_messageBox restore pointer to default, so it will be visible. Do not parse labels if not vectored labels (shortcut) 2023-09-30 00:13:33 +02:00
stefan schippers 00ef95c90e fix regression: hilight nets not incrementing color (if nets are singlebits) 2023-09-29 10:39:25 +02:00
stefan schippers 405d950412 add xctx->mouse_inside var to better decide if crosshair has to be drawn 2023-09-29 10:09:13 +02:00
stefan schippers c569f93a65 added commands xschem get schprop|schvhdprop|schverilogprop|schtedaxprop|schsymbolprop, "xschem create_text" renamed to "xschem text" for syntax consistency 2023-09-29 09:46:31 +02:00
stefan schippers 64cb20dab9 add crosshair_layer tcl variable, so user can change crosshair layer.Crosshair is deleted on LeaveNotify events. 2023-09-29 00:30:43 +02:00
stefan schippers db1bf8818a cleanup in usage of new_prop_string() and hash_names() 2023-09-28 23:19:14 +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 8fe4f2fd11 add src/place_pins.tcl, src/place_sym_pins.tcl 2023-09-28 16:09:06 +02:00
stefan schippers 3a020b4305 add installation of place_sym_pins.tcl, place_pins.tcl scripts in XSCHEM_SHAREDIR 2023-09-28 16:07:01 +02:00
stefan schippers 31492b3955 added xschem set [schsymbolprop|schprop|schverilogprop|schvhdlprop|schtedaxprop] <value> commands for setting global schematic/symbol attributes 2023-09-28 15:45:07 +02:00
stefan schippers cfe97c2ccf extend "xschem rect" and "xschem line" commands, add "xschem get rects n" and "xschem get lines n" 2023-09-28 15:24:23 +02:00
stefan schippers ff2f0477a6 remove dbg message 2023-09-28 13:34:47 +02:00
stefan schippers e13922e94f simplify place_symbol(), hash newly placed component name, so successive placements will not clash instance name. hash_all_names() renamed to hash_names() 2023-09-28 13:28:16 +02:00
stefan schippers 5df9347533 removed tcl variable connect_by_kissing (to many options is a mess) 2023-09-28 12:34:10 +02:00
stefan schippers 14a674b6f4 fix a random segfault due to out of bound array ref in find_pass_through_symbols() 2023-09-28 01:06:07 +02:00
stefan schippers 5080c2c33f fix unitialized vars (mostly false errors, but why not...) 2023-09-28 00:30:00 +02:00
stefan schippers 6c4c8b3a50 handle Windows key on windows (Mod4Mask) 2023-09-27 21:15:25 +02:00
stefan schippers ba00ba2921 add #ifdef __unix__ around filter of bits 13 and above on state var in callback() 2023-09-27 21:00:02 +02:00
Stefan Schippers e7c53b59b5 callback(): filter out any state value that uses bits above 12 2023-09-27 18:35:40 +02:00
stefan schippers 0f29b53d25 remove an extra change_linewidth() in svg_embedded_graph() (now already done in resetwin()) 2023-09-27 13:22:46 +02:00
stefan schippers 97e9b27bbd fix garbage on screen if drawing something, go to another tab, return and move objects. Regression was introduced on repo.hu r3033 2023-09-27 13:13:15 +02:00
stefan schippers f3230ceb42 FIX_BROKEN_TILED_FILL can now be changed runtime (fix_broken_tiled_fill) 2023-09-27 01:28:31 +02:00
stefan schippers 9316878559 fix a bug in hilight_net(): example: if a bus 3*A was highlighted hilight color was not incremented and highlighting another net gave the same color. added xctx->some_nets_added for that 2023-09-26 12:51:41 +02:00
stefan schippers 87da969b16 don`t break "** sch_path:" / "** sym_path:" lines in spice netlists 2023-09-26 09:20:04 +02:00
stefan schippers 576a7e329b improve stretch move operations when auto trim is enabled 2023-09-26 02:19:37 +02:00
stefan schippers 983f6d9d6b add tcl variable "unselect_partial_sel_wires" and related options menu entry to unselect partially selected wires attached to component pins after a stretch move command 2023-09-26 01:38:48 +02:00
stefan schippers a4b597cfc2 add Alt-c command for copy object and create nets to connected terminals 2023-09-25 23:23:08 +02:00
stefan schippers cfc87392d2 select_attached_nets() do not select wires attached to partially selected wires when doing a stretch move 2023-09-25 17:15:15 +02:00
stefan schippers 9af33003bc rearranged menu entries. "Persistet wire/line place command" goes to Options, "Show net names on symbol pins" goes to Symbol, "Show netlist after netlist command" goes to simulation 2023-09-25 16:26:57 +02:00
stefan schippers be8324293c move "Options->Set symbol width" to "Symbol" menu 2023-09-25 15:56:17 +02:00
stefan schippers db9c014566 move "auto join/trim wires" to Options menu, "m" and "ctrl-m" move commands are swapped if enable_stretch is enabled. new_prop_string() now check for true uniqueness (all inst names are expanded with expandlabel() and all bits are hashed). Fixed regression in check_unique_names() 2023-09-25 15:28:40 +02:00
stefan schippers 6c7d7080b9 some code refactoring (inst_table -> inst_name_table) 2023-09-25 09:05:10 +02:00
stefan schippers 03003ab7bf fix redraw of move operation abort when done with "connect by kissing" (adding new wires) 2023-09-25 00:03:02 +02:00
stefan schippers 37f2edcc7e if $USER_CONF_DIR (~/.xschem) is not existing create it and also place the template xschemrc into it 2023-09-24 21:27:27 +02:00
stefan schippers 2ec4b1c8b3 added a helper command "create_user_xschemrc" that copies system xschemrc to user xschem config dir (~/.xschem/xschemrc usually) if such file is not existing. After some thinking i came to the conclusion i wont do this automatically, as there might be use cases where a user does not want such a file. 2023-09-24 12:27:14 +02:00
stefan schippers ba5eb149a8 small xschemrc edits 2023-09-24 10:55:38 +02:00
stefan schippers 41d9759953 xschem select instance given from CLI will select instances regardless of their lock attribute 2023-09-24 04:01:56 +02:00
stefan schippers db1049d469 formatting, updated create_graph.tcl 2023-09-24 03:34:01 +02:00
stefan schippers 75526cacbe add "xschem create_text" command for placing text objects with CLI 2023-09-24 03:16:53 +02:00
stefan schippers abd5f75ef5 added enable_stretch tcl variable description in xschemrc 2023-09-24 01:26:45 +02:00
stefan schippers 152623f4aa control-mouse drag select will negate the setting of enable_stretch tcl variable so drag and control-drag can be swapped vith Options->enable stretch 2023-09-24 00:29:15 +02:00
stefan schippers 4663a86da4 fix various regressions for handling instances with lock=true attribute 2023-09-24 00:17:48 +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 6a0fcdae05 various optimizations (do not execute graphic ops with gctiled if FIX_BROKEN_TILED_FILL is defined, optimize XCopy Area blits 2023-09-23 01:46:39 +02:00
stefan schippers aa75723446 fix MotionNotify events when crosshair is enabled and there is a selection and FIX_BROKEN_TILED_FILL not defined 2023-09-22 19:29:14 +02:00
stefan schippers 75e2efd5a7 filter unused bbox_set variable in draw_crosshair() 2023-09-22 19:15:26 +02:00
stefan schippers 274b4da441 xschem(): print an error if trying to execute commands that require schematic data structs (xctx) and xctx is not yet allocated 2023-09-22 19:13:13 +02:00
stefan schippers 426be0e68c add !defined(__unix__) in all #if defined(FIX_BROKEN_TILED_FILL) 2023-09-22 18:33:16 +02:00
stefan schippers 288c053ec6 various FIX_BROKEN_TILED_FILL fixes 2023-09-22 18:26:18 +02:00
stefan schippers 42c76c9693 doc updates (cut wires) 2023-09-22 16:13:25 +02:00
stefan schippers 3ba3bbc21a remove dbg message 2023-09-22 15:58:21 +02:00
stefan schippers 1da34af531 allow to use the Windows keys (if present) as alternatives for "Alt" 2023-09-22 15:53:23 +02:00
stefan schippers fbffeec673 some minor fixes in src/xschemrc (order of libs, avoid referencing specific install paths) 2023-09-22 13:43:43 +02:00
stefan schippers a2d3f68977 fix missing #if defined((FIX_BROKEN_TILED_FILL) in draw_crosshair() 2023-09-22 13:23:21 +02:00
stefan schippers 93291ed84b add draw_crosshair() (if enabled) at end of any draw() operation 2023-09-22 13:13:35 +02:00
stefan schippers eb91c8bbea draw crosshair at end of copy/move ops if enabled 2023-09-22 13:02:51 +02:00
stefan schippers 8f0d920a96 add draw_crosshair setting in xschemrc: draw a crosshair at mouse coordinates 2023-09-22 12:48:22 +02:00
stefan schippers a1fbbcfd80 add another command to cut wires without aligning cut point to snap (Alt-Shift-Right mouse button) 2023-09-22 10:40:57 +02:00
stefan schippers 951a18cb24 draw_selection(): erase rubbers correctly during copy/move ops if FIX_BROKEN_TILED_FILL enabled 2023-09-22 09:40:59 +02:00
stefan schippers 9e1feacab4 closest_point_calculation(): improve "closest point is on segment" detection 2023-09-22 09:33:41 +02:00
stefan schippers a53ea21026 remove debug messages in closest_point_calculation() 2023-09-22 03:46:42 +02:00
stefan schippers 5181ca77e6 break_wires_at_point(): oblique lines can be cut at any point, the break point will be aligned to the snap value and broken wires are slightly changed to land on this new point. 2023-09-22 03:45:09 +02:00
stefan schippers 4ea2ccac4c if FIX_BROKEN_TILED_FILL is defined disable all graphic operations with gctiled GC (set function to GXnoop) - Also clear selection rectangle with MyXCopyArea in select_rect() 2023-09-22 01:12:26 +02:00
stefan schippers fbe3064cf2 remove gctiled in MyXCopyArea() calls (use gc[0], background, any GC is ok as long as it does not have some strange logic operator) 2023-09-21 23:51:17 +02:00
stefan schippers 95e1c833c8 better pan operation if FIX_BROKEN_TILED_FILL is set 2023-09-21 23:01:09 +02:00
stefan schippers 301f9c4bdf add experimental compile flag in xschem.h, FIX_BROKEN_TILED_FILL, if defined work around some graphic adapters/driver implemtations that dont honor the X11 specifications for drawing with a pixmap tile fill pattern 2023-09-21 21:52:24 +02:00
stefan schippers 1479ca2ea6 fix regression in "xschem load <file> nofullzoom" (zoom was reset) 2023-09-21 10:11:39 +02:00
stefan schippers 129dd68b20 translate(): check for NULL xctx and xctx->inst 2023-09-21 09:56:29 +02:00
stefan schippers ee26a247c5 fix a crash if translate() invoked for an instance with instname=NULL (due to incomplete symbol definition) 2023-09-20 15:13:44 +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 8d6a71b8bd place_symbol(): make it smarter when dealing with generators. add parenthesis () after file name and better handle tcleval(...) given in file selector 2023-09-19 10:04:27 +02:00
stefan schippers 0680fd97fd place_symbol(): better handle generator symbol insertions like res.tcl(@value\): @value can be resolved only after generator has emitted the symbol, but symbol generated depends on generator actual parameter. So generators must handle unresolved @params. 2023-09-19 01:42:51 +02:00
stefan schippers 75e99cae91 update tier.tcl generator to handle unresolvable parameters 2023-09-19 01:29:52 +02:00
stefan schippers fd2be4a599 update res.tcl generator to handle unresolvable parameters 2023-09-19 00:08:42 +02:00
stefan schippers 7ffe70cb25 add other schematic manipulation script examples in developer_info.html 2023-09-18 17:16:03 +02:00
stefan schippers 98ffd177ce improve connect by kissing: now 3 move operations are present: 1) just move selection, 2) move adding wires to connected pins/wire endpoints, 3) move by stretching wires attached to pins/endpoints to follow moving objects 2023-09-18 13:29:49 +02:00
stefan schippers 690486c848 editprop.c->update_symbol(): recalculate bbox for dynamic symbols (floaters and generators) when attributes are changed. xschem.tcl: cleanly report errors in file mkdir instructions in case of permission issues 2023-09-18 09:39:52 +02:00
stefan schippers 306271e247 parselabel.l: Add ")" to list of forbidden characters in bus trailer: A[3:0])_xx 2023-09-17 22:54:17 +02:00
stefan schippers e5286a7f12 bus labels with trailing chars (A[15:0]_xx): fix rule conflicts in grammar parser. Add a trailer token in lexer 2023-09-17 21:17:35 +02:00
stefan schippers 898cfcc2e1 command "xschem change_elem_order" invalidate inst/wire hashes and connectivity to force consistency 2023-09-17 09:45:28 +02:00
stefan schippers 159f07e703 add "xschem rotate_in_place" command 2023-09-17 09:05:21 +02:00