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.
Inspecionando o Makefile
Saída esperada (make)
Imagem da simulação
