Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Применение атрибутов при моделировании




Синхронных триггеров

if CLK='1' and CLK'event then -- D- триггер

q1<=a;

end if;

if not CLK'stable then -- D- триггер

q2<=a;

end if;

if CLK'last_value /= CLK then -- D- триггер

q3<=a;

end if;

if CLK'active-- D- триггер

q4<=a;

end if;

q5<=CLK'transaction; -- T- триггер

Атрибуты для скалярного типа

T'left – самое левое значение множества элементов скалярного типа Т.

T'right – самое правое значение множества элементов скалярного типа Т.

T'high – наибольшее значение в множестве элементов скалярного типа Т.

T'low – наименьшее значение в множества элементов скалярного типа Т.

T'image(X) – функция строкового представление выражения Х типа Т.

T'value(Х) – функция значения типа Т от строкового представления Х.

T'pos(Х) – функция номера позиции элемента Х типа Т.

T'val(Х) – функция значения элемента типа Т, стоящего в позиции Х.

Атрибуты для скалярного типа

Примеры атрибутов:

type st is (one,two,three);

st'right = three,

st'pos(three) = 2,

st'val(1) = two.

positive'low = 1,

positive'high =2147483647.

integer'value("1_000") =1000,

integer'image(330) ="330".

Атрибуты для регулярного типа

A'left[(N)] – левое значение диапазона индексов по N-й размерности.

A'right[(N)] - правое значение диапазона индексов по N-й размерности.

A'high[(N)] - наибольшее значение диапазона индексов по N-й размерности.

A'low[(N)] - наименьшее значение диапазона индексов по N-й размерности.

A'range[(N)] – диапазон индексов по N-й размерности.

A'reverse_range[(N)] – обратный диапазон индексов по N-й размерности.

A'length[(N)] – протяженность диапазона индексов по N-й размерности.

A'ascending[(N)] - функция, равная true, если диапазон индексов по N-й размерности - возрастающий.

Атрибуты для регулярного типа

Примеры

type s2 is array(2 downto 1, 0 to 3) of integer;

s2'left(1) = 2,

s2'right(2) = 3,

s2'high(1) = 2,

s2'low(2) = 0,

s2'range(2) = 0 to 3,

s2'reverse_range(1) = 1 to 2,

s2'length(2) = 4.

Атрибуты пользователя

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

 

 

Начальное значение порта или настроечной константы.

Начальное значение объекта в его объявлении - это то значение, которое принимает объект перед первым циклом моделирования. Если начальное значение не присвоено, то симулятор присваивает наименьшее значение данного типа, если тип - числовой или самое левое значение, если тип - перечисляемый.

Например, если тип STD_LOGIC, то начальное значение будет U - неинициализировано. Если при моделировании не предусматривается подача сигналов на порт такого типа, то этот порт лучше инициализировать, например, значением '0'.

Начальное значение может быть выражением.

Но значение выражения должно быть вычисленным до момента трансляции данного объявления.

Например, первое объявление порта:

port(bb:bit:=aa;

aa:bit:='1');

неверно, так как при его рассмотрении компилятор еще не имеет сведений об идентификаторе аа.

В аппаратной модели начальное значение порта эквивалентно состоянию шины сразу после включения питания до прихода сигналов сброса, т.е. оно не определено.

Настроечные константы generic кодируют определенные свойства объекта проекта, например, разрядность линий связи, параметры задержки.

 

 

Охранные выражения блоков. Охранное выражение.

Охранные выражения блоков

Рассмотрим архитектурное тело addl_e одноразрядного сумматора в виде охраняемого блока.

entity addl_e is

port (bl,b2,enable: in BIT; Охранное выражение

cl,sl: out BIT);

end addl_e;

architecture struct_3 of addl_e is begin

p0: block (enable = ‘1')

begin

sl<= guarded (bl xor b2); Охраняемый блок

cl<= guarded (bl and b2);

end block p0;

end struct_3

Охранным выражением блока является выражение enable = 1. Если это выражение принимает значение true (истина), то охраняемые конструкции (назначения сигналов) выполняются, т. е. одноразрядный сумматор складывает числа, если же значение выражения является false (ложь), то охраняемые назначения сигналов не выполняются, т. е. сумматор не складывает числа bl, b2. Охрана назначения сигналов осуществляется указанием ключевого слова guarded.

Пример описания D-триггера с асинхронным сбросом в виде блока с охранным выражением (clk = «1» or clr = «1»)

Entity dlatch is

port (D,clk, clr: in bit; Q: out bit);

end dlatch;

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...