Реализация логики с активными низкими уровнями
Активный низкий сигнал становится активным, когда его значение равно GND. Активные низкие сигналы могут быть полезны при управлении памятью, периферийными устройствами и микропроцессорными кристаллами.
Файл daisy.tdf, приведенный ниже, является модулем схемы арбитра по методу дейзи-цепочки. Он принимает запросы на доступ к шине от самого себя и от следующего модуля в цепочке. Доступ к шине предоставляется модулю с наивысшим приоритетом, запросившим его.
SUBDESIGN daisy
(
/local_request : INPUT;
/local_grant : OUTPUT;
/request_in : INPUT; % от младшего приоритета %
/request_out : OUTPUT; % к старшему приоритету %
/grant_in : INPUT; % от старшего приоритета %
/grant_out : OUTPUT;% к младшему приоритету %
)
BEGIN
DEFAULTS
/local_grant = VCC;% активные низкие выходы %
/request_out=VCC;
%должны быть равны по умолчанию %
/grant_out = VCC; % VCC %
END DEFAULTS;
IF /request_in == GND # /local_request == GND THEN
/request_out = GND;
END IF;
IF /grant_in == GND THEN
IF /local_request == GND THEN
/local_grant = GND;
ELSIF /request_in == GND THEN
/grant_out = GND;
END IF;
END IF;
END;
Все сигналы в этом файле активные низкие. Altera рекомендует, чтобы Вы выбирали схему именования узлов, ясно указывающую имена активных низких сигналов, например, начальное "n" или слеш (/).
Операторы If Then
используются для определения активности модулей, т.е. равен ли сигнал GND. Если сигнал активный, то активизируются уравнения, следующие за соответствующим оператором If Then.