Уровень 33: Полусумматор (Verilog)
Задание
Напишите полусумматор на Verilog. Полусумматор складывает два бита и выдаёт два результата: sum (сумма) и carry (перенос).
Модуль HalfAdder принимает два однобитных входа (a, b) и выдаёт два выхода (sum, carry).
Материалы по теме
- Двоичная математика для начинающих
- Анатомия сумматора
- Half Adder — полусумматор
Решение
Полусумматор — две независимые логические функции от одних и тех же входов: sum = a XOR b, carry = a AND b. Обе вычисляются параллельно — строки кода описывают одновременные соединения.
- Сумма:
xor g1(sum, a, b); - Перенос:
and g2(carry, a, b);
Промежуточные провода не нужны — выходы примитивов подключаются прямо к портам модуля. XOR и AND читают одни и те же входы a и b одновременно. Каждому проводу нужно уникальное имя экземпляра (g1, g2).