Инстанцирование: от чертежа к детали

Вступление к уровню 34: один и тот же узел не рисуют дважды. Готовый модуль собирают в схему строкой текста — так деталь появляется на чертеже по своему чертежу.

Опыт: полный сумматор из вентилей

Полный сумматор — пять вентилей, складывающих три бита: A, B и перенос. Перебор всех восьми сочетаний собирает таблицу. Крайний случай: 1 + 1 + 1 = 11 в двоичной записи — единица в Sum и перенос в следующий разряд.

Перенос: читаем подключение по именам

У модуля HalfAdder есть порты .a, .b, .sum и .carry. Запись .sum(s1) означает: порт sum детали соединён с проводом s1. Слева от скобки — порт чертежа, внутри скобок — ваш провод. Порт соединяется, а не получает значение и не переименовывается.

Правило: деталь по чертежу

Описанный модуль — чертёж; инстанцирование — фраза «собери деталь по этому чертежу и назови её так-то»: HalfAdder ha1 ( .a(x), .b(y), .sum(w), .carry(c) );. Имя детали (ha1, ha2) должно быть уникальным — по нему деталь находят на чертеже и соединяют с другими. Одна и та же схема работает сколько угодно раз, и код короче, чем вентили вручную.

Зачем это нужно

На этом уровне вы опишете полный сумматор строками — схему, которую перед этим рисовали из пяти вентилей. Дальше модули вкладываются друг в друга: из полусумматоров — полный сумматор, из сумматоров — АЛУ, из АЛУ — процессор.

Пройти вступление в игре · Гайд уровня 34 · Все вступления