attribute <design_attribute> : string;
Синтаксис для назначения специфического значения атрибута сигнала:
attribute < design_attribute> of <signal_name> : signal is "<design_attribute_value>";
Синтаксис для назначения специфического значения атрибута составляющего образца:
attribute < design_attribute> of <instance_label> : label is "<design_attribute_value>";
Фрагмент кода приведенный ниже - секция структурного листа схемы с атрибутами проекта для сети программируемых логических элементов.
library ieee;
use ieee.std_logic_1164.all;
entity attrib is
port(
sysclk, da, dc, dd : in std_logic;
qa : out std_logic);
end attrib;
architecture structure of attrib is
-- внешние входные атрибуты порта
attribute clk : string;
attribute clk of sysclk : signal is "fastclk";
attribute lock : string;
attribute lock of sysclk : signal is "3";
-- внешние атрибуты порта вывода
attribute pullup : string;
attribute pullup of qa : signal is "on";
-- промежуточные сигналы
signal u2_o, u4_o : std_logic;
signal u1_o : std_logic;
-- промежуточные атрибуты сигнала
attribute preserve : string;
attribute preserve of u1_o : signal is "on";
-- атрибуты образца
attribute regtype : string;
attribute regtype of u1 : label is "ioc";
attribute regtype of u3 : label is "ioc";
begin
-- решетчатые примитивы
u1 : fd11 port map (d0=>u2_o,clk=>sysclk,q0=>u1_o);
u3 : fd11 port map (d0=>u4_o,clk=>sysclk,q0=>qa);
u2 : or2 port map (a0=>dd,a1=>dc,z0=>u2_o);
u4 : or2 port map (a0=>da,a1=>u1_o,z0=>u4_o);
end structure;
VHDL пакет Exemplar_1164.
Предопределенные функции.
Образец пакета определяет набор функций, которые часто используются в VHDL для синтеза. Прежде всего, пакет определяет перегруженные операторы И, И-НЕ, ИЛИ, НЕ-ИЛИ, Исключающее ИЛИ, а не elbit_matrix - двумерный массив значений типа elbit и типы elbit и elbit_vector.
Пакет Exemplar_1164 определяет большой набор функций для стандартных типов bit и bit_vector. Для совместимости с предыдущими версиями, эти функции также определены для типов elbit_vector и elbit.
Все перечисленные функции определены cтандартом IEEE 1164 для типов std_logic, std_ulogic, std_logic_vector, и std_ulogic_vector в пакете ex_1164 в файле ex_1164.vhd.
add
add (op_l, op_r: std_logic_vector) возвращает std_logic_vector;
Берет два вектора и возвращает вектор. Полученный вектор на один бит больше чем самый большой из входных векторов и представляет из себя сумму входных векторов, включая бит переноса. Крайний левый бит находится в старшем значащем разряде. Функция add это векторное сложения двух векторов без знака. Самый маленький входной вектор '0', которой расширяется до старшего значащего разряда самого большого входного вектора прежде, чем происходит сложение.
add ("1011","0100") result : "01111" (add (11,4) == 15)
add ("0011","100") result : "00111" (add (3,4) == 7)
add2
add2 (op_l, op_r: std_logic_vector) возвращает std_logic_vector;
Тот же самое что и add, но теперь вектора представлены в двоичном виде. Знаковый разряд это самый левый бит в векторах.
add2 ("1011","0100") result : "00001" (add2 (-5,4) == 1)
add2 ("0011","100") result : "11111" (add2 (3,-4) == -1)
boo2int
boo2int (l: boolean) возвращает integer;
Берет булево значение и возвращает целое число. Истинное булево значение возвратит 1, ложное возвратит 0.
bool2elb
bool2elb (l: boolean) возвращает std_logic;
Берет булевое и возвращает бит std_logic. Если булево значение истинно, std_logic принимает значение '1', ложно, примет значение '0'.
comp2
comp2 (op: std_logic_vector) возвращает std_logic_vector;
Берет вектор и возвращает вектор того же самого размера. Эта функция предполагает, что входной вектор будет представлен в двоичном виде и возвратит (негативное) дополнение входного значения. Самый правый бит это младший разряд.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.