7. Конструкция process

7.1. Защелка на VHDL

!NB: Хотя защелка распространена в электронике, её использование в ПЛИС стараются избегать, а некоторые инструменты синтеза даже считают использование защелок ошибкой

Когда в конструкции process будут описаны не все ветви условного оператора, возникает вопрос: поведение какого логического элемента данное описание имитирует?


Приведенный код выше демонстрирует, что вывод q определен только для активного значения сигнала разрешения (en). Когда же на этом входе будет логический ноль любое изменение входа d никак не должно изменить значение на выходе q. Подобное поведение соответствует описанию защелки. Инструменты синтеза могут не сразу увидеть защелку в дизайне, но если увидят, то внешне изобразят следующим образом:

А в списке сообщений появится следующее:

Warning (10631): VHDL Process Statement warning at simple_process.vhd(13): inferring latch(es) for signal or variable "q", which holds its previous value in one or more paths through the process