Суворова Е.А., Шейнин Ю.Е. Проектирование цифровых систем на VHDL (2003) (1095892), страница 17
Текст из файла (страница 17)
В системах моделирования зто называют событийным моделировпнием. Транзакция. Когда мы осмысливаем понятие переменных в языках программирования, обычно представляем себе определенные аспекты их реализации после трансляции, мыслим о них как о выделенных под переменные участках памяти. Также и при обсуждении сигналов и механизмов языка ЧНзз1. полезно представлять, хотя бы в общем виде, как сигналы реализуются в системах моделирования, выполняющих программы на ЧН01.. В реализации сигналов, изменяемых в модельном времени, основным становится планирование в этом времени изменений сигналов. При выполнении операторов присваивания значения сигналу, системой моделирования формируется специальная структура данных, пара: значение сигнала /момент модельного времени, когда сигнал примет это значение.
Такая лара в описаниях языка ЧНгзЕ называется транзпкцией (~гапзасбоп). Транзак- Глава 3 ция — это внутренняя инструкция системы моделирования по изменению указанного сигнала в заданный момент модельного времени, Система моделирования, работающая по принципам событийного моделирования, ведет сносок транзакций, упорядоченных по меткам модельного времени. Транзакция, как и список транзакций, является механизмом реализации ЧНРЬ, внутренним делом системы моделирования.
Однако эти понятия часто привлекаются при описании и разъяснении различных механизмов языка ЧНРЬ. Источник сигнала (драйвер). Еще одним понятием, связанным с сигналами и часто используемым в описании ЧНРЬ, является понятие драйвера (дпчег) — источника сигнала. В реальных цифровых устройствах выход элемента схемы формирует сигнал на проводнике, подсоединенном к этому выходу, он является источником сигнала в этой точке схемы. Каждый выход каждого элемента схемы — источник для одного сигнала. Множество элементов схемы функционируют параллельно в физическом времени, причем элемент, имеющий несколько выходов, формирует сигналы на них также параллельно во времени. Когда несколько выходов элементов схем подсоединяются проводниками в одну точку схемы, то получается, что для этой точки схемы имеется несколько источников сигналов.
результирующий сигнал в этой точке схемы формируется как результат выполнения (на физическом уровне) некоторых преобразований над сигналами, сформированными всеми источниками. Вид выполняемого преобразования зависит от элементной базы, используемой в устройстве. Работа с сигналами в модели устройства на языке ЧНРЬ достаточно точно воспроизводит описанные ситуации в реальном цифровом устройстве. Каждый сигнал существует параллельно с другими сигналами в модельном времени. Источники сигналов в программе на ЧНРЬ представлены специальными операторами присваивания значений сигналам. Один источник сигнала и в реальном устройстве, и программе на ЧНРЬ, формирует один сигнал.
Однако в языке ЧНРЬ источник сигнала может не только определять значение сигнала в какой-то один момент модельного времени, но и задавать целую последовательность значений сигнала в разные моменты модельного времени, формировать некоторую планируемую временную диаграмму сигнала (рго3есгед опгрщ ччаче(опп). В реализации языка ЧНРЬ запланированная источником временная диаграмма сигнала представляется упорядоченным (по моментам модельного времени) списком транзакций, фиксирующих моменты изменения сигнала на временной диаграмме.
Часто в описании ЧНРЬ именно этот список Базовые конструкции моделей на языке (7Н01 77 транзакций, связанный с одним источником сигнала, называют термином драйвер [дг[уег) [19). Поскольку каждый источник сигнала в реальной схеме — выход некоторого элемента, формирует свой сигнал параллельно во времени с другими источниками сигналов, то и в модели устройства на ЧНРЬ источники сигналов работают параллельно в модельном времени. Синтаксически, в структуре программы на ЧНР1., параллельно работающий источник сигнала может быть оформлен по-разному.
Это может быть отдельный параллельный оператор присваивания значения сигналу, может быть и последовательный оператор присваивания значения сигналу среди операторов тела процесса (параллельная конструкция программы на ЧНРЬ). Но в любом варианте, осмысливая соответствующие программные конструкции и фрагменты программ на ЧНР1., представляющие источники сигналов, мы должны стараться соотносить их с реальной работой схем и формируемых ими сигналов.
Структура описания объекта моделирования Описание объектов моделирования состоит из декларативной чпсти и олиспния прхитектуры. В декларативной части описываются связи объекта с внешним миром— входы и выходы объекта. Это, прежде всего, спецификация интерфейса описываемого объекта. В описании архитектуры определяется функция специфицируемого объекта, осуществляемого им формирования выходных сигналов на основании входных сигналов и внутреннего состояния объекта. Декларативная часть Полный формат декларативной части описания объекта моделирования имеет следующий синтаксис: епе1су епсьсу паве Ав [депегАс (депегтс ьпгеггасе 11вс];] [рокс (роге 1псеггасе 11вс];] [Ьед1п [сопспггепг аввегсьоп вгасетепг развале сопспггепг ргосеЖпе са11 всасевепг раввьуе ргосевв вгагееепг]] (епсьсу Еес1агаггее ьсее] епе (епеАеу] [епсьгу пюпе]; Глава 3 После ключевого слова еаеыеу указывается некоторый идентификатор епс(су пате — имя объекта моделирования.
Поскольку оно используется для идентификации объекта в рамках проекта, имя объекта моделирования должно быть уникальным. Секция дааааае предназначена для описания констант, определяющих изменяемые параметры объекта моделирования. Например, таким образом могут определяться времена задержек, размер внутренних буферов, и др. Структура этой секции будет рассмотрена подробнее в дальнейшем. Секция яааахы не является обязательной.
В терминах языка ННОЕ входы и выходы проектируемой схемы называют аортами. Порты — специальные программные объекты, являющиеся сигналами, а не переменными. Подобно переменным в традиционных языках программирования, в программе на ЧНОЕ порты должны быть определены (декларированы) с указанием типа соответствующих им сигналов. Для определения входных и выходных портов используется секция реке в декларативной части спецификации объекта моделирования.
После ключевого слова реке в круглых скобках располагается список описаний сигналов — роге (псехгасе 1(зс. Он имеет следующий синтаксис: (Ыепс(твет, (... ) з [воете] асьсуре ]пс](сасз.оп [:=ехргеаазоп] ), (... ] Описание каждого сигнала состоит из имени, вида сигнала (аюае] и типа сигнала. Вид сигнала может иметь одно из следующих значений: П ра — входной сигнал; П сис — выходной сигнал; П (посс — сигнал, являющийся и входным, и выходным. Все типы, которые указываются в описании портов, должны быть уже известны. Как видно из общей формы синтаксиса декларации езхеЫу, здесь нет места описанию типов.
Если это не стандартные, встроенные в ЧНОЕ типы, то они должны быть описаны до декларации епехеу. Эти описания могут располагаться в том же файле, выше по тексту, или (как часто делается), вынесены в отдельный пакет или библиотеку. В рамках описания, в секции роге сигналам могут присваиваться значения по умолчанию. Если для сигнала определено значение по умолчанию, то оно используется внутри объекта моделирования в том случае, если сигналу не будет присвоено другое значение извне. Идентификаторы нескольких сигналов, имеющих одинаковое дальнейшее описание (вид, тип, значение по умолчанию, если оно есть) могут следовать в одном описании, через запятую.
Секция роаь также не является обязательной составляющей декларативной части описания объекта. Объект моделирования может не иметь входов и Базовые конструкции моделей иа языке МНРс 79 выходов. Такие объекты, как правило, расположены на верхнем уровне ие- рархии. ПОСЛЕ КЛЮЧЕВОГО СЛОВа Ьеяап СЛЕдуЮт СЕКЦИИ ПараЛЛЕЛЬНО ВЫПОЛНяЮщИХСя действий (не являются обязательной частью описания), которые могут ис- пользоваться для проверки правильности функционирования объекта и для документирования процесса функционирования. Организация этих секций более подробно будет рассмотрена ниже.
Последней располагается секция внутренних деклараций, (ептъсу с(ес1атае1че ьееп1 ОПИСЫВаЕМОГО ОбЪЕКта. В ЭтОй СЕКЦИИ МОжЕт содержаться декларация констант, переменных, сигналов и типов, являю- щихся внутренними для данного объекта моделирования, — т. е. доступных только внутри этого объекта. Завершается описание объекта ключевым словом епв, за которым следует слово епе1еу (по стандарту ЧНРГ93 — обязательно); потом указывается имя описанного объекта (рекомендуется).
Примеры простейшего описания декларативной части объектов моделиро- вания приведены в листингах 3.1 и 3.2. В листинге 3.1 описан объект моделирования с именем асыет. Он имеет три входных сигнала — а, ь, с, имеющих тип иотс(, и один выходной сигнал зпю того же типа. Листинг;З,з Листинг 3.2, „ -- значение по умолчанию епМьу асЫет1 1е вате ( а: 1п 5зспаяет Ь: 1п 1пьедет:=1 с: 1п 1пьеяетс нпп: опе еот61; епа епь1ьу асЫет1; епь1ау асЫет 1е ротс( а,Ь, с: 1п еотй; а1лпс опт иптй( с апй епь1су асИет; В ЛИСТИНГЕ 3.2 ОПИСаН ОбЪЕКт МОдЕЛИрОВаНИя С ИМЕНЕМ асЫет1.
ОН ИМЕЕТ трн ВХОДНЫХ СИГНаЛа — а, Ь, с, ИМЕЮЩИХ тИП 1пьедет, И ОДИН ВЫХОдНОй сигнал зпю типа ест((. Одному из трех его входных сигналов присваивается значение по умолчанию, равное 1. во Глава 3 Описание архитектуры объекта моделирования В языке ЧНРЬ под описанием архитектуры понимается описание функционирования специфицируемого объекта. Если декларативная часть описания объекта определяет его внешнее представление, задает интерфейсную спецификацию объекта, вводит имя объекта и входы/выходы ("порты", в терминах ЧНРЬ), то описание архитектуры задает его содержательное наполнение, спецификацию функциональной и временной работы описываемого обьекта. Отметим, что используемый в ЧНРЬ термин "архитектура" не вполне соответствует общепринятому в вычислительной технике смыслу (описание ЭВМ для программирующего на уровне машинных кодов или их символьного представления, на АВБЕМВЬЕК). "Архитектурное описание" на ЧНРЬ может, конечно, в конкретной программе получить и такое смысловое наполнение.
Мы можем, например, в архитектурной части описания объекта моделирования — процессора, действительно дать такое описание, какое принято давать при описании архитектуры (в общепринятом смысле). Но в архитектурном описании на языке ЧНРЬ может быть, с одной стороны, дана и детальная функциональная или принципиальная схема процессора, а с другой стороны, наоборот, описание может идти на более абстрактном уровне, и программно доступные элементы архитектуры процессора не найдут отражения в архитектурном описании на ЧНР1.. Описывать архитектуру объекта на языке ЧНР1. можно следующими способами: 1. Описать поведение объекта, преобразование информации и его внутреннего состояния, формирование выходных сигналов при поступлении входных, задать алгоритмическое описание поведения специфицируемого объекта.