Сохранение битов переноса
Часть раздела Проектирование и верификация RTL путешествия по Verilog на Coddy. Урок 6 из 38.
Разрядность сигнала определяет, какие биты могут быть представлены. Явно обозначайте арифметический замысел, расширяя операнды перед выполнением операции. При сложении двух беззнаковых 8-битных значений может потребоваться девять разрядов для результата; присваивание только восьми разрядов сохраняет младшие восемь и теряет перенос.
Соответствующий фрагмент; окружающие объявления и соединения предоставлены в задании.
wire [8:0] total;
assign total = {1'b0,a} + {1'b0,b};Каждый операнд явно имеет ширину девять бит, соответствующую полной сумме.
Выберите требуемую разрядность результата и расширьте операнды перед выполнением арифметических операций.
Задание
СреднеСложите беззнаковые 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В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Проектирование и верификация RTL
1Надёжная комбинационная RTL-логика
Значения по умолчанию предотвращают защёлкиПриоритетные кодировщикиПроверка One-HotБезопасное декодирование caseПовторение — маршрутизатор запросов4Управляемая последовательная RTL-логика
Приоритет сброса и разрешенияСчётчики с насыщениемКонвейеризация данных и validОбнаружение дискретизированных фронтовПовторение — счётчик событий2Разрядности и знаковая арифметика
Сохранение битов переносаСравнения знаковых чиселАрифметические сдвиги вправоПереполнение и насыщениеПовторение — знаковая разностьПотренируйтесь самостоятельно: Онлайн-компилятор Verilog