Menu
Coddy logo textTech

Итоги: создание модуля

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

challenge icon

Задание

Это задание объединяет всё, что вы узнали в этой главе. Вы создадите модуль с нуля и выполните его инстанцирование.

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

Часть 1: Создайте модуль с именем <strong>flipflop</strong> со следующими портами:

  • 1-битный вход с именем clk
  • 1-битный вход с именем d
  • 1-битный вход с именем reset
  • 1-битный выход с именем q (используйте reg, присваиваемый внутри блока always)

Модуль должен работать следующим образом:

  • Когда reset равен 1, q становится равным 0
  • В противном случае по каждому фронту тактового сигнала q принимает значение d

Часть 2: Выполните инстанцирование модуля <strong>flipflop</strong> в модуле <strong>top</strong>, используя именованное связывание портов (port mapping by name)

Подключите порты к следующим сигналам:

  • Порт clk → сигнал clock
  • Порт d → сигнал data
  • Порт reset → сигнал reset_signal
  • Порт q → сигнал out

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

// Часть 1: Создайте модуль flipflop

  // TODO: Добавьте порты

  // TODO: Добавьте блок always с posedge clk и posedge reset
  
  // Если reset равен 1, q <= 0
  
  // Иначе q <= d


// Часть 2: Верхний модуль с инстанцированием
module top (
  input clock,
  input data,
  input reset_signal,
  output out
);

  // TODO: Инстанцируйте flipflop с именем экземпляра ff1
  
  // Используйте сопоставление портов по имени: .clk(clock), .d(data), .reset(reset_signal), .q(out)

endmodule

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