Параллельность: код — это чертёж
Тридцатое вступление открывает третью часть курса — схемотехнику на языке 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 и вызовете вентиль И. Каждый уровень третьей части добавляет в чертёж новые детали — и ни одна из них не ждёт очереди, как это и происходит в настоящей микросхеме.