Лекция 11. Модели логических элементов
При построении моделей логических элементов могут учитываться следующие свойства:
§ выполняемая функция;
§ задержка распространения сигнала;
§ нагрузочная способность;
§ пороги срабатывания;
§ длительность фронтов;
§ случайный разброс задержек;
§ температурные изменения параметров (например, временных задержек, уровней логического нуля и единицы и т. п.).
Заметим, что чем выше значимость алфавита моделирования и чем больше свойств учитывается в модели, тем больше ресурсов (процессорного времени и памяти) требуется для прогона модели.
По этой причине в современных системах моделирования число разрешённых значений цифрового сигнала обычно не превышает 6..7, а из возможных свойств, как правило, моделируется только функция, временная задержка и нагрузочная способность.
. Модели логических элементов без учёта задержек
Булевские модели логических элементов работают с двоичным алфавитом {0, 1} и могут быть реализованы в виде логического уравнения, таблицы истинности или блок-схемы алгоритма (рис. 3).
![]() |
Рис.3. Способы построения булевских моделей логических элементов
а) в виде логического уравнения, функции или процедуры;
б) табличное описание; в) блок-схема алгоритма
В булевских моделях не учитывается задержка, а переключение сигнала из одного состояния в другое считается мгновенным. Обычно булевские модели применяются только для синхронного моделирования без учёта задержек. На рис. 4 показаны основные особенности булевских моделей. В качестве примера взят логический элемент 2И.
![]() |
Рис. 4. Двоичная аппроксимация реальных сигналов
При булевском моделировании время разбивается на такты (принцип Dt). Длительность такта выбирается так, чтобы в пределах одного такта ни один сигнал не переключился более одного раза. Реальное переключение переносится на начало того такта, в пределах которого оно произошло. Переключение считается мгновенным. Задержка распространения сигнала от входа B (или A) до выхода Y не моделируется, так как оба переключения переносятся на начало такта Т2 (или Т4) и становятся одновременными.
В реальной схеме из-за “перекрытия” фронтов сигналов А и В на выходе элемента 2И может появиться короткий импульс - риск сбоя (такт Т6). Булевские модели не в состоянии предсказать появление таких “иголок”, весьма опасных для работы цифровой аппаратуры.
Обычно один такт соответствует одному набору входных сигналов и обрабатывается за один цикл работы моделятора. С каждым циклом в счётчик модельного времени добавляется единица, то есть модельное время продвигается по тактам в соответствии с выражением: Т:=Т+1.
Троичные модели в отличие от булевских имитируют возникновение переходных процессов при смене уровней сигналов. При троичном моделировании такт разбивается на два полутакта. В течение первого полутакта переключающийся сигнал принимает значение Х (изменяется), а на втором полутакте достигает нового значения.
![]() |
На рис. 5 показан фрагмент только что рассмотренной временной диаграммы (такт Т6), когда входные сигналы A и B элемента 2И переключались в противоположных направлениях.
Рис. 5. Троичное моделирование выявляет риск сбоя
При этом на выходе элемента появлялся риск сбоя. Такт Т6 (рис. 5,а) разбит на два полутакта, первый из них называется полутактом неопределенности, второй - полутактом определенности.
Значения выходного сигнала вычисляются на каждом полутакте в соответствии с таблицей истинности элемента 2И для трёхзначной логики (рис. 5,б).
Признаком риска сбоя служат одинаковые значения сигнала на соседних тактах и значение Х на полутакте неопределенности между ними (рис. 6).
![]() |
Рис. 6. Признаки риска сбоя при троичном моделировании
Троичное моделирование отражает только сам факт переключения сигнала и не уточняет, сколько времени длилось переключение, и где именно в пределах такта оно происходило. Другими словами, длительность Х - состояния при троичном моделировании всегда равна полутакту и никак не связана с реальным временем переключения сигнала.
Многозначные модели позволяют более точно описать поведение реальных элементов, однако по сравнению с троичными моделями ничего принципиально нового они не содержат. На рис. 7 для сравнения показаны таблицы истинности элемента 2И при троичном и пятизначном моделировании.
![]() |
Рис. 7. Таблицы истинности элемента 2И при троичном
и пятизначном моделировании
Модели логических элементов с учётом задержек
Эти модели в отличие от троичных имитируют задержки в явном виде. Чтобы отобразить задержку, надо указать истинное положение переключающегося сигнала на временной оси. Последнее означает, что надо повысить разрешающую способность по времени, то есть разделить такт на более мелкие единицы времени, называемые квантами (микротактами) или шагами. Например, в пакете PCAD такт называется CYCLE, а квант - STEP.
На рис.8 показано, каким образом достигается желаемая точность указания сигналов на временной оси.

