[[labs.beatcraft.com]]~
[[DE0-Nano]]~
[[Synthesijer]]~

#contents

* DE0-Nano/Synthesijer [#s9623766]
Sythesijer is the successor of JavaRock, a high-level synthesis tool that is able to generate VHDL and Verilog HDL code from Java code. This article explains how to execute a sample program of Synthesijer on DE0-Nano.
>
[[Sythesijer>http://synthesijer.sourceforge.net/]] is the successor of JavaRock, a high-level synthesis tool that is able to generate VHDL and Verilog HDL code from Java code.~
This article explains how to execute a sample program of Synthesijer on DE0-Nano.~
~
This article uses synthesijer-20140818.jar and synthesijer_sample-20140818. However, the newer version of Synthesijer, and~
its sample are also available at [[this page>http://sourceforge.net/projects/synthesijer/files/synthesijer-2.0/]]. Please download them.~
~
The outline and some part (the version of Quartus) of this article are identical to DE0-Nano/JavaRock.~
The outline of this articles are:~
>
- About host PC~
Working on a virtual machine (Ubuntu 12.04LTS, 64bit version) on Windows PC.~
(This article does NOT explain how to install a Linux virtual machine, Ubuntu 12.04LTS, on a PC.)~
~
- Configuring Ubuntu and editing files~
Install the development tools on Ubuntu, and edit the files for working with DE0-Nano.~
~
- Writing down to DE0-Nano~
Explain how to execute a sample of Synthesijer on DE0-Nano.~

This article uses synthesijer-20140818.jar and synthesijer_sample-20140818. However, the newer version of Synthesijer and its sample are also also available at this page. Please download them.

The outline and some part (the version of Quartus) of this article are identical to DE0-Nano/JavaRock.
The outline of this articles are:

- About host PC
Working on a virtual machine (Ubuntu 12.04LTS, 64bit version) on Windows PC. (This article does NOT explain how to install a Linux virtual machine, Ubuntu 12.04LTS, on a PC.)

- Configuring Ubuntu and editing files
Install the development tools on Ubuntu, and edit the files for working with DE0-Nano.

- Writing down to DE0-Nano
Explain how to execute a sample of Synthesijer on DE0-Nano.

** About Host PC [#mf1b3ce8]
>
The details of the host PC for this article are shown below. Most work is done in Ubuntu 12.04 LTS (64bit)~
~
OS:~
- Host OS: Windows7 (64bit version, hereafter “Windows”)~
- Guest OS: Ubuntu 12.04 LTS (64bit version, hereafter “Ubuntu”)~

OS:
- Host OS: Windows7 (64bit version, hereafter “Windows”)
- Guest OS: Ubuntu 12.04 LTS (64bit version, hereafter “Ubuntu”)
>
Applications:~
- VMware Player (Windows)~
- DE0-Nano System Builder (Windows)~
- Quartus II 12.0 sp1 (Ubuntu, hereafter “Quartus”)~

Applications:
- VMware Player (Windows)
- DE0-Nano System Builder (Windows)
- Quartus II 12.0 sp1 (Ubuntu, hereafter “Quartus”)
>
Create an Ubuntu image on VMware Player. The desk size of image is 20GB.~
~
DE0-Nano System Builder, which is provided by Terasic Technologies, Inc, manages the project files (qpf)~
and configuration file for pin-assignment (qsf). This application can be executed from only Windows.~
~
Quartus is a FPGA and CPLD design and development  tool, which can be downloaded from the site of Altera Corporation.~
(The download page is [[here]].) This is installed on Ubuntu. The version of Quartus, which is used for this article is 12.0 sp1.~
The newer versions of this application are available at its download site. However, Quartus 12.0 sp1 is used in the article of~
[[DE0-Nano/JavaRock>]], this article uses the same version of the application.~

Create an Ubuntu image on VMware Player.
The desk size of image is 20GB.
** Configuring Ubuntu and Editing Files [#yc373be0]
>
This part of this article explains how to configure Ubuntu and to edit the files for the configurations.~

DE0-Nano System Builder, which is provided by Terasic Technologies, Inc, manages the project files (qpf) and configuration file for pin-assignment (qsf). 

DE0-Nano System Builder can be executed from only Windows.

Quartus is a FPGA and CPLD design and development  tool, which can be downloaded from the site of Altera Corporation. (The download page is here.)

Quartus is installed on Ubuntu. The version of Quartus, which is used for this article is 12.0 sp1. The newer versions of this application are available at its download site. However, Quartus 12.0 sp1 is used in the article of DE0-Nano/JavaRock, this article uses the same version of the application.

 ** Configuring Ubuntu and Editing Files
This part of this article explains how to configure Ubuntu and to edit the files for the configurations.

*** Install the development tool [#z70651da]
To install Quartus on Ubuntu, install the development tools, first.
<Code>
la32-lib is installed because each binary of Quartus is written in 32bit.
>
To install Quartus on Ubuntu, install the development tools, first.~
 $ sudo apt-get install build-essential ia32-libs
la32-lib is installed because each binary of Quartus is written in 32bit.~
~
Setting and installing Java SE, Synthesijer, and Quartus are done at the directory of /home/beat. However, you may change to~
any directory as you like to work.~
~
Install Java SE 7u67 for working with Synthesijer. Download Linux version of Java SE 7u67 from the web page of Oracle.~
Then, extract the archive.~
 $ tar xvfz jdk-7u67-linux-x64.tar.gz
''Caution'':~
According to the web page of Synthesijer, Java SE should be Java SE 7 or greater. However, as you use Java SE 8~
with synthesijer-20140818.jar, an annotation error will occur. This is why this article uses Java SE 7u67.~
~
Download synthesijar-20140818.jar and synthesijar_samples-20140818.zip form [[http://synthesijer.sourceforge.net]]/~
~
Unzip synthesijer_samples-20140818.zip~
 $ unzip synthesijer_samples-20140818.zip
Install Quartus. Expand the archive and execute setup. Then, follow the instructions of GUI to proceed the installation process.~
 $ tar xvfz 12.0sp1_232_quartus_free_linux.tar.gz
 $ cd 12.0sp1_232_quartus_free_linux/
 $ ./setup
If start up Quartus, show up the error message , which is shown below. To avoid this error to occur, set up the symbolic link from /altera/12.0/quartus/ to linux64~
 $ cd ~/altera/12.0sp1/quartus/
 $ ln -s linux linux64
The error message~
 *** The Quartus II software cannot be started because the current platform,
     'linux64', does not appear to be installed in:
     '/home/beat/altera/12.0sp1/quartus'.
 
 /home/beat/altera/12.0sp1/quartus/bin/jtagd: 69: exit: Illegal number: -1

Setting and installing Java SE, Synthesijer, and Quartus are done at the directory of /home/beat. However, you may change to any directory as you like to work.

Install Java SE 7u67 for working with Synthesijer. Download Linux version of Java SE 7u67 from the web page of Oracle. Then, extract the archive.
<Code>
Caution: According to the web page of Synthesijer, Java SE should be Java SE 7 or greater. However, as you use Java SE 8 with synthesijer-20140818.jar, an annotation error will occur. This is why this article uses Java SE 7u67.

Download synthesijar-20140818.jar and synthesijar_samples-20140818.zip form http://synthesijer.sourceforge.net/

Unzip synthesijer_samples-20140818.zip
<Code>
Install Quartus. Expand the archive and execute setup.
Then, follow the instructions of GUI to proceed the installation process.
<Code>
If start up Quartus, show up the error message , which is shown below. To avoid this error to occur, set up the symbolic link from /altera/12.0/quartus/ to linux64
<Code>
The error message
<Code>

*** Edit .bashrc [#f8c1ed69]
To let working environment easier, set up the PATH of Java, Synthesijer, and Quartus.
Please add three lines shown below at the end of .bashrc.
<Code>
>
To let working environment easier, set up the PATH of Java, Synthesijer, and Quartus.~
Please add three lines shown below at the end of .bashrc.~
 $ vi .bashrc
 
 export JAVA_HOME=/home/beat/jdk1.7.0_67
 export PATH=$JAVA_HOME/bin:/home/beat/altera/12.0sp1/quartus/bin:$PATH
 export SYNTHESIJER=/home/beat/synthesijer-20140818.jar

*** Add and apply the rules of udev [#ff487868]
To transfer a program to DE0-Nano from Ubuntu by USB connection, the USB-Blaster is used. To make Ubuntu recognize the USB-Blaster, add the rule file for the USB-Blaster (51-usbblaster.rules) to the rule file for udev (automatically create and delete device file, /etc/udev/rule.d).
>
To transfer a program to DE0-Nano from Ubuntu by USB connection, the USB-Blaster is used. To make Ubuntu recognize the USB-Blaster,~
add the rule file for the USB-Blaster (51-usbblaster.rules) to the rule file for udev (automatically create and delete device file, /etc/udev/rule.d).~
~
After adding the rule file, restart udev. Just adding the file, the change will not be effective.~
 $ sudo vi /etc/udev/rules.d/51-usbblaster.rules
 
 SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="09fb", ATTRS{idProduct}=="6001", MODE="0666", SYMLINK+
~
 $ sudo udevadm control --reload-rules

After adding the rule file, restart udev. Just adding the file, the change will not be effective.
<Code>
<Code>
* Revision History [#we95c182]
>
-2014/12/24 This article is initially uploaded



Front page   New List of pages Search Recent changes   RSS of recent changes