Menu
Coddy logo textTech

Resumen: Testbench completo

Parte de la sección Fundamentos del Journey de Verilog de Coddy — lección 78 de 90.

challenge icon

Desafío

Este desafío pone a prueba todo lo que has aprendido sobre bancos de pruebas (testbenches): estímulos, display, monitor, dumpfile, dumpvars y tareas del sistema. Se te proporciona un módulo de compuerta XOR para probar.
Qué hacer:

Crea un banco de pruebas completo que:

  1. Declare señales (reg para las entradas, wire para la salida)
  2. Instancie la compuerta XOR con el nombre dut
  3. Cree un archivo de forma de onda llamado "xor_waveform.vcd"
  4. Vuelque (dump) todas las señales en el banco de pruebas
  5. Imprima un encabezado: "Testing XOR Gate"
  6. Use $monitor para rastrear el tiempo, x, y, y z
  7. Pruebe las cuatro combinaciones de entrada (00, 01, 10, 11) con un retraso de #10 entre cada una
  8. Imprima "Test complete" al final
  9. Finalice la simulación con $finish

Pruébalo tú mismo

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 con el nombre dut
  // Conectar .x(x), .y(y), .z(z)


  initial begin
    // TODO: Agregar $dumpfile "xor_waveform.vcd"
    
    // TODO: Agregar $dumpvars (0, testbench)
    
    // TODO: Agregar $display "Testing XOR Gate"
    
    // TODO: Agregar $monitor para time, x, y, z
    // Formato: "Time %0t: x=%b, y=%b, z=%b"
    
    // TODO: Agregar estímulos para las cuatro combinaciones
    // 00, 01, 10, 11 con retraso #10
    
    // TODO: Agregar $display "Test complete"
    
    // TODO: Agregar $finish
    
  end
endmodule

Todas las lecciones de Fundamentos