Introdução à Arty e RISC-V

Visão Geral

O processo de unir a especificação ISA RISC-V com a placa Arty da Digilent pode tornar-se um produto interessante para projetos que desejam de um processador para sistemas de pequeno porte na qual utilizam de um FPGA.

O Arty possui um arcabouço suficiente para atender aos mais diversos projetos, tudo utilizando procedimentos open-sources que permitem as mais diversas combinações e interações com os mais diversos sistemas disponíveis por meio de seus GPIOs, além de ser compatível com a estrutura de um Arduino Uno, compreendendo na adição de seu shields.

O processo de compilação e utilização baseia-se em vários procedimentos na qual constituem por exemplo da compilação da aplicação desejada utilizando o freedom e o freedom-e-sdk explicados ao decorrer do artigo.

Observações: Antes de prosseguir com a execução do artigo, leia atentamente a seção de Requisitos.

Ao final, também será incluído o tutorial de como utilizar o Arduino IDE para compilação da mesma.

Placa Arty Artix-7

Requisitos mínimos para a utilização e Definições

Equipamentos necessários:

  • Arty board;
  • Olimex cable, vendido separadamente;
  • Cabos USB para alimentação e envio de dados para os componentes acima.

Para a realização de qualquer upload para a placa que não seja os projetos demos, deve-se ter em mãos o cabo proprietário Olimex.
Este faz-se necessário pois, após o upload do soft-processor SiFive para a placa, não é possível o envio da aplicação pelos mesmos passos, sendo então necessário este cabo para o envio da aplicação por um meio indireto à placa.

O autor deste artigo não encontrou nenhuma forma de compilação de aplicações sem a necessidade deste cabo Olimex. Caso você tenha encontrado, divulgue aqui para outros leitores possam usufruir desde método :].

Como uma forma de organização, será utilizado um diretório para todos os softwares a serem instalados, e este será denominado $TOOLS, podendo ser definido de acordo com a escolha do usuário. Recomenda-se defini-lo como

[code language=”shell”]
mkdir ~/Tools
export TOOLS=~/Tools
echo $TOOLS
[/code]

Se o diretório for impresso da mesma forma como foi definido, então o diretório para os softwares está pronto para ser utilizado. Relembrando, o usuário definirá como este bem entender.

Configurando o sistema para sua utilização

Instalando o Vivado

O primeiro passo é obter o Vivado, software da Xilinx responsável por realizar a sintetizações de suas placas.

Xilinx Vivado

Dessa forma, basta entrar no site da Xilinx (Xilinx Downloads) e baixar o Vivado. Após baixado, para instalar basta realizar o unzip e executar o instalador, com é demonstrado a seguir

[code language=”shell”]
tar -xvf Xilinx_Vivado_SDK_2017.1_0415_1.tar.gz
cd Xilinx_Vivado_SDK_2017.1_0415_1/
./xsetup
[/code]

Observação: na tela de customização de instalação, selecione também o ‘7 Series’ na qual inclui alguns pacotes do Arty.

Com o fim da instalação, deve-se executar também a instalação dos drivers. Para isso, deve ir até a pasta contida no diretório do Vivado já instalado e executar o script ‘install_drivers’.

[code language=”shell”]
cd $VIVADO/2017.1/data/xicom/cable_drivers/lin64/install_script/install_drivers
sudo ./install_drivers
[/code]

Após a realização desses passos, o Vivado estará instalado no sistema com sucesso.

Adicionando as boards da Digilent ao Vivado

Após instalar o Vivado, deve-se adicionar também em seu sistema um pack de informações das placas produzidas pela Digilent com circuitos integrados da Xilinx. Para isso, basta baixar o arquivo que contém as placas (Digilent Boards), copiar a pasta com nome board_files para o diretório de placas do Vivado. Dessa forma o comando referente a este é

[code language=”shell”]
cp -rf board_files $VIVADO/2015.1/data/boards
[/code]

Feito isso, o Vivado estará apto a reconhecer e utilizar as placas da Digilent.

Adicionando os drivers de Olimex e suas Permissões

Tendo o cabo Olimex em mãos, deve-se alterar as regras udev para permitir que esse dispositivo seja acessado pelo grupo plugdev e assim permitir a utilização deste sem o comando sudo.

Assim, o primeiro passo é abrir o arquivo de regras do udev para a adição das informações do dispositivo.

[code language=”shell”]
sudo vim /etc/udev/rules.d/99-openocd.rules
[/code]

Após aberto, adicionar as seguintes linhas e salvar o arquivo após as alterações.

[code language=”shell”]
# For the Olimex Device
SUBSYSTEM=="usb", ATTR{idVendor}=="15ba",ATTR{idProduct}=="002a", MODE="664", GROUP="plugdev"
SUBSYSTEM=="tty", ATTRS{idVendor}=="15ba",ATTRS{idProduct}=="002a", MODE="664", GROUP="plugdev"
[/code]

Alterado o arquivo de regras, basta adicionar o usuário ao grupo e recarregar as novas regras adicionadas. Isso pode ser realizado utilizando os seguintes comandos.

[code language=”shell”]
sudo usermod -a -G plugdev $(whoami)
sudo udevadm control –reload-rules
[/code]

Cabo Olimex.

Cabo Olimex. Requerido para a utilização do RISC-V + Arty.

Instalando os softwares SiFive

SiFive Project.

Observações: Este passo depende diretamente da sua conexão com a internet, e com isso pode demorar de acordo com esta.

Instalando o Freedom E310 no Flash do FPGA

Para que as aplicações sejam executadas na placa, é preciso adicionar baixar o arquivo de memória e instalá-lo na placa par que o processador RISC-V contido neste arquivo de memória possa ser executado nas aplicações futuras.

O primeiro passo deste processo é baixar o arquivo .mcs que contém os procedimentos básicos a serem instalados no Arty. Este pode ser obtido em Configuration Memory File.

A configuração do FPGA Arty é feito inicialmente pelo Vivado, e para isso, basta seguir os seguintes passos:

  1. Executar o Vivado;
  2. Abrir o “Open Hardware Manager” e em seguida o “open target board”;
  3. Clicar com o botão direito em “FPGA device” e selecionar “Add Configuration Memory Device”;
  4. Selecione o item cujas informações são:
    • Part: n25q128-3.3v;
    • Manufacturer: Micron;
    • Family: n25q;
    • Type: spi;
    • Density: 128;
    • Width: x1 _x2_x4.
  5. Clicar em “OK” par a janela que pergunta “Do you want to program the configuration memory device now?”
  6. Adicionar o arquivo .mcs baixado
  7. Clicar em “OK”
  8. Quando terminar o processamento, pressionar o botão “PROG” existente no canto da placa.

Freedom E SDK

Para a compilação de novas aplicações para a placa, é necessário baixar e instalar o compilador Freedom E SDK, específico para a Arty.

O código a seguir realiza o download, configuração e instalação do compilador já especificando a placa Arty como a board fim.
Observações: O processo pode demorar vários minutos, inclusive na execução do comando make tools.

[code language=”shell”]
cd $TOOLS
sudo apt-get install autoconf automake libmpc-dev libmpfr-dev libgmp-dev gawk bison flex texinfo libtool libusb-1.0-0-dev make g++ pkg-config libexpat1-dev zlib1g-dev
git clone –recursive https://github.com/sifive/freedom-e-sdk.git
cd freedom-e-sdk
git pull origin master
git submodule update –init –recursive
make tools BOARD=freedom-e300-arty
[/code]

Realizado a configuração, para realizar qualquer compilação, utiliza-se o comando

[code language=”shell”]
make software PROGRAM=<program_name>
[/code]

A compilação é feita com os projetos existentes dentro da pasta $TOOLS/freedom-e-sdk/software. Nesta pasta já existe vários projetos demo como o hello, led_fade, demo_gpio, dhrystone. Para compilar o demo_gpio por exemplo, basta executar o comando e os arquivos compilados estarão na mesma pasta de projeto.

[code language=”shell”]
make software PROGRAM=demo_gpio
[/code]

Feito a compilação do projeto agora é possível enviar o projeto para a placa utilizando o cabo Olimex já configurado no sistema. Para isso, utiliza-se do comando upload.

[code language=”shell”]
make upload PROGRAM=demo_gpio
[/code]

Utilizando o Arduino IDE para compilação da Arty

O projeto SiFive e Freedom também permite utilizar suas ferramentas de compilação junto com a já conhecida IDE Arduino.
Isso permite uma facilidade maior de sua utilização ao utilizar uma IDE simples e que já é de conhecimento de toda comunidade desenvolvedora de protótipos eletrônicos.

Para utilizar o Arduino IDE, primeiro deve-se tê-lo já instalado em seu computador. Ele pode ser obtido gratuitamente por meio do site Arduino.

Instalado, execute-o e navegue por File e Preferences para adicionar o SiFive no Board Manager URL. Adicione o link a seguir: http://static.dev.sifive.com/bsp/arduino/package_sifive_index.json e a primeira etapa já está concluída.

Exemplo de como é inserido a URL ao Aruido IDE.

Adicionado o link, agora é necessário fazer o download do kit de desenvolvimento SiFive para o Arduino, para isso, deve-se ir em Tools, Board, Board Manager, procurar por SiFive e clicar em Install.

Após a instalação, reinicie a IDE e verifique se em Tools, Board existe novas opções de placas. Selecione SiFive OpenOCD como o Programmer.

Feito os passos acima, você está apto para compilar suas aplicações por meio do Arduino IDE. Faça o teste do Blink para verificar a corretude dos passos.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

*
*
Website