Суворова Е.А., Шейнин Ю.Е. Проектирование цифровых систем на VHDL (2003) (1095892), страница 19
Текст из файла (страница 19)
Соответственно, и в модели устройства изменения значений соответствующих сигналов должны производится параллельно, в модельном времени. Это определяет построение ЧНТ)Ь как языка, параллельного по своей природе. Тело архитектурного описания специфицируемого объекта, заключенное между ьея1п и епд, содержит совокупность параллельных операторов, иначе говоря операторов, выполняющихся параллельно друг с другом. Работая на языке ЧНг)Ь, мы постоянно должны помнить, что работаем на языке параллельного программирования. Здесь можно провести аналогию с языком параллельного программирования ОККАМ для транспьютеров. В ОККАМ также базовым понятием является процесс, работающий параллельно с другими процессами.
Для того чтобы задать последовательное выполнение действий, исходно параллель- Главе з ные процессы в ОККАМ выстраиваются в нужную последовательность с помощью специальной языковой конструкции ЯЕ() ("выполнять последовательно" [23)). Последовательность записи параллельных операторов в теле архитектурного описания значения не имеет. Порядок выполнения (или, как говорят обычно, в параллельных вычислениях — порядок срабатывания параллельньп операторов) определяется не порядком их текстуальной записи операторов между ьедзп и епд, а другими правилами. Основным принципом здесь является управление от потока изменений сигналов, входных для параллельного оператора. Событие изменения значения сигнала, являющегося входным для параллельного оператора, запускает срабатывание данного оператора (т.
е. — акт выполнения оператора). Для параллельного оператора типа ргооевв [см. следующий раздел) имеется возможность явно указывать сигналы, изменение которых запускает процесс. Для других параллельных операторов присваивания значений сигналам изменение любого входного сигнала инициирует их срабатывание. В общем формате описания архитектуры объекта моделирования, секция параллельных операторов (сопспгепг всасееепс) содержит один или несколько параллельно выполняющихся операторов, с помощью которых задается зависимость выходных сигналов от входных, как по значению (состоянию), так и по временным соотношениям. В языке ЧНР).
введен целый ряд параллельных операторов, основными из которых являются процессы и операторы параллельного присваивания значений сигналам. Процессы для описания архитектуры Одной из форм параллельных операторов являются процессы. Процессы являются базовыми конструкциями для задания поведения описываемой архитектуры с учетом параллельности выполняемых действий. Процессы выполняются параллельно относительно друг друга, а действия внутри тела процесса выполняются последовательно.
Выполнение процессов осуществляется в соответствии с изменениями значений сигналов. Описание процесса имеет следующий синтаксис: [ргосевв 1аЬе1:] ргооевв [(вьяпа1 папе (,...))] [Ав) (ргосевв с)ес1агасдве зсее) Ьаязп (вес]пепгза1 вгасееепс) е1вй ргооевв [ргосевв 1аЬе1]; Список сигналов в скобках после ключевого слова ргооеав называется списком чувствительности. Если в описании процесса задан список чувствительности, то процесс активируется (начинается выполнение действий, Базовые конструкции моделей на языке УН0[. 87 описанных внутри процесса) при изменении значения любого из этих сигналов.
Если список чувствительности отсутствует, то процесс активируется при изменении любого сигнала в модели, если не указано иное с помощью команд ожидания внутри самого процесса. В секцию рхосевв с[ес1атасгче ьсетп могут включаться описания локальных констант, типов и переменных, используемых в описываемом процессе. Сигналы не могут быть описаны как локальные данные процесса.
Когда в ходе моделирования процесс активируется, его выполнение начинается с первого оператора, указанного в теле процесса (в секции вечпепсьа1 всасетпепс). В этой секции располагаются последовательные операторы, которые определяют будущие значения сигналов на базе текущих значений. Кроме того, в теле процесса, как и в обычных последовательных программах на языках высокого уровня, лля изменения последовательности выполнения могут использоваться управляющие операторы (описаны в предыдущей главе). наличие метки процесса ртосевв 1а)пе1 (фактически — имени процесса) облегчает отладку программы на ЧНРЬ, включающей множество процессов.
Последовательный оператор присваивания значения сигналу Последовательные операторы присваивания значения сигналу могут располагаться только внутри тела процесса, в секции [вечпепсга1 впапетпепС). Такие операторы имеют следующий синтаксис: папе <= [с)е1ау тпес)тапьва) [ча1пе ехртевваоп [айьек сппе ехртеввгоп)) [,...)! Оператор присваивания значения сигналу (указывается именем папте) включает в себя как определение нового значения сигнала (задается выражением па1пе ехрпеввгоп), так и определение моменн[а времени, в который сигнал примет это новое значение (задается конструкцией ааеек с1пе ехртеввгоп). Время изменения значения сигнала, задаваемое в этом операторе, определяется относительно модельного времени.
В момент запуска модели модельное время равно О. Оно увеличивается дискретно, по мере возникновения событий в модели. Эта техника носит название моделирование дискретных событий. Когда выполняется оператор присваивания нового значения сигналу, указанное в нем время (определяется выражением сыпе е ртеввгоп после аееек) добавляется к текущему модельному времени; этим и определяется момент мо- 8В Глава 3, дельного времени, при наступлении которого сигнал примет новое значение. ВЫражЕНИЕ С(таа ехргввв1оп дОЛжНО ВЫЧИСЛятЬЗНаЧЕНИЕ тИПа СЕХ)Е.
Для того чтобы осуществить изменение сигнала в нужное время, программг моделирования автоматически планирует транзакцию на время принятию сигналом нового значения. Когда в модели наступает момент времени, нз который запланирована эта транзакция, она выполняется и сигнал принимает новое значение.
В том цикле моделирования, в котором он принимает новое значение, сигнал считается активным. НаПрИМЕр, ВОЗЬМЕМ ОПЕратОр у = пос х весах 5 пв. СИГНая у ПрИМЕт Зиачение, инверсное значению сигнала х (на момент выполнения данного оператора); изменение у произойдет через 5 нс.
после момента модельного времени, соответствующего выполнению этого оператора. Один оператор позволяет задать несколько значений, которые сигнал будет принимать последовательно в указанные моменты времени. Список моментов времени должен быть возрастающим, чтобы порядок следования планируемых на его основе транзакций соответствовал порядку их выполнения. Например: у< поп х аЕсег 5 пв, х аЕсап 10 ттв) Если в момент выполнения этого оператора модельное время равно 7 нс., то в момент времени 13 нс.
у примет значение равное поп х, а в момент времени 17 нс. — значение равное х (где х — в момент времени 7 нс.). Процесс, например, предназначенный для генерации тактового сигнала, можно проиллюстрировать листингом 3.7. )„:Листвяг 3.7 епс1су тау с1К Ев яепавзс (С:паеша1:=2 пв); епЕ( епсзсу; авсМЕесепва пе1 оЕ ху с1Х 1в в1япаз с1кпвей 1одьс:='О'; Зтед1п Ь с1кп рвссевв (стх) Ьеязп 1Е с1Х=' О' Евап с1М='1' аваев С,'О' весах 2*С епс 1Е; ~тЕ( рвссеввт Базовые конструкции моделей на языке УНШ 99 Выполнение этого процесса начинается каждый раз при изменении значения сигнала с1х, стоящего в списке чувствительности. Если сигнал с1х='с', то выполняется последовательный оператор присваивания значения сигнапу. Пусть в момент времени ст сигнал с1х получил значение с .
Тогда в результате выполнения оператора присваивания на момент времени от+с будет запланирована транзакция, присваивающая сигналу с1[т значение 'т', а на момент времени с1+з*с будет запланирована транзакция, присваивающая сигналу с1х значение ' с '. Выполнение каждой из этих транзакций приведет к активизации процесса ь с1к. В результате выполнения второй транзакции сигнал примет значение, удовлетворяющее условию, и оператор присваивания будет выполнен снова.
Транзакция (и, соответственно, оператор присваивания) будет выполняться в момент времени ст+г*с, она приведет к планированию транзакций на время ы -з*с+с=от+э*с и ст+з*с+г*с=с1+4*с. Таким образом, процесс позволяет сгенерировать симметричный тактовый сигнал с полу периодом, равным ц Временная диаграмма сигнала тактирования при [=2 представлена на рис.
3.1. ит ок са 'о' Рис. 3.1. Временная диаграмма сигнала тактироаания (для примера с листинга 3,71 Внутри тела процесса может быть несколько операторов присваивания значений сигналам, соответствующих разным выходам элемента схемы, но для каждого сигнала в теле процесса может стоять только один оператор присваивания значения сигналу. Иными словами, в теле процесса для одного согнала может быть задан только один источник сигнала. Задержки в модели устройства Представление цифрового устройства на языке ЧНОЬ требует аккуратного и корректного представления в модели устройства задержек распространения сигналов в схеме. Язык ЧНПЬ включает различные модели задержек, отражающие разные аспекты функционирования реальных схем, которые связаны с временными факторами.