Испытание — ограниченная сумма
Часть раздела Проектирование и верификация RTL путешествия по Verilog на Coddy. Урок 38 из 38.
Задание
СреднеНа разрешённых восходящих фронтах накапливайте 8-битный образец signed в signed q, ограничивая результат значениями -128 и 127. Устанавливайте sticky clipped при каждом возникновении насыщения; после установки этот флаг остаётся установленным до тех пор, пока не будет выполнен rst или clear. Оба синхронных управляющих сигнала сбрасывают q и clipped и имеют приоритет над en. На отключённых фронтах оба значения сохраняются. Столбцы вывода: q, clipped. Все управляющие сигналы и данные стабильны до каждого восходящего фронта тактового сигнала; результаты наблюдаются после него.
Завершите design.v и сохраните имена его модулей и порты. Заблокированный testbench.v подаёт изменения входных данных и выводит результаты после их стабилизации. Он выбирает сценарий с помощью аргумента симулятора, например +CASE=1; стандартный ввод не требуется. Не добавляйте в design вывод, задержки или завершение симуляции. Ожидаемый вывод — одна строка десятичных значений для каждого наблюдения, разделённых одним пробелом и заканчивающихся символом новой строки.
Попробуйте сами
module dut (input clk, input rst, input clear, input en, input signed [7:0] sample, output reg signed [7:0] q, output reg clipped);
// Замените этот заполнитель на ваш дизайн.
initial q = 0;
initial clipped = 0;
endmoduleВсе уроки раздела Проектирование и верификация RTL
1Надёжная комбинационная RTL-логика
Значения по умолчанию предотвращают защёлкиПриоритетные кодировщикиПроверка One-HotБезопасное декодирование caseПовторение — маршрутизатор запросов4Управляемая последовательная RTL-логика
Приоритет сброса и разрешенияСчётчики с насыщениемКонвейеризация данных и validОбнаружение дискретизированных фронтовПовторение — счётчик событий2Разрядности и знаковая арифметика
Сохранение битов переносаСравнения знаковых чиселАрифметические сдвиги вправоПереполнение и насыщениеПовторение — знаковая разность5Память и таблицы поиска
Комбинационные ROM-таблицыХранилище на массиве регистровПорты чтения с регистрациейПересылка при чтении и записиПовторение — банк с двумя портами чтения8Финальные испытания
Испытание — конвейер чётностиИспытание — события шаблоновИспытание — ограниченная суммаПотренируйтесь самостоятельно: Онлайн-компилятор Verilog