Рис. 8. Представление сигналов в моделях разного типа:
а) булевская модель; б) троичная модель; в) модель с учётом tз;
При двоичном моделировании (рис.8,а) не удаётся указать истинное положение изменяющегося сигнала в пределах такта. Поэтому все переключения искусственно переносятся на начало такта и становятся одновременными. В таких условиях отразить реальную задержку невозможно.
При троичном моделировании (рис.8,б) мало, что меняется. Удаётся лишь показать, что при переключении сигнал некоторое время (а оно всегда равно полутакту неопределенности) имеет неизвестное значение Х. Задержка распространения по-прежнему не отражается.
В моделях с учётом tз в явном виде (рис.8,в) такт нарезается на кванты. Причем величина кванта должна составлять малую часть задержки, например 1ns. Цикл работы моделирующей программы теперь привязывается не к такту, а к кванту. Поэтому, чтобы смоделировать работу схемы в течение одного такта, моделятору придётся выполнить гораздо больший объём работы, а именно столько циклов, сколько квантов помещается на длине такта.
При аппроксимации реальных сигналов используется двоичный алфавит {0, 1}. Мгновенное переключение определяется порогом срабатывания логического элемента и привязывается к ближайшему кванту.
Теперь с точностью до кванта можно указать моменты истинных переключений на входах и выходах, а также вычислить целым числом квантов задержку распространения. Остается только смоделировать её.
Такая модель обычно содержит два блока (рис.9). Первый блок реализует функцию логического элемента без учёта задержек. Сигнал на его выходе Yс изменяется синхронно (одновременно) с входным сигналом. По понятным причинам этот блок называется логическим.
![]() |
Второй блок реализует задержку и поэтому называется блоком задержек. В некоторых системах моделирования (например, в пакете PSpice) модель, выполняющая функцию задержек, называется динамической.
Рис.9. Возможная структура модели с учётом tз
Блок задержек содержит контейнер_1, в который на время реализации задержек «прячется» значение Yс (будущее значение сигнала на выходе элемента), и контейнер_2 для текущего значения сигнала Y. Кроме того, во втором блоке имеется счётчик задержки, включенный на вычитание.
В момент переключения входного сигнала (квант 17 на рис.8,в) вычисляется новое значение Yс = 0, которое появилось бы на выходе при отсутствии задержки (то есть синхронно с изменением сигнала на входе). Это значение “застревает” в контейнере_1 на время, равное задержке распространения сигнала внутри элемента (в примере на 4 кванта). В счётчик tЗ заносится величина этой задержки, которая в процессе моделирования уменьшается, пока “не растает” до нуля. После чего спрятанное в контейнере_1 новое значение переписывается в контейнер_2, то есть становится текущим и появляется на выходе Y=0 (квант 21 на рис.8,в).
Мы рассмотрели вариант, когда задержка моделируется внутри каждого логического элемента. Такое решение приводит к значительным затратам ресурсов инструментальной ЭВМ.
Другая возможность смоделировать реальную задержку заключается в том, чтобы спланировать новое событие на выходе и рассчитать момент его наступления tсоб по простому правилу:
tсоб=tтек + tз,
где:
tтек - текущее модельное время;
tз - задержка распространения сигнала в элементе.
Вычисленное событие помещается моделятором в очередь будущих событий ОБС, которая отсортирована в хронологическом порядке.
Как видно, вся работа по имитации задержек перекладывается на моделятор, которому требуется только указать величину задержки относительно текущего модельного времени. Заметим, что округлять ее до целого числа квантов теперь совсем не обязательно.
На языке VHDL это делается весьма элегантно:
Y<= not A after 4,1ns;
На языке моделирования PML в пакете PCAD описание задержек также выглядит достаточно лаконично, правда, здесь допустимы только целочисленные значения задержек:
Y= ~A (3, 4, ”d”, ”d”);
Здесь цифры 3 и 4 указывают задержки при переключении выхода из 0 в 1 и в обратном направлении.








