Изучение VHDL

       

Тело пакета.


Тело пакета необходимо приводить в паре с объявлением пакета, если в последнем объявлены подпрограммы или отложенные константы. Оно имеет синтаксис:

\объявление пакета\::= package body \идентификатор\ is

                                  {объявление в теле пакета}

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

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

Ниже приведен пример пакета функций и констант, который удобно применять для сокращения работы по программированию логики с булевскими типами.

package short_boolean is

    constant b0:boolean:=false;

    constant b1:boolean:=true;

   function b(x:bit) return boolean ;

   function "not"(x:bit) return boolean ;



   function "and"(x1,x2:bit) return boolean ;

   function "or"(x1,x2:bit) return boolean ;

end package;

package body short_boolean is

   function b(x:bit) return boolean is

   begin 

             return x ='1';

   end;

   function "not"(x:bit) return boolean is  

   begin 

             return x ='0';

   end;

   function "and"(x1,x2:bit) return boolean is  

   begin 

             return (x1 and x2) ='1';

   end;

   function "or"(x1,x2:bit) return boolean is  

   begin 

             return (x1 or x2) ='1';

        end;

   end package body;

Теперь, если данный пакет присоединить к объекту проекта с помощью описаний library и  use, то подстановка констант и функций этого пакета во многих местах, например, в операторах if , when сокращает запись программы.

Пакеты пользователя, если они соответствуют синтезируемому стилю и не содержат функции разрешения конфликтов выходов источников сигнала, обычно без труда подключаются к проекту для синтеза.

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