Главная страница Автономные управляющие системы 4.9. АТРИБУТЫ СИГНАЛОВ И КОНТРОЛЬ ЗАПРЕЩЕННЫХ СИТУАЦИЙ Описания систем могут содержать информацию о запрещенных ситуациях, например недопустимых комбинациях сигналов на входах объектов, рекомендуемых длительностях или частотах импульсов и т п Например, в вентиле 2И возникает риск сбоя в ситуациях, когда фронт одного сигнала перекрывает срез другого Средством отображения информации о запрещенных ситуациях в языке VHDL является оператор утверждения (оператор контроля, оператор аномалии) assert В нем, помимо контролируемого условия, которое не должно быть нарушено, т е. должно быть истинным, записывается сообщение report о нарушении и уровень серьезности ошибки severity Для этого необходимо, чтобы в момент среза сигнала его задержанное на 10 НС значение было равно 1 Если оно равно О, то длительность сигнала меньше 10 не Время предыдущего события в сигнале Z можно получить атрибутом LAST EVENT Architecture CI of 12 IS Signal Z: bit =0, Begin Process ( XI, X2 ), Z<= XI and X2; Assert not (Z=0 and not ZSTABLE and ZDELAYED (10 ns)= 0 ) Report риск сбоя в 1 в вентиле 12 Severity wornmg; Y<= transport Z after 10 ns. End Cl; Более полное представление о предопределенных атрибутах сигналов можно получить из Таблицы 4.1 Помимо предопределенных, пользователь может вводить дополнительные атрибуты для сигналов и других типов данных Таблица 4.1. Предопределенные атрибуты сигналов
4.10. АЛФАВИТ МОДЕЛИРОВАНИЯ И ПАКЕТЫ Описание пакета VHDL задается ключевым словом paclcage и используется, чтобы собирать часто используемые элементы конструкции для глобального применения в других проектах Пакет можно рассматривать как общую область хранения, используемую, чтобы хранить описания типов, констант и глобальные подпрограммы. Объекты, определенные в пределах пакета, можно использовать в любом другом проекте на VHDL, и можно откомпилировать в библиотеки для дальнейшего повторного использования Пакет может состоять из двух основных частей: описания пакета и дополнительного тела пакета. Описание пакета может содержать следующие элементы ♦ объявления типов и подтипов; ♦ объявления констант, ♦ глобальные описания сигналов, ♦ объявления процедур и функций, ♦ спецификация атрибутов; ♦ объявления файлов; ♦ объявления компонентов, ♦ объявления псевдонимов, ♦ операторы включения Пункты, появляющиеся в пределах описания пакета, могут стать видимыми в других проектах с помощью оператора включения. Если пакет содержит описания подпрограмм (функций или процедур) или определяет одну или более задерживаемых констант (константы, чья величина не задана), то в дополнение к описанию необходимо тело пакета. Тело пакета (которое определяется с использованием комбинации ключевых слов рас1<аде body ), должно иметь то же имя, что и соответствующее описание пакета, но может располагаться в любом месте проекта (оно не обязано располагаться немедленно после описания пакета) Отношение между описанием и телом пакета отчасти напоминает отношение между описанием и реализацией элемента (тем не менее, может быть только одно тело пакета для каждого описания пакета) В то время как описание пакета обеспечивает информацию, необходимую для использования элементов, определенных в пределах этого пакета (список параметров для глобальной процедуры или имя определенного типа или подтипа), фактическое поведение таких объектов, как процедуры и функции, должно определяться в пределах тела пакета Приведенные выше описания объекта F базировались на стандартных средствах языка VHDL - сигналы представлялись в алфавите 1, О , логические операции И, ИЛИ, НЕ также определялись в этом алфавите Во многих случаях приходится описывать поведение объектов в других алфавитах. Например, в реальных схемах сигнал кроме значений 1 и О может принимать значение высокого импеданса Z (на выходе буферных элементов) и неопределенное значение X, например, отражая неизвестное начальное состояние триггеров Переход к другим алфавитам осуществляется в VHDL с помощью пакетов. У пакета, как и у объекта проекта, различают объявление интерфейса paclcage и объявление тела объекта paclcage body. Ниже приводится пример пакета Р4 для описания объектов в четырехзначном алфавите представления сигналов (X, О, 1, Z), X - значение не определено, Z - высокий импеданс В этом пакете приводится тип KONTAKT для представления сигналов в четырехзначном алфавите и определяются функции NOT и AND над ними В ТТЛ-логике высокий импеданс на входе воспринимается как 1, что учитывается в таблице функции AND Ниже следует объявление пакета Р4 Раскаде Р4 is -перечислимый тип type KONTAKT IS (>Х, >0, Ч, Z ); function NOT (X: m KONTAKT) return KONTAKT; function AND (XI, X2: m KONTAKT) return KONTAKT; end P4; Ниже следует объявление тела пакета Р4 Общая шина на элементах с трехстабильными выходами Package body Р4 xs Function NOT (A: in KONTAKT) return KONTAKT is Begin If A=X then return X Else if A=l then return 0 Else If AsO then return 1 Else return Z End If; End NOT , Function AND ( Al, A2: in KONTAKT ) return KONTAKT is Begin If (A1=0 ) or (A2=X ) then return to 0 Else If (Al= X ) or (A2=0 ) or (A2= X) and (A1=0 ) then return X Else return to1 End If, End AND ; End P4; Пример использования пакета P4 при описании объекта F P4 Этот объект отличается от R т к у него другой интерфейс -подключается ( use) пакет Р4, все его функции (ALL) use Р4 ALL, entity F P4 is port (Al, A2. in KONTAKT; Bl, B2: out KONTAKT ) end F P4, Описание архитектуры F P4 a Architecture F P4 a of F is Begin B2<= not ( Al and A2 ); Bl<= Al and A2, End F E4 a, Из этого примера видно, что в ряде случаев изменение алфавита моделирования не требует внесения изменений в описания объектов Например, переход к семизначному алфавиту (О, 1, X, Z, F, S, R), где тип KONTAKT имеет дополнительные значения F - фронт, S - срез, R - риск сбоя, потребует только создания нового пакета и подключения его к объявлению объекта F P4 Изменение в других частях описаний объекта проекта не потребуется 4.11. ОПИСАНИЕ МОНТАЖНОГО ИЛИ И ОБЩЕЙ ШИНЫ В цифровой аппаратуре используются монтажные ИЛИ (И) и двунаправленные шины на элементах с тремя состояниями выхода Монтажное ИЛИ SignaJ У. W1RED 0R bit, Kl- process Begin Y<= XI and X2 End process Kl, K2. process Y<= X3 and X4, End process K2, Type A3 IS (-0, Ч , Z); Signal D. CHIN A3; CI: process Begin If E1=0 then D<= Z Else D<= XI and X2 End if; End process CI; C2. process If E2=0 then D<=Z Else D<= X3 and X4 End process C2; Если каждой компоненте (Kl, К2) схемы сопоставить процесс, то имеем два параллельных процесса, каждый из которых вырабатывает свой выходной сигнал В языке VHDL предусмотрен механизм разрешения конфликтов, возможных в подобных ситуациях, когда сигнал имеет несколько драйверов Функция разрешения обычно описывается в пакете, а ее имя указывается при описании соответствующего сигнала Например, тело функции разрешения W/IRED OR (монтажное ИЛИ) имеет следующий вид bit vector) return bit IS Function WIRED OR (INPUTS Begin For I in INPOTSRANGE loop If INPUTS( I ) = Ч then Return Ч ; End if; End loop; Return 0, End, Драйверы сигнала INPUTS неявно рассматриваются как массив, границы которого определяются атрибутом RANGE Функция сканирует драйверы сигнала и, если хоть один из них равен 1, возвращает значение 1, иначе О Функция разрешения SHIN для шины на элементах с тремя состояниями выходами может быть такой Туре A3 IS (О , Ч , Z) , Туре VA3 IS array ( integer range О of A3 ), Function SHIN (signal X. VA3 ) return A3 is Variable VIXOD. A3.= Z, Begin For 1 m XRANGE loop I f X( I) /= Z then VIXOD.= X ( I) ; Exit; End if; End loop. Return VIXOD, End SHIN, Предполагается, что может быть включен, (то есть, не равен Z) только один из драйверов входных сигналов 4,12. ОРГАНИЗАЦИИ, ПОДДЕРЖИВАЮЩИЕ РАЗВИТИЕ VHDL Министерство обороны США в начале 80-х годов финансировало разработку многоуровнего языка VHDL, стандартизовало его и обязало своих поставщиков цифровых микросхем представлять в составе документации их описание на VHDL. Это можно рассматривать как важный, но только первый шаг к обязательности формальных моделей для всех видов выпускаемой электронной техники В связи с возлагаемой на VHDL особой ролью, интерес к нему в CLUA и в Европе огромен, созданы Американская и Европейская группы, занимающиеся всем комплексом вопросов, связанных с внедрением VHDL, как-то. ♦ уточнение семантики языка, ♦ разработка методологии описания различных классов ЦУ, ♦ разработка внутренних форматов представления VHDL-mo-делей в САПР для обеспечения совместимости разрабатываемых продуктов, ♦ создание анализаторов, позволяюшлх контролировать синтаксис и семантику VHDL-моделей, ♦ создание справочно-обучающих систем и резидентных справочников по VHDL, позволяющих писать VHDL-модели под управлением и контролем системы, создание мощных систем моделирования, использующих в качестве входного языка VHDL. Спонсорами работ по развитию VHDL являются Air Force Wright Aeronautical Laboratories, Avionics Laboratory, Air Force Systems Command, United States Air Force, Wright-Patterson Air Force Base , Ohio 45433. В России работы по языку VHDL поддерживаются Российским научно-исследовательским институтом информационных систем (РосНИИИС), Московским институтом электронного машиностроения (кафедра Специализированные вычислительные комплексы МИЭМ), Томским политехническим университетом (кафедра Вычислительной техники ), Международным центром по информатике и электронике, НИИ Квант , Ассоциацией заинтересованных в применении VHDL
|
© 2000 - 2024 ULTRASONEX-AMFODENT.RU.
Копирование материалов разрешено исключительно при условии цититирования. |