While XSCHEM is pretty stable, the documentation is evolving. I am adding more and more information on the XSCHEM web site. Copy of the documentation is included in the release and in the SVN repository. I appreciate your comments. I know the documentation is largely insufficient, but i am working on it. So expect improvements :-)
Stefan
Last edit: stefan 2016-12-11
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I'm on Centos 7x64, and Tcl ver is 8.5 (Makefile assumes 8.6)
I get this error on "make" within the src directory:
gcc -Wall -g -I/usr/include/tcl8.6 -c -o parselabel.o parselabel.c
parselabel.l:43:12: error: conflicting types for ‘yyparse’
extern int yyparse(void) ;
^
In file included from parselabel.l:38:0:
expandlabel.h:82:5: note: previous declaration of ‘yyparse’ was here
int yyparse (void *YYPARSE_PARAM);
^
parselabel.c:1315:17: warning: ‘yyunput’ defined but not used [-Wunused-function]
static void yyunput (int c, register char * yy_bp )
^
parselabel.c:1356:16: warning: ‘input’ defined but not used [-Wunused-function]
static int input (void)
^
make: *** [parselabel.o] Error 1
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi,
First edit the Makefile and set TCLVER=8.5, this will fix TCL-TK.
For the yyparse problem i guess you have a different (older) version of flex and bison,
Looking back in my svn logs and i see that i had to make a change for yyparse:
expandlabel.y, parselabel.l: changed according to flex changes yyparse() does no more have a string param, used a global string
I don't have these old versions to test, can you do a test for me?
go in the parselabel.l source file and comment or delete this line:
#define YYPARSE_PARAM
try to do a:
make clean && make
and let me know if it compiles without errors
Thank you!
Stefan
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hello! nice to know something is going right.
I used xschem many years ago on windows + cygwin
i remember that i needed the tcl-tk built to use the Xorg XLIB, i mean i needed cygwin + Xorg server + tcl-tk compiled for Xorg (not for windows GDI).
At the time i had to download the TCL-Tk source tarballs, compile them on cygwin specifying to use Xorg (not the windows graphic system). Compiling Xschem with this custom tcl-tk install was successful. The bottom line is that xschem is a unix-xlib application, so the easy way to have it running on windows is to use the cygwin POSIX layer, the cygwin xorg server and the tcl-tk compiled itself also for cygwin+xlib.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Good news!
XSCHEM runs perfectly fine on windows with the cygwin layer installed (cygwin, xorg, gcc, gawk, bison, flex and the tcl/tcl-devel, tck-tk/tcl-tk-devel packages installed)
I did this many years ago and at the time the tcl packages needed to be compiled and linked against the xorg/xlib libraries instead of the windows GDI libraries. This was a painful task. Now this is no more necessary. Cygwin packages now are by default built for Xorg.
Last edit: stefan 2017-04-22
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Many thanks for xschem! This is exactly what I was looking for analog and mixed signal IC design. I managed to install it on Ubuntu 16.04LTS. However, I have a problem that unfortunately some of the key bindings do not work properly in my system. I have been using the menu for most of the things, but I am a bit stuck now since Ctrl+s for instance is not available in the menu. The mouse wheel is not working either. I am not sure where the problem is. Any idea where to look for?
The package is terrific! I plan to use it with the free ngspice simulator and some commercial PDKs that I managed to make it work with it.
Last edit: Saul Rodriguez 2017-05-10
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
The problem dissapeared when I pressed the Num-Lock. The issue seems to be related to the modifiers that are used to grab the keystrokes combinations in X11/Xlib:
Hi, Saul,
yes, i assume the NumLock is not enabled, but i think it would be easy to filter out the NumLock status. If I succeed i will upload a newer version. Thank you for posting this issue!!
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I have continued following the tutorials and now I have found an issue when netlisting. The netlisting is parsing only the top schematic and not expanding the subcircuits. For instance, in the poweramp example, the netlister only generate the lines:
....
x1 OUTM VSSX FBN VPP VNN VSS mos_power_ampli
x0 OUTP INX FB VPP VNN VSS mos_power_ampli
....
But will not generate the subcircuit implementation:
.subckt mos_power_ampli OUT PLUS MINUS VPP VNN VSS
...
...
I can push into the mos_power_ampli schematic and generate the spice's subcirtuit code and then copy it back to the top's netlist. However, this is not practical for big designs.
Am I missing any setting in the netlisting?
Thanks again and best regards
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
the netlisting operation usually can be done in these ways:
press the 'Netlist' button in the menu bar (on the right)
press the uppercase 'N' key
There is another netlisting bind key 'n' that netlists only the current schematic level, so, 'N' does the full hierarchical netlist while 'n' does only the current level, without expanding subcircuits.
Please verify if this solves your problem, otherwise let me know!, Thank you for reporting all these issues.
Stefan
Last edit: stefan 2017-05-12
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
While XSCHEM is pretty stable, the documentation is evolving. I am adding more and more information on the XSCHEM web site. Copy of the documentation is included in the release and in the SVN repository. I appreciate your comments. I know the documentation is largely insufficient, but i am working on it. So expect improvements :-)
Stefan
Last edit: stefan 2016-12-11
I'm on Centos 7x64, and Tcl ver is 8.5 (Makefile assumes 8.6)
I get this error on "make" within the src directory:
gcc -Wall -g -I/usr/include/tcl8.6 -c -o parselabel.o parselabel.c
parselabel.l:43:12: error: conflicting types for ‘yyparse’
extern int yyparse(void) ;
^
In file included from parselabel.l:38:0:
expandlabel.h:82:5: note: previous declaration of ‘yyparse’ was here
int yyparse (void *YYPARSE_PARAM);
^
parselabel.c:1315:17: warning: ‘yyunput’ defined but not used [-Wunused-function]
static void yyunput (int c, register char * yy_bp )
^
parselabel.c:1356:16: warning: ‘input’ defined but not used [-Wunused-function]
static int input (void)
^
make: *** [parselabel.o] Error 1
Hi,
First edit the Makefile and set TCLVER=8.5, this will fix TCL-TK.
For the yyparse problem i guess you have a different (older) version of flex and bison,
Looking back in my svn logs and i see that i had to make a change for yyparse:
I don't have these old versions to test, can you do a test for me?
go in the parselabel.l source file and comment or delete this line:
try to do a:
and let me know if it compiles without errors
Thank you!
Stefan
I think there's a pop-up menu I'm missing.
I moved over to Cygwin 64-bit on Windows 10 - I do see xschem start up though, so success on that front!
% SetupSysMenu: GetSystemMenu() failed for HWND 0x10064c
SetupSysMenu: GetSystemMenu() failed for HWND 0x1a03e6
SetupSysMenu: GetSystemMenu() failed for HWND 0x1c03e6
SetupSysMenu: GetSystemMenu() failed for HWND 0x1903ae
SetupSysMenu: GetSystemMenu() failed for HWND 0x1a03ae
SetupSysMenu: GetSystemMenu() failed for HWND 0x1b03ae
SetupSysMenu: GetSystemMenu() failed for HWND 0x1c03ae
Hello! nice to know something is going right.
I used xschem many years ago on windows + cygwin
i remember that i needed the tcl-tk built to use the Xorg XLIB, i mean i needed cygwin + Xorg server + tcl-tk compiled for Xorg (not for windows GDI).
At the time i had to download the TCL-Tk source tarballs, compile them on cygwin specifying to use Xorg (not the windows graphic system). Compiling Xschem with this custom tcl-tk install was successful. The bottom line is that xschem is a unix-xlib application, so the easy way to have it running on windows is to use the cygwin POSIX layer, the cygwin xorg server and the tcl-tk compiled itself also for cygwin+xlib.
Good news!
XSCHEM runs perfectly fine on windows with the cygwin layer installed (cygwin, xorg, gcc, gawk, bison, flex and the tcl/tcl-devel, tck-tk/tcl-tk-devel packages installed)
I did this many years ago and at the time the tcl packages needed to be compiled and linked against the xorg/xlib libraries instead of the windows GDI libraries. This was a painful task. Now this is no more necessary. Cygwin packages now are by default built for Xorg.
Last edit: stefan 2017-04-22
Hi Stefan,
Many thanks for xschem! This is exactly what I was looking for analog and mixed signal IC design. I managed to install it on Ubuntu 16.04LTS. However, I have a problem that unfortunately some of the key bindings do not work properly in my system. I have been using the menu for most of the things, but I am a bit stuck now since Ctrl+s for instance is not available in the menu. The mouse wheel is not working either. I am not sure where the problem is. Any idea where to look for?
The package is terrific! I plan to use it with the free ngspice simulator and some commercial PDKs that I managed to make it work with it.
Last edit: Saul Rodriguez 2017-05-10
Hi again,
The problem dissapeared when I pressed the Num-Lock. The issue seems to be related to the modifiers that are used to grab the keystrokes combinations in X11/Xlib:
http://stackoverflow.com/questions/4037230/global-hotkey-with-x11-xlib
So Caps-Lock and-Num Lock may result in erratic behaviour in some systems.
Hi, Saul,
yes, i assume the NumLock is not enabled, but i think it would be easy to filter out the NumLock status. If I succeed i will upload a newer version. Thank you for posting this issue!!
Try this patch in the src directory:
patch < patchfile
where patchfile is the following:
Hi Stefan,
Many thanks for the patch!
I have continued following the tutorials and now I have found an issue when netlisting. The netlisting is parsing only the top schematic and not expanding the subcircuits. For instance, in the poweramp example, the netlister only generate the lines:
....
x1 OUTM VSSX FBN VPP VNN VSS mos_power_ampli
x0 OUTP INX FB VPP VNN VSS mos_power_ampli
....
But will not generate the subcircuit implementation:
.subckt mos_power_ampli OUT PLUS MINUS VPP VNN VSS
...
...
I can push into the mos_power_ampli schematic and generate the spice's subcirtuit code and then copy it back to the top's netlist. However, this is not practical for big designs.
Am I missing any setting in the netlisting?
Thanks again and best regards
Hi, Saul,
the netlisting operation usually can be done in these ways:
There is another netlisting bind key 'n' that netlists only the current schematic level, so, 'N' does the full hierarchical netlist while 'n' does only the current level, without expanding subcircuits.
Please verify if this solves your problem, otherwise let me know!, Thank you for reporting all these issues.
Stefan
Last edit: stefan 2017-05-12
Hi Stefan,
Thanks, now it is working!
Saul