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