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):

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

  1. 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
  1. 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

  1. Quartus: Escreva quartus no terminal, o mesmo deve abrir a janela do Quartus
  2. Programador: Com a FPGA plugada no pc, digite jtagconfig ele deve aparecer o device.
  3. Modelsim: Escreva vsim no terminal, o mesmo deve abrir a janela do ModeolSim
  4. 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:

Resultado validação infra