Изучение VHDL

       

Изучение VHDLАрхитектура объекта.


Архитектура объекта представляет собой отдельную часть, в которой описано, каким образом реализован объект. Ее синтаксис:

\тело архитектуры\::= architecture \идентификатор\ of \имя объекта\ is

                               {\объявление в блоке\}

                        begin

                          { \параллельный оператор\}

                        end [architecture][\идентификатор\];

Идентификатором обозначается имя конкретного тела архитектуры, а имя объекта указывает, который из объектов описан в этом теле. Одному объекту проекта может соответствовать несколько архитектур, в каждой из которых описан один из вариантов реализации объекта.

Объявление в теле архитектуры такое же, как в блоке и им может быть: объявление и тело процедуры или функции, объявление типа и подтипа, объявление файла, псевдонима, константы, глобальной переменной, объявление и спецификация атрибута, объявление группы, описание use, а также объявление компонентов. Объявленные в теле архтектуры типы, сигналы, подпрограммы видимы только в пределах этой архитектуры.

 Исполнительную часть архитектуры составляют параллельные операторы, такие как процесс, блок, параллельное присваивание сигналу и др. Эти операторы исполняются параллельно.

Так как все операторы в исполнительной части тела архитектуры – параллельные,  их взаимный порядок – безразличен. Хорошим стилем считается, когда параллельные операторы ставятся в последовательности, соответствующей цепочкам вершин граф-схемы алгоритма, реализуемого в архитектуре.

Примером тела архитектуры служит архитектура для объявления объекта RS – триггера:

entity RS_FF is     --объявление объекта

   generic(delay:time);



   port(R, S: in bit;

        Q: out bit:='0';

        nQ: out bit:='1');

begin

      assert (R and S) /='1' report" In RS_FF R=S=1" severity error;

end entity RS_FF;

architecture BEHAV of RS_FF is  --описание архитектуры объекта

begin

   process(S,R)

        variable qi: bit;

   begin

       if S='1' then

             qi:='1' ;

       elsif R='1' then

             qi:='0';

       end if;

       Q<=qi after delay;

       nQ<=not qi after delay;

   end process;

end architecture BEHAV;

Данную программу, включающую объявление объекта и тело архитектуры можно транслировать и моделировать. Если из объявления объекта удалить исполнительную часть и описание generic, то программа будет написана синтезируемым стилем и ее можно также компилировать в логическую схему.

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