Menu
Coddy logo textTech

Итоги — управление таймингом

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

challenge icon

Задание

Этот челлендж проверяет ваше понимание задержек, задержек вентилей, задержек присваивания, timescale и генерации тактового сигнала.

Что нужно сделать:

  1. Добавьте директиву timescale с 1ns / 1ps
  2. Сгенерируйте тактовый сигнал, который переключается каждые 5 единиц времени
  3. Добавьте вентиль AND с задержкой вентиля в 3 единицы времени
  4. Используйте задержку присваивания, чтобы присвоить a переменной b через 2 единицы времени (считайте a немедленно)

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

// TODO: Добавить директиву timescale (1ns / 1ps)


module timing_challenge;
  reg clk;
  reg a, b;
  wire out;
  
  initial begin
    clk = 0;
  end
  
  // TODO: Сгенерировать тактовый сигнал, переключающийся каждые 5 единиц времени
  
  
  // TODO: Добавить логический элемент И (AND) с задержкой в 3 единицы времени (входы a, b, выход out)
  
  
  initial begin
    $monitor("Time %0t: clk=%b, a=%b, b=%b, out=%b", $time, clk, a, b, out);
    
    a = 1;
    
    // TODO: Использовать задержку присваивания, чтобы присвоить значение a переменной b через 2 единицы времени
    // Прочитать a сейчас, присвоить b через 2 единицы времени
    
    
    #20;
    $finish;
  end
endmodule

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