stefan - 2024-12-17

See Changelog for details

3.4.6:

- Fix spurious change in tab name when netlisting if Trim Wires option enabled 
- Xschem raw values now returns full precision, no more 8 digit rounding, as this is
  undesirable for transient noise sims
- bus_tap.sym: show annotated voltage (remove hidden text attribute)
- Add verilator in addition to icarus verilog simulator
- "xschem annotate_op" command only deletes loaded OP raw file (if any),
  does no more delete all loaded raw files.
- HistogramH and HistogramV graph modes (plot graph bars)
- Allow wave expressions with spaces on a single line without quotes ("...."). 
  Quotes can be used for wave expression on multiple lines.
  Side effect: multiple nodes can no more be specified on a single line separated with spaces,
  use newlines.
- If text_replace_selection is enabled replace selection when pasting also in entry
  widgets as done with text widgets
- Enable Undo in text widgets. 
- Screen grab: if draw crosshair is enabled and a screen grab is done show default mouse pointer
- Graphs: always plot one point before x1 and one point after x2 of simulation waves so they will
  extend to full graph area even if there are few simulation points.
- Add graph_use_ctrl_key variable (default 0) to force holding Control key to interact with graphs.
  This avoid graphs "stealing" events that are expected to work on the schematic
- Allow full specification of file selector window geometry and pane sizes. examples in xschemrc
- Fully remember panedwindow (vertical and horizontal) sash positions in load_file_dialog
- Xschem annotate_op command: if no OP analysis is found in raw file try to load a DC
  sweep and use first point for schematic annotation. This is done because Xyce stores
  OP data as a 1-point DC sweep 
- Added `legend` checkbutton in graph dialog box to switch off signal legend in analog graph
- Add `constants` plot type in graph sim type drop down menu
- Fix <insert> and <shift>-<insert> to work on Windows
- Remove check for libreadline (not used)
- Insert symbols should tolerate paths in XSCHEM_LIBRARY_PATH ending with `/`
- Select rectangles (click and mouse drag to select) are unsnapped. 
  Much easier to select small objects
- Add ability to read ASCII raw files
- "xschem change_sch_path" command for changing the current path we are descended in.
- update svgdraw and psprint to recognize svg embedded images. svgdraw exports it
  as embedded svg
- When inserting a svg image automatically set the filter attribute to rasterize
  svg to png (if tcl variable svg_to_png is set in xschemrc), "rsvg-convert" or
  "inkscape" or imagemagick "convert" can be used. see template xschemrc in src/
- When importing svg images with a svg->png filter (like rsvg-convert) keep source
  svg data in the image_data attribute instead of the rasterized data.
  This will make these images scalable and schematics will be smaller (if using
  small vector SVGs) when inserting a svg image automatically set the filter attribute
  to rasterize svg to png (if tcl variable svg_to_png is set in xschemrc),
  "rsvg-convert" or "inkscape" or imagemagick "convert" can be used. see template
  xschemrc in src/
- Add ic.sym for setting initial condition on nets
- Add current annotators in cccs and vccs symbols
- Fix crash if multiple raw files are loaded and last one fails loading due to
  corrupt raw file
- Added operator "cph()" to transform discontinuous phase ph(xxx) in AC analyses to
  continuous phase, like ngspice cph() function.
  Usage: instead of ph(out) use "ph(out) cph()"
- Add "Properties" menu for "Change selected object insertion order" (Shift-S)
- Avoid triggering tclcommand -> launcher() when dragging mouse with ctrl key
- switch_ngspice.sym: add "device_model" attribute in template string, so a
  template model is given when placing the symbol
  around objects with such attribute
- svgdraw and psprint: draw text after images as done in screen draw. Correct postscript / pdf
  image zoom factor to match scaling with other xschem elements.
- Do not reset xctx->netlist_name after doing `Netlist` from gui (xschem netlist -erc)
- process tcleval(....) (if present) in symbol `name` argument
- Let symbol name entry box in component edit property dialog box expand in X direction
  if dialog box is enlarged
- Replace "UNDEF" with "-" in backannotated nodes that have no value in raw file.
- Draw node names in graphs even if specified file / analysis (graph rawfile or sim_type
  attributes) is not loaded
- If autoload is set in graph and a filename is given (rawfile graph attr) load raw file immediately
   when drawing graph. Don`t wait for user to load an intiial raw file to trigger auto loading
- Double clicking in the center of a graph will now bring up the graph edit attributes
  dialog box even if no raw file is loaded
- Graphs will autoload (if autoload checked) raw data even if no raw file is specified in
  graph dialog box (use current loaded raw file, usually with a different analysis)
- Save 4 vars ( node, ph(node), re(node, im(node) ) instead of 2 ( node, ph(node )for ac plots
- Add "private cursor" check box in graph dialog box. This allow the related graph to have
  separate "a" and "b" cursors. These cursor positions are saved with the schematic and
  are thus persistent when reloading the schematic.
- Fix a bug in preview symbol displaying when inserting components. Toplevel .load widget was
  destroyed before cleaning preview data in preview_window(), so after some insertion preview
  was no more displayed.
- Port ordering for a schematic .subckt line will always be deduced from the symbol if it exists,
  even if the symbol type is not "subcircuit" (so it will be used for also "primitive" type symbols).
- Add tcl xschemrc variable "select_touch" that enables selecting objects touched by the
  selection rectangle if dragging to the left. Previously this behavior was enabled by
  "incremental_select" that shows selected elements while dragging.
  These two optional behaviors are now enabled/disabled by separate variables
- Issue a netlist error (and report message) if instances with pins have *all* pins disconnected.
  This is in 99.999% of the cases an error.
- Added tcl variable top_is_subckt and related Simulation->LVS menu, that keeps top level wrapped
  inside a .subckt / .ends, as lvs_netlist does. However top_is_subckt does only that and will not
  enable lvs_format to differentiate device lines in netlist (usually used for LVS comparison).
- Add autoload checkbutton in graph properties to automatically load or not
  custom graph-specified raw files
- Allow `global` atttributes on instances of gnd.sym and vdd.sym to override symbol `global`
  setting. This allows also to set global=1 to net labels (lab_net.sym, lab_pin.sym)
  to make the net global.
- ps/pdf export: use highlight colors on instances / wires that are highlighted
- Add attribute text_layer_n=lay, where n = text object inside symbol instance to change its layer
- Enhance spice_sym_def used in instances (with schematic=...) by substituting @param
  with values defined in instance if any (param=xxx)
- Allow @symname, @symref, @param (param defined in symbol template string) translation in
  instance or symbol spice_sym_def attributes
- A `.` in search path is always assumed to be [pwd] and not the directory of the currently
  opened schematic. This will hopefully fix an endless list of user complains when using
  symbols from dirs not listed in XSCHEM_LIBRARY_PATH.
- sim_pinnumber attribute on schematic pins will be used for top level .subckt pin
  ordering if no corresponding symbol exists when creating a spice netlist