ЛЕКЦИЯ 11 ( ) Модели логических элементов Табличное представление цифровой схемы
Полное и точное программное воспроизведение поведения цифровой схемы по ее функциональному и/или структурному описанию и заданным наборам входных сигналов – это определение… Воспоминания Сделайте правильный выбор макет микросхему модель В легко вносить любые изменения и таким образом улучшать проект до тех пор, пока он не достигнет требуемого качества. моделирования
Приятные воспоминания Укажите ошибочное утверждение Совокупность значений, которые может принимать цифровой сигнал, называется … Закончите предложение Четырёхзначный алфавит {0,1,X,Z} используется в языках: Verilog, ABEL, AHDL (Altera), DSL (DesignLab), PML (PCAD 4.5) Какая аппроксимация сигнала обнаруживает риски сбоя? Реальный сигнал Порог Событие – мгновенное переключение X Переключение 0X1 алфавитом моделирования Двоичная? Трёхзначная? 3-х значный Да
Очень приятные воспоминания 4 {0, 1, X, R, F, Z} 1 {0, 1} 2 {0, 1, X} 3 {0, 1, X, Z} 5 {U, X, 0, 1, Z, W, L, H, -} Какой из приведённых алфавитов называют алфавитом синтеза ПЛИС? В каких из названных языков описания аппаратуры используется понятие логической силы? VHDL PML ABEL XABEL AHDL DSL Verilog Зачем в системах моделирования вводится понятие логической силы сигнала (strength level)?
Модели логических элементов При построении моделей логических элементов могут учитываться следующие свойства: Заметим, что чем выше значимость алфавита моделирования и чем больше свойств учитывается в модели, тем больше ресурсов (процессорного времени и памяти) требуется для прогона модели. По этой причине в современных системах моделирования число разрешённых значений цифрового сигнала обычно не превышает 4..9, а из возможных свойств, как правило, моделируется только функция, временная задержка и нагрузочная способность. выполняемая функция;1 задержка распространения сигнала; 2 нагрузочная способность;3 длительность фронтов; 4 пороги срабатывания; 5 случайный разброс задержек; 6 температурные изменения параметров (например, временных задержек, уровней логического нуля и единицы и т.п.). 7
Нагрузочная способность. PSpice - проект 7405 – инвертор с открытым коллектором Ведёт себя аналогично высокоомному выходу (Z - состоянию) Открытый, «оборванный» коллектор Y VCC GND ИМС Выход с открытым коллектором PULLUP
Нагрузочная способность. PSpice - проект PULLUP_300 в библиотеке DIG_MISC.olb Подтягивающий резистор
Нагрузочная способность. PSpice - проект При слишком малом сопротивлении (R2 = 200 ом) выходной транзистор не может войти в режим насыщения. Не обеспечивается уровень логического нуля. PULLUP_200 в библиотеке DIG_MISC.olb Почему Y=X, а не Y=0?
Нагрузочная способность. PSpice - проект Библиотеки ANALOG SOURCE Кнопка GND Объект 0/SOURCE Цифровой сигнал Аналоговый сигнал
Формальный параметр Фактический параметр Модели логических элементов. Булевские модели Булевские модели логических элементов работают с двоичным алфавитом {0,1} и могут быть реализованы в виде: IN1 IN2 OUT1 & AND2 Y1 F2 F1 Потоковое описание схемы: Y1 = F1 & F2; (PCAD 4.5, язык PML) Y1 = F1 * F2; (DesignLab 8, язык DSL) Y1
PROCEDURE AND2 ( INPUT IN1, IN2 ; OUTPUT OUT1 ); TRUTH_TABLE IN2, IN1 :: OUT1; 0, 0 :: 0; 0, 1 :: 0; 1, 0 :: 0; 1, 1 :: 1; END TRUTH_TABLE; END AND2; Булевские модели ЛЭ IN1 IN2 OUT1 & IN1 IN2 OUT1 & IN1 IN2 OUT1 & AND2 F1 F2 Y1 IN1IN2OUT Алгоритмическое описание Табличное описание Язык DSL Начало Конец IN1=0 IN2=0 OUT1=0OUT1=1 Да Нет Да Нет
Булевские модели ЛЭ Обычно булевские модели применяются для синхронного потактового моделирования (принцип дельта Т) без учёта задержек. Это самое примитивное моделирование. Главное его достоинство – простота и экономичность. Реальное переключение переносится на начало того такта, в пределах которого оно произошло. Переключение считается мгновенным. Задержка распространения сигнала от входа F1 (или F2) до выхода Y1 не моделируется, так как оба переключения переносятся на начало такта Т2 (или Т4) и становятся одновременными. Модельное время F1 Модельное время F2 Модельное время Y1 Такт Булевская модель T0T1 T2 T3T4T5T6 Риск сбоя Мгновенное событие «Иголка» Glitch Реальный сигнал Где модель риска сбоя?
Булевские модели ЛЭ Обычно один такт соответствует одному набору входных сигналов и обрабатывается за один цикл работы моделятора. В реальной схеме из-за перекрытия фронтов сигналов F1 и F2 на выходе элемента 2И может появиться короткий импульс - риск сбоя (такт Т6). Булевское моделирование решает только одну главную задачу любого моделирования – проверку правильности функционирования цифровой аппаратуры С каждым циклом в счётчик модельного времени добавляется единица, то есть модельное время продвигается по тактам в соответствии с выражением: Т:=Т+1. Булевские модели не в состоянии предсказать появление таких иголок, весьма опасных для работы цифровой аппаратуры.
Троичные модели Троичные модели в отличие от булевских имитируют возникновение переходных процессов при смене уровней сигналов. В троичных моделях используется трёхзначный алфавит {0,1,X} При троичном моделировании (если используется принцип дельта Т) такт разбивается на два полутакта. В течение первого полутакта переключающийся сигнал принимает значение Х (изменяется), а на втором полутакте достигает нового значения. При событийном троичном моделировании переключение представляется двумя событиями: 0 -> X и X -> 1 или 1 -> X и X -> X Переключение 0X1 Событие X->1 Событие 0->X
Троичные модели (потактовое моделирование) Риск сбоя 0 1 X 0 Модельное время F1 F2 Y Модель риска сбоя Реальный сигнал Троичная модель 1 X X Такт T6 Полутакт неопределённости Полутакт определённости IN1 IN2 OUT1 & AND2 IN1 IN2 OUT1 & AND2 IN1 IN2 OUT1 & AND2 F1 F2 Y1 IN1IN2OUT IN1IN2OUT1 0X0 X00 1XX X1X XXX 1X0 0X1 0X0 Таблица истинности элемента 2И для трёхзначной логики M3 M2
Троичные модели Признаком риска сбоя служат одинаковые значения сигнала на соседних тактах и значение Х на полутакте неопределенности между ними. 00X11X Троичное моделирование отражает только сам факт переключения сигнала и не уточняет, сколько времени длилось переключение, и где именно в пределах такта оно происходило. Другими словами, длительность Х - состояния при троичном моделировании всегда равна полутакту и никак не связана с реальным временем переключения сигнала. Риск сбоя
Многозначные модели Многозначные модели позволяют более точно описать поведение реальных элементов, однако по сравнению с троичными моделями ничего принципиально нового они не содержат. IN1 IN2 OUT1 & AND2 IN1 IN2 OUT1 & AND2 IN1 IN2 OUT1 & AND2 F1 F2 Y1 X ? IN1 IN2 OUT1 & AND2 M2M3 M5 Для сравнения рассмотрим таблицы истинности элемента 2И при двоичном, троичном и пятизначном моделировании. OUT1 IN2 01X IN X X0XXXX 0 X X 0 XX ? IN1 IN2 OUT1 & AND2
Такт Y Модели логических элементов с учётом задержек Эти модели в отличие от троичных имитируют задержки в явном виде. Чтобы отобразить задержку, надо указать истинное положение переключающегося сигнала на временной оси. Моделирование задержек при потактовом способе продвижения модельного времени (принцип дельта T). Чтобы отразить задержку, надо повысить разрешающую способность по времени. 1 A Y A Квант tзtз Задержка представляется целым числом – числом квантов Например, в пакете PCAD 4.5 такт называется CYCLE, а квант - STEP. По умолчанию квант = 1ns Другими словами, надо разделить такт на более мелкие единицы времени, называемые квантами (микротактами) или шагами. Такты : Кванты Минуты : Секунды Сантиметры : Миллиметры CLK Счётчик tm тактыкванты YсYс tз = 0 квантов = 8 квантов 200ns = 32 кванта
Динамическая модель в PSpice проектах (ЛЭ и триггеры) Модели логических элементов с учётом задержек Поэтому, чтобы смоделировать работу схемы в течение одного такта, моделятору придётся выполнить гораздо больший объём работы, а именно столько циклов, сколько квантов помещается на длине такта. Теперь с точностью до кванта можно указать моменты истинных переключений на входах и выходах, а также вычислить целым числом квантов задержку распространения. Остается только смоделировать её. Классическая модель логического элемента с учётом задержки содержит два блока. Первый – реализует логику (функцию), второй – чистую задержку. YсYс Y tз = 0 φ B A C Логический блок Блок задержки Yс (от слова синхронный) мгновенно реагирует на изменения входных сигналов. В моделях с учётом tз в явном виде такт нарезается на кванты. Причем величина кванта должна составлять малую часть задержки, например 1ns (PCAD 4.5). Цикл работы моделирующей программы теперь привязывается не к такту, а к кванту. Примитив PINDLY для цифровых узлов CLK Счётчик tm тактыкванты
Модели логических элементов с учётом задержек YсYс A Логический блок LOGICEXP PINDLY Счётчик tз Контейнер Yс Контейнер Y Y Блок задержки NextCurrent Хранит будущее значение выхода Хранит текущее значение выхода Возможная реализация блока задержки для потактового моделирования Счётчик задержки работает на вычитание. При синхронном переключении выхода Yс новое значение записывается в контейнер будущих значений, а в счётчик tз заносится задержка, с которой новое значение Yс должно появиться на выходе Y. tз = 0 tкванта = tкванта + 1tз = tз - 1 tз = 0 tкtкtзtз
Модели логических элементов с учётом задержек В процессе продвижения модельного времени (tкванта = tкванта + 1) задержка в счётчике tз уменьшается, пока не «растает» до нуля. Будущее значение выхода становится текущим, а это означает, что содержимое левого контейнера Yc надо переписать в правый Y = Yc.
Модели логических элементов с учётом задержек YсYс A Логический блок LOGICEXP PINDLY Регистр сдвига вправо Y Блок задержки Ещё одна реализация блока задержки для потактового моделирования Число разрядов регистра равно величине задержки в квантах tз = 0 tкванта = tкванта + 1 tкtк В данном случае используется регистр сдвига Y Сдвиг синхронизирован с продвижением модельного времени по квантам
Модели логических элементов с учётом задержек Моделирование задержек при событийном механизме продвижения модельного времени (принцип дельта Z). Мы рассмотрели вариант, когда задержка моделируется внутри каждого логического элемента. Такое решение приводит к значительным затратам ресурсов инструментальной ЭВМ. t (Y) = t (Yс) + t з Но t (Yс) – это текущее модельное время – t текущее Значит для любого события (переключения) можно спланировать время наступления будущего события как t(будущее) = t(текущее) + t(задержки) Другая возможность смоделировать реальную задержку заключается в том, чтобы спланировать новое событие на выходе и рассчитать момент его наступления t(Y) по простому правилу:
Модели логических элементов с учётом задержек Вычисленное событие помещается моделятором в очередь будущих событий ОБС, которая отсортирована в хронологическом порядке. На языке VHDL это делается весьма элегантно: Y
Табличное представление цифровой схемы Покажем на примере двухвходового цифрового мультиплексора различные способы представления моделируемого объекта. Существуют три способа описания структуры моделируемого объекта: графическое описание в форме принципиальной, функциональной или структурной схемы; 1 текстовое описание в виде списков элементов и цепей NetList;2 табличное описание, содержащее ту же самую информацию об элементах и цепях, но задаваемую в виде таблиц и ссылок. 3
Табличное представление цифровой схемы & & 11 D0 D1 A F1 F2 F3 Y мультиплексор DD1 DD2 DD3 DD4 INV AND2 OR2 Потоковая форма F1
Табличное представление цифровой схемы При попытке программной реализации обнаруживаются все её недостатки и, прежде всего, неэффективное использование оперативной памяти «по максимуму» (ориентация на максимальное число элементов, максимальное число входов, максимальную длину имени). Для создания гибких структур данных, то есть таких структур, размеры и организация которых динамически изменяются, очень удобно использовать указатели (ссылки). Показанная на предыдущем слайде таблица хороша только для визуального восприятия. Характерным примером такой структуры являются уже упоминаемые нами вскользь связные списки.
Указатель адреса в таблице элементов Имя цепи Текущее значение (МСС) Номер цепи 2D011 3D102 1, 3A13 2F104 4F205 4F306 nullY07 Номер логического элемента Имя логического элемента Тип логического элемента Задержка ns Указатель адреса в таблице цепей ВходыВыходы 1DD1INV1034 2DD2AND2151, 45 3DD3AND2152, 36 4DD4OR2205, 67 Табличное представление цифровой схемы Таблица элементов Таблица цепей Зачем левый столбец в таблице цепей?
Табличное представление цифровой схемы В отличие от первой таблицы теперь указываются не имена сигналов, а только их адреса (номера строк) в таблице соединений (цепей). Отработав, подпрограмма возвращает моделятору вычисленное значение выходного сигнала, которое он присваивает выходной цепи F1. Работа симулятора при потактовом моделировании После этого модельное время продвигается на один шаг (такт) и моделятор выполняет следующий цикл, обрабатывая реакцию схемы на новый набор входных данных. Моделятор выбирает из таблицы первый элемент с именем DD1, находит имя сигнала A на его входе и его текущее значение A = 1. Затем он выясняет тип этого элемента и вызывает соответствующую подпрограмму INV, передавая в неё входные данные. Затем из таблицы считывается имя следующего элемента DD2, и повторяются те же самые действия, пока не будет исчерпан весь список.
Табличное представление цифровой схемы Зачем нужны ссылки из таблицы цепей в таблицу элементов? Для этого надо уметь находить элементы-приёмники переключающегося сигнала. Например, если вход A в текущий момент времени изменил своё значение, то этот переключившийся сигнал по ссылкам 1 и 3 из таблицы цепей приходит на входы элементов – приёмников DD1 и DD3. Чтобы сделать работу со структурами данных более эффективной, в описание добавляют ещё две таблицы: таблицу входных и таблицу выходных соединений. С этим вариантом описания схемы можно познакомиться, прочитав электронную лекцию 11. Чтобы можно было реализовать более эффективный алгоритм событийного моделирования! Мы рассмотрели один из простейших способов табличного описания моделируемой схемы. В действительности использование указателей гораздо шире, чем рассмотренное в последнем примере.