Повторение — маршрутизатор запросов
Часть раздела Проектирование и верификация RTL путешествия по Verilog на Coddy. Урок 5 из 38.
Задание
СреднеПринимайте 4-битный запрос только в том случае, если установлен ровно один бит. Если запрос допустим, выведите индекс выбранного бита в code и установите valid. Для состояния простоя или нескольких запросов и code, и valid должны быть равны нулю. Столбцы вывода: code, valid. Все значения стимулов являются известными двоичными значениями.
Завершите design.v, сохранив имена его модулей и портов. Заблокированный testbench.v подаёт изменения входных данных и выводит результаты после их стабилизации. Он выбирает сценарий с помощью аргумента симулятора, например +CASE=1; стандартный ввод не требуется. Не добавляйте в проектирование вывод, задержки или завершение симуляции. Ожидаемый вывод — одна строка десятичных значений для каждого наблюдения, разделённых одним пробелом и завершающихся символом новой строки.
Попробуйте сами
module dut (input [3:0] req, output reg [1:0] code, output reg valid);
// Замените этот заполнитель на ваш дизайн.
initial code = 0;
initial valid = 0;
endmoduleВсе уроки раздела Проектирование и верификация RTL
1Надёжная комбинационная RTL-логика
Значения по умолчанию предотвращают защёлкиПриоритетные кодировщикиПроверка One-HotБезопасное декодирование caseПовторение — маршрутизатор запросов4Управляемая последовательная RTL-логика
Приоритет сброса и разрешенияСчётчики с насыщениемКонвейеризация данных и validОбнаружение дискретизированных фронтовПовторение — счётчик событий2Разрядности и знаковая арифметика
Сохранение битов переносаСравнения знаковых чиселАрифметические сдвиги вправоПереполнение и насыщениеПовторение — знаковая разностьПотренируйтесь самостоятельно: Онлайн-компилятор Verilog