Menu
Coddy logo textTech

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

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

challenge icon

Задание

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

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

  1. Объявляет сигналы (reg для входов, wire для выхода)
  2. Создает экземпляр XOR-гейта с именем dut
  3. Создает файл временных диаграмм с именем "xor_waveform.vcd"
  4. Выгружает (dumps) все сигналы в тестбенче
  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

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