Installing Lattice Diamond on Fedora 29

Lattice Diamond is an IDE to design, compile and simulate several families of Lattice FPGA’s. While they support .rpm based distros such as RedHat and CentOS, the installation on Fedora 29 required a few tweaks.

Overview

The Diamond software can be freely installed from the Lattice’s website. It requires a license to run, which can be requested after signing up for an account, and it’s free for the MachX02 family.

Installing

The Diamond software comes in .rpm format and can be installed with a simple command line. It requires admin access to do so. By default, the tool is installed under /usr/local/diamond directory, and this can be changed to another location by passing the --prefix option.

$ sudo rpm -ivh diamond_3_10-base_x64-111-2-x86_64-linux.rpm --prefix /opt

Updating

At the time of installation, there’s a service pack (SP3) available that should be installed after the base install. This package fails to install the first time, throwing a bizarre error message regarding /bin/csh. On Fedora 29, csh is not installed by default, and it’s required:

$ sudo dnf install -y csh

Once csh is installed, we installed the service pack:

$ sudo rpm -ivh diamond_3_10-sp3_x64-144-3-x86_64-linux.rpm --prefix /opt

Fixing Help

When trying to open the built-in Help menu, Diamond throws this error message quietly to the console:

[user@storm]$ diamond
/usr/lib64/firefox/firefox: /opt/diamond/3.10_x64/bin/lin64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /usr/lib64/firefox/firefox)

The message indicates there is a library pointed to by Diamond that’s required by Firefox and it’s out of date. To fix this, we looks for the system library and change the soft link to it:

[user@storm ~]$ cd /opt/diamond/3.10_x64/bin/lin64/
[user@storm lin64]$ ls -l libstdc++.so*
lrwxrwxrwx. 1 18663 17724      19 Sep 19  2017 libstdc++.so -> libstdc++.so.6.0.18
lrwxrwxrwx. 1 18663 17724      18 Sep 19  2017 libstdc++.so.5 -> libstdc++.so.5.0.7
-rwxr-xr-x. 1 18663 17724  825496 Feb 17  2005 libstdc++.so.5.0.7
lrwxrwxrwx. 1 18663 17724      19 Sep 19  2017 libstdc++.so.6 -> libstdc++.so.6.0.18
-rwxr-xr-x. 1 18663 17724 6662831 Feb 20  2014 libstdc++.so.6.0.18

[user@storm lin64]$ ls -l /usr/lib64/libstdc++.so.6
lrwxrwxrwx. 1 root root 19 Feb 23 12:26 /usr/lib64/libstdc++.so.6 -> libstdc++.so.6.0.25

[user@storm lin64]$ sudo rm libstdc++.so.6
[sudo] password for user: 
[user@storm lin64]$ sudo ln -s /usr/lib64/libstdc++.so.6

After these few tweaks, Diamond is installed and functional.

Using Docker with Petalinux

How to run Petalinux on a non-supported Linux distro without a VM. Docker is similar to a virtual machine in...

Previous
Using Xilinx Parameterizable FIFO Macros

XPM or Xilinx Parameterized Macros are simple modules provided by Xilinx that solve common use cases in an HDL flow,...

Next