Menu
Coddy logo textTech

Recapitulação - Testbench Completo

Parte da seção Fundamentos do Journey de Verilog da Coddy — lição 78 de 90.

challenge icon

Desafio

Este desafio testa tudo o que você aprendeu sobre testbenches: stimulus, display, monitor, dumpfile, dumpvars e system tasks. Você recebeu um módulo de porta XOR para testar.
O que fazer:

Crie um testbench completo que:

  1. Declara sinais (reg para entradas, wire para saída)
  2. Instancia a porta XOR com o nome dut
  3. Cria um arquivo de forma de onda chamado xor_waveform.vcd
  4. Gera o dump de todos os sinais no testbench
  5. Imprime um cabeçalho: "Testing XOR Gate"
  6. Usa $monitor para rastrear time, x, y, e z
  7. Testa todas as quatro combinações de entrada (00, 01, 10, 11) com um atraso de #10 entre cada uma
  8. Imprime "Test complete" ao final
  9. Encerra a simulação com $finish

Experimente você mesmo

module xor_gate (
  input x,
  input y,
  output z
);
  assign z = x ^ y;
endmodule

module testbench;
  // TODO: Declarar reg para x e y
  
  // TODO: Declarar wire para z
  

  // TODO: Instanciar xor_gate com o nome dut
  // Conectar .x(x), .y(y), .z(z)


  initial begin
    // TODO: Adicionar $dumpfile "xor_waveform.vcd"
    
    // TODO: Adicionar $dumpvars (0, testbench)
    
    // TODO: Adicionar $display "Testing XOR Gate"
    
    // TODO: Adicionar $monitor para time, x, y, z
    // Formato: "Time %0t: x=%b, y=%b, z=%b"
    
    // TODO: Adicionar estímulos para todas as quatro combinações
    // 00, 01, 10, 11 com atraso #10
    
    // TODO: Adicionar $display "Test complete"
    
    // TODO: Adicionar $finish
    
  end
endmodule

Todas as lições de Fundamentos