Test bench
Nesta prática vamos usar o Icarus Verilog para fazer uma simulação e apresentar o seu resultado na console e no GTKWave ou WaveTrace.
Instalação
Abra um terminal no Linux e digite o seguinte comando para instalar os pacotes necessários:
sudo apt update && sudo apt install iverilog gtkwave
Comandos básicos
Clonando o repositório
O comando a seguir criará uma cópia local do repositório:
git clone https://github.com/menotti/ld.git
Acessando um diretório
Para acessar o diretório da prática digite:
cd ld/labs/03_leds
Ao digitar o caminho desejado, você pode usar a tecla TAB
para completá-lo automaticamente.
Fazendo a implementação da função
A implementação original da função apenas liga cada switch com o respectivo LED.
Use a sintaxe do comentário para atribuir cada LED com sua respectiva função, conforme apresentado no diagrama esquemático:
Inspecionando o test bench (tb_top.v
)
O test bench a seguir instancia o módulo a ser testado (dut
) e o estimula com todas as combinações possíveis de entrada.
Observe que para as entradas sw
criamos um reg
, pois precisamos atribuir valores a elas. Já para as saídas led
precisamos apenas de fios wire
para receber os valores calculado internamente.