Menu

Installation - Linux

Pedro Pablo Garrido Abenza

[Home] | [Installation - Windows] | [Installation - Linux] | [Installation - Mac OS X] | [About]


Installation - Linux

In Linux it is necessary to install UMHDL and the external tools GHDL and GTKwave.

UMHDL

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
  1. Execute it and follow the instructions; it would be necessary to install it as root or using "sudo", depending of the choosen path:
     $ sudo ./umhdl-setup-1.60.bin
  1. Write the installation path (/usr/local/umhdl by default) and press Intro; the path cannot contains blank spaces.
  2. Optionally, you can create a shortcut in the desktop.
    For example, in Ubuntu or Linux Mint:
    5.a) Create a launcher (right-click on the desktop > Create launcher)
    5.b) Right-click > Properties > Drag an icon (.gif, .ico) to top-left of the "Basic" tap.

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

GHDL Compiler

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)
  1. By downloading the binaries and unpacking them manually:
     $ 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/

GTKwave

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)
  1. By downloading the binaries and unpacking them manually:
     $ 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:

http://gtkwave.sourceforge.net/

Possible problems in Linux 64-bits

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

Related

Wiki: About
Wiki: Home
Wiki: Installation - Linux
Wiki: Installation - Mac OS X
Wiki: Installation - Windows

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.