Основы VHDL
3. Signal и неблокирующее присвоение
Помимо непосредственного описания взаимодействия между портами существуют тип объектов под названием signal. Данные объекты инициализируются в архитектуре до начала описания самой архитектуры. Пример применения объектов типа сигнал приведен ниже:
Сигнал обычно называют аналогией "провода" — при помощи таких объектов как при помощи проводов можно соединять между собой операции над входами и другие компоненты или выходы.
!NB на примере кода выше можно заметить, что сначала "провод" подключается к выходу, а затем только к операции логического И между входными портами. Результат синтеза этого кода не будет ничем отличаться от предыдущего примера: это демонстрирует главный нюанс, который часто путает начинающих: VHDL — это язык описания аппаратуры, а не язык программирования; порядок строк в этом примере не влияет на результат. Об этом говорит само название вида присвоения которое используется при "передаче" данных справа от выражения в объект слева: процедура "передачи" не блокирует выполнение строк ниже, а значит они выполняются "одновременно".