Лекция 9. Модели триггеров
Традиционно триггеры принято относить к вентильному уровню, на котором находятся и логические элементы (лекция 3). Поэтому триггеры называют элементами, хотя такое название и не очень корректно.
В действительности триггеры являются более сложными объектами, состоящими из нескольких (от двух до девяти) простых логических вентилей. Отсюда следует, что модели триггеров можно представить не только поведенческими, но и структурными моделями, оставаясь на одном и том же уровне иерархии, а именно, на уровне логического моделирования (рис.1).
Попытка создать структурную модель для логического элемента неизбежно приводит к понижению уровня на одну ступеньку иерархии, то есть к необходимости рассматривать такой элемент как систему, образованную структурными примитивами более низкого уровня (транзисторами, резисторами, конденсаторами и прочими компонентами). Следовательно, логическое моделирование приходится заменять схемотехническим (электронным), приобретая при этом все недостатки излишней детализации.
Рассмотрим основные особенности моделирования триггеров.
Прежде всего, триггеры – это элементы памяти. Сказанное означает, что новое состояние триггера может определяться не только набором входных сигналов, но и предшествующим (текущим, старым) его состоянием. Например, JK-триггер, работающий в режиме инверсии (J = K = 1), меняет своё состояние на противоположное. Если Вы не указали его текущее состояние, то моделирующей программе не удастся определить и новое.
То же самое можно сказать и о счётчике. Если его состояние неизвестно (равно значению шины X), то при добавлении в счётчик единицы (X := X+1), состояние его по-прежнему будет неизвестным и равным X.
Отсюда следует, что при моделировании цифровых схем с памятью могут возникнуть проблемы, если моделятору не удалось изначально инициализировать объект. Поэтому пользователю перед началом моделирования приходится искусственно задавать исходное состояние схемы, например, сбрасывая все триггеры в «0» или устанавливая их в «1». В некоторых системах моделирования предусмотрен режим начальной установки элементов памяти случайным образом.
Сказанное касается не только поведенческих, но и структурных моделей триггеров, когда они раскрыты до уровня вентилей. Объясняется это тем, что структурные схемы элементов с памятью содержат один или несколько контуров, то есть цепей с обратными связями.
Задавая начальное состояние триггера, Вы тем самым определяете значения сигналов на цепях обратной связи. В противном случае моделирующая программа не сможет определить выход элемента, на входах которого действует неизвестный сигнал обратной связи, и результаты моделирования будут не адекватны поведению реальной схемы.
Ещё большие трудности возникают при моделировании триггерных структур с несколькими контурами обратных связей (например, D-триггер типа 555TM2). Даже получив информацию о начальном состоянии такого триггера, моделятор не сможет выяснить значения сигналов на всех цепях обратной связи, и моделирование не даст ожидаемых результатов.
Единственный способ избежать названных проблем заключается в том, чтобы начинать моделирование с установочной комбинации входных сигналов.
Для структурных моделей триггеров – это, пожалуй, единственная особенность. Во всём остальном моделирование триггеров ничем не отличается от моделирования любых других цифровых комбинационных схем.
При рассмотрении поведенческих моделей триггеров дополнительно приходится учитывать ещё три особенности данного класса объектов:
§ наличие запрещённых наборов входных сигналов;
§ динамическое управление записью в некоторых структурах триггеров;
§ необходимость хранить в булевской модели триггера не только текущее, но и старое состояние триггера или (что, то же самое) его текущее и будущее состояния.
Рассмотрим названные особенности более подробно.
Известно, что асинхронная установка и сброс триггера имеют наиболее высокий и, что самое неприятное, равный между собой приоритет. Например, если на входы триггера одновременно приходят команды тактируемой записи «1» и асинхронного сброса, то триггер реагирует на более приоритетную из них и устанавливается в «0».
Но если одновременно подать равноприоритетные и противоречивые по действию команды асинхронной установки и сброса, то триггер окажется перед неразрешимой дилеммой, кого из двух «равновеликих начальников» предпочесть.
Такие комбинации входных сигналов называют запрещёнными, но не потому, что триггер «растерялся» и не знает, что делать. Любой реальный TTL-триггер отреагирует на подобные «издевательства» вполне определённым образом, установив на обоих выходах одинаковые значения Q = NQ = 1, которые экспериментатору предлагается интерпретировать как сигнал «бедствия».
Вы можете возразить, что ничего страшного в этом нет. Ведь такие состояния, правда, кратковременно возникают всегда, когда триггер меняет своё состояние на противоположное.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.