Приоритет сброса и разрешения
Часть раздела Проектирование и верификация RTL путешествия по Verilog на Coddy. Урок 16 из 38.
Тактовый блок может удерживать регистр, пропуская присваивание на отключённых фронтах. Такое намеренное хранение отличается от случайной комбинационной защёлки. Задайте явный приоритет между сбросом, загрузкой и разрешением. Здесь сбросы синхронные: они вступают в действие только на восходящем фронте тактового сигнала.
Соответствующий фрагмент; окружающие объявления и соединения предоставлены в задании.
always @(posedge clk) begin
if(rst) q <= 0;
else if(en) q <= data;
endСброс имеет приоритет, когда оба управляющих сигнала активны, а неактивные по сбросу фронты сохраняют q.
Используйте одну синхронную приоритетную цепочку и точно определите поведение при сбросе, загрузке, включении и удержании.
Задание
СреднеРеализуйте 8-битный регистр q с синхронным сбросом по высокому уровню rst и разрешением en. На восходящем фронте сброс имеет приоритет и очищает q; в противном случае на разрешённых фронтах загружается a, а на запрещённых фронтах q сохраняет значение. Столбцы вывода: q. Все управляющие сигналы и данные стабильны перед каждым восходящим фронтом тактового сигнала; результаты наблюдаются после него.
Заполните design.v, сохранив имена модуля и портов. Заблокированный testbench.v задаёт изменения входных данных и выводит результаты после их стабилизации. Он выбирает сценарий с помощью аргумента симулятора, например +CASE=1; стандартный ввод не требуется. Не добавляйте в design вывод, задержки или завершение симуляции. Ожидаемый вывод — одна строка десятичных значений для каждого наблюдения, разделённых одним пробелом и заканчивающихся символом новой строки.
Попробуйте сами
module dut (input clk, input rst, input en, input [7:0] a, output reg [7:0] q);
// Замените этот заполнитель на ваш дизайн.
initial q = 0;
endmoduleВ этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Проектирование и верификация RTL
1Надёжная комбинационная RTL-логика
Значения по умолчанию предотвращают защёлкиПриоритетные кодировщикиПроверка One-HotБезопасное декодирование caseПовторение — маршрутизатор запросов4Управляемая последовательная RTL-логика
Приоритет сброса и разрешенияСчётчики с насыщениемКонвейеризация данных и validОбнаружение дискретизированных фронтовПовторение — счётчик событий2Разрядности и знаковая арифметика
Сохранение битов переносаСравнения знаковых чиселАрифметические сдвиги вправоПереполнение и насыщениеПовторение — знаковая разностьПотренируйтесь самостоятельно: Онлайн-компилятор Verilog