Уровень 33: Полусумматор (Verilog)

Задание

Напишите полусумматор на Verilog. Полусумматор складывает два бита и выдаёт два результата: sum (сумма) и carry (перенос).

Модуль HalfAdder принимает два однобитных входа (a, b) и выдаёт два выхода (sum, carry).

Решение

Полусумматор — две независимые логические функции от одних и тех же входов: sum = a XOR b, carry = a AND b. Обе вычисляются параллельно — строки кода описывают одновременные соединения.

  1. Сумма: xor g1(sum, a, b);
  2. Перенос: and g2(carry, a, b);

Промежуточные провода не нужны — выходы примитивов подключаются прямо к портам модуля. XOR и AND читают одни и те же входы a и b одновременно. Каждому проводу нужно уникальное имя экземпляра (g1, g2).