Added new version 2.1.2 with documentation updates about editor commands,
code cleanups and more error messages in case of configuration file with syntax errors.
See also on XSCHEM website
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
2.1.3 uploaded, some fixes done and updated documentation. Lot of documentation still WIP, but with Xmas holiday i will be able to make it a lot better!. Stay tuned! :-)
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
when showing only probes make lines wide so they are better visible on freaking
big schematics
selection of probes made way faster on gigantic schematics.
allow multiple instances with same base name, example:
xxx[2:1] symbol placed
xxx[3] was not allowed since xxx was already present.
Now the entire name is inserted in hash table so now xxx[3] != xxx[2:1]
and allowed
Last edit: stefan 2016-12-28
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Uploaded 2.1.6, no changes in program code but added the 'greycnt' sample schematic
that is used in the 'SIMULATION' tutorial to run a complete Verilog simulation with Icarus Verilog and Gtkwave open source EDA tools. Documentation updates for netlisting and simulation. XSCHEM online manual
Last edit: stefan 2016-12-29
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
2.1.8 uploaded. fixed a segfault regression, some minor fixes in the code.
Fixed wrong search order of the .xschem file. The correct behavior is to look in ${PWD} for an initialization .xschem file, and then (if not found) look in ${HOME}. Give up execution if ${HOME} is not defined.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
added 'propstring' search key to search patterns into the whole instance
property string instead of looking into single property tokens
added the following instance properties:
'url' : specify an url to open when pressing the launch ('H') key on an instance
'program' : specify a program to use for opening the file (default if missing:
xdg-open)
'tclcommand' : execute a tcl script
these properties allow the creation of 'launchers', special instances that when
triggered with the 'H' key perform some actions (open documentation, datasheets,
view data, run special viewers, bindings to new simulators, ...)
the special 'launcher' component in the 'devices' library can be used for this purpose.
All these properties can be attached to any schematic component.
fixes in the spice.awk netlister (20170407) fixed wrong netlisting for ammeters (current
probes) placed on bussed wires.
token.c: get_tok_value: recognize escaped backslashes (\\), return single backslash (\)
in the value string.
.xschem config file: removed 'hspicerf_simulator', 'modelsim_simulator', added
'spice_simulator', 'verilog_simulator', 'finesim_path', 'finesim_opts' variables.
previously the default spice simulator was hspice and optionally hspicerf was used when
hspicerf_simulator was set to 1. This is unflexible, the new approach is to specify
the name of the simulator to use: (set spice_simulator hspice).
Same approach for the verilog simulator (set verilog_simulator iverilog)
Added finesim spice simulator (set the 'finesim_path' variable and set
spice_simulator to finesim).
some cosmetic changes in the menus (radiobuttons for viewer/simulator/netlist format)
Last edit: stefan 2017-04-15
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
2.1.11 released:
Fixes a problem when doing 'File->Save' on a schematic created from 'File->New'. Since no filename exist for this schematic, revert to a 'Save As' operation.
Thanks to Svenn Are Bjerkem for pointing out the issue.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
2.1.12 released:
fix a bug causing wrong VHDL netlist when bussed nets or bus slices (xxx[3], yyy[4:2]) are connected to 'primitive' symbols whose VHDL behaviour is defined with a 'vhdl_format' attribute. Thanks to Svenn Are Bjerkem for explaining the problem.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
New commit r30: added a 'Make schematic from symbol (ctrl-l) menu entry:
a schematic view (containing the interface pins/generics specified in the symbol) is created automatically from the selected symbol.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
some cosmetic additions (dialog titles) in xschem.tcl
fixed a crashing bug when the 'create pins from highlight nets'
(ctrl-j) is invoked after hilighting some nets and deleting a
subset of those.
improvements on the 'create pins to selected instance' command ('h' key)
a dialog box asks if pins need to be prefixed with a string, also allow
to choose lab_pin or lab_wire net labels.
added menu entry under the 'Symbol' tab
Control-return and Escape bindkeys added to most toplevel dialog boxes
to allow quickly closing unwanted dialog boxes.
devices/lab_wire library symbol flipped horizontally to align orientation with lab_pin
as per Svenn Are Bjerkem suggestion (Thanks!)
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
added option '-S' to launch a simulation in batch command mode:
xschem -q -n -s -S examples/poweramp
will do a spice (-s) netlist (-n) and launch simulation (-S), then quits (-q)
added option '-W' to launch waveform viewer
xschem -q -s -W examples/poweramp
will bring up the default spice wave viewer and quits.
do not open a confitmation dialog asking to save if TCL 'xschem save' is given
This will allow to build tcl scripts without needing user confirmation.
tcl command 'xschem select' now allows to select an instance by specifying its instance name
(instead of its numeric position into the inst_ptr array, still allowed)
xschem select xampli
will select instance 'xampli' if found in current schematic
Added #define __USE_GNU to allow usage of 'strndup' function (POSIX 2008) in older systems
stefan, 20171007
Last edit: stefan 2017-10-07
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Documentation updated (component pin auto labeling)
added option '-S' to launch a simulation in batch command mode:
'xschem -q -n -s -S examples/poweramp'
will do a spice (-s) netlist (-n) and launch simulation (-S), then quits (-q)
added option '-W' to launch waveform viewer
'xschem -q -s -W examples poweramp'
will bring up the default spice wave viewer and quits.
do not open a confirmation dialog asking to save if TCL 'xschem save' is given
This will allow to build tcl scripts without needing user confirmation.
tcl command 'xschem select' now allows to select an instance by specifying its instance name (instead of its numeric position into the inst_ptr array, still allowed)
'xschem select xampli'
will select instance 'xampli' if found in current schematic
Added #define __USE_GNU to allow usage of 'strndup' function (POSIX 2008) in older systems
improvements on the 'create pins to selected instance' command ('h' key)
a dialog box asks if pins need to be prefixed with a string, also allow to choose lab_pin or lab_wire net labels.
Control-return and Escape bindkeys added to most toplevel dialog boxes to allow quickly closing unwanted dialog boxes.
devices/lab_wire library symbol flipped horizontally to align orientation with lab_pin
documentation about automatic symbol generation
added a 'Make schematic from symbol' (Ctrl-l) menu entry.
if one symbol is selected and this function is invoked (ctrl-l)
a schematic view (.sch) will be automatically created from the symbol view. The schematic will only contain the interface
pins / generics (if any). This will overwrite the symbol schematic view if it exist. A warning is issued requesting user confirmation.
some cosmetic additions (dialog titles) in xschem.tcl
fixed a crashing bug when the 'create pins from highlight nets' (ctrl-j) is invoked after hilighting some nets and deleting a subset of those.
Last edit: stefan 2017-10-08
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Added description option -no-pie in Makefile; if a profiled executable is needed '-no-pie -pg' must be given. Position Independent Executable is now the default on Gcc, but gprof will not work with this default.
xschem will not descend or go up from a schematic hierarchy level if it has been modified, the user wants to save changes but the file can not be saved, due for example to permission problems. In this case the user either needs to save to a different place or say 'no' when promped for save.
bindkey 'W' 'show discrepancies of nets vs pin names on selected instance' changed to 'X'
added the 'snap wire' function (uppercase) 'W' bindkey, the wire starts/ends from/to closest instance pin or net endpoint. Thanks to Svenn Are Bjerkem for hints.
fixes in the undo buffer, some actions were not undoable.
bindkey 'H' for 'execute tclcommand or open file or http link (tclcomand or url properties) changed to 'ctrl-h'
bindkey 'h' for 'attach nets to instance pin' changed to 'H'
added constrained horizontal ('h' key) or vertical ('v' key) movement for wire, line, object copy/move.
added menu entries for png/pdf/svg print, h/v constrained move, collapse wires, snap wire creation.
'-z' xschem option now works again, this will start xschem wuth a rich rainbow colored layer set
Documentation updates.
Last edit: stefan 2017-10-23
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
added easy keybind customization in the ~/.xschem init file.
See following examples:
## replace Ctrl-d with Escape (so you wont kill the program)
set replace_key(Control-d) Escape
## swap w and W keybinds; Always specify Shift for capital letters
set replace_key(Shift-W) w
set replace_key(w) Shift-W
Documentation added for keybind customization.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
First upload, i am very new to Sourceforge.
I will soon move the documentation html here, in the mean time
visit the Xschem web site
Sources uploaded to svn repository!
Added more documentation on circuit creation, symbol generation, netlist and hierarchy concepts. Small fixes in the c sources.
Added documentation on parametrized subcircuits on XSCHEM website
Last edit: stefan 2016-12-14
Added new version 2.1.2 with documentation updates about editor commands,
code cleanups and more error messages in case of configuration file with syntax errors.
See also on XSCHEM website
2.1.3 uploaded, some fixes done and updated documentation. Lot of documentation still WIP, but with Xmas holiday i will be able to make it a lot better!. Stay tuned! :-)
2.1.4 uploaded: new hash functions for faster execution on big designs. Documentation updates.
2.1.5 added:
big schematics
xxx[2:1] symbol placed
xxx[3] was not allowed since xxx was already present.
Now the entire name is inserted in hash table so now xxx[3] != xxx[2:1]
and allowed
Last edit: stefan 2016-12-28
Documentation about netlisting added to the XSCHEM online manual
Uploaded 2.1.6, no changes in program code but added the 'greycnt' sample schematic
that is used in the 'SIMULATION' tutorial to run a complete Verilog simulation with Icarus Verilog and Gtkwave open source EDA tools. Documentation updates for netlisting and simulation.
XSCHEM online manual
Last edit: stefan 2016-12-29
2.1.7 uploaded, fixes some wrong symbol references in the example schematics.
Small documentation updates.
I have retired the previous 2.1.6
2.1.8 uploaded. fixed a segfault regression, some minor fixes in the code.
Fixed wrong search order of the .xschem file. The correct behavior is to look in ${PWD} for an initialization .xschem file, and then (if not found) look in ${HOME}. Give up execution if ${HOME} is not defined.
2.1.9 uploaded.
property string instead of looking into single property tokens
xdg-open)
these properties allow the creation of 'launchers', special instances that when
triggered with the 'H' key perform some actions (open documentation, datasheets,
view data, run special viewers, bindings to new simulators, ...)
the special 'launcher' component in the 'devices' library can be used for this purpose.
All these properties can be attached to any schematic component.
probes) placed on bussed wires.
in the value string.
'spice_simulator', 'verilog_simulator', 'finesim_path', 'finesim_opts' variables.
previously the default spice simulator was hspice and optionally hspicerf was used when
hspicerf_simulator was set to 1. This is unflexible, the new approach is to specify
the name of the simulator to use: (set spice_simulator hspice).
Same approach for the verilog simulator (set verilog_simulator iverilog)
Added finesim spice simulator (set the 'finesim_path' variable and set
spice_simulator to finesim).
Last edit: stefan 2017-04-15
2.1.10 uploaded:
Thanks to Saul Rodriguez for pointing out the issue.
selected component instance (also bound to 'H' key)
Last edit: stefan 2017-05-11
2.1.11 released:
Fixes a problem when doing 'File->Save' on a schematic created from 'File->New'. Since no filename exist for this schematic, revert to a 'Save As' operation.
Thanks to Svenn Are Bjerkem for pointing out the issue.
Moved the xschem online documentation on source forge web hosting. This solves connection problems with my previous web hosting server.
2.1.12 released:
fix a bug causing wrong VHDL netlist when bussed nets or bus slices (xxx[3], yyy[4:2]) are connected to 'primitive' symbols whose VHDL behaviour is defined with a 'vhdl_format' attribute. Thanks to Svenn Are Bjerkem for explaining the problem.
2.1.13 released:
set pathnames and defaults.
Added the 'Creating symbols' chapter to the XSCHEM documentation web site
XSCHEM online manual
Last edit: stefan 2017-09-21
New commit r30: added a 'Make schematic from symbol (ctrl-l) menu entry:
a schematic view (containing the interface pins/generics specified in the symbol) is created automatically from the selected symbol.
r31 commit
(ctrl-j) is invoked after hilighting some nets and deleting a
subset of those.
a dialog box asks if pins need to be prefixed with a string, also allow
to choose lab_pin or lab_wire net labels.
added menu entry under the 'Symbol' tab
to allow quickly closing unwanted dialog boxes.
as per Svenn Are Bjerkem suggestion (Thanks!)
r32 commit:
xschem -q -n -s -S examples/poweramp
will do a spice (-s) netlist (-n) and launch simulation (-S), then quits (-q)
xschem -q -s -W examples/poweramp
will bring up the default spice wave viewer and quits.
This will allow to build tcl scripts without needing user confirmation.
(instead of its numeric position into the inst_ptr array, still allowed)
xschem select xampli
will select instance 'xampli' if found in current schematic
__USE_GNUto allow usage of 'strndup' function (POSIX 2008) in older systemsstefan, 20171007
Last edit: stefan 2017-10-07
2.1.14 uploaded.
'xschem -q -n -s -S examples/poweramp'
will do a spice (-s) netlist (-n) and launch simulation (-S), then quits (-q)
'xschem -q -s -W examples poweramp'
will bring up the default spice wave viewer and quits.
This will allow to build tcl scripts without needing user confirmation.
'xschem select xampli'
will select instance 'xampli' if found in current schematic
__USE_GNUto allow usage of 'strndup' function (POSIX 2008) in older systemsa dialog box asks if pins need to be prefixed with a string, also allow to choose lab_pin or lab_wire net labels.
if one symbol is selected and this function is invoked (ctrl-l)
a schematic view (.sch) will be automatically created from the symbol view. The schematic will only contain the interface
pins / generics (if any). This will overwrite the symbol schematic view if it exist. A warning is issued requesting user confirmation.
Last edit: stefan 2017-10-08
2.2.0 uploaded, r35 commit.
Last edit: stefan 2017-10-23
2.2.2 uploaded, r37 commit.
See following examples: