Язык AHDL

         

Реализация тристабильных шин


Примитивы TRI, которые управляют портами OUTPUT или BIDIR, имеют вход разрешения выхода (Output Enable), который переводит выход в высокоимпедансное состояние.

Вы можете создать тристабильную шину путем соединения примитивов TRI и портов OUTPUT или BIDIR вместе с помощью узла TRI_STATE_NODE типа. Схема управления должна обеспечивать разрешение не более одного выхода в одно и тоже время.

Файл tri_bus.tdf, приведенный ниже, реализует тристабильную шину, используя узел TRI_STATE_NODE типа, созданный в объявлении Node.

SUBDESIGN tri_bus

(

   in[3..1], oe[3..1] : INPUT;

   out1               : OUTPUT;

)

VARIABLE

   tnode : TRI_STATE_NODE;

BEGIN

   tnode = TRI(in1, oe1);

   tnode = TRI(in2, oe2);

   tnode = TRI(in3, oe3);

   out1 = tnode;

END;

В этом примере несколько присваиваний узлу tnode, связывают сигналы вместе. Для реализации тристабильной шины требуется тип TRI_STATE_NODE, вместо типа NODE: для типа NODE сигналы связываются вместе с помощью проводного И или проводного ИЛИ, тогда как для типа TRI_STATE_NODE сигналы соединяются с тем же самым узлом. Однако, если только одна переменная присваивается узлу TRI_STATE_NODE, то она трактуется как переменная обычного типа NODE.



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