Параллельность: код — это чертёж

Тридцатое вступление открывает третью часть курса — схемотехнику на языке Verilog. Первый шаг: понять, что строка кода здесь не приказ, а описание детали на чертеже.

Опыт: одна схема, два вентиля

Схема из двух вентилей: НЕ переворачивает бит A, И умножает результат на B. Перебор всех четырёх сочетаний даёт один ответ: лампа Out горит только при A=0 и B=1. Схема одна, и поведение у неё одно.

Прогноз: две строки модуля

В модуле написаны две строки: and step1 (w, a, b); и or step2 (out, w, c);. При a=1, b=1, c=0 выход out равен 1: обе детали работают одновременно, w становится единицей, и ИЛИ тут же выдаёт результат. Строки не «догоняют» друг друга.

Правило: чертёж, а не список дел

Строка Verilog описывает деталь чертежа, как элемент на листе: «раньше» и «позже» на чертеже не бывает. Это свойство называется параллельностью. В строке and my_gate (out, a, b); сначала стоит тип детали (and), затем её имя (my_gate), а в скобках первым идёт выход — куда результат уходит.

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

На этом уровне вы напишете первую строку Verilog и вызовете вентиль И. Каждый уровень третьей части добавляет в чертёж новые детали — и ни одна из них не ждёт очереди, как это и происходит в настоящей микросхеме.

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