КАТЕГОРИИ: Архитектура-(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. Предопределенные атрибуты сигналов
Описание пакета 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; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |