Menu
Coddy logo textTech

Recap - Full 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. Сохраняет все сигналы в testbench
  5. Выводит заголовок: "Testing XOR Gate"
  6. Использует $monitor для отслеживания времени, 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

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

Потренируйтесь самостоятельно: Онлайн-компилятор Verilog