Суворова Е.А., Шейнин Ю.Е. Проектирование цифровых систем на VHDL (2003), страница 44
Описание файла
DJVU-файл из архива "Суворова Е.А., Шейнин Ю.Е. Проектирование цифровых систем на VHDL (2003)", который расположен в категории "". Всё это находится в предмете "микропроцессорные системы (мпс)" из 8 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "книги и методические указания", в предмете "микропроцессорные системы" в общих файлах.
Просмотр DJVU-файла онлайн
Распознанный текст из DJVU-файла, 44 - страница
Так, переменная час в программе (см. листинг 4.7) носит вспомогательный характер и при Синтезе не найдет прямого отражения в каких-либо элементах сгенерированной схемы. Однако сушествуют ситуации, когда при Синтезе переменная отражается в элементах памяти — триггерах, триггерах-зашелках, в генерируемой схеме устройства. Учитывая сказанное выше о значительной "цене" последовательностных элементов в реализации, возможности таких ситуаций полезно иметь в виду при программировании на ЧНОЬ. Такая ситуация может складываться при использовании переменных в процессах. В соответствии с семантикой ЧНРЬ, переменная сохраняет свое значение между двумя срабатываниями процесса.
В нашем примере (см. листинг 4.7) это свойство переменной не используется: при каждом срабатывании процесса рт ст ет переменная чье получает новое значение, прежде чем значение ьт будет использовано в выражениях в левых частях гзг Глава 4 операторов присваивания. Но если взять пример листинга 4.38, то здесь, при каждом срабатывании процесса, значение переменной асс используется в выражении прежде, чем переменной будет присвоено значение. Таким образом, переменная асс действительно должна хранить значение между срабатываниями процесса, и при Синтезе по данной программе, переменной асс будет сопоставлен триггер.
(;Лиетинг) 4.38 ':-.-.': .. „';.';;:.':; -::-'-,'::-"г:~-":.',: ' „.,' 2 ', 11Ьхаау ьеае; иве 1еее.вой 1одьс 1164.а11 епс1су ассипи1аиох 1а рова (с1)<,х,у: Ап вой 1одьс; а: оие вой 1одьс); епй епс1су ассити1аеох; ахсЬАЕессихе ассип Ьеьаи оа ассипи1аеох 1в Ьед1п рхосевв иахАаьзе асс: всй 1одьс; иазс ипс11(хьаьпд айда(с1)<)); асс: = асс ох х апй у; а< = асс; епй рхосевв; еий ахсЫ.еесеихе ассов Ьеьач; Данный пример иллюстрирует общее правило, реализуемое синтезирующими компиляторами с языка УНР1. Если значение переменной в теле процесса используется прежде, чем присваивается в текущем срабатывании процесса, то такой переменной при синтезе сопоставляется элемент памяти — триггер, триггер-защелка, регистр, и др.
Если это входит в наши намерения — прекрасно; если нет, — стоит внимательно посмотреть, как модифицировать программу. Операторы присваивания Задержки в операторах присваивания игнорируются( Обработка задержек, специфицированных в операторах присваивания — это одна из неожиданностей, которая нас поджидает, когда в работе с языком УНЕ)1.
мы переходим от Моделирования к Синтезу. То, что мы так старательно программировали на УНО(. в программе-модели, что детально про- Проектирование нв ЧНО 233 сматривали и анализировали при Моделировании, при Синтезе, оказывается, не имеет никакого значения и просто игнорируется! Это можно понимать так. При Моделировании нельзя описать функционирование моделируемого устройства во времени, не задав задержки при формировании значений одних сигналов на основе значений других. Задержки, указанные в операторах присваивания значений сигналам, отражают наши представления о временных характеристиках работы элементов схем физических устройств.
Можно сказать, что задержки, указываемые в операторах присваивания, являются как бы вынужденными. В семантике языка ЧНРЬ предполагается, что они указываются в операторах присваивания не потому, что разработчик хочет задержать тот или иной сигнал, а потому, что реальные элементы схемы работают не мгновенно, а вносят задержку, которую мы и стараемся аккуратно отразить в модели устройства. При Синтезе эти вынужденные задержки не надо описывать, они будут автоматически определяться используемыми базовыми элементами схемы, — физически сушествуюшими и работаюшими с конечными задержками, диктуемыми схемотехническим базисом реализации.
В реальной, синтезированной схеме эти задержки изменения сигналов будут определяться не тем, что написано в операторе присваиванияв программе на ЧНОЬ, а схемотехническим базисом реализации и физическим размешением схемы на кристалле. Выполняемое после синтеза моделирование, которое идет уже не по ЧНПЬ-модели, а по структуре синтезированной схемы устройства, покажет фактические задержки аппаратных элементов схемы. Соответственно, трактуемые таким образом указания задержек в онераторох присваивания зночений сигналам игнорируются нри Синтезе.
В операторах присваивания значения сигналу, кроме секций указания значений задержек аееав, может использоваться также атрибут евааарове, указывающий на использование в этой конструкции транспортных, а не инерционных задержек. При Синтезе этот атрибут в операторе присваивания игнорируется. Аналогично игнорируются атрибуты каавеказ и ва3асе. В Гоппда6оп Ехргезз (по крайней мере, вплоть до версии 3.1) игнорируется также атрибут ааакеасеаа. Оптимизация выражений в операторах присваивания Одно и то же выражение может иметь несколько алгебраически эквивалентных форм записи.
Например, а ааа Ь аад с ааа сз = (а ааа Ь( аззд (с аззд сц или (а ааа Ь( ск с = а ов с ааа Ь ов с. Большинство ранее разработанных инструментов синтеза были чувствительны к форме написания арифметических и логических выражений в операторах присваивания. В частности, выражение а ааа ь аа(( с аад сз синтезирова- 234 Глава 4 лось как ~ (а апд Ы апа с) апа а. В результате длина линий связи получалась больше, чем при синтезе эквивалентного ему выражения (а апа ь) апа (с апд Ы. Инструментарий синтеза в Еоштдагюп Ехргезя снабжен средствами оптимизации выражений, используемых в операторах присваивания.
Выражения можно записывать в любой форме, это не влияет на синтезируемую схему. Тем не менее, для улучшения переносимости программ на ЧНРЕ в разные пакеты автоматизации проектирования и для уменьшения зависимости результатов синтеза от используемого синтезирующего компилятора сохраняется старая рекомендация: использовать в выражениях скобки для явного указания последовательности вычисления выражения и, таким образом, управлять параллельностью его воплощения в синтезируемой схеме. Использование переменных и констант в операторах присваивания Результаты использования переменных и констант при синтезе могут отличаться от результатов, получаемых при моделировании.
Это происходит в случаях, когда внутри тела процесса расположен оператор присваивания, в правой части которого присутствует объект, значение которого определяется ранее в теле этого же процесса. Например: я1< = а апй Ьо Яг< = Я1 аа с Значение объекта яг определяется на базе значения я1. При моделировании, если используются сигналы, то яг получит значение я1 от предыдущего выполнения процесса, а если переменные — то сразу.
Если в описании сигналы были использованы для того, чтобы синтезированная схема вела себя в соответствии с поведенческой моделью, потребовалось бы использовать для сохранения предыдущего значения сигнала я1 защелку. Этого, однако, ие делается. В результате в обоих случаях получается совершенно одинаковая схема.
Синтез управляющих конструкций, содержащих операторы присваивания Общие подходы к синтезу комбинацио нных и последовательностных схем по программе на ЧНО~ Один из ключевых вопросов при Синтезе в отображении программы иа ЧНРЕ в схему реализации проектируемого устройства — это выбор между комбинационными схемами и последовательностными. Различные программные пакеты синтеза, синтезирующие компиляторы языка ЧНРЕ, ис- Проектирование на МНО! 235 пользуют некоторые общие принципы трансляции программных конструкций языка в синтезируемые схемы реализации проектируемого устройства.
Общий подход к выбору между комбинационными и последовательностныии схемами базируется на сопоставлении свойств сигналов в программе на ЧНР) с естественными свойствами этих классов схем. В любой комбинационной схеме (без обратных связей) в каждый момент физического времени формируется значение для каждого выхода схемы. Выходные сигналы определены для любой комбинации значений входных сигналов. Схема, после формирования выходного сигнала в какой-то момент времени, в следующий момент формирует новое значение на основании входных сигналов. Значения выходных сигналов в каждый момент вреиени не зависят от значений этих сигналов в предыдущие моменты.
Комбинационная схема не должна хранить и не хранит значения своих внутренних и выходных сигналов. Природным свойством последовательностных схем является зависимость формируемых значений выходных сигналов как от значений входных сигналов, так и от значений, сформированных в предыдущие моменты времени. Для хранения этих, сформированных ранее, значений последовательностные схемы содержат элементы памяти разных видов.
Программа на ЧНР1. описывает, как и когда сигналы получают свои значения. Опираясь на качественные свойства комбинационных и последовательностных схем, синтезирующий компилятор анализирует исходную программу на ЧНьт).. Если компилятор определяет, что в архитектурном теле всем сигналам, помеченным как выходные, присваиваются значения при зсех возможных комбинациях входных сигналов, то из этого "выводится" комбинационная схема.
Если в программе выходным сигналам присваиваются значения не при всех возможных комбинациях значений входных сигналов, то подразумевается, что такие сигналы сохраняют свои прежние значения. Для сохранения значений приходится включать элементы памяти„и тогда "выводится" последовательностная схема. Последовательностная схема выводится также и в случае, если для формирования выходного сигнала используются не только текущие значения входных сигналов, но и значения сигналов и переменных, сформированные в предыдущие моменты времени (напомним, что при Синтезе задержки в операторах присваивания сигналам игнорируются).
Это соответствует тому, что происходит в реальной аппаратуре. Внутренний сигнал комбинационной схемы (сигнал, не являющийся для нее ни входным, ни выходным) получает новое значение (с выхода некоторого логического элемента) лрежде, чем он может быть использован (как вход другого зяемента схемы) для вычисления значения другого сигнала. Таким образом, внутренние сигналы схемы всегда получают новые значения, прежде чем гзв Глава 4 эти значения используются для формирования значений каких-либо других сигналов. Соответственно, нет необходимости специально хранить их в элементах памяти. Условные операторы СИНТЕЗ КОНСтруКцнй 1Е ЕЬап а1яья азяа И оаяа ОСущЕСтВЛяЕтея ПрИМЕрно по одинаковой схеме.