Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Алфавит моделирования и пакеты




Атрибуты сигналов и контроль запрещенных ситуаций.

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

Входные сигналы Х1 и Х2 изменяются в противоположном направлении, и время их перекрытия меньше необходимого, допустим равного 10 нс.

Средством отображения информации о запрещенных ситуациях в языке VHDL является оператор утверждения (оператор контроля, оператор аномалии) assert. В нем помимо контролируемого условия, которое не должно быть нарушено, т. е. должно быть истинным, записывается сообщение report о нарушении и уровень серьезности ошибки severity.

Для приведенного примера в описании архитектуры вентиля 2И может быть вставлено утверждение о том, что все будет нормально, если внутренний сигнал Z будет равен 1 не менее чем 10 нс., иначе идет сообщение об ошибке.

Для этого необходимо, чтобы в момент среза сигнала его задержанное на 10 нс. значение было равно 1. Если оно равно 0, то длительность сигнала меньше 10 нс.

Время предыдущего события в сигнале Z можно получить атрибутом LAST_EVENT.

Architecture C1 of 12 is

Signal Z: bit =’0’;

Begin

Process (X1, X2);

Z<= X1 and X2;

Assert not (Z=’0’ and not Z’STABLE and Z’DELAYED (10 ns)= ‘0’)

Report ”риск сбоя в 1 в вентиле 12”

Severity worning;

Y<= transport Z after 10 ns;

End C1;

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

Таблица 2.1. Предопределенные атрибуты сигналов

Пример Тип результата Пояснения
S’QUIET(Т) Boolean TRUE, если сигнал S пассивен на интервале Т.
S’TRANSACTION Bit Инвертируется S каждый раз, когда S активен (изменяется)
S’STABLE(T) Boolean TRUE, если не было событий за интервал Т.
S’DELAYED(T) Signal Предыдущее значение S в момент NOW-T
S’ACTIVE Boolean TRUE, если сигнал активен
S’LAST_ACTIVE Time Время, когда сигнал последний раз был активен
S’EVENT Boolean TRUE, если происходит cобытие в S
S’LAST_VALUE Signal Значение сигнала перед последним событием в нем
S’LAST_EVENT Time Время последнего события в S

Описание пакета VHDL задается ключевым словом package и используется, чтобы собирать часто используемые элементы конструкции для использования глобально в других проектах. Пакет можно рассматривать как общую область хранения, используемую, чтобы хранить такие вещи как описания типов, констант, и глобальные подпрограммы. Объекты, определенные в пределах пакета можно использовать в любом другом проекте на VHDL, и можно откомпилировать в библиотеки для дальнейшего повторного использования.

Пакет может состоять из двух основных частей: описания пакета и дополнительного тела пакета. Описание пакета может содержать следующие элементы:

oОбъявления типов и подтипов

oОбъявления констант

oГлобальные описания сигналов

oОбъявления процедур и функций

oСпецификация атрибутов

oОбъявления файлов

oОбъявления компонентов

oОбъявления псевдонимов

oоператоры включения

Пункты, появляющиеся в пределах описания пакета могут стать видимыми в других проектах с помощью оператора включения.

Если пакет содержит описания подпрограмм (функций или процедур) или определяет одну или более задерживаемых констант (константы, чья величина не задана), то в дополнение к описанию необходимо тело пакета. Тело пакета (которое определяется с использованием комбинации ключевых слов “package body”), должно иметь то же имя как соответствующее описание пакета, но может располагаться в любом месте проекта (оно не обязано располагаться немедленно после описания пакета).

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

Приведенные выше описания объекта F базировались на стандартных средствах языка VHDL- сигналы представлялись в алфавите ‘ 1’, ‘ 0 ’, логические операции И, ИЛИ, НЕ также определялись в этом алфавите. Во многих случаях приходиться описывать поведение объектов в других алфавитах. Например, в реальных схемах сигнал кроме значений ‘1’ и ‘0’ может принимать значение высокого импеданса ‘Z’ (на выходе буферных элементов) и неопределенное значение ‘X’, например, отражая неизвестное начальное состояние триггеров.

Переход к другим алфавитам осуществляется в VHDL с помощью пакетов. У пакета, как и у объекта проекта, различают объявление интерфейса package и объявление тела объекта package body.

Ниже приводиться пример пакета Р4 для описания объектов в четырехзначном алфавите представления сигналов (‘X’, ‘0’, ‘1’, ‘Z’), Х- значение не определено, Z- высокий импеданс. В этом пакете приводится тип KONTAKT для представления сигналов в четырехзначном алфавите, и определяются функции NOT и AND над ними.

В ТТЛ логике высокий импеданс на входе воспринимается как 1, что учитывается в таблице функции AND.

Ниже следует объявление пакета Р4:

Package P4 is

--перечислимый тип

type KONTAKT is (‘X’, ‘0’, ‘1’, ‘Z’);

function “NOT” (X: in KONTAKT) return KONTAKT;

function “AND” (X1, X2: in KONTAKT) return KONTAKT;

end P4;

Ниже следует объявление тела пакета Р4:

Package body P4 is

Function “NOT” (A: in KONTAKT) return KONTAKT is

Begin

If A=’X’ then return ‘X’

Else if A=’1’ then return ‘0’

Else if A=’0’ then return ‘1’

Else return ‘Z’

End if;

End “NOT”;

Function “AND” (A1, A2: in KONTAKT) return KONTAKT is

Begin

If (A1=’0’) or (A2=’X’) then return to ‘0’

Else if (A1= ‘X’) or (A2=’0’) or (A2= ’X’) and (A1=’0’) then return ‘X’

Else return to’1’

End if;

End “AND”;

End P4;

Пример использования пакета Р4 при описании объекта F_P4. Этот объект отличается от F, т. к. у него другой интерфейс.

--подключается (use) пакет Р4, все его функции (ALL)

use P4.ALL;

entity F_P4 is

port (A1, A2: in KONTAKT; B1, B2: out KONTAKT)

end F_P4;

Описание архитектуры F_P4_a

Architecture F_P4_a of F is

Begin

B2<= not (A1 and A2);

B1<= A1 and A2;

End F_P4_a;

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

Например, переход к семизначному алфавиту (‘0’, ‘1’, ‘X’, ‘Z’, ‘F’, ‘S’, ‘R’), где тип KONTAKT имеет дополнительные значения: F- фронт, S- срез, R- риск сбоя, потребует только создания нового пакета и подключения его к объявлению объекта F_P4. Изменение в других частях описаний объекта проекта не потребуется.




Поделиться с друзьями:


Дата добавления: 2015-06-30; Просмотров: 647; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.022 сек.