Altera Quartus II 11.1sp2 y Modelsim en Fedora 23


251016
Soprte para la tarjeta DE2

Es importante aclarar que se describe la instalación del Quartus II versión 11.1 Service Pack 2, por dos razones, la primera, y más importante, es la versión del Quartus II que viene incluido en la tarjeta de desarrollo Altera DE2 y la segunda soporta el FPGA Cyclone II (2C35). Si se desea trabajar con otra versión del Quartus, será necesario revisar el soporte para el FPGA.

 

Paquetes de instalación

En el sitio de descargas de Altera se pueden obtener las herramientas de desarrollo, entre ellas, el Quartus II y el Modelsim. Para obtener los archivos de instalación del Quartus II y del Modelsim, es necesario crear una cuenta en el sitio de Altera y registrarse, lo cual se generará en el momento de seleccionarlo para su descarga. 

Descargamos los instaladores correspondientes y verificamos su integridad:

11.1sp2_259_quartus_free_linux.sh (3.1 GB)
(MD5SUM: ae6bee1b949fbbc78ae11ce43351bb86)


11.1sp1_259_modelsim_ae_linux.sh (688 MB)
(MD5SUM: fc15068416889df92570d2b6e32f86dc)

11.1sp2_259_modelsim_ae_linux.sh (389 MB)
(MD5SUM: 0001f0f73f5294a9b6ede2f3a441ae6d)

otra versión del Modelsim que funciona en el 11.1sp2
91sp2_modelsim_ase_linux.tar (539MB)

(MD5SUM: fa1922b7aa5c49967d959cce11b2cdcf)

Para asegurarnos de la integridad de los archivos que hemos descargado, ejecutamos el comando md5sum, cuyo valor resultante debe de ser igual al publicado en la página de descargas:

[oskr@kro ~]$ md5sum 11.1sp2_259_quartus_free_linux.sh
ae6bee1b949fbbc78ae11ce43351bb86



Preparación de Fedora 23

Es necesario contar con una instalación básica de Linux Fedora. Verificamos la versión del kernel que tenemos instalado:

[oskr@kro]$uname -a
Linux kro 4.4.9-300.fc23.x86_64 #1 SMP Wed May 4 23:56:27 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux


Notamos que tenemos un kernel de 64 bits. Debido a que Altera eliminó el soporte para los kernels de 64 bits, se requeriá instalar bibliotecas de compatibildad con 32 bits:

[root@kro]#yum install glibc.i686 libXext.i386 libX11.i386 libXau.i386 libXdmcp.i386 freetype.i386 fontconfig.i386 expat.i386


[root@kro]#yum install linpng.i686 libSM.i6866




Instalación

Iniciamos agregando permisos de ejecución al script de instalacción y ejecutándolo:

[oskr@kro ~]$ chmod +x 11.1sp2_259_quartus_free_linux.sh
[oskr@kro ~]$ ./11.1sp2_259_quartus_free_linux.sh

El instalador verificará la instegridad del paquete, descomprimirá los paquetes en un directorio con el mismo nombre, e intentará ejecutar el instalador. El instalador nos mandará un mensaje de que no puede ejecutarse el entorno gráfico:

Welcome to Altera Software Installer
Copyright (c) Altera Corporation 2011

Starting GUI. If nothing shows up, or you don't have an X display, run:
   ./setup --help
for commandline usage.
NOTE: All output has been redirected to /tmp/altera_setup.log.oOpX60Jsf2

Al lanzar el setup como nos suguiere, genera el siguiente error:

Traceback (most recent call last):
  File "<string>", line 23, in <module>
  File "/tools/python/2.6.4/linux32/pyinstaller/iu.py", line 436, in importHook
  File "/tools/python/2.6.4/linux32/pyinstaller/iu.py", line 521, in doimport
  File "/build/swbuild/SJ/nightly/11.1sp2/259/l32/work/installers/linux32/build/pyi.linux2/altera_installer_cmd/outPYZ1.pyz/cli", line 23, in <module>



Para corregir este error entramos al directorio creado y al directorio de binarios de instalación y movemos al directorio superior la biblioteca libz.so.1.


[oskr@kro ~]$ cd 11.1sp2_259_quartus_free_linux/altera_installer/bin
[oskr@kro bin]$ mv libz.so.1 ../


Lanzamos nuevamente el setup:

[oskr@kro 11.1sp2_259_quartus_free_linux]$ ./setup

Se lanzará un GUI que es un asistente de instalación.

Esta versión del Quartus propondrá hacer la instalación en el directorio /opt, considerando que Linux es un sistema multiusuario, sin embargo, para que la instalación se lleve a cabo en ese directorio el instalador deberá ser ejecutado como super-usuario. Si deseamos instalarlo en el home de un usuario, le indicamos la ruta de instalación, por ejemplo /home/oskr. la instalación quedará como:


[oskr@kro 11.1sp2]$ pwd
/home/oscar/altera/11.1sp2



[oskr@kro 11.1sp2]$ ls
altera_inspector.log.zip  installer  nios2eds
altera_installer_11.1sp2.log  ip  quartus


Instalación del Modelsim

El Modelsim es un softwere muy poderoso para la simulación de circuitos desarrollado por la compañia Mentor Graphics la cual desarrolla muchos productos relacionados con CADs para circuitos eléctricos y electrónicos. Mentor Graphics y Altera convinieron distribuir una versión sencilla y libre para el Quartus.

La forma de instalar esta versión del Modelsim de Altera, es muy similar al instalador del Quartus... incluso con los mismos errores.


[oskr@kro ~]$ chmod +x 11.1sp1_259_modelsim_ae_linux.sh
[oskr@kro ~]$ ./
11.1sp1_259_modelsim_ae_linux.sh

El instalador verificará la instegridad del paquete, descomprimirá los paquetes en un directorio con el mismo nombre, e intentará ejecutar el instalador. De la misma forma que con el Quartus, el instalador del Modelsim nos mandará un mensaje de que no puede ejecutarse el entorno gráfico, también en este caso será necesario borrar la biblioteca libz.so.1.

Borrada la biblioteca, lanzamos nuevamente el setup:

[oskr@kro 11.1sp1_259_modelsim_ae_linux]$ ./setup

Se lanzará un GUI que es un asistente de instalación. El Modelsim preguntará por la ruta de instalación, es coveniente instalar el Modelsim dentro del directorio del Quartus, para que posteriormente podamos ejecutarlo desde el Quartus.



Ejecución del Altera QuartusII 

Para iniciar el Quartus se ejecuta el binario con la ruta absoluta:

[oskr@kro ~]$ /home/oskr/altera/11.1sp2/quartus/bin/quartus

Para asociar el Modelsim con el Quartus se deberá configurar la ruta del ejecutable del Modelsim

Compilación y síntesis con Quartus y simulación con ModelSim 

En este video se muestra un ejemplo de cómo utilizar el Quartus para la compilación de un proyecto y la simulación con Modelsim.


USB Blaster 

Para programar los productos de Altera, se utiliza el dispositivo Blaster el cual es una interfaz que implementa la comunicación entre el JTAG de los dispositivos de Altera (CPLDs, FPGA, Arduino, etc.) y un conector USB o Ethernet. La tarjeta DE2 ya tiene incluido un USB Blaster y un Ethernet Blaster. El USB-Blaster tiene la capacidad de indentificarse con los sistema Linux, si conectamos la tarjeta DE2 con un cable USB a nuestra máquina con Linux y la encendemos, con el siguiente comando podremos ver su identificación:

[oskr@kro ~]$ lsusb
...
bus 003 Device 005: ID 09fb:6001 Altera Blaster
...

El número hexadecimal 09fb identifica a la compañia Altera y su producto tiene el identificador 6001.

Para programar el FPGA desde las herramientas del Quartus, es necesario otorgar permisos de escritura al USB-Blaster. Para ello en algunas distribuciones de Linux es necesario dar de alta usuario en el grupo USB, en otros es necesario acceder al dispositivo desde el /proc/bus/usb/bus/id. Para el caso de Fedora lo haremos utilizando el demonio udev.

Como super-usuario editamos el script:

[root@kro ~]# vim /etc/udev/rules.d/51-usbblaster.rules

con las siguientes reglas:

# Altera USB-Blaster agregar el modo 666 (rw-rw-rw-).
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6001", MODE="0666"


Una vez editado script reiniciamos el demonio:

[root@kro ~]# udevadm control --reload-rules

De esta forma podremos programar el FPGA desde las herramientas del Quartus.