Ir para o conteúdo

Iniciando com o Risco-5

Testes / Simulação

O diretório "testes" contém alguns testes para os módulos do projeto. Esses testes foram desenvolvidos para serem utilizados com o Iverilog. Para executar os testes, basta utilizar o Iverilog e o VVP, como mostrado no exemplo abaixo:

iverilog -o build/core_test.o -s core_tb src/core/* src/peripheral/memory.v tests/core_test.v
vvp build/core_test.o

Para facilitar a execução dos testes, é possível utilizar o script "run_test" disponível na raiz do projeto. Ao executar esse script, ele solicitará o nome do teste e o nome de um dos arquivos de teste em assembly disponíveis no diretório "software/code/". Como resultado, será gerado um arquivo "soc.vcd" em "build/" que pode ser analisado através do GTKWave.

Requisitos:

  • Iverilog
  • GTKWave

Essas dependências podem ser obtidas através do oss cad suite ou podem ser instaladas manualmente de forma individual.

FPGA

O projeto oferece suporte a testes em algumas FPGAs, listadas abaixo:

  • Colorlight i9 - ECP5 45F
  • Digilent Arty A7 100t
  • Digilent Nexys 4 DDR
  • Tangnano 20k
  • AMD/Xilinx VC709 Connectivity Kit

Os exemplos estão disponíveis no diretório "FPGA". Para as FPGAs Sipeed (Tangnano 9k e 20k), os exemplos foram desenvolvidos utilizando a IDE Gowin. Para as FPGAs Lattice/ColorLight, os exemplos foram desenvolvidos utilizando o Yosys + NextPNR e podem ser sintetizados e programados utilizando o makefile disponível nos diretórios. Para as FPGAs Xilinx, foi utilizado o Vivado, e os exemplos podem ser utilizados também utilizando o makefile disponível no diretório.

Requisitos

  • AMD/Xilinx: Vivado openFPGALoader
  • Lattice/Colorlight: Yosys Nextpnr-ECP5 ecppack openFPGALoader
  • Gowin/Sipeed: Gowin EDA openFPGALoader

  • Geral: Pyserial ou VSCode Serial ou Minicom ou outro software capaz de utilizar serial

Executando o Teste na FPGA

Acesse o diretório "fpga/???" com "???" sendo o nome da FPGA a ser utilizada, e execute o comando "make". Com isso, a síntese do projeto será realizada. Para carregar o bitstream para a placa, utilize "make flash". Caso queira executar tudo de uma vez, use "make run_all".

Feedback da FPGA

Se tudo ocorrer bem, os LEDs da FPGA começarão a piscar em um ritmo de contagem, e na serial começará a ser enviado um caractere ASCII. A serial opera com um baudrate padrão de 115200 bps.