Menu
Coddy logo textTech

Обнаружение дискретизированных фронтов

Часть раздела Проектирование и верификация RTL путешествия по Verilog на Coddy. Урок 19 из 38.

Уровень может оставаться высоким в течение многих тактов, тогда как импульс события должен длиться один такт. Сохраните предыдущий отсчёт уровня и сравните его с текущим. Этот детектор фронта предполагает, что вход уже синхронизирован с этим тактовым сигналом; это не синхронизатор перехода между тактовыми доменами.

Соответствующий фрагмент; окружающие объявления и соединения предоставлены в задании.

previous <= sig;
rising <= sig & ~previous;

Старый сохранённый уровень создаёт одиночный импульс в момент отслеживаемого перехода.

Сравнивайте текущие и предыдущие отсэмплированные уровни; используйте этот детектор только с синхронным входом.

challenge icon

Задание

Средне

Для сигнала sig, уже синхронного с clk, сформируйте зарегистрированный импульс длительностью один такт при каждом зафиксированном переходе с 0 на 1. Синхронный rst очищает сохранённый предыдущий уровень и импульс. Поэтому высокий уровень sig на первом фронте после сброса формирует импульс. Столбцы вывода: pulse. Все управляющие сигналы и данные стабильны перед каждым нарастающим фронтом тактового сигнала; результаты считываются после этого.

Завершите design.v, сохранив имена его модулей и порты. Заблокированный testbench.v подаёт изменения входных сигналов и выводит результаты после их стабилизации. Он выбирает сценарий с помощью аргумента симулятора, например +CASE=1; стандартный ввод не требуется. Не добавляйте в design вывод, задержки или завершение симуляции. Ожидаемый вывод — одна строка десятичных значений для каждого наблюдения, разделённых одним пробелом и заканчивающихся символом новой строки.

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

module dut (input clk, input rst, input sig, output reg pulse);
    // Замените этот плейсхолдер своим дизайном.
    initial pulse = 0;
endmodule
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Проектирование и верификация RTL

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