Difference between revisions of "Diamond"
From ArmadeusWiki
(→Ressources/links) |
(→USB rights) |
||
| (24 intermediate revisions by 2 users not shown) | |||
| Line 1: | Line 1: | ||
[[Category: FPGA]] | [[Category: FPGA]] | ||
| + | [[Category: Lattice]] | ||
== Introduction == | == Introduction == | ||
| Line 5: | Line 6: | ||
== Installation guide== | == Installation guide== | ||
| + | |||
| + | === Download === | ||
| + | |||
| + | Download the rpm file on Lattice website [http://www.latticesemi.com/latticediamond#linux]. | ||
| + | |||
| + | === Get a free license === | ||
| + | |||
| + | On this page : [http://www.latticesemi.com/licenseprocessing/flexlmlicense.cfm?p=diamond&api=true] | ||
| + | |||
| + | === Install on debian 64bits === | ||
| + | |||
| + | * First alien is needed to convert the rpm in debian package : | ||
| + | <pre class="host"> | ||
| + | sudo apt-get install alien | ||
| + | </pre> | ||
| + | |||
| + | * Convert it to deb package then install it (take a long time ~13 min): | ||
| + | <pre class="host"> | ||
| + | $ sudo alien diamond_3_10-base_x64-111-2-x86_64-linux.rpm | ||
| + | Warning: Skipping conversion of scripts in package diamond_3_10-base_x64: postinst postrm preinst prerm | ||
| + | Warning: Use the --scripts parameter to include the scripts. | ||
| + | diamond-3-10-base-x64_3.10-112_amd64.deb generate | ||
| + | </pre> | ||
| + | * Then install it | ||
| + | <pre> | ||
| + | $ sudo dpkg -i diamond-3-10-base-x64_3.10-112_amd64.deb | ||
| + | Selecting previously unselected package diamond-3-10-base-x64. | ||
| + | (Reading database ... 336262 files and directories currently installed.) | ||
| + | Preparing to unpack diamond-3-10-base-x64_3.10-112_amd64.deb ... | ||
| + | Unpacking diamond-3-10-base-x64 (3.10-112) ... | ||
| + | Setting up diamond-3-10-base-x64 (3.10-112) ... | ||
| + | </pre> | ||
| + | |||
| + | * The package is not correctly installed in directory '''/usr/local/diamond/'''. All tar.gz must be deflated : | ||
| + | |||
| + | <pre class="host"> | ||
| + | cd /usr/local/diamond/3.10_x64/ | ||
| + | cd bin/; sudo tar -zxvf bin.tar.gz;sudo rm bin.tar.gz; cd .. | ||
| + | cd synpbase/;sudo tar -zxvf synpbase.tar.gz;sudo rm synpbase.tar.gz; cd .. | ||
| + | cd examples/;sudo tar -zxvf examples.tar.gz;sudo rm examples.tar.gz; cd .. | ||
| + | cd data/;sudo tar -zxvf data.tar.gz; sudo rm data.tar.gz; cd .. | ||
| + | cd cae_library/;sudo tar -zxvf cae_library.tar.gz; sudo rm cae_library.tar.gz; cd .. | ||
| + | cd ispfpga/;sudo tar -zxvf ispfpga.tar.gz;sudo rm ispfpga.tar.gz; cd .. | ||
| + | cd tcltk/;sudo tar -zxvf tcltk.tar.gz; sudo rm tcltk.tar.gz; cd .. | ||
| + | cd embedded_source/;sudo tar -zxvf embedded_source.tar.gz; sudo rm embedded_source.tar.gz; cd .. | ||
| + | </pre> | ||
| + | |||
| + | * Install libpng correctly: | ||
| + | <pre class="host"> | ||
| + | cd /usr/local/diamond/3.10_x64/bin/lin64 | ||
| + | sudo mv libpng12.so.0 libpng12.so.0.old | ||
| + | sudo ln /usr/lib/x86_64-linux-gnu/libpng12.so.0 -s libpng12.so.0 | ||
| + | </pre> | ||
| + | |||
| + | * save the license.dat received by mail in following directory: | ||
| + | <pre> | ||
| + | /usr/local/diamond/3.10_x64/license/ | ||
| + | </pre> | ||
| + | |||
| + | * Add this lines in your '''~/.bashrc''': | ||
| + | <source lang="bash"> | ||
| + | #Lattice Diamond | ||
| + | export PATH=$PATH:"/usr/local/diamond/3.10_x64/bin/lin64" | ||
| + | </source> | ||
| + | |||
| + | * open a new terminal (or re-source your .bashrc) then launch diamond: | ||
| + | <pre class="host"> | ||
| + | diamond | ||
| + | </pre> | ||
| + | |||
| + | === USB rights === | ||
| + | {{Warning| This is a hack to make usb-jtag working with diamond software. Be aware what you are doing, it can break some functionalities on your system}} | ||
| + | Launching diamond can raise this error : | ||
| + | <pre> | ||
| + | $ libusb couldn't open USB device /dev/bus/usb/003/007: Permission denied. | ||
| + | libusb requires write access to USB device nodes. | ||
| + | Erreur de segmentation | ||
| + | </pre> | ||
| + | |||
| + | * To avoid it, just add udev rules in etc config : | ||
| + | <pre> | ||
| + | $ sudo vim /etc/udev/rules.d/10-lattice.rules | ||
| + | </pre> | ||
| + | |||
| + | * And add this line : | ||
| + | <pre> | ||
| + | ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6010", MODE="0666", SYMLINK+="ftdi-%n", RUN+="/bin/sh -c 'basename $(dirname $(realpath /sys%p/device)) > /sys/bus/usb/drivers/ftdi_sio/unbind'",RUN+="/root/ftdi_fixer.py" | ||
| + | </pre> | ||
| + | |||
| + | * create a python script in /root/ftdi_fixer.py | ||
| + | <pre> | ||
| + | $ sudo vim /root/ftdi_fixer.py | ||
| + | </pre> | ||
| + | |||
| + | * And write the [[ftdi_fixer.py | following]] sources. | ||
| + | |||
| + | * then give the rights : | ||
| + | <pre> | ||
| + | sudo chmod +x /root/ftdi_fixer.py | ||
| + | </pre> | ||
| + | |||
| + | * Then re-launch udev with : | ||
| + | <pre> | ||
| + | sudo udevadm control --reload-rules | ||
| + | </pre> | ||
| + | |||
| + | See the explanation [https://ycnrg.org/lattice-diamond-on-ubuntu-16-04/ here]. | ||
| + | |||
| + | ==== Service Packs SP1 and SP2 ==== | ||
| + | |||
| + | * Download sp2 | ||
| + | * Convert rpm do deb (~5min): | ||
| + | <pre> | ||
| + | $ sudo alien diamond_3_10-sp2_x64-115-1-x86_64-linux.rpm | ||
| + | Warning: Skipping conversion of scripts in package diamond_3_10-sp2_x64: postinst postrm preinst prerm | ||
| + | Warning: Use the --scripts parameter to include the scripts. | ||
| + | diamond-3-10-sp2-x64_3.10-116_amd64.deb generated | ||
| + | </pre> | ||
| + | |||
| + | * Install package : | ||
| + | <pre> | ||
| + | $ sudo dpkg -i diamond-3-10-sp2-x64_3.10-116_amd64.deb | ||
| + | Selecting previously unselected package diamond-3-10-sp2-x64. | ||
| + | (Reading database ... 342843 files and directories currently installed.) | ||
| + | Preparing to unpack diamond-3-10-sp2-x64_3.10-116_amd64.deb ... | ||
| + | Unpacking diamond-3-10-sp2-x64 (3.10-116) ... | ||
| + | Setting up diamond-3-10-sp2-x64 (3.10-116) ... | ||
| + | Processing triggers for libc-bin (2.19-18+deb8u10) ... | ||
| + | </pre> | ||
| + | |||
| + | === Install on Gentoo 64bits === | ||
| + | * Install rpm | ||
| + | <pre class="host"> | ||
| + | emerge -av rpm | ||
| + | </pre> | ||
| + | |||
| + | * Install diamon | ||
| + | <pre class="host"> | ||
| + | export RPM_INSTALL_PREFIX=/usr/local/ | ||
| + | rpm -Uvh --nodeps diamond_3_7-base_x64-96-1-x86_64-linux.rpm | ||
| + | </pre> | ||
| + | |||
| + | * save the license.dat received by mail in following directory: | ||
| + | <pre> | ||
| + | /usr/local/diamond/3.7_x64/license/ | ||
| + | </pre> | ||
| + | |||
| + | * Add this lines in your '''~/.bashrc''': | ||
| + | <source lang="bash"> | ||
| + | #Lattice Diamond | ||
| + | export PATH=$PATH:"/usr/local/diamond/3.7_x64/bin/lin64" | ||
| + | </source> | ||
| + | |||
| + | * open a new terminal (or re-source your .bashrc) then launch diamond: | ||
| + | <pre class="host"> | ||
| + | diamond | ||
| + | </pre> | ||
== Ressources/links == | == Ressources/links == | ||
| − | * [http://www.latticesemi.com/view_document?document_id=51520 Installation Guide] (pdf) | + | * [http://www.latticesemi.com/view_document?document_id=51520 Official Installation Guide (for redhat)] (pdf) |
| + | * [http://hardtechlife.com/installing-lattice-diamond-on-ubuntu-14-04/ Installing Lattice Diamond on Ubuntu 14.04] | ||
| + | * [https://www.developpez.net/forums/blogs/213571-aiigl59/b1132/installation-drivers-necessaires-lattice-diamond-sous-linux-ubuntu-14/ Installation sous Ubuntu 14 (French)] | ||
Latest revision as of 15:32, 20 July 2018
Contents
Introduction
Lattice diamond is the software used to synthesize bitstream for Lattice FPGAs. It's required for the MachXO[1,2,3] FPGA.
Installation guide
Download
Download the rpm file on Lattice website [1].
Get a free license
On this page : [2]
Install on debian 64bits
- First alien is needed to convert the rpm in debian package :
sudo apt-get install alien
- Convert it to deb package then install it (take a long time ~13 min):
$ sudo alien diamond_3_10-base_x64-111-2-x86_64-linux.rpm Warning: Skipping conversion of scripts in package diamond_3_10-base_x64: postinst postrm preinst prerm Warning: Use the --scripts parameter to include the scripts. diamond-3-10-base-x64_3.10-112_amd64.deb generate
- Then install it
$ sudo dpkg -i diamond-3-10-base-x64_3.10-112_amd64.deb Selecting previously unselected package diamond-3-10-base-x64. (Reading database ... 336262 files and directories currently installed.) Preparing to unpack diamond-3-10-base-x64_3.10-112_amd64.deb ... Unpacking diamond-3-10-base-x64 (3.10-112) ... Setting up diamond-3-10-base-x64 (3.10-112) ...
- The package is not correctly installed in directory /usr/local/diamond/. All tar.gz must be deflated :
cd /usr/local/diamond/3.10_x64/ cd bin/; sudo tar -zxvf bin.tar.gz;sudo rm bin.tar.gz; cd .. cd synpbase/;sudo tar -zxvf synpbase.tar.gz;sudo rm synpbase.tar.gz; cd .. cd examples/;sudo tar -zxvf examples.tar.gz;sudo rm examples.tar.gz; cd .. cd data/;sudo tar -zxvf data.tar.gz; sudo rm data.tar.gz; cd .. cd cae_library/;sudo tar -zxvf cae_library.tar.gz; sudo rm cae_library.tar.gz; cd .. cd ispfpga/;sudo tar -zxvf ispfpga.tar.gz;sudo rm ispfpga.tar.gz; cd .. cd tcltk/;sudo tar -zxvf tcltk.tar.gz; sudo rm tcltk.tar.gz; cd .. cd embedded_source/;sudo tar -zxvf embedded_source.tar.gz; sudo rm embedded_source.tar.gz; cd ..
- Install libpng correctly:
cd /usr/local/diamond/3.10_x64/bin/lin64 sudo mv libpng12.so.0 libpng12.so.0.old sudo ln /usr/lib/x86_64-linux-gnu/libpng12.so.0 -s libpng12.so.0
- save the license.dat received by mail in following directory:
/usr/local/diamond/3.10_x64/license/
- Add this lines in your ~/.bashrc:
#Lattice Diamond
export PATH=$PATH:"/usr/local/diamond/3.10_x64/bin/lin64"
- open a new terminal (or re-source your .bashrc) then launch diamond:
diamond
USB rights
| |
Warning: This is a hack to make usb-jtag working with diamond software. Be aware what you are doing, it can break some functionalities on your system |
Launching diamond can raise this error :
$ libusb couldn't open USB device /dev/bus/usb/003/007: Permission denied. libusb requires write access to USB device nodes. Erreur de segmentation
- To avoid it, just add udev rules in etc config :
$ sudo vim /etc/udev/rules.d/10-lattice.rules
- And add this line :
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6010", MODE="0666", SYMLINK+="ftdi-%n", RUN+="/bin/sh -c 'basename $(dirname $(realpath /sys%p/device)) > /sys/bus/usb/drivers/ftdi_sio/unbind'",RUN+="/root/ftdi_fixer.py"
- create a python script in /root/ftdi_fixer.py
$ sudo vim /root/ftdi_fixer.py
- And write the following sources.
- then give the rights :
sudo chmod +x /root/ftdi_fixer.py
- Then re-launch udev with :
sudo udevadm control --reload-rules
See the explanation here.
Service Packs SP1 and SP2
- Download sp2
- Convert rpm do deb (~5min):
$ sudo alien diamond_3_10-sp2_x64-115-1-x86_64-linux.rpm Warning: Skipping conversion of scripts in package diamond_3_10-sp2_x64: postinst postrm preinst prerm Warning: Use the --scripts parameter to include the scripts. diamond-3-10-sp2-x64_3.10-116_amd64.deb generated
- Install package :
$ sudo dpkg -i diamond-3-10-sp2-x64_3.10-116_amd64.deb Selecting previously unselected package diamond-3-10-sp2-x64. (Reading database ... 342843 files and directories currently installed.) Preparing to unpack diamond-3-10-sp2-x64_3.10-116_amd64.deb ... Unpacking diamond-3-10-sp2-x64 (3.10-116) ... Setting up diamond-3-10-sp2-x64 (3.10-116) ... Processing triggers for libc-bin (2.19-18+deb8u10) ...
Install on Gentoo 64bits
- Install rpm
emerge -av rpm
- Install diamon
export RPM_INSTALL_PREFIX=/usr/local/ rpm -Uvh --nodeps diamond_3_7-base_x64-96-1-x86_64-linux.rpm
- save the license.dat received by mail in following directory:
/usr/local/diamond/3.7_x64/license/
- Add this lines in your ~/.bashrc:
#Lattice Diamond
export PATH=$PATH:"/usr/local/diamond/3.7_x64/bin/lin64"
- open a new terminal (or re-source your .bashrc) then launch diamond:
diamond