stefan schippers
|
33591fa41d
|
applied recent additions from SuperCgayan
|
2025-03-16 11:35:30 +01:00 |
stefan schippers
|
b415b8e889
|
fix regression in new_wire() (in manhattan mode) due to previous commit (courtesy SuperChayan)
|
2025-03-16 11:08:27 +01:00 |
stefan schippers
|
a0a5d9876f
|
drawtemp_manhattanline(): use local nl_xx[12] and nl_yy[12] variables, since xctx->nl_xx[12] and xctx->nl_yy[12] are used also in select_rect() which calls draw_selection() which calls drawtemp_manhattanline().
|
2025-03-16 05:15:40 +01:00 |
stefan schippers
|
2f26544c45
|
dont assume a particular manhattan_lines when starting wires or lines. Keep last one set
|
2025-03-16 01:17:50 +01:00 |
stefan schippers
|
e4cf179868
|
insert_symbol: Return Key binding for quick dialog close
|
2025-03-16 01:01:49 +01:00 |
stefan schippers
|
c02b80c79d
|
fixes in insert_symbol
|
2025-03-16 00:49:38 +01:00 |
stefan schippers
|
124d73ee64
|
fix regression (start new wires in manhattan orient)
|
2025-03-16 00:31:57 +01:00 |
stefan schippers
|
cc90201b27
|
remove debug msgs in insert_symbol
|
2025-03-16 00:13:07 +01:00 |
stefan schippers
|
ed8a6dbe11
|
little optimization in insert_symbol
|
2025-03-16 00:02:12 +01:00 |
stefan schippers
|
d37c872a49
|
merge in a SuperChayan change in move.c
|
2025-03-15 23:47:18 +01:00 |
stefan schippers
|
fd65c8876d
|
cleanup and fixes in proc insert_symbol
|
2025-03-15 23:29:11 +01:00 |
stefan schippers
|
313acc8e29
|
further improvements to new_symbol_browser
|
2025-03-15 03:20:01 +01:00 |
stefan schippers
|
73a920ea41
|
xinit.c: eval user_startup_commands after sourcong tcl_files
|
2025-03-14 18:28:19 +01:00 |
stefan schippers
|
08397f7038
|
merge Chayan Deb changes for manhattan-style move objects and handle_key_press() refactor
|
2025-03-14 15:25:57 +01:00 |
stefan schippers
|
588ee1b8f4
|
do not call place_symbol() with relative symbol names. Initial draft fof proc get_list_of_dirs_with_symbols
|
2025-03-14 03:29:05 +01:00 |
stefan schippers
|
9cb435c43c
|
remove implicit [pwd] prepending to relative paths given to rel_sym_path. this assumption is incorrect in some cases
|
2025-03-13 21:51:06 +01:00 |
stefan schippers
|
e789988b05
|
add `user_startup_commands` variable that may contain tcl code to be executed after any new window creation. Useful to have custom bindings / menu / buttons in all windows.
|
2025-03-13 20:11:18 +01:00 |
stefan schippers
|
84ca35e6f5
|
add menu option Simulation->LVS->Upper case .SUBCKT and .ENDS
|
2025-03-13 11:57:09 +01:00 |
stefan schippers
|
ac1f618030
|
clean up a bit the load_file_dialog pack order
|
2025-03-13 11:26:07 +01:00 |
stefan schippers
|
514b1f3789
|
insert_symbol: keep selected listbox item when leaving/entering the widget
|
2025-03-13 01:45:40 +01:00 |
stefan schippers
|
0c4c8f4d9f
|
proc insert_symbol: select active listbox cell so symbol placement can start right away
|
2025-03-13 00:48:38 +01:00 |
stefan schippers
|
2a4ebe4b77
|
new (optional) symbol placement browser
|
2025-03-12 16:59:45 +01:00 |
stefan schippers
|
0f5c554e33
|
add command `xschem get ui_state`, improvements in proc insert_symbol
|
2025-03-12 02:00:45 +01:00 |
stefan schippers
|
e1488da407
|
add `xschem rect gui`, `xschem line gui`, `xschem polygon gui`, `xschem wire gui` to start placement of these objects with 1st point set to mouse coordinates
|
2025-03-11 20:47:00 +01:00 |
stefan schippers
|
5e6ce2dce8
|
fix xschem.tcl proc traversal
|
2025-03-10 17:02:46 +01:00 |
stefan schippers
|
c69c1b2687
|
better handling of snap cursor and snap wire creation (no cadence emulation)
|
2025-03-10 01:03:15 +01:00 |
stefan schippers
|
d582fc98d8
|
proc load_file_dialog: allow multi selection (extended) only for load file, not for place instance
|
2025-03-09 13:53:18 +01:00 |
stefan schippers
|
7e5a36531b
|
reduce max zoom in/out factors
|
2025-03-09 10:15:50 +01:00 |
stefan schippers
|
de6434c941
|
allow multi-selections when loading a file; limit max line width in change_linewidth() to avoid strange artifacts at extreme zoom-ins
|
2025-03-09 02:46:58 +01:00 |
stefan schippers
|
2f1643368e
|
add command `xschem raw rename old_node new_node`
|
2025-03-08 21:14:46 +01:00 |
stefan schippers
|
f1901e055c
|
clip graph point[].x values to prevent aliasing at absurdly deep zoom in values
|
2025-03-08 10:53:21 +01:00 |
stefan schippers
|
d7d812c023
|
square grid points if grid_point_size is specified
|
2025-03-07 15:59:43 +01:00 |
stefan schippers
|
96eeef5a95
|
raw_read(): cleanup allocated `rawptr` if nothing loaded due to missing file
|
2025-03-07 15:34:19 +01:00 |
stefan schippers
|
fafd48eb31
|
new tcl variable grid_point_size to set size of grid points (for 4K+ displays)
|
2025-03-07 14:45:13 +01:00 |
stefan schippers
|
eb99123a49
|
`xschem load` command: allow multiple files to be loaded
|
2025-03-06 20:47:49 +01:00 |
stefan schippers
|
fb9189018d
|
avoid strdup on value in print_spice_element()
|
2025-03-04 09:58:56 +01:00 |
stefan schippers
|
56e0410047
|
fix a bug in eval_expr() usage in token.c (duplicate return string to avoid double free)
|
2025-03-04 09:43:26 +01:00 |
stefan schippers
|
b449bb2728
|
revert: better detection of expr() in netlister functions
|
2025-03-04 09:07:55 +01:00 |
stefan schippers
|
0ea6af2c99
|
better detection of expr() in netlister functions (print_spice_element(), ...)
|
2025-03-04 00:33:27 +01:00 |
stefan schippers
|
efdd45f414
|
revert wrong fix (fix typo in draw_graph()) not a typo...
|
2025-02-28 19:19:06 +01:00 |
stefan schippers
|
aa68a3a0d2
|
fix spurious overwrite of xctx->graph_struct done in raw_read() called from draw_graph() which uses xctx->graph_struct
|
2025-02-28 18:51:35 +01:00 |
stefan schippers
|
be1a0deb89
|
fix typo in draw_graph()
|
2025-02-28 18:04:56 +01:00 |
stefan schippers
|
becbf7cf9c
|
descend_schematic() return value indicates if descended into a valid schematic (1) or empty one (0)
|
2025-02-28 16:08:35 +01:00 |
stefan schippers
|
bba3f434d5
|
fix an error in change_sch_path() (level check) and go_back() (no set title)
|
2025-02-27 13:04:57 +01:00 |
stefan schippers
|
028ca8cb5a
|
proc editdata: added Copy (to Clipboard) button
|
2025-02-27 01:45:12 +01:00 |
stefan schippers
|
c19c25873b
|
(2)proc to_eng: return arg as is if not valid expression
|
2025-02-26 19:33:14 +01:00 |
stefan schippers
|
2d6b7c4fe1
|
revert previous
|
2025-02-26 16:03:36 +01:00 |
stefan schippers
|
43a8b62a24
|
proc to_eng: return arg as is if not valid expression
|
2025-02-26 16:01:32 +01:00 |
stefan schippers
|
d3e0ca82b4
|
eval_expr.y: references to unknown identifiers cause the lexer to return an error so the expression is not evaluated and returned as is, instead of erroneously interpreting the unknown identifier as 0
|
2025-02-25 02:00:55 +01:00 |
stefan schippers
|
f9ccf878c2
|
differential scope2.sym, current mwasure scope_ammeter.sym
|
2025-02-24 15:23:35 +01:00 |
stefan schippers
|
b205b4a496
|
fix ui problem when ctrl-clicking a launcher (drag_elements remained set)
|
2025-02-23 23:49:31 +01:00 |
stefan schippers
|
bd2c65bc1a
|
embed graph inside scope symbol
|
2025-02-23 14:58:44 +01:00 |
stefan schippers
|
1d3c2dde59
|
fix regression: Cancel pressed when inserting new symbol
|
2025-02-23 14:03:53 +01:00 |
stefan schippers
|
6a75c8a6dd
|
initial commit to add scope.sym symbol
|
2025-02-23 13:50:39 +01:00 |
stefan schippers
|
c604a1f033
|
higher priority of `unlocked` sub-attribute in rect `graph` attribute. Do not propagate zoom / pan to any other graphs even if they are locked.
|
2025-02-23 12:39:59 +01:00 |
stefan schippers
|
a306d97725
|
update docs (#pattern#@name tag)
|
2025-02-23 12:12:59 +01:00 |
stefan schippers
|
7144ead895
|
remove dbg messages
|
2025-02-22 19:49:43 +01:00 |
stefan schippers
|
81c3d64778
|
(2) changed some *attached*() function names for sonsistency
|
2025-02-22 19:40:04 +01:00 |
stefan schippers
|
6f0133a1b2
|
changed some *attached*() function names for sonsistency
|
2025-02-22 19:38:05 +01:00 |
stefan schippers
|
e266642c2c
|
lock attribute extended to all objects
|
2025-02-22 12:47:54 +01:00 |
stefan schippers
|
a93fb64e12
|
better threshold detection for bezier selection
|
2025-02-22 11:37:19 +01:00 |
stefan schippers
|
0e438829c6
|
allow locked attached rectangles, so they can not be selected accidentally. Small resize of x/y graph axis labels
|
2025-02-22 10:33:13 +01:00 |
stefan schippers
|
a592216c19
|
update solar_panel.sch (grouped aka attached floaters, scope meter object), better selection of left-y axis in small graphs
|
2025-02-22 02:18:27 +01:00 |
stefan schippers
|
935ec27772
|
floater objects: add command ctrl-u to unselect attached (so some instance with the attach=.. attribute) objects, that is objects (not element instances) with a non empty name=... atttribute. Extend upcate references of attached floaters to change instance name property and `xschem setprop instance name` command
|
2025-02-22 01:30:38 +01:00 |
stefan schippers
|
4e2af7ddb9
|
attach attribute: update copied objects
|
2025-02-21 17:49:38 +01:00 |
stefan schippers
|
3eab6bf2dc
|
added attribute `attach="name1 name2 ..."` for components to designate other objects to be selected with it. Designated objects must have a matching `name=name1` attribute. This allows to create object groups
|
2025-02-21 14:31:30 +01:00 |
stefan schippers
|
dc270aa029
|
resize a bit graph wave label / axis label sizes
|
2025-02-21 12:53:04 +01:00 |
stefan schippers
|
34fd430c13
|
svg_embedded_graph() and ps_embedded_graph() do not do a full redraw prior to graph rasterizing, draw only the current graph area. This avoid `overstrike` problems with superimposed text objects
|
2025-02-21 11:12:27 +01:00 |
stefan schippers
|
90bb42e7fa
|
fix regression: no dashed graph bbox
|
2025-02-20 16:52:23 +01:00 |
stefan schippers
|
afe058a25d
|
comments typos
|
2025-02-20 16:30:40 +01:00 |
stefan schippers
|
62a2e6a367
|
refactored draw_crosshair() into smaller pieces. draw_snap_cursor executed much less frequently (only on snapped ouse change). Zooming with mouse wheel will not clear MENUSTART ui_state
|
2025-02-20 13:56:53 +01:00 |
stefan schippers
|
f15520d01a
|
start snapped wires in manhattan mode as done woth normal wires
|
2025-02-20 11:52:22 +01:00 |
stefan schippers
|
9dff3e1e3e
|
refactor and fix small graphic glitches in draw_snap_cursor()
|
2025-02-20 11:42:26 +01:00 |
stefan schippers
|
b7c6118288
|
add physical constants in eval_expr.y
|
2025-02-19 02:39:02 +01:00 |
stefan schippers
|
fc3a3ed4e0
|
add proc cinv (complex inversion)
|
2025-02-18 17:45:09 +01:00 |
stefan schippers
|
936b72c7fc
|
Escape pressed while drawing polygon will cancel last segment instead of the whole poly
|
2025-02-18 11:49:32 +01:00 |
stefan schippers
|
821aa77b0a
|
fix svg fill rules
|
2025-02-18 02:45:24 +01:00 |
stefan schippers
|
25db8b8f9a
|
ellipses rendered in ps/pdf export. Do not allow to select objects with mouse button press if a poligon insertion is ongoing. my_fopen() for read mode open, check for regular file. More checks for failed fopen()s.
|
2025-02-18 02:25:55 +01:00 |
stefan schippers
|
9eb012e6a3
|
fix image in symbols rotation/flip for svg exports
|
2025-02-17 17:53:49 +01:00 |
stefan schippers
|
4623b1c869
|
add ellipses/ellipse_arcs rendering in svg export
|
2025-02-17 16:10:44 +01:00 |
stefan schippers
|
a7ae4eaca8
|
added some simple helper complex number procedures
|
2025-02-17 13:45:12 +01:00 |
stefan schippers
|
1e1c56801d
|
when loading a raw file, if graphs are present and cursor2 is enabled in 1st graph setup annotation in the schematic (no need to move the cursor)
|
2025-02-16 14:08:31 +01:00 |
stefan schippers
|
51c6eded14
|
(2) integrated @georgtree proc symbolParse
|
2025-02-16 01:11:32 +01:00 |
stefan schippers
|
446f7949b4
|
integrated @georgtree proc symbolParse
|
2025-02-16 01:09:28 +01:00 |
stefan schippers
|
cefd320ef6
|
complete previous `xschem load_symbol` command
|
2025-02-15 01:33:13 +01:00 |
stefan schippers
|
279d24288d
|
proc rel_sym_path: resolve ~/... or relative paths (by prepending HOME or PWD) to input path before calculating relative symbol path. Added command `xschem load_symbol`
|
2025-02-15 00:50:02 +01:00 |
stefan schippers
|
5c4be8313b
|
better xctx->save_netlist_type setting when navigating in the hierarchy (of LCC schematics specifically)
|
2025-02-14 14:40:56 +01:00 |
stefan schippers
|
be643d5a92
|
remove here() dbg call
|
2025-02-14 14:00:34 +01:00 |
stefan schippers
|
26710d3bd0
|
fix setting netlist_type to CAD_SYMBOL_ATTRS when doing a descend symbol (`i` key) into a LCC schematic and setting back to previous netlist_type when going back
|
2025-02-14 13:58:36 +01:00 |
stefan schippers
|
05434cb5e4
|
fix @spice_get_*_*(...) regex
|
2025-02-14 13:32:17 +01:00 |
stefan schippers
|
e9c927d882
|
default orientation for wire creation is manhattan (H-V). Lines still start oblique by default
|
2025-02-14 02:55:47 +01:00 |
stefan schippers
|
9fe67cd242
|
eval_expr.y: fix eval_expr_clear_table, remove unneeded unistd.h
|
2025-02-14 02:15:03 +01:00 |
stefan schippers
|
afac3f7620
|
token.c: translate(): protect regex*() calls with #ifdef __unix__
|
2025-02-13 22:18:23 +01:00 |
stefan schippers
|
b0d740757a
|
fix regression in psprint.c
|
2025-02-13 20:43:39 +01:00 |
stefan schippers
|
ed3190c9b1
|
complete previous fix
|
2025-02-13 02:44:26 +01:00 |
stefan schippers
|
7087ae5a2a
|
fix graphical artifacts when inserting objects and pressing Button3
|
2025-02-13 02:38:19 +01:00 |
stefan schippers
|
2c703aa12d
|
backport previous fix to print_verilog_primitive and print_vhdl_primitive
|
2025-02-13 00:46:39 +01:00 |
stefan schippers
|
4517ff3b87
|
fix netlist error if in symbol attributes model="xxx@name" is given, @name was looked up in symbol template instead of again in instance properties.
|
2025-02-12 23:26:00 +01:00 |
stefan schippers
|
95cbd80767
|
merged in TheSUperChayan feature for displaying `Draw Wire` in status bar when in wiring mode.
|
2025-02-12 16:25:46 +01:00 |
stefan schippers
|
bc293a1d8f
|
fix some warnings (-Wdeprecated-non-prototype, -Wparentheses-equality)
|
2025-02-12 03:14:45 +01:00 |
stefan schippers
|
bd40674f34
|
removed %define api.prefix in yacc eval_expr.y, use -p bison on command line
|
2025-02-12 02:11:47 +01:00 |
stefan schippers
|
a559f84bc5
|
merged in Ananth Chellappa additions for Cadence compatibility
|
2025-02-12 01:40:15 +01:00 |
stefan schippers
|
ffe0aba12e
|
indentation and spacing in callback.c
|
2025-02-12 01:22:36 +01:00 |
stefan schippers
|
1e23beabd3
|
c89 compliance and fix some double to int assignments, removed stdbool
|
2025-02-12 01:08:52 +01:00 |
stefan schippers
|
1d1ff164fb
|
Merge branch 'master' into ananthchellappa
|
2025-02-12 00:37:49 +01:00 |
stefan schippers
|
5f8c08d7de
|
eval_expr: CHAR token renamed to XCHAR to avoid name clashes. print_spice_element(): if instance has VHI=VHI, format string has VHI=@VHI, and symbol template has VHI=3 we do not want token @VHI to resolve to 3, but stop at VHI as specified in instance. Same for vhdl and verilog primitives. Fixed a typo in get_sp_cur regex (token.c)
|
2025-02-12 00:32:12 +01:00 |
Ananth
|
99f0e528bf
|
add RC file to help Cadence users
|
2025-02-11 12:51:12 -07:00 |
Ananth
|
3adcf40bf7
|
added remaining edits from CD's repo. Tests ok.
|
2025-02-11 12:44:14 -07:00 |
stefan schippers
|
2a7a461ace
|
update verilogA example tb_diff_amp.sch
|
2025-02-11 20:38:17 +01:00 |
Ananth
|
66ec47ccfb
|
only vars and fn defs (not calls) and inits added for ortho routing and snap cursor
|
2025-02-11 11:49:50 -07:00 |
Ananth
|
bf10a025d7
|
added CD's vars - ortho wiring, snap_cursor, snap_cur size, cadence_compat - all not yet used; use_cursor_for_selection - used; updated xschem.tcl to include in global list and set defaults; callback updated to use use_cursor_for_sel when mouse clicked
|
2025-02-11 10:55:29 -07:00 |
stefan schippers
|
2eeeebf715
|
avoid calling Tcl_GetErrorLine() if tcl version < 8.6
|
2025-02-11 18:52:24 +01:00 |
stefan schippers
|
8cad7daed5
|
removed `str` parameter to all handle_* functions in callback.c (write-only)
|
2025-02-11 11:11:20 +01:00 |
stefan schippers
|
a4e0471fcc
|
minor changes to callback() refactoring to remove compiler warnings
|
2025-02-11 00:16:06 +01:00 |
Ananth
|
b7515c9715
|
add handle_enter_notify for readability
|
2025-02-10 14:52:19 -07:00 |
Ananth
|
1753dc6723
|
add handle_double_click
|
2025-02-10 14:43:26 -07:00 |
Ananth
|
899e7f93d2
|
add handle_button_press/release
|
2025-02-10 14:34:20 -07:00 |
Ananth
|
04e7300f48
|
correct type for mx,my in handle_motion_notify; added handle_key_press
|
2025-02-10 13:52:57 -07:00 |
Ananth
|
bef19b7057
|
refactored : handle_motion_notify for readability
|
2025-02-10 13:42:28 -07:00 |
stefan schippers
|
fe8ef89052
|
update version info in some rom8k symbols. Do a xschem remove_symbols in proc cellview_setlabels to force a reload of changed symbols.
|
2025-02-10 18:49:11 +01:00 |
stefan schippers
|
89a8d8b719
|
same previous fix for resetwin() restore done in ps_embedded_graph() backported also in svg_embedded_graph() (not necessary here but safer)
|
2025-02-10 17:44:05 +01:00 |
stefan schippers
|
88ee9ba0ad
|
fix wrong window size re-setting after a hierarchy ps/pdf printout (due to messing with portrait / landscape)
|
2025-02-10 17:36:10 +01:00 |
stefan schippers
|
6b090273fb
|
lock graphs only if they have the same simulation type loaded. So zooming/panning a tran plot will not affect dc or ac plots.
|
2025-02-10 15:18:01 +01:00 |
stefan schippers
|
b5eb81c107
|
updates in proc cellview
|
2025-02-10 13:44:12 +01:00 |
stefan schippers
|
3d972e8e42
|
`AUTO SET` button in graph edit dialog box to automatically assign increasing colors to displayed waves
|
2025-02-10 02:43:23 +01:00 |
stefan schippers
|
724869638e
|
fix max size of graph bitmap calculation in svg_embedded_graph() and ps_embedded_graph()
|
2025-02-10 01:21:22 +01:00 |
stefan schippers
|
5e3c27d7ee
|
load_schematic(): ability to load / preview a generator (adds () to filename)
|
2025-02-09 20:52:15 +01:00 |
stefan schippers
|
a50b3681c8
|
calc_drawing_bbox(): initialize xctx->show_hidden_texts before calculating bbox.
|
2025-02-09 19:44:40 +01:00 |
stefan schippers
|
8bd9c3d939
|
fix bitrots in proc cellview (Update function)
|
2025-02-09 15:27:55 +01:00 |
stefan schippers
|
b5a25e5925
|
fix update not working in proc cellview
|
2025-02-09 13:48:39 +01:00 |
stefan schippers
|
77a6bd2bb8
|
change order of last statements in hier_psprint() to avoid displaying garbage while moving crosshair cursor and ps->pdf conversion is in progres...
|
2025-02-09 12:23:51 +01:00 |
stefan schippers
|
b625a45dab
|
place_symbol(): trim leading and trailing whitespace from symbol name given as input
|
2025-02-09 03:20:57 +01:00 |
stefan schippers
|
188e73cf8b
|
place_symbol() and proc is_xschem_file: if /path/to/gen.tcl(arg1,arg2,arg3) is given remove (...) argument list before checking existence of generator file. Do not add () to generator filename if argument list already given. Do not include hidden texts in schematic boundbox for full zoom if show hidden_texts is not enabled. draw_graph(): do not wrap graphs using sweepvar_wrap if not dc (this includes: do not wrap multi-point OP sims). print_spice_element(): better @param lookup in instance prop_ptr, symbol template, parent instance prop_ptr (if instance based "additional" symbol) and parent instance symbol template string (use translate3())
|
2025-02-09 02:46:45 +01:00 |
stefan schippers
|
0b3db90f19
|
one more argument to translate3()
|
2025-02-07 14:39:21 +01:00 |
stefan schippers
|
0024dc2759
|
more comments and refactoring in token.c
|
2025-02-07 14:23:58 +01:00 |
stefan schippers
|
51ff56357d
|
some simplification and refactoring of print_spice_element() and translate()
|
2025-02-07 13:22:08 +01:00 |
stefan schippers
|
1573ea3cad
|
improvements in eval_expr.y, print_spice_element(), translate() to allow multiple expr(...) patterns in strings, they all will be evaluated if possible or returned unevaluated (without `expr(` and `)` )
|
2025-02-06 23:57:01 +01:00 |
stefan schippers
|
a4ce2d1b64
|
subst_token(): better token removal (remove space or newline to avoid having many remaining blanks); `netlist_postprocess` xschemrc tcl variable to insert commands after netlist is created
|
2025-02-06 12:45:21 +01:00 |
stefan schippers
|
53fda635c9
|
remove dbg msg, reduce precision in eval_expr(), add expr() resolution at end of translate()
|
2025-02-06 10:39:50 +01:00 |
stefan schippers
|
7926a833be
|
added `d` to unselect object under the mouse, `Shift-D` to unselect by area, both work with or without infix_interface, moved delete files to `Ctrl-d`, update keybinding docs
|
2025-02-06 04:20:57 +01:00 |
stefan schippers
|
0c4cdb3ea1
|
propagate changed key bindings to new opened windows (in no-tabs mode)
|
2025-02-06 01:11:11 +01:00 |
stefan schippers
|
70c1e542b2
|
attributes within expr(...) where expr() contains an infix arith expression will evaluate if possible. Otherwise the string within expr(...) will be returned unchanged. Changes done in translate() and print_spice_element()
|
2025-02-05 18:20:36 +01:00 |
stefan schippers
|
4db384a671
|
add eval_expr.y for evaluation of generic math expressions in infix notation
|
2025-02-05 16:33:23 +01:00 |
stefan schippers
|
795b5557a5
|
print_spice_element(), primnt_verilog_primitive(), print_vhdl_primitive(): format string is passed to translate() to do a round of @xxx param substitutions looking up xxx=... in instance attributes.
|
2025-02-03 02:15:41 +01:00 |
stefan schippers
|
05d61b3987
|
optimization: replace some sumbol "template" token lookups with existing cached sym[].templ field
|
2025-02-02 23:59:41 +01:00 |
stefan schippers
|
5517c8b3f0
|
has_included_subcircuit(): fix spice netlisting error when using a symbol with bussed ports and implementation specified via a spice_sym_def attribute. bussed ports must be expanded and resulting total number of bits of symbol (grater than number of I/O pins!!) must be calculated and sent to the tcl has_included_subcircuit proc.
|
2025-02-02 00:33:55 +01:00 |
stefan schippers
|
e471f577fa
|
integrated create_symbol.tcl in xschem.tcl, some old version strings updated in scripts, some code indenting fixes
|
2025-02-01 00:03:12 +01:00 |
stefan schippers
|
752f794c96
|
remove dbg message
|
2025-01-31 15:59:23 +01:00 |
stefan schippers
|
31a3a00c46
|
clean up translate() deallocation
|
2025-01-30 23:33:51 +01:00 |
stefan schippers
|
60d180de33
|
translate(): fix `regfree(get_sp_cur);` not followed by `get_sp_cur = NULL;`, leading to a random pointer to nowhere
|
2025-01-30 22:43:35 +01:00 |
stefan schippers
|
42a0ceb51f
|
findnet.c: fix some errors in distance calculation leading to "holes" in the selection of instances.
|
2025-01-30 21:00:46 +01:00 |
stefan schippers
|
eadd991651
|
reduce calls to find_closest_net_or_symbol_pin() in draw_crosshair()
|
2025-01-30 03:47:13 +01:00 |
stefan schippers
|
ee750099e3
|
svgdraw(): draw in grey or red ignored or shorted devices, some fixes in ps_print()
|
2025-01-29 18:52:38 +01:00 |
stefan schippers
|
40fd937d51
|
shorted_instance(): fixed a bug: lvs_ignore active disallows evaluation of spice_ignore flags; ps_draw_symbol(): draw in grey or red ignored or shorted devices
|
2025-01-29 16:22:44 +01:00 |
stefan schippers
|
92bb16773c
|
guard against trepassing max hierarchy level when descending, updates to cellview and traversal procs
|
2025-01-28 11:24:51 +01:00 |
stefan schippers
|
44cc37f013
|
optimization: comment out a call do dbg() in a deep, deep nested loop in draw_graph(), enable if needed
|
2025-01-27 15:33:46 +01:00 |
Stefan Schippers
|
56777a2944
|
fix mouse cursor restore when exiting graph and crosshair (not full-size) enabled
|
2025-01-27 13:10:53 +01:00 |
stefan schippers
|
8df1aa9996
|
some comments, removed redundant modifier key checks in callback()
|
2025-01-27 12:51:32 +01:00 |
stefan schippers
|
500d2e2bed
|
some commentd added
|
2025-01-27 02:07:38 +01:00 |
stefan schippers
|
0d325f6957
|
force a crosshair draw at end of draw() (draw_crosshair(7,...)), intuitive interface direct drag of instances: fix some non-working combinations when stretch mode (y) is enabled.
|
2025-01-27 01:49:06 +01:00 |
stefan schippers
|
bfd7895d4c
|
edit_line_point() and edit_wire_point(): use mouse[xy]_snap instead of mouse[xy] for checking line/wire endpoint selection
|
2025-01-27 00:48:26 +01:00 |
stefan schippers
|
6669b4f177
|
renamed find_closest_net() to find_closest_wire()
|
2025-01-27 00:14:29 +01:00 |
stefan schippers
|
f2cc1d0216
|
move_objects(RUBBER,...) and copy_objects(RUBBER): return immediately if snapped mouse coordinates not changed
|
2025-01-26 17:58:03 +01:00 |
stefan schippers
|
bce1e652c6
|
refactored xctx->y_[12] to xctx->y[12]
|
2025-01-26 17:49:47 +01:00 |
stefan schippers
|
80a22c78a8
|
comments
|
2025-01-26 17:44:00 +01:00 |
stefan schippers
|
8086b5581e
|
redraw_w_a_l_r_p_z_rubbers(): include zoom_rectangle(RUBBER), only execute if (snapped) coordinates changed, draw_crosshair(): only execute if (snapped) coordinates changed, find_closest_net_or_symbol_pin() is moved into draw_crosshair() so its calls are also minimized, do not allow z (zoom rectangle) if pending STARTWIRE, STARTLINE etc are in progress.
|
2025-01-26 15:19:22 +01:00 |
stefan schippers
|
bbe8782bc0
|
more comments in callback(), add_wire_from_inst_pin() separated into add_wire_from_inst() and add_wire_from_wire(), changed the distance measurement for closest instance, works better with ituitive i/f, some edit shape point functions restricted to intuitive_interface only, to avoid too many combinations
|
2025-01-26 06:40:00 +01:00 |
stefan schippers
|
ea5609dd0b
|
more comments in callback()
|
2025-01-26 02:35:00 +01:00 |
stefan schippers
|
34f9ae73a0
|
more comments in callback()
|
2025-01-26 02:32:43 +01:00 |
stefan schippers
|
7e697672ce
|
more comments in callback()
|
2025-01-26 02:00:07 +01:00 |
stefan schippers
|
70156a3bda
|
intuitive interface, directly drag elements: default to wire stretch if enable_stretch is activated and normal move if using ctrl key and the other way around if enable_stretch is unset
|
2025-01-26 01:06:48 +01:00 |
stefan schippers
|
01989bba0c
|
fix issue with previous fix, add enable_stretch parameter to select_inside() and select_rect()
|
2025-01-26 00:26:56 +01:00 |
stefan schippers
|
1bee3d766f
|
included TheSUPERCD commit 260beff, if (full and only full) crosshair is displayed use snap mouse coordinates since mouse pointer is turned off; fixed an issue when selecting ridicolously small rectangles in find_closest_box()
|
2025-01-25 23:41:39 +01:00 |
stefan schippers
|
dad3b78931
|
Add a line number in error report if failed sourced tcl scripts
|
2025-01-25 19:39:53 +01:00 |
stefan schippers
|
6cc7883e51
|
reduce overlap area when clearing crosshair, add return value to find_closest_net_or_symbol_pin()
|
2025-01-25 14:33:01 +01:00 |
stefan schippers
|
71aa4339bd
|
add comment
|
2025-01-25 02:46:54 +01:00 |
stefan schippers
|
4700483fa4
|
draw_crosshair(): more logical what parameter values
|
2025-01-25 02:13:59 +01:00 |
stefan schippers
|
26bfe7691b
|
add `xschem draw_hilight_net [on_window]` for quick draw or hilighted objects; add `xschem get_sim_sch` to get the current schematic hierarchy path, stripping off levels above the level the raw file was loaded. Strip off also leading dot; `xschem hilight_instname`: move fast option as -fast option; list_nets(): expand vector ports ; optimize update_op() for speed
|
2025-01-24 18:57:35 +01:00 |
stefan schippers
|
48264c0399
|
allow `xschem translate -1 string` to translate tokens that do not depend on specific instances; yet another change in wrap detection in graphs, always use simulator sweep-var instead of user specified sweep variable; simulated data will never wrap exactly to first value due to roundoff errors; -fast optionto `xschem hilight_netname` command
|
2025-01-24 03:52:20 +01:00 |
stefan schippers
|
7553222461
|
remove a piece of useless code in new_wire(), fix some MENUSTARTSNAPWIRE issues with crosshair drawing, enable no infix_interface operation for `W` command
|
2025-01-23 11:38:32 +01:00 |
stefan schippers
|
096eb126c1
|
comment in the code
|
2025-01-22 17:29:17 +01:00 |
stefan schippers
|
0824c1b9b8
|
fix garbage on screen due to crosshair cursor if copying by drag (Shift-click-drag) in intuitive interface (collision with snapped crosshair position)
|
2025-01-22 17:00:03 +01:00 |
stefan schippers
|
4e821586c2
|
replaced find_closest_net_or_symbol_pin() with new function that uses spatial hash table iterators for searching
|
2025-01-22 03:59:49 +01:00 |
stefan schippers
|
0c8631a101
|
MotionNotify events with Shift key down (and draw_crosshair enabled) will position the crosshair to the closest available landing point (inst pin or wire endpoint)
|
2025-01-22 01:57:09 +01:00 |
stefan schippers
|
ed2a4f61c8
|
code formatting cleanups
|
2025-01-22 00:22:02 +01:00 |
stefan schippers
|
1015a9d71e
|
added command `xschem set crosshair_layer` to change layer used for crosshair drawing
|
2025-01-21 16:50:31 +01:00 |
stefan schippers
|
7ee11e8dbc
|
various fixes related to crosshair mouse display
|
2025-01-21 16:07:23 +01:00 |
stefan schippers
|
49aab703b4
|
set default value for crosshair_size tcl var to 0
|
2025-01-21 15:40:59 +01:00 |
stefan schippers
|
72d961aacd
|
fix a regression where a mouse wheel zoom or schematic pan unexpectedly end an ongoing wire placement. Add xschemrc variable crosshair_size; if set to 0 draw full crosshair, if set to a small integer draw a small square around the mouse snapped coordinate
|
2025-01-21 15:38:19 +01:00 |
stefan schippers
|
99b0bba5b8
|
if big_grid_points is not set draw always thin axes and mouse crosshairs; dashed axes
|
2025-01-21 12:34:14 +01:00 |
stefan schippers
|
2b05b365e5
|
If opening a non existing xxxx.sym file euristically set netlist_type to symbol --> better implementation
|
2025-01-21 04:09:08 +01:00 |
stefan schippers
|
5d52d322b5
|
symbol_in_new_window(): if no symbol selected build file name for symbol of current schematic and open it in a new tab. If opening a non existing xxxx.sym file euristically set netlist_type to symbol. proc open_sub_schematic: if no symbol selected for subcircuit to open, open the corresponsing schematic of the symbol we are editing
|
2025-01-21 02:57:46 +01:00 |
stefan schippers
|
6adee35b89
|
update make_sym.awk to use a polyline instead of segments for the symbol box
|
2025-01-20 23:03:33 +01:00 |
stefan schippers
|
c9f60ce1c8
|
clanup / better implementation of previous fix
|
2025-01-20 18:39:46 +01:00 |
stefan schippers
|
c52ded63b0
|
complete previous fix
|
2025-01-20 18:21:12 +01:00 |
stefan schippers
|
7523c0015c
|
correctly mangle generator calls with parameters containing forbidden characters. Transliterate to get valid SPICE identifiers
|
2025-01-20 17:54:06 +01:00 |
stefan schippers
|
724c264c9d
|
allow Shift-T command (toggle spice_ignore attribute) to cycle through ignore-shorted-unset on selected elements
|
2025-01-20 16:48:31 +01:00 |
stefan schippers
|
0e53359ee0
|
update proc cellview
|
2025-01-20 14:52:30 +01:00 |
stefan schippers
|
cb38deffa6
|
add -keep_symbols to `xschem load command`, options changed to have a leading dash, and moved at beginning of command arg list; `xschem netlist` command: add -keep_symbols option; `xschem setprop` command: move fast and fastundo to beginning of arg list with a leading dash; update proc cellview
|
2025-01-20 02:30:46 +01:00 |
stefan schippers
|
4f31c024c8
|
add option -noalert to `xschem netlist` command, update `proc cellview`
|
2025-01-19 23:29:41 +01:00 |
stefan schippers
|
16121b6e07
|
keep selection if aborting a move operation. This was probably a regression
|
2025-01-19 14:13:57 +01:00 |
stefan schippers
|
2bd1c79cd5
|
enhance drawing wires in intuitive_interface by dragging away from an instance pin or wire endpoint. Allow set manhattan/oblique direction as with w keybind
|
2025-01-19 13:59:18 +01:00 |
stefan schippers
|
4759d58ad5
|
add a prepare_netlist_structs() in get_pin_attr() to update net names for @#pin tokens
|
2025-01-19 02:31:58 +01:00 |
stefan schippers
|
6dcc9fd7c5
|
allow Shift-Click to terminate snapped wire placement (in addition to Shift-W)
|
2025-01-18 23:50:04 +01:00 |
stefan schippers
|
ca1035eca1
|
add no-infix (set infix_interface 0) operation to move and copy operations
|
2025-01-18 21:59:04 +01:00 |
stefan schippers
|
cfb491adb3
|
draw_crosshair(): parameter del renamed to what; @spice_get_current: special handling for resistors that are converted to b-sources: i(@r.x4.r1[i]) --> i(@b.x4.br1[i])
|
2025-01-18 12:38:12 +01:00 |
stefan schippers
|
025823f14c
|
`xschem go_back 0` allows to go up in hierarchy *NOT* saving a modified schematic
|
2025-01-17 18:11:35 +01:00 |
stefan schippers
|
151241afc7
|
add new command `xschem get modified` (returns 1 if circuit needs to be saved)
|
2025-01-17 17:48:02 +01:00 |
stefan schippers
|
ac8db614c0
|
infix_interface xschemrc variable (default=1) can be set to 0 to disable infix (need to click a point after bindkey); disable warnings from graphs with autoload=1 if no raw file or matching analysis found; add m parameter (multiplicity) to bsource.sym, cmos_example.sch; remove dependency on external model file, use ngspice provided mos model 8 bsim3 models.
|
2025-01-17 17:15:48 +01:00 |
stefan schippers
|
c57c49fde8
|
Hiding the TEXT layer will disable only symbol texts on that layer, not all texts, `proc select_layers` make the widget non-modal
|
2025-01-16 20:37:19 +01:00 |
stefan schippers
|
ca6b8fe85b
|
end_shape_point_edit(): fix erroneous set_modify because comparing unsmapped mouse saved coords with snapped actual mouse coords
|
2025-01-16 17:19:42 +01:00 |
stefan schippers
|
f2225677cc
|
fix regression in (V) cursor movement when multiple side-by-side graphs are present
|
2025-01-16 16:03:34 +01:00 |
stefan schippers
|
bcca65da90
|
translate(), @spice_get_current, typo led to missing argument in printf()
|
2025-01-16 15:35:11 +01:00 |
stefan schippers
|
315c5bd600
|
added symbol attributes @spice_get_current_<param>, @spice_get_modelparam_<param>, @spice_get_modelvoltage_<param>
|
2025-01-16 02:52:52 +01:00 |
stefan schippers
|
f79f9ecf1d
|
removed dbg mesages
|
2025-01-15 19:12:30 +01:00 |
stefan schippers
|
f2b9d0c6f3
|
added attribute @spice_get_current<n> for retrieving current through terminal <n> of primitive device; example: @spice_get_current2 to get base current of BJT device
|
2025-01-15 17:39:59 +01:00 |
stefan schippers
|
7d6c3f4764
|
destroy_all_tabs() do a final redraw to avoid inconsistent screen after some tab removals
|
2025-01-15 03:11:12 +01:00 |
stefan schippers
|
10991e662c
|
added `xschem symbol_base_name` command to get the base symbol a symbol defined by instance `schematic` attribute comes from; updated `celview` procedure
|
2025-01-15 00:44:39 +01:00 |
stefan schippers
|
a24145c16c
|
revert change `LCC symbols: make 1st LCC level pins display spice_get_voltage annotation data` (not working as expected)
|
2025-01-14 01:13:14 +01:00 |
stefan schippers
|
b0973ae8c0
|
add_pinlayer_boxes(): fix uninitialized bb[PINLAYER][i].fill, LCC symbols: make 1st LCC level pins display spice_get_voltage annotation data
|
2025-01-13 17:30:11 +01:00 |
stefan schippers
|
6cca3fefc4
|
add debug line in load_sym_def()
|
2025-01-13 13:30:15 +01:00 |
stefan schippers
|
0920c6804d
|
comments and indentation in save.c
|
2025-01-13 11:58:16 +01:00 |
stefan schippers
|
d05b7fa389
|
update schematic backannotation on cursor2 position if setting it numerically (Right button click on cursor)
|
2025-01-12 17:06:44 +01:00 |
stefan schippers
|
8da888a119
|
fix uninitialized `raw` pointer in graph_fullxzoom() and graph_fullxzoom()
|
2025-01-12 00:08:41 +01:00 |
stefan schippers
|
66a6c913e3
|
removed warning msg
|
2025-01-11 22:45:42 +01:00 |
stefan schippers
|
7d0a0e82bf
|
name_unlabeled_instances() commented out redundant (never happens) check
|
2025-01-11 20:24:16 +01:00 |
stefan schippers
|
a7d5865ab8
|
fix erroneous `all pins disconnected` warning when netlisting pin-to-pin connected element chains
|
2025-01-11 20:16:01 +01:00 |
stefan schippers
|
bca1110282
|
add option -nohier to `xschem netlist` command, correctly restore netlist_dir at end
|
2025-01-11 17:55:46 +01:00 |
stefan schippers
|
7484a6363c
|
interpret `xschem symbols {}` as `xschem symbols` (simpler for scripts), update proc cellview
|
2025-01-11 15:30:22 +01:00 |
stefan schippers
|
172ab4081d
|
changed `xschem is_symgen` to `xschem is_generator` as name is more appropriate
|
2025-01-11 14:17:30 +01:00 |
stefan schippers
|
02d992d2a6
|
fix error checks in get_sch_from_sym()
|
2025-01-11 14:10:02 +01:00 |
stefan schippers
|
5161f3dc0a
|
some doc updates and comments, error checks in get_sch_from_sym()
|
2025-01-11 14:08:23 +01:00 |
stefan schippers
|
9d54269d25
|
doc updates (@spice_get_node)
|
2025-01-11 01:34:41 +01:00 |
stefan schippers
|
69ddd2966c
|
get_sym_name(): use with_quotes=6 in extraction of schematic attribute as done in get_additional_symbols() and get_sch_from_sym()
|
2025-01-10 17:40:16 +01:00 |
stefan schippers
|
be76009a3c
|
remove dbg msg
|
2025-01-10 17:15:53 +01:00 |
stefan schippers
|
a0da5c7b51
|
fix resolution of symbol references like: symbolgen.tcl(buf), when descending into symbol correctly recognize generator and descend into generated symbol
|
2025-01-10 17:14:13 +01:00 |
stefan schippers
|
1d5ff21130
|
get_sch_from_sym() fix detection of empty instance `schematic` attribute
|
2025-01-10 16:51:20 +01:00 |
stefan schippers
|
aeb57781a8
|
fix some c89 violations (warnings)
|
2025-01-10 16:14:24 +01:00 |
stefan schippers
|
59e7872f67
|
reduce some pointer indirections to array subscripts (readability)
|
2025-01-10 16:00:47 +01:00 |
stefan schippers
|
0a3fd95e06
|
code formatting
|
2025-01-10 14:58:10 +01:00 |
stefan schippers
|
882e20397d
|
get_additional_symbols(), get_sch_from_sym(): allow to resolve schematic calls like: schematic=generator.tcl(@n\) --> let get_tok_value() return backslashes and remove surrounding "..." quotes
|
2025-01-10 14:12:05 +01:00 |
stefan schippers
|
a29814d728
|
get_additional_symbols(), get_sch_from_sym(): allow to resolve schematic calls like: schematic=generator.tcl( @n ) where n=11 is defined in instance attrs. some fixes in cursor movement in waves_callback()
|
2025-01-10 06:03:52 +01:00 |
stefan schippers
|
2c1e1c1fe7
|
refactoring and cleanup of wave_callback() -8-
|
2025-01-10 02:35:50 +01:00 |
stefan schippers
|
ef5d0e1b96
|
str_replace(): add parameter to specify number of substituitions (or all); replaced atof_spice() with atof_eng() in various parts related to numbers that do not come from spice netlists; fix numerical setting of cursors if log scale is set (wrong preset was shown); make wave labels in graph scale with gr->magx as X-axis labels; fix scaling roundoff issues in dtoa_eng(); add new `@spice_get_node <spice_node> ` token (where spice_node may contain @variables) in symbol texts to display indicated spice node value. Does not use TCL, thus faster and less "quoting hell" problems
|
2025-01-10 01:52:54 +01:00 |
stefan schippers
|
aa36cbb897
|
@path expansion in translate(): remove path components above the level where raw file (if any) was loaded; added @spice_get_current in bsource.sym
|
2025-01-09 15:35:35 +01:00 |
stefan schippers
|
c6a4e8b942
|
refactoring and cleanup of wave_callback() -7-
|
2025-01-09 04:23:23 +01:00 |
stefan schippers
|
cd3eaf23ea
|
refactoring and cleanup of wave_callback() -6-
|
2025-01-09 04:11:30 +01:00 |
stefan schippers
|
52b9cc1ee6
|
refactoring and cleanup of wave_callback() -5-
|
2025-01-09 00:46:42 +01:00 |
stefan schippers
|
ff7c767c4d
|
propagate drawing graph Hcursor functions to SVG/PDF exports
|
2025-01-09 00:31:11 +01:00 |
stefan schippers
|
7d7b381b7b
|
refactoring and cleanup of wave_callback() -4-
|
2025-01-09 00:17:55 +01:00 |