Menu
Coddy logo textTech

Переполнение и насыщение

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

Переполнение знакового типа означает, что математический результат не помещается в выбранную разрядность signed. Оно отличается от переноса беззнакового типа. При сложении signed переполнение происходит, когда входные значения имеют одинаковый знак, а знак результата изменяется. Насыщение ограничивает значение представимым предельным значением вместо циклического перехода.

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

assign overflow = (a[7] == b[7]) && (sum[7] != a[7]);

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

Проверяйте переполнение signed независимо от переноса; расширяйте разрядность перед реализацией насыщения.

challenge icon

Задание

Средне

Сложите знаковые 8-битные a и b. Верните знаковый результат y с циклическим переполнением и overflow=1 только тогда, когда точная математическая сумма выходит за пределы от -128 до 127. Столбцы вывода: y, overflow. Все входные значения являются известными двоичными значениями.

Завершите design.v, сохранив имена его модулей и порты. Заблокированный testbench.v подаёт изменения входных данных и выводит результаты после их установления. Он выбирает сценарий с помощью аргумента симулятора, например +CASE=1; стандартный ввод не требуется. Не добавляйте в проект вывод, задержки или завершение симуляции. Ожидаемый вывод — одна строка десятичных значений для каждого наблюдения, разделённых одним пробелом и заканчивающихся символом новой строки.

Попробуйте сами

module dut (input signed [7:0] a, input signed [7:0] b, output signed [7:0] y, output overflow);
    // Замените этот заполнитель на ваш дизайн.
    assign y = 0;
    assign overflow = 0;
endmodule
quiz iconПроверьте себя

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

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

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