Menu
Coddy logo textTech

Итоги: полный Testbench

Часть раздела Основы путешествия по Verilog на Coddy — урок 78 из 90.

challenge icon

Задание

Это задание проверяет всё, что вы узнали о тестбенчах: стимулы (stimulus), display, monitor, dumpfile, dumpvars и системные задачи. Вам предоставлен модуль вентиля XOR для тестирования.
Что нужно сделать:

Создайте полный testbench, который:

  1. Объявляет сигналы (reg для входов, wire для выхода)
  2. Инстанцирует вентиль XOR с именем dut
  3. Создает файл временных диаграмм с именем xor_waveform.vcd
  4. Дампит все сигналы в тестбенче
  5. Выводит заголовок: "Testing XOR Gate"
  6. Использует $monitor для отслеживания времени (time), x, y и z
  7. Тестирует все четыре комбинации входов (00, 01, 10, 11) с задержкой #10 между каждой
  8. Выводит "Test complete" в конце
  9. Завершает симуляцию с помощью $finish

Попробуйте сами

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

module testbench;
  // TODO: Объявить reg для x и y
  
  // TODO: Объявить wire для z
  

  // TODO: Создать экземпляр xor_gate с именем dut
  // Подключить .x(x), .y(y), .z(z)


  initial begin
    // TODO: Добавить $dumpfile "xor_waveform.vcd"
    
    // TODO: Добавить $dumpvars (0, testbench)
    
    // TODO: Добавить $display "Testing XOR Gate"
    
    // TODO: Добавить $monitor для time, x, y, z
    // Формат: "Time %0t: x=%b, y=%b, z=%b"
    
    // TODO: Добавить стимулы для всех четырёх комбинаций
    // 00, 01, 10, 11 с задержкой #10
    
    // TODO: Добавить $display "Test complete"
    
    // TODO: Добавить $finish
    
  end
endmodule

Все уроки раздела Основы