[Home] | [Installation - Windows] | [Installation - Linux] | [Installation - Mac OS X] | [About]
In Linux it is necessary to install UMHDL and the external tools GHDL and GTKwave.
To install UMHDL:
1. Download the installer (e.g. umhdl-setup-1.60.bin) to a path without blank spaces.
2. Check that the installer can be executed:
$ chmod +x umhdl-setup-1.60.bin
$ sudo ./umhdl-setup-1.60.bin
NOTE: for Linux 64-bit it is possible to obtain the following error:
"Exception in thread "main" java.lang.UnsatisfiedLinkError: exception occurred in JNI_OnLoad"
In this case it is necessary to install the package ia32-libs (ia32-libs-multiarch:i386) and other depending packages.
$ sudo apt-get install ia32-libs
To uninstall, execute the Uninstall program:
$ cd /usr/local/umhdl
$ sudo Uninstall
There are two possibilities to install GHDL:
1. By using some package manager:
$ sudo apt-get install ghdl
(It will be installed in /usr/local/bin, which should be already included in PATH)
$ wget http://ghdl.free.fr/site/uploads/Main/ghdl-i686-linux-latest.tar
$ sudo tar xvf ghdl-i686-linux-latest.tar
(This generates the file ghdl-0.29-i686-pc-linux.tar.bz2)
$ cd ghdl-0.29-i686-pc-linux
$ sudo tar -C / -jxvf ghdl-0.29-i686-pc-linux.tar.bz2
(This copy the files to /usr/local/bin and /usr/local/lib)
Anyway, the destination directory should be already included in PATH.
Links:
http://gna.org/projects/ghdl/
http://ghdl.free.fr/
http://sourceforge.net/projects/ghdl-updates/
As with GHDL, there are two possibilities to install GTKwave:
1. By using some package manager (RECOMMENDED):
$ sudo apt-get install zlib1g-dev gtkwave
(It will be installed in /usr/bin, which should be already included in PATH)
$ wget http://gtkwave.sourceforge.net/gtkwave-3.3.58.tar.gz
$ sudo tar xvfz gtkwave-3.3.58.tar.gz -C /usr/local
(This generates the path /usr/local/gtkwave-3.3.58)
$ sudo ./configure
$ sudo make
$ sudo make install
Anyway, the destination directory should be already included in PATH.
We can check the directory with the 'which' or 'whereis' commands:
$ which ghdl
/usr/local/bin/ghdl
$ whereas gtkwave
gtkwave: /usr/bin/gtkwave /usr/bin/X11/gtkwave /usr/share/man/man1/gtkwave.1.gz
Links:
1. Problem: in Linux 64-bits the following errors are got when compiling:
/home/myworkspace/e~and_gate.s: Assembler messages:
/home/myworkspace/e~and_gate.s:40: Error: invalid instruction suffix for 'push'
/home/myworkspace/e~and_gate.s:42: Error: invalid instruction suffix for 'pop'
Solution: the problem is that GHDL is a 32-bit program. The solution is to append some extra options when invoking to GHDL.
$ ghdl -a -Wa,--32 ...
$ ghdl -e -Wa,--32 -Wl,-m32 ...
However, UMHDL already checks the Operating System when executing and take it into account, so that errors should not happen.
2. Problem: in Linux 64-bits the following errors are got when compiling:
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.6/libgcc.a
when searching for -lgcc
Solution: it is necessary to install the gcc-4.5-multilib package and dependencies.
$ sudo apt-get install gcc-4.5-multilib
3. Problem: in Linux 64-bits the following errors are got when compiling:
/usr/bin/ld: cannot find -lz
Solution: it is necessary to install the zlib1g-dev (zlib1g-dbg), lib32z1-dev (+lib32z1) packages and dependencies.
$ sudo apt-get install lib32z1-dev
Wiki: About
Wiki: Home
Wiki: Installation - Linux
Wiki: Installation - Mac OS X
Wiki: Installation - Windows