Полный сумматор Verilog
Сумматор — это цифровой компонент, выполняющий сложение двух чисел. Это основной компонент внутри ALU процессора, который используется для увеличения адресов, индексов таблиц, указателей буферов и во многих других местах, где требуется добавление.
Полный сумматор добавляет входной перенос вместе с другими входными двоичными числами для получения суммы и выходного переноса.
Таблица правды
A | Б | Цин | Выход | Сумма |
---|---|---|---|---|
0 | <тд>0тд> <тд>0тд> <тд>0тд> <тд>0тд>||||
0 | <тд>0тд> <тд>1тд> <тд>0тд> <тд>1тд>||||
0 | <тд>1тд> <тд>0тд> <тд>0тд> <тд>1тд>||||
0 | <тд>1тд> <тд>1тд> <тд>1тд> <тд>0тд>||||
1 | <тд>0тд> <тд>0тд> <тд>0тд> <тд>1тд>||||
1 | <тд>0тд> <тд>1тд> <тд>1тд> <тд>0тд>||||
1 | <тд>1тд> <тд>0тд> <тд>1тд> <тд>0тд>||||
1 | <тд>1тд> <тд>1тд> <тд>1тд> <тд>1тд>
Дизайн
Ниже показан пример 4-битного сумматора, который принимает два двоичных числа через сигналы a и b, оба из которых имеют ширину 4 бита. Поскольку сумматор представляет собой комбинационную схему, его можно смоделировать в Verilog, используя непрерывное присвоение с помощью 03
. или 16
блок со списком чувствительности, который включает все входы. Показанный ниже код относится к предыдущему подходу.
06
В приведенном ниже коде используется 28
блок, который выполняется всякий раз, когда значение любого из его входов изменяется.
15пре>Схема оборудования
Тестовый стенд
23Обратите внимание, что когда a и b складываются, чтобы получить число шириной более 4 бит, сумма сбрасывается до нуля, а c_out становится 1. Например, строка, выделенная желтым цветом, в сумме дает 0x11, а младшие 4 бита назначаются сумма и бит №4 в c_out.
Журнал моделирования37
Verilog