Infraestrutura Detalhada - guidiamond/Z01.1-Insonia GitHub Wiki
Só seguir esses passos se você souber o que está fazendo!*
Linux
- Ubuntu 18.04
Python 3
Execute no terminal:
$ sudo apt-get update
$ sudo apt-get -y upgrade
$ sudo apt-get install python3 python3-pip python-pip
Dependências
Faça o download do repositório Z01.1 e vá para o raiz desse projeto. Note a existência do arquivo requirements.txt, esse arquivo possui todas as dependências python utilizadas no projeto:
Execute o comando a seguir na pasta raiz do repositório:
Z01/
$ git clone https://github.com/Insper/Z01.1
$ cd Z01.1
$ pip3 install --user -r requirements.txt
3 - Quartus Prime e ModelSim
Execute no terminal os comandos a seguir, o Quartus necessita de dependências da arquitetura i384.
$ sudo dpkg --add-architecture i386
$ sudo apt-get update
$ sudo apt-get install libxft2:i386 libxext6:i386 \
libncurses5:i386 libstdc++6:i386 libpng-dev \
libpng16-16:i386 libpng16-16 python-gobject libnotify-bin
Libpng12
The simplest way is to build and install libpng12 from source (requires build-essential). Install build-essential (to get gcc etc): sudo apt install build-essential Download the source code from sourceforge (select a suitable version and tar archive). Unpack the tar archive to /tmp Build and install:
$ cd /tmp/libpng-1.2.59
$ ./configure --prefix=/usr/local
$ make
$ sudo make install
$ sudo ldconfig
libudev1:i386
Para o gravador Jtag blaster funcionar no Ubuntu 18 LTS
$ sudo apt-get install libudev1:i386
$ sudo ln -sf /lib/x86_64-linux-gnu/libudev.so.1 /lib/x86_64-linux-gnu/libudev.so.0
Instalando
Faça o download dos arquivos a seguir (salve na mesma todos os arquivos):
-
Quartus Lite : http://download.altera.com/akdlm/software/acdsinst/17.1std/590/ib_installers/QuartusLiteSetup-17.1.0.590-linux.run
-
Cyclone V (Chip usado no curso) : http://download.altera.com/akdlm/software/acdsinst/17.1std/590/ib_installers/cyclonev-17.1.0.590.qdz
Abra o terminal na pasta que os arquivos foram salvos e execute os dois comandos a seguir:
$ chmod +x QuartusLiteSetup-17.1.0.590-linux.run
$ ./QuartusLiteSetup-17.1.0.590-linux.run
Grave o caminho na qual o Quartus foi instalado, ele será utilizado na próxima etapa.
Se o Quartus falhar na instalação, mova o modelsim dessa pasta e instale novamente. Depois será necessário instalar o modelsim a parte.
Modelsim
- Editar vco
Vamos editar o arquivo vco que está na pasta do modelsim (exe: /home/borg/intelFPGA/17.1/modelsim_ase/vco):
$ sudo sed -i '209 a\ 4.[0-9]*) vco="linux" ;;' /home/borg/intelFPGA/17.1/modelsim_ase/vco
- Libfreetype 6.10.1 (versão 2.6)
Será necessário carregarmos uma versão anterior dessa lib. Seguir os passos nesse roteiro ou fazer o download de uma versão pré compilada por mim
$ cd ~/Downloads
$ wget https://github.com/Insper/Z01-tools/raw/master/Extra/Libfreetype-6.10.1-lib32.tar.gz
$ mkdir /home/borg/intelFPGA/17.1/modelsim_ase/lib32
$ tar zxf Libfreetype-6.10.1-lib32.tar.gz -C /home/borg/intelFPGA/17.1/modelsim_ase/lib32
Adicione ao final do bashrc a seguinte linha:
+export LD_LIBRARY_PATH=/home/borg/intelFPGA/17.1/modelsim_ase/lib32
Configurando o USB Blaster
Execute o comando a seguir para criar o arquivo de regra:
$ sudo gedit /etc/udev/rules.d/51-altera-usb-blaster.rules
Adicione as seguintes linhas a esse arquivo criado e salve:
+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"
Recarrege o as permissões via o comando a seguir:
$ sudo service udev restart
Java 8 - Oracle
$ sudo add-apt-repository ppa:webupd8team/java
$ sudo apt-get update
$ sudo apt-get install oracle-java8-installer
Verifique se o java padrão está como java 8 da Oracle:
$ sudo update-alternatives --config java
Deve selecionar algo como:
There are 3 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
------------------------------------------------------------
0 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1101 auto mode
1 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1101 manual mode
2 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1081 manual mode
+*3 /usr/lib/jvm/java-8-oracle/jre/bin/java 1081 manual
Certificado Google Firebase
Devemos instalar o certificado do elementos.json na pasta: ~/.local/share/.
$ cp elementos.json ~/.local/share/
O Arquivo elementos.json deve ser obtido com os técnicos!!
Adicione ao final do bashrc a seguinte linha:
+export GOOGLE_APPLICATION_CREDENTIALS=/home/borg/.local/share/elementos.json
Configurando variáveis de ambiente
Adicione ao final do bashrc as seguintes linhas:
+export ALTERAPATH=~/intelFPGA_lite/17.1
+export PATH=$PATH:${ALTERAPATH}/quartus/bin
+export PATH=$PATH:${ALTERAPATH}/modelsim_ase/linuxaloem/
+export VUNIT_MODELSIM_PATH=${ALTERAPATH}/modelsim_ase/linuxaloem/
+export VUNIT_SIMULATOR=modelsim
+export GOOGLE_APPLICATION_CREDENTIALS=/home/borg/.local/share/elementos.json
+export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/ros/melodic/lib/parrot_arsdk/:${ALTERAPATH}/modelsim_ase/lib32
Se você alterou o caminho de instalação na etapa do Quartus, deve modificar a primeira linha inserindo o caminho da instalação.
Validando
Reinicie o computador (ou máquina virtual) para concluir a instalação
- Quartus: Escreva
quartusno terminal, o mesmo deve abrir a janela do Quartus - Programador: Com a FPGA plugada no pc, digite
jtagconfigele deve aparecer o device. - Modelsim: Escreva
vsimno terminal, o mesmo deve abrir a janela do ModeolSim - Z01.1
Vá para a pasta a raiz do repositório Z01.1 e execute o seguinte comando no terminal:
$ ./Projetos/src/0-Infra/testeVHDL.py
O resultado deve ser o seguinte:
