Menu
Coddy logo textTech

Сравнения знаковых чисел

Часть раздела Проектирование и верификация RTL путешествия по Verilog на Coddy. Урок 7 из 38.

Один и тот же битовый шаблон может представлять разные знаковые (signed) и беззнаковые числа. Объявляйте оба операнда как signed при сравнении значений в дополнительном коде. Смешивание знаковых (signed) и беззнаковых операндов может изменить интерпретацию сравнения. Конкатенации являются беззнаковыми выражениями, даже если они содержат сигналы signed.

Соответствующий фрагмент; окружающие объявления и соединения предоставлены в задании.

wire signed [7:0] a,b;
assign less = a < b;

Объявления signed обеспечивают сравнение отрицательных значений как меньших неотрицательных.

Всегда используйте операнды сравнения согласованно как signed и расширяйте значения signed их знаковым битом.

challenge icon

Задание

Средне

Сравните 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
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Проектирование и верификация RTL

Потренируйтесь самостоятельно: Онлайн-компилятор Verilog