Повторение — проверка сумматора
Часть раздела Проектирование и верификация RTL путешествия по Verilog на Coddy. Урок 30 из 38.
Задание
СреднеРеализуйте аудит для беззнакового четырёхбитного сумматора. Накапливайте значения checked и errors, как в уроке о scoreboard, и сохраняйте биты покрытия: бит 0 отмечает a=b=0, бит 1 отмечает a=b=15, а бит 2 отмечает все остальные пары входных значений. Сравнивайте actual с полной пятибитной суммой, используя неравенство для четырёх состояний. Вызывающая сторона инициализирует все счётчики и флаги. Этот модуль содержит предназначенную только для симуляции task, вызываемую заблокированным тестбенчем. Столбцы вывода: checked, errors, seen.
Завершите design.v и сохраните имена его модулей и портов. Заблокированный testbench.v подаёт изменения на входы и выводит результаты после их стабилизации. Он выбирает сценарий с помощью аргумента симулятора, например +CASE=1; стандартный ввод не требуется. Оставьте вывод и управление сценариями в заблокированном тестбенче; реализуйте только тело task. Ожидаемый результат — одна строка десятичных значений для каждого наблюдения, разделённых одним пробелом и заканчивающихся символом новой строки.
Попробуйте сами
module dut;
task audit;
input [3:0] a,b;
input [4:0] actual;
inout integer checked,errors;
inout [2:0] seen;
reg [4:0] expected;
begin
// Завершите задачу checker.
checked=checked;errors=errors;seen=seen;
end
endtask
endmoduleВсе уроки раздела Проектирование и верификация RTL
1Надёжная комбинационная RTL-логика
Значения по умолчанию предотвращают защёлкиПриоритетные кодировщикиПроверка One-HotБезопасное декодирование caseПовторение — маршрутизатор запросов4Управляемая последовательная RTL-логика
Приоритет сброса и разрешенияСчётчики с насыщениемКонвейеризация данных и validОбнаружение дискретизированных фронтовПовторение — счётчик событий2Разрядности и знаковая арифметика
Сохранение битов переносаСравнения знаковых чиселАрифметические сдвиги вправоПереполнение и насыщениеПовторение — знаковая разность3Переиспользуемый RTL
Комбинационные функцииПараметры с безопасной разрядностьюЦиклы generateУсловный generateПовторение — переиспользуемая битовая маска6Самопроверяющиеся тестовые стенды
Проверки четырёх состоянийПовторно используемые задачи-проверяющиеЭталонные модели и оценкаПокрытие границ и управленияПовторение — проверка сумматораПотренируйтесь самостоятельно: Онлайн-компилятор Verilog