Язык AHDL

       

Реализация логики с активными низкими уровнями


Активный низкий сигнал становится активным, когда его значение равно 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.



Содержание раздела