O Quartus Prime é a ferramenta para desenvolvimento da Altera para FPGAs. Por ela, é possível o desenvvolvimento fazendo uso de bloco ou utilizando uma HDL, como VHDL ou Verilog. Ela possui suporte para os ambientes Windows ou Linux, porém, no ambiente Linux, sua instalação não é tão fácil quanto no Windows.
Este tutorial foi executado e testado em um sistema operacional GNU/Linux Ubuntu 18.04. Porém, versões anteriores também podem o utilizá-lo com pequenas diferenças, principalmente no que tange a biblioteca libpng12-0, uma vez que tal biblioteca ainda pode ser suportada pelo seu sistema.
Existem algumas versões do mesmo, sendo a versão Pro a mais completa e a Lite a mais simplista. Neste tutorial, será apresentada a instalação da versão Lite, uma vez que esta é a única versão gratis do mesmo. A ferramenta pode ser baixada no site da Altera.
Para realizar o download, é necessário uma conta no Programa de FPGAs Intel, porém, a criação desta conta é gratuita, podendo ser realizada neste link.
É recomandada o download da versão 18.0, escolhendo a opção de Arquivos Combinados (Combined Files), que possui o tamanho de 6.2 GB.
O Quartus, principalmente a partir da mudança de Quartus II para Quartus Prime começou a possuir suporte nativo a sistemas 64-bits, porém, a ferramenta de simulação ModelSim não, logo, é necessário o a instalação de algumas bibliotecas 32-bits. A instalação de tais bibliotecas pode ser feita executando tais comandos em um terminal:
$ sudo dpkg --add-architecture i386
$ sudo apt update
$ sudo apt install libxft2:i386 libxext6:i386 libncurses5:i386 bzip2:i386
Para a instalação da biblioteca libpng12-0, principalmente para sistemas operacionais mais recentes, como o Ubuntu 18.04, a biblioteca deve ser baixada externamente e instalada manualmente, uma vez que tal biblioteca foi descontinuada do sistema. Para o download e instalação da biblioteca, execute tais comandos em um terminal:
$ sudo wget http://ftp.us.debian.org/debian/pool/main/libp/libpng/libpng12-0_1.2.50-2+deb8u3_amd64.deb
$ sudo dpkg -i libpng12-0_1.2.50-2+deb8u3_amd64.deb
Após o download do Quartus e a configuração do ambiente, é a fez de realizar a instalação do sistema. Primeiramente, o arquivo baixado deve ser descompactado. Na pasta descompactada, é possível ver um arquivo setup.sh, porém, este não será executado, uma vez que o utilizando, a instalação é mais demorada.
Na pasta components, estão os executáveis para a instalação do Quartus, este sim sendo executados para a instalação. Inicialmente, deve ser executado o QuartusLiteSetup-18.0.0.614-linux.run, usando o comando:
$ ./QuartusLiteSetup-18.0.0.614-linux.run
Inicialmente, deve ser aceita a licença para a instalação do Quartus. Após o termo de aceite, é possível escolher a pasta onde o Quartus será executada, sendo recomendada a pasta /home/<nome_do_usuario>/intelFPGA/18.0
, muito parecida com a original, exceto pelo fato da pasta padrão ser chamada de intelFPGA_lite
, que não é o padrão para o ModelSim, logo, é recomendado o uso de intelFPGA
.
Agora é escolhido quais componentes serão instalados. É recomendada a instalação de cada software principal (Quartus Prime, Quartus Help e ModelSim) separadamente, logo, a escolha dos componentes deve ser igual à imagem abaixo:
Após isto, é necesário somente prosseguir a instalação, aguardando a tela de confirmação da instalação. Chegando neste tela, é necessário pressionar o botão Finish para fechar a interface gráfica, porém, no terminal em que tal instalação estava sendo executado, a aplicação não terminará, sendo necessário assim fechá-la manualmente utilizando Ctrl+C para terminar a aplicação.
Feito isso, o Quartus foi instalado, porém, ainda é necessário a instalação do Quartus Help e do ModelSim.
A instalação do Quartus Help é muito fácil, devendo ser executado o comando
$ ./QuartusHelpSetup-18.0.0.614-linux.run
na pasta components para inicializar o instalador. Após o aceite da licença, é necessário escolher em qual pasta ele será instalado, devendo ser escolhida a mesma em que o Quartus foi instalada. Caso foi escolhido a pasta recomendada neste tutorial, não é necessário se preocupar com isso, uma vez que a pasta escolhida é a padrão do Quartus Help.
Assim como o Quartus, após a instalação, a interface gráfica será fechada porém a aplicação no terminal continuará ativa, sendo necessário terminá-la com Ctrl+C.
Assim, como a instalação do Quartus Help, a instalação do ModelSim é fácil. também devendo ser executado o comando
$ ./ModelSimSetup-18.0.0.614-linux.run
Uma vez executado, deve ser escolhida a versão ModelSim - Intel FPGA Starter Edition, uma vez que esta versão é gratuita.
Assim como o Quartus Help, deve ser escolhido o mesmo caminho de instalação que o Quartus, porém, o caminho padrão corresponde ao caminho recomendado.
O instalador assim como os demais, não terminará após a instalação, também sendo necessário terminá-lo.
Para realizar a execução do Quartus no Linux, deve ser executado o comando
$ /home/<nome_do_usuario>/intelFPGA/18.0/quartus/bin/quartus --64bit
Assim, o Quartus será executado normalmente.
A integração do Quartus com o sistema operacional não é necessária, porém, altamente recomendada.
Para conseguir executar o Quartus a partir de um terminal sem ser necessário digitar todo o caminho completo, pode ser criada uma variável PATH
para isso. Primeiramente, é necessário criar o arquivo quartus.sh
em /etc/profile.d
com o seguinte conteúdo:
export PATH=$PATH:/home/<nome_do_usuario>/intelFPGA/18.0/quartus/bin
Após isso, é necessário tornar o arquivo executável:
chmod +x /etc/profile.d/quartus.sh
Como o arquivo profile.d
só é executado quando é feito o login, é necessário fazer o logout do usuário ou simplesmente executar $ source /etc/profile.d/quartus.sh
no terminal.
Para ter o ícone do Quartus Prime no sistema, é necessário criar o arquivo quartus.desktop
em ~/.local/share/applications
contendo:
[Desktop Entry]
Version=1.0
Name=Quartus Prime Standard Edition v15.1
Comment=Quartus Prime design software for Altera FPGA's
Exec=$HOME/intelFPGA/18.0/quartus/bin/quartus --64bit
Icon=$HOME/intelFPGA/18.0/quartus/adm/quartusii.png
Terminal=false
Type=Application
Categories=Development
O Driver para a conexão USB-Blaster da Altera é suportado somente para algumas distribuições Linux, logo é necessário algumas alterações para o completo funcionamento em outras distribuições.
Inicialmente, deve ser criado o arquivo 51-altera-usb-blaster.rules
em /etc/udev/rules.d/
contendo:
SUBSYSTEM=="usb", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6001", MODE="0666"
SUBSYSTEM=="usb", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6002", MODE="0666"
SUBSYSTEM=="usb", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6003", MODE="0666"
SUBSYSTEM=="usb", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6010", MODE="0666"
SUBSYSTEM=="usb", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6810", MODE="0666"
Assim, o arquivo deve ser recarregado usando o comando udevadm
. Atenção: Todos os componentes Altera deve estar desconectado antes de executar tal comando!
udevadm control --reload
Para verificar se a instalação ocorreu bem, conecte o dispositivo Altera e execute:
$ /home/<nome_do_usuario>/intelFPGA/18.0/quartus/bin/jtagconfig
Você terá usa saída parecida com:
1) USB-Blaster [USB 1-1.1]
020B30DD EP2C15/20
Caso a saída não tenha o nome da placa, você possui um problema para a inicialização do nios2 tools
. Para resolver este problema, execute:
$ mkdir /etc/jtagd
$ cp /home/nome_do_usuario/intelFPGA/18.0/quartus/linux/pgm_parts.txt /etc/jtagd/jtagd.pgm_parts
e reinicie o jtagd:
$ jtagconfig
1) USB-Blaster [2-4]
020F30DD
$ killall jtagd
$ jtagd
$ jtagconfig
1) USB-Blaster [2-4]
020F30DD EP3C25/EP4CE22
Caso você receba uma mensagem de erro sobre linux64, crie um link simbólico de linux para linux64 em /home/<nome_do_usuario>/intelFPGA/18.0/quartus
:
$ ln -s /home/<nome_do_usuario>/intelFPGA/18.0/quartus/linux /home/<nome_do_usuario>/intelFPGA/18.0/quartus/linux64
O ModelSim, qunado instalado, necessita de algumas modificações em certos arquivos para seu correto funcionamento, principalmente pelo fato do suporte ao Linux ser destinado somente a algumas bibliotecas.
As alterações citadas podem ser feitas manualmente, seguindo as partes deste tutorial ou fazendo uso de um script disponibilizado neste tutorial.
O ModelSim possui um problema com a versão 4 do kernel Linux. Para resolver este problema, é necessário a alteração do arquivo vsim
para gerar esta compatibilidade. No arquivo, a linha 206 deve ser alterada de
vco="linux_rh60" ;;
para
vco="linux" ;;
A biblioteca freetype2 foi atualizada da versão 2.5.0.1-1 para 2.5.0.1-2, causando os seguintes erros no ModelSim:
$ vsim
Error in startup script:
Initialization problem, exiting.
Initialization problem, exiting.
Initialization problem, exiting.
while executing
"EnvHistory::Reset"
(procedure "PropertiesInit" line 3)
invoked from within
"PropertiesInit"
invoked from within
"ncFyP12 -+"
(file "/opt/questasim/linux_x86_64/../tcl/vsim/vsim" line 1)
** Fatal: Read failure in vlm process (0,0)
ou
$ vsim
Error in startup script:
Initialization problem, exiting.
Initialization problem, exiting.
while executing
"InitializeINIFile quietly"
invoked from within
"ncFyP12 -+"
(file "/mtitcl/vsim/vsim" line 1)
** Fatal: Read failure in vlm process (0,0)
A solução para este problema é o download e ligação dos binários diretamente nos scripts do ModelSim. Os arquivos binários podem ser baixados neste link. Assim que o download for concluído, o conteúdo da pasta (ou seja, a pasta lib32) deve ser copiado para /home/<nome_do_usuario>/intelFPGA/18.0/modelsim_ase/
o script /home/<nome_do_usuario>/intelFPGA/18.0/modelsim_ase/vco
deve ser alterado, inserido a seguinte linha após a aparição de dir=`dirname "$arg0"`
.
export LD_LIBRARY_PATH=${dir}/lib32/
Porém, o mesmo erro acontecerá quando o ModelSim for iniciado a partir do Quartus. Para resolver este problema, a seguinte linha deve ser colocar o mais próximo possível do arquivo /home/<nome_do_usuario>/intelFPGA/18.0/quartus/adm/qenv.sh
export LD_LIBRARY_PATH=/home/<nome_do_usuario>/intelFPGA/18.0/modelsim_ase/lib32:$LD_LIBRARY_PATH
Para ter o ícone do ModelSim no sistema, é necessário criar o arquivo modelsim.desktop
em ~/.local/share/applications
contendo:
[Desktop Entry]
Version=1.0
Name=ModelSim
Comment=ModelSim
Exec=$HOME/intelFPGA/18.0/modelsim_ase/bin/vsim
Icon=applications-electronics
Terminal=true
Type=Application
Categories=Development
Seguindo este tutorial, o Quartus Prime e o ModelSim pode ser instalado na máquina Linux corretamente. Alguns outros poderão ocorrer, mas é facilmente encontrada soluções para estes na internet e principalmente, nas referências abaixo.
Altera Design Software - Arch Linux - https://wiki.archlinux.org/index.php/Altera_Design_Software
Quartus Linux Guide - Edison Cristovao - https://github.com/EdisonCristovao/quartus-linux-guide
Configuração da USB para programação do FPGA via JTAG - IFSC - https://wiki.sj.ifsc.edu.br/wiki/index.php/Configura%C3%A7%C3%A3o_da_USB_para_programa%C3%A7%C3%A3o_do_FPGA_via_JTAG
ModelSim 17.1 (Starters Edition) for (Arch) Linux - https://gist.github.com/dries007/36c31fb8b2d712dfb41c6709f16e6e66
Running ModelSim-Altera from the Quartus Prime Lite IDE under Linux - http://twoerner.blogspot.com/2017/10/running-modelsim-altera-from-quartus.html
How to install Quartus & modelsim on Ubuntu 16.04 LTS - https://www.youtube.com/watch?v=uXwCPoqjpiY