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