Menu
Coddy logo textTech

Сохранение битов переноса

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

Разрядность сигнала определяет, какие биты могут быть представлены. Явно обозначайте арифметический замысел, расширяя операнды перед выполнением операции. При сложении двух беззнаковых 8-битных значений может потребоваться девять разрядов для результата; присваивание только восьми разрядов сохраняет младшие восемь и теряет перенос.

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

wire [8:0] total;
assign total = {1'b0,a} + {1'b0,b};

Каждый операнд явно имеет ширину девять бит, соответствующую полной сумме.

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

challenge icon

Задание

Средне

Сложите беззнаковые 8-битные значения a и b, не теряя перенос. Верните полную 9-битную сумму в total. Явно расширьте оба операнда до девяти битов. Столбцы вывода: total. Все значения стимулов являются известными двоичными значениями.

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

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

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

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

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

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