FPGAemu

Download: fpgaemu-1.3.tar.gz

Repository: https://github.com/fabian-l-c/fpgaemu

 

    FPGAemu é o emulador de uma placa genérica baseada em FPGA visando o ensino de conceitos básicos sobre projeto de circuitos digitais. FPGAemu foi desenvolvido por Fabian L. Cabrera em 2020 para permitir a realização de práticas remotas na disciplina “EEL5105 – Circuitos e técnicas digitais” durante a pandemia.

 

 

    • Requisitos

ghdl (com GCC ou LLVM back-end)*
gtk3
pthread
icarus verilog (Novo, para suporte a verilog)

*O emulador não pode ser usado com o back-end do ghdl mcode. Para mais informação visite:

https://ghdl.github.io/ghdl/

https://steveicarus.github.io/iverilog/

Ubuntu:
sudo apt-get install build-essential make gnat libgtk-3-dev libpthread-stubs0-dev ghdl-llvm

    • Instalação

Descarregue a última versão. Depois descompacte, configure e instale com os seguintes comandos:

tar xvfz fpgaemu-1.3.tar.gz
cd fpgaemu-1.3
./configure
make
make install

Nota: se ghdl está instalado em uma pasta não-padronizada (por exemplo: /opt/local/bin), ela pode ser informada na linha de comando de configuração:

./configure –with-ghdl=/opt/local/bin/ghdl

    • Usando o FPGAemu com VHDL

Copie a pasta de exemplos na sua área de trabalho e use os comandos:

cd examples/io
fpgacompile usertop.vhd
./fpgatest

O mesmo procedimento pode ser aplicado aos exemplos “register” e “counter”.

O arquivo VHDL principal sempre deve ter o nome “usertop.vhd”. Também as definições de portas de “usertop.vhd” devem ser mantidas iguais sempre:

CLOCK_50: Não usado, sempre igual a ‘0’;
CLK_500Hz: Sinal de relógio de 500Hz;
RKEY: Igual a KEY;
KEY: Quatro botões de entrada (‘0’-pressionado, ‘1’-solto);
RSW: Igual a SW;
SW: Dezoito chaves de entrada;
LEDR: Dezoito LEDs vermelhos de saída;
HEX0,HEX1,HEX2,HEX3,HEX4,HEX5,HEX6,HEX7 : Oito displays sete-segmentos.

Em caso de múltiplos arquivos VHDL, eles devem ser listados seguindo a ordem hierarquica. Por exemplo, se “block.vhd” é um componente usado em “usertop.vhd” então os comandos para rodar o emulador devem ser:

fpgacompile block.vhd usertop.vhd
./fpgatest

    • Usando o FPGAemu com verilog

Copie a pasta de exemplos na sua área de trabalho e use os comandos:

cd vexamples/io
vfpgacompile usertop.v
./vfpgatest

O mesmo procedimento pode ser aplicado aos exemplos “register” e “counter”.

O módulo verilog principal sempre deve ter o nome “usertop”. Também as definições de portas de “usertop.v” devem ser mantidas iguais sempre:

CLOCK_50: Não usado, sempre igual a ‘0’;
CLK_500Hz: Sinal de relógio de 500Hz;
RKEY: Igual a KEY;
KEY: Quatro botões de entrada (‘0’-pressionado, ‘1’-solto);
RSW: Igual a SW;
SW: Dezoito chaves de entrada;
LEDR: Dezoito LEDs vermelhos de saída;
HEX0,HEX1,HEX2,HEX3,HEX4,HEX5,HEX6,HEX7 : Oito displays sete-segmentos.

Em caso de múltiplos arquivos verilog, eles devem ser listados seguindo a ordem hierarquica. Por exemplo, se “block.v” é um componente usado em “usertop.v” então os comandos para rodar o emulador devem ser:

vfpgacompile block.v usertop.v
./vfpgatest

    • Referências

http://ygdes.com/GHDL/http://ghdl.free.fr/

https://developer.gnome.org/gtk3/