Суворова Е.А., Шейнин Ю.Е. Проектирование цифровых систем на VHDL (2003) (1095892), страница 20
Текст из файла (страница 20)
Описание механизма задержек, г[е1ау гаес[тапьалт, в операторах присваивания значений сигналам имеет следующий синтаксис: [теэеое Стгпе ехргеаааоп] Апексаах [ скаоарокс 00 Глава 3 Инерционная задержка Цифровые схемы обладают определенной инерционностью. Для формирования сигнала на выходном контакте, в ответ на изменение входного сигнала, требуется некоторое количество энергии и определенное время. Чтобв на выходе сформировался устойчивый сигнал, входной сигнал должен продержаться в новом состоянии не менее некоторого промежутка времени. Если же входной сигнал не простоит в этом состоянии нужное время, тю вызванные им изменения состояния схемы не успеют распространиться до рассматриваемого выхода, и мы не можем быть уверены в формировании нг данном выходе схемы ожидаемого значения. Например, если вентиль имеет задержку 6 нс., то любой импульс меньшей длительности (скажем, 4 нс.), нс пройдет через него и не появится на выходе вентиля.
Про импульсы, длительность которых меньше задержки, необходимой для распространения сигнала через схему, говорят, что они отбрасываются, т. е. отфильтровываются схемой. Именно такая логика работы с распространением сигналов по схеме используется в семантике языка ЧНР1 (по умолчанию). Для представления этого вида задержек распространения сигналов в языке~ ЧНР!. используется понятие инерционной задержки ((пеп(а! г)е!ау), в опера-', торе присваивания — ключевое слово з.аакеьаз..
По умолчанию, если в программе не указано иное, при спецификации задержек имеется в виду' именно модель инерционной задержки. Минимальная длительность сохранения установившегося значения входного сигнала (иными словами — минимальная длительность импульса на входе) по умолчанию считается равной времени распространения сигнала с этого входа до указанного выхода. До тех пор, пока входной сигнал изменяется не чаше, чем время, указанное в секции аяеак, изменения выходного сигнала происходят в соответствии с изменениями входного, но с учетом указанной задержки.
Если же изменения входного сигнала происходят чаще, чем время, указанное в секции аееак, они игнорируются. Однако в реальных схемах такая прямая зависимость между задержкой распространения сигнала и минимальной длительностью входного импульса выполняется не всегда, даже для простых схем.
На практике длительность импульсов, которые отфильтровываются схемой, зависит от многих факторов (физического проекта схемы в СБИС, параметров процесса изготовления СБИС и др.), и определить их точные значения бывает непросто. Если разработчик схемы имеет более детальную информацию об инерционных задержках и минимальных длительностях импульсов на входах, он может явно указать минимальную длительность импульсов, отличную от специфицированной задержки формирования выходного сигнала. Когда минимальная длительность входного сигнала, приводящая к изменению выходного сигнала, меньше заданной задержки, для ее указания используется секция гадесе.
Базовые конструкции моделей на языке МНРГ. Например, в операторе присваивания значения сигналу можно указатьг: и <= ке5вое 3 пв кттвкеавз (и иок уу ввевк 7 пвт Здесь минимальная длительность импульса на входах х и у установлена равной 3 нс., в то время как задержка формирования выходного сигнала е равна 7 нс. При длительности, меньшей 3 нс., импульс отфильтровывается, отбрасывается системой моделирования и не приводит к формированию нового значения выходного сигнала к. Если в операторе присваивания значения сигналу присутствует секция анекеьвз и несколько секций идеек, то секция аттекеавз применяется только к первой секции вяевк, а к остальным секциям вяеек применяются правила работы с транспортными задержками (описаны в следующем разделе). Транспортная задержка И в проектах, и в реальных устройствах на СБИС, на определенных этапах проектирования мы сталкиваемся с другими видами задержек, отличными от задержек инерционных.
Как видно из предыдущего раздела, для механизма инерционных задержек характерно понятие минимальной длительности импульса; импульсы меньшей длительности отфильтровываются, отбрасываются. Однако в проектах устройств на СБИС возникают ситуации, когда это ограничение мешает, не отражает нужную ситуацию в моделируемом устройстве. Часто в модели необходимо, чтобы изменения сигналов любой длительности не отбрасывались, а отрабатывались системой моделирования и влияли на формирование выходных сигналов. Здесь можно указать два примера такой ситуации.
Во-первых, это учет задержек на распространение сигналов по линиям связи. Распространение сигналов по линиям между логическими элементами имеет некоторую конечную задержку, пропорциональную длине линии. В современных субмикронных интегральных технологиях, по мере уменьшения проектных норм, этот фактор оказывает все большее влияние, задержки в линиях начинают преобладать нвд задержками в логических элементах. Понятно, что в таких схемах, при детальном моделировании проектируемого устройства, задержками распространения сигналов по линиям связи нельзя пренебрегать, их надо отражать в модели. Однако задержки в линиях связи по своей природе существенно отличаются от задержек в логических элементах.
Они имеют малую инерционность, могут передавать импульсы очень малой длительности. Обычно линию связи ' Только в ЧНРГ93. В стандарте ЧНРГ87 конструкция указании минимальной длительности импульса отсутствует. Глава 3 рассматривают как среду с конечной задержкой, но с нулевой инерционностью, способную передавать сигналы без ограничений на минимальную длительность импульса. Для отражения такого рода задержек, в ЧНОЬ введен другой вид задержек — транслорглные задержки (ггапзроп г1е!аув).
В отличие от инерционных задержек, транспортные задержки не накладывают ограничений на минимальную длительность импульса, не отфильтровывают короткие входные импульсы, а пропускают в схему любые входные сигналы. Второй класс ситуаций, когда удобны как раз транспортные задержки, возникает при проектировании и моделировании устройств на верхнем уровне иерархии. Здесь задержка формирования сигналов на выходе сложного устройства может быть весьма значительна, однако это не повод отфильтровывать короткие импульсы входных сигналов.
Скажем, если мы моделируем устройство с памятью, время доступа к которой 50 нс., то это вряд ли будет основанием требовать минимальную длительность импульса для всех сигналов„используемых при чтении из памяти, равную 50 нс. Кроме того, при анализе устройства, особенно при поведенческом описании его архитектуры, у нас часто нет достоверной информации о минимальных длительностях сигналов.
Она появляется только на последуюших этапах проектирования системы на СВИС. В таких случаях при построении модели на ЧНО1. предпочтительно пользоваться транспортными, а не инерционными задержками. Разрешение неоднозначности установления значения сигнала При использовании механизма задержек могут возникать неоднозначные ситуации. Значение одному и тому же сигналу могут устанавливаться несколькими операторами присваивания значений. Эти операторы могут устанавливать разные значения, определять их с разными задержками. В результате в программе на ЧНОЕ может создаваться неоднозначная ситуация, когда на каком-то интервале модельного времени значения, устанавливаемые разными операторами присваивания, входят в противоречие друг с другом.
В семантике языка ЧНО1. приняты специальные правила для разрешения такой неоднозначности. В основе этих правил лежит сопоставление между последовательностью выполнения операторов присваивания значений сигналам и заданных ими моментов изменения сигналов. Знание этих правил важно для правильного понимания и отладки модели устройств, написанных на ЧНОЬ. В ННОЕ принято, что если возникает ситуация, когда транзакция изменения значения сигнала, порожденная позже, планируется на более раннее Базовые конструкции моделей на языке )гН)л'. время, то транзакция, порожденная раньше по ходу исполнения программы, но запланированная на более позднее время, уничтожается.
Пример коллизии, возникающей в ситуации, когда одному сигналу присваиваются разные значения, последовательно по ходу выполнения программы, несколькими операторами, демонстрирует листинг 3.8. , Листинг,$.6 ргооевв (а) сопваапс т 01:силе:=800 пвг сопвсапа Т 10геапег=800 пв; Ьаяап 1г а='1' Сьеп г<=агапвроге а агаег Т 01; е1ве з<=егапврога а аеаег т 10; епа 1е; епа ргосеввз Пусть входной сигнал а ведет себя следующим образом: а='0' с 0 па пс 200 па а='1' с 200 па по 400 па а='0' с 400 па пс 1100 па В момент времени 200 будет запланирована транзакция, которая в момент модельного времени 1000 должна будет установить значение сигнала а в !.