Накопление образцов
Часть раздела Проектирование и верификация RTL путешествия по Verilog на Coddy. Урок 31 из 38.
Создайте повторно используемый монитор для потока беззнаковых отсчётов. Вы будете накапливать значения, учитывать сигналы разрешения и очистки, подсчитывать принятые отсчёты и сообщать, достигнут ли порог. Во всех пяти шагах сохраняются один и тот же интерфейс модуля и фиксированный тестовый стенд. Зарезервированные выходы приобретают своё поведение на последующих шагах.
Задание
СложноСоздай один Sample Monitor за пять шагов. На каждом переднем фронте синхронный rst очищает total; в противном случае добавляй беззнаковые данные к total. Используй 16-битный регистр total. На этом первом шаге en и clear не используются, а в сценариях en=1 и clear=0. count и alarm — зарезервированные выходы, которые остаются равными нулю. Все входные значения известны. Сценарии содержат не более 40 фронтов, поэтому total помещается в 16 бит. Фиксированный testbench выводит total для сценариев 1–9, total и count для сценариев 10–12, а также total, count и alarm для сценариев 13–15. Оцениваются только сценарии, включённые для этого шага.
Заполни design.v, сохранив имена его модулей и портов. Заблокированный testbench.v задаёт изменения входов и выводит выходы после их стабилизации. Он выбирает сценарий с помощью аргумента симулятора, например +CASE=1; стандартный ввод не требуется. Не добавляй в design вывод, задержки или завершение симуляции. Ожидаемый вывод — одна строка десятичных значений для каждого наблюдения, разделённых одним пробелом и завершающихся символом новой строки.
Попробуйте сами
module dut(input clk,rst,en,clear, input [7:0] data, input [15:0] limit, output reg [15:0] total, output reg [3:0] count, output alarm);
initial begin total=0;count=0;end
assign alarm=0;
endmoduleВсе уроки раздела Проектирование и верификация RTL
1Надёжная комбинационная RTL-логика
Значения по умолчанию предотвращают защёлкиПриоритетные кодировщикиПроверка One-HotБезопасное декодирование caseПовторение — маршрутизатор запросов4Управляемая последовательная RTL-логика
Приоритет сброса и разрешенияСчётчики с насыщениемКонвейеризация данных и validОбнаружение дискретизированных фронтовПовторение — счётчик событий7Проект — пример монитора
Накопление образцовПриём разрешённых образцов2Разрядности и знаковая арифметика
Сохранение битов переносаСравнения знаковых чиселАрифметические сдвиги вправоПереполнение и насыщениеПовторение — знаковая разностьПотренируйтесь самостоятельно: Онлайн-компилятор Verilog