Menu
Coddy logo textTech

Podsumowanie — pełny testbench

Część sekcji Podstawy ścieżki Verilog w Coddy. Lekcja 78 z 90.

challenge icon

Wyzwanie

To wyzwanie sprawdza wszystko, czego nauczyłeś się o testbenchach: pobudzanie, wyświetlanie, monitorowanie, dumpfile, dumpvars i zadania systemowe. Otrzymujesz moduł bramki XOR do przetestowania.
Co zrobić:

Utwórz kompletny testbench, który:

  1. Deklaruje sygnały (reg dla wejść, wire dla wyjścia)
  2. Tworzy instancję bramki XOR o nazwie dut
  3. Tworzy plik przebiegu o nazwie xor_waveform.vcd
  4. Zapisuje wszystkie sygnały w testbenchu
  5. Wyświetla nagłówek: "Testing XOR Gate"
  6. Używa $monitor, aby śledzić czas, x, y i z
  7. Testuje wszystkie cztery kombinacje wejściowe (00, 01, 10, 11), stosując opóźnienie #10 między każdą z nich
  8. Na końcu wyświetla "Test complete"
  9. Kończy symulację za pomocą $finish

Spróbuj swoich sił

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

module testbench;
  // TODO: Zadeklaruj reg dla x i y
  
  // TODO: Zadeklaruj wire dla z
  

  // TODO: Utwórz instancję xor_gate o nazwie dut
  // Połącz .x(x), .y(y), .z(z)


  initial begin
    // TODO: Dodaj $dumpfile "xor_waveform.vcd"
    
    // TODO: Dodaj $dumpvars (0, testbench)
    
    // TODO: Dodaj $display "Testing XOR Gate"
    
    // TODO: Dodaj $monitor dla czasu oraz x, y, z
    // Format: "Time %0t: x=%b, y=%b, z=%b"
    
    // TODO: Dodaj sygnały testowe dla wszystkich czterech kombinacji
    // 00, 01, 10, 11 z opóźnieniem #10
    
    // TODO: Dodaj $display "Test complete"
    
    // TODO: Dodaj $finish
    
  end
endmodule

Wszystkie lekcje w sekcji Podstawy

Poćwicz samodzielnie: Kompilator Verilog online