3. ПОСЛЕДОВАТЕЛЬНОСТНЫЕ СХЕМЫ

 

В последовательностных схемах (ПС) выходные сигналы зависят не только от комбинаций входных, но и от значений самих выходных сигналов в предшествующий момент времени. Для работы ПС принципиальное значение имеет время задержки распространения tзд.р. Простейшей ПС является триггер.

 

3.1 ТРИГГЕРЫ

Триггером называют последовательностную схему с положительной обратной связью и двумя устойчивыми состояниями 0 и 1 (то есть триггер обладает свойством памяти) . В общем случае триггер может иметь асинхронные входы предварительной установки, тактовый или синхронизирующий и информационные входы. К основным типам триггеров относятся:

- триггер с раздельной установкой состояний (RS-триггер),

- триггер "защелка" (D - триггер),

- универсальный триггер (JK - триггер),

- триггер со счетным входом (T - триггер).

По способу записи информации триггеры подразделяются на асинхронные и синхронные или тактируемые, а по способу управления - на триггеры со статическим управлением (единичным или реже нулевым уровнем тактового сигнала) и триггеры с динамическим управлением (положительным - из 0 в 1, или отрицательным - из 1 в 0 фронтом тактового сигнала). В последнем случае говорят о триггерах с прямым или инверсным динамическим входом управления.

 

3.1.1  АСИНХРОННЫЙ RS - ТРИГГЕР

 

Асинхронный триггер имеет два входа S(et) - установка и R(eset) - сброс и два выхода прямой - Q и инверсный - ~Q. Триггер переходит из текущего состояния X на выходе к состоянию 0, при подаче на вход S нуля и на вход R единицы, а при поступлении на вход S единицы и на вход R нуля триггер переходит к состоянию 1. При нулевых значениях, когда S=R=0 триггер должен сохранять старое значение. Комбинация сигналов S=R=1 не определена. В соответствии с описанием составим таблицу состояний триггера (таблица 6).

tabl6.gif (4308 bytes)

  Q и X - могут принимать любые значения, но Q в пределах одной строки, неизменно. Значения d будут доопределены на этапе минимизации. Входных переменных три - S,R и текущее состояние выхода Qt, поэтому всего должно быть восемь состояний при различных значениях Q и X. Последующее состояние выходов отделено от текущего временем задержки сигнала dt. Таблица Карно функции Q(t+dt) с учетом всех возможных состояний приведена на рис.35, слева.

ris35.gif (3252 bytes)

Доопределяем значения d единицей и находим характеристическое уравнение RS - триггера:

Q(t+dt) = S + ~R*Qt = ~(~S * ~(~R*Q)).  (26)

Этому уравнению соответствует схема на рис.35, справа. Учитывая,что Qt и Q(t+dt) сигналы на одном и том же выходе, но в разные моменты времени, свяжем их. Окончательно схема триггера и его условное обозначение будет выглядеть, как на рис.36.

ris36.gif (3386 bytes)

Условное обозначение B соответствует части рисунка, обведенной точками, т.е. RS триггеру с инверсными входами, а обозначение A - всему рисунку, или RS триггеру с прямыми входами.

Если на триггер с прямыми входами подать сигналы R=S=1 или на входы инверсного - нули, то оба выхода Q и ~Q будут установлены в 1, что противоречит аксиоме Q*~Q = 0. Поэтому такой режим, иногда называют запрещенным. Однако ничто не мешает разработчику использовать его, например для сигнализации об одновременном и нежелательном поступлении единичных сигналов на RS входы, введением дополнительной схемы И.

Временные диаграммы RS триггера с инверсными входами приведены на рис.37. Через время tзд.р.,обозначенное "-", от поступления сигнала ~S = 0 на вход элемента И-НЕ с номером 3, выход Q переключится первым, а следом через такой же промежуток времени переключится и выход ~Q. Спустя интервал времени t2 - t0 = dt на выходах установятся новые значения. Также протекает процесс при ~R = 0, но выход ~Q переключится первым. Отсюда вытекает, что изменение входных сигналов не должно происходить быстрее времени dt.

ris37.gif (2240 bytes)

Одним из применений RS триггера с инверсными входами служит схема подавления "дребезга" контактов клавиатуры. Процесс многократного размыкания и замыкания контактов при их переключении называется дребезгом. Схема и диаграммы показаны на рис.38.

ris38.gif (3189 bytes)

В момент t0 нажатия на клавишу, начинаются соударения верхнего и среднего контактов.До момента t1 сигналы ~S,~R поочередно принимают значения 1,1 и 0,1 что соответствует режимам памяти и установки в 1. При этом, естественно начальное значение Q = 1 не изменится, что и требуется. В интервале t1..t2 средний контакт находится в "свободном по- лете". Первое его касание нижнего контакта в момент t2 сбросит триггер (~S = 1, ~R = 0). До момента t3 сигналы ~S,~R поочередно принимают значения 1,0 и 1,1 что соответствует режимам сброса и памяти, т.е. Q = 0. При отпускании клавиши (момент t3) развивается обратный процесс. В результате действия схемы выходной сигнал чист от импульсных помех.

 

3.1.2 СИНХРОННЫЙ RS - ТРИГГЕР

 

Если незадействованные входы элементов И-НЕ 1 и 2 соединить вместе (рис. 36), получится синхронный RS - триггер со статическим управлением (синхронизируемый уровнем). Схема и условное обозначение приведены на рис.39.

ris39.gif (2873 bytes)

Нетрудно убедиться,что при C=0 сигнал Q=~(~Q*1)=Q, а ~Q=~(Q*1)=~Q, т.е. независимо от значений S и R, выходы сохраняют старые значения и триггер находится в режиме памяти. При C=1 он функционирует, как асинхронный RS-триггер. Триггеры со статическим управлением называют, также "прозрачными", т.к. при активном уровне синхросигнала C, информация с входов беспрепятственно проходит на выходы. Временные диаграммы приведены на рис.40.

ris40.gif (2822 bytes)

До момента времени t4 сигнал C = 1 и выходное значение определяется комбинациями сигналов R и S. В течение интервала времени  t0...t1 на входе R действует 1, а сигнал S = 0, поэтому Q тоже равно 0. Начиная с момента t1 и до момента t2 R = S = 0 и действует режим памяти (Q не изменяется). В момент t2 R = 0,а S = 1 и триггер устанавливается (Q = 1). С момента окончания импульса S и до момента t3 триггер хранит эту единицу, а в момент t3 сбрасывается, т.к.R = 0, а S = 1. Аналогично можно проанализировать и все остальные состояния выхода.

 

3.1.3 D - ТРИГГЕР СО СТАТИЧЕСКИМ УПРАВЛЕНИЕМ

 

D - триггер имеет два входа: информационный вход D(аtа) и вход управления записью/запоминанием (защелкиванием) L(oad)/L(atch) - отсюда его второе имя : "защелка". Последний вход часто обозначают символом C(lock). Выходной сигнал Q принимает значение равное входному D при L = 1 и сохраняет предыдущее значение Q(t+dt) = Qt при L = 0. Таблица состояний триггера имеет вид:

ris40-1.gif (3768 bytes)

  Q и X - могут принимать любые значения, но Q в пределах одной строки, неизменно. Таблица Карно дана на рис.41. Связующий импликант добавлен для получения схемы свободной от "гонок" (см. раздел - переходные процессы) и от инверсии входных величин. Q(t+dt) = ~L*Qt + L*D + D*Qt = L*D + Qt(~L + D) = L*D + Qt((~L + D)*(~L + L)) = L*D + Qt*((~L + D*~L) + D*L) = L*D + Qt*(~L + D*L) =  ~(~(L*D) * ~(Qt*(D*L + ~L)))  =  ~(~(L*D) * ~(Qt*~(~(D*L) * L))).

Этой формуле соответствует схема и условное обозначение на рис.41, в центре и справа.

ris41.gif (4273 bytes)

Если в уравнение вместо ~(D*L) * L подставить ~(D*L) * L = (~D + ~L)*L = ~D*L получится реализация D-триггера с использованием RS- триггера, но появляется дополнительный инвертор. На рис.42 приведена схема такого триггера, дополненная асинхронными инверсными входами установки и сброса ~S и ~R (эти две перекрестные связи показаны двойными линиями).

ris42.gif (3987 bytes)

Если на вход ~S подать активный сигнал 0, а на вход ~R единицу, то Q=1 независимо от сигналов на остальных входах элемента 3. На выходе 2-го элемента по той же причине тоже единица. Три единицы встречаясь на входах элемента 4, дают на его выходе ноль, который попадая на вход 3-го элемента подтверждает его состояние. Триггер устанавливается в единицу. Причем сигналы D и L не влияют на этот процесс. В силу этого, асинхронные   входы (~S и ~R)  имеют наивысший приоритет. Вследствие симметричности асинхронных связей, аналогично протекает процесс при ~S=1 и ~R=0, но триггер, естественно сбрасывается (Q = 0). Уравнение синхронного D-триггера   с асинхронными входами сброса/установки ~S и ~R записыватся в следующем виде:

Q(t+dt) = S + ~R * (~L*Qt + L*D + D*Qt).                    (27)

В этом выражении до скобок записано уравнение асинхронного RS-триггера, а в скобках уравнение D-триггера. Нетрудно увидеть, что при ~S = 0 (S = 1) и ~R = 1 все выражение равно единице (установка триггера в "1"), а при ~S = ~R = 1, RS-триггер "отключается" и схема функционирует, как D-триггер. Временные диаграммы работы триггера приведены ниже.

ris42-1.gif (3085 bytes)

С момента времени t0 до момента t1 сигнал загрузки L = 1 (на входах ~R и ~S пассивный уровень) и данные с входа D беспрепятственно проходят на выход Q (свойство прозрачности D-триггера со статическим управлением видно особенно наглядно). В момент t1 триггер становится непрозрачным, информация защелкивается и последнее значение на выходе будет храниться до прихода нулевого уровня на вход ~R в момент t2. Состояние Q = 0 не изменится даже при L = D = 1 в момент t3. Триггер установится только в момент t4 по сигналу ~S = 0. Если вернуться к рис.41 и убрать из условного обозначения триггера вход C, получится повторитель и инвертор, как на приведенном рисунке, и эта схема не будет обладать свойствами памяти.

ris42-2.gif (1448 bytes)

Поэтому асинхронных D -триггеров в природе не существует и определение "синхронный" по отношению к D-триггеру является избыточным.

 

3.1.4 D - ТРИГГЕР С ДИНАМИЧЕСКИМ УПРАВЛЕНИЕМ

 

Отличается от cтатического D-триггера свойствами L(C) входа. Запись информации происходит только в момент перехода тактового сигнала L из 0 в 1. При постоянном значении L=0, L=1 или отрицательном перепаде триггер хранит предыдущую информацию, т.е. не обладает свойством прозрачности (см.таблицу состояний 7). Промышленно выпускаемые триггеры дополняются асинхронными инверсными входами установки и сброса ~S и ~R (рис.43).

ris42-3.gif (5822 bytes)

Q и X - принимают любое значение, но Q в пределах одной строки, неизменно. На схемах прямые динамические входы D- триггера обозначаются наклонной чертой "слева - снизу - вправо - вверх" или стрелкой внутрь.

ris43.gif (2398 bytes)

Временные диаграммы триггеров с динамическим входом существенно изменяются. Действие асинхронных входов такое же, как в D-триггере со статическим управлением, поэтому на временных диаграммах они не указаны (рис.44).

ris44.gif (1988 bytes)

3.1.5  УНИВЕРСАЛЬНЫЙ JK-ТРИГГЕР

JK-триггер имеет два информационных входа J и K, тактовый динамический вход, чаще инверсный, и два асинхронных входа установки и сброса. Его таблица состояний имеет вид:

ris44-1.gif (6827 bytes)

Q и X - принимают любые значения, но Q в пределах одной строки, неизменно.Запись информации, при пассивных уровнях сигналов сброса (~R) и установки (~S),  осуществляется только в моменты перехода сигнала C из 1 в 0, за исключением триггера типа ТВ15, который переключается положительным фронтом, т.е. JK -триггеры являются непрозрачными.Уравнение JK-триггера с асинхронными входами ~R и ~S:

Q(t+dt) = S + ~R ( J*~Qt + ~K*Qt ).  (27.1)

Условные обозначения JK-триггера с инверсным динамическим входом приведено на рис.45. Наклонная черта "смотрит слева - направо - сверху - вниз", а стрелка повернута наружу. Универсальность JK -триггера будет продемонстрирована далее.

ris45.gif (2599 bytes)

Вторая,третья и четвертая строчки таблицы состояний идентичны соответствующим строчкам RS-триггера, если вход J уподобить входу S, а вход K - входу R. Отличие в том , что комбинация J = K = 1 определена и триггер в этом режиме приобретает очень полезное свойство (см.таблицу 8), при поступлении каждого отрицательного фронта на вход C, меняет значение сигнала на выходе, как показано на рис.46.

ris46.gif (1804 bytes)

 

3.1.6 T - ТРИГГЕР

Анализ временной диаграммы при J = K = 1 (рис. 46) позволяет сделать два важных вывода. Во-первых , период повторения выходных импульсов увеличился в два раза, значит триггер в этом режиме делит частоту входных импульсов на два. Во-вторых, с приходом четного импульса выходной сигнал равен 0, а с приходом нечетного равен 1, т.е. триггер является счетчиком  по модулю два. Триггер со счетным входом или T - триггер промышленностью не выпускается, а реализуется с помощью динамического D , или JK - триггеров.

3.1.7 ВЗАИМНЫЕ ПРЕОБРАЗОВАНИЯ ТРИГГЕРОВ

JK триггер преобразуется в динамический D - триггер подключением инвертора к входу K (рис.47-1), при этом из четырех комбинаций сигналов: J=K=0, J=K=1, J=0 K=1, J=1 K=0 осуществлены будут две последних, т.е. синхронные установка и сброс. Если необходим прямой синхровход, к входу C подключается еще один инвертор. На рис.47-2 JK триггер включен по схеме T - триггера со счетным входом (J=K=1). Счет можно прервать, подав на один из асинхронных входов 0.

ris47.gif (2703 bytes)

D-триггер с динамическим управлением также преобразуется в T-триггер, путем введения обратной связи с инверсного выхода на вход D. Тогда Q(t+dt) = D, но D в свою очередь равно D = ~Qt и, следовательно Q(t+dt) = ~Qt, т.е. новое значение на выходе триггера является инверсией старого с каждым поступлением положительного перепада тактового импульса C (рис.48-1,2).

ris48.gif (3617 bytes)

И, наконец, любой из перечисленных триггеров может быть использован в качестве асинхронного RS-триггера с инверсными входами (рис.48-3), невзирая на остальные сигналы, что объясняется наивысшим приоритетом входов ~S и ~R. 

Схема на рис.48-1 позволяет оценить максимальную частоту входных импульсов Fmax на тактовом входе D-триггера в счетном режиме. В справочниках приводится задержка активного фронта сигнала от входа C до момента установления нового значения сигнала на выходе триггера tзд.р.тр. = tba (рис.48-4). Реже приводится время опережения установки tуст = tab информационным сигналом на входе D,  активного фронта сигнала C. Новый активный фронт должен поступить не ранее окончания интервала времени равного сумме этих двух временных параметров. Отсюда следует, что максимальное значение Fмакс.деления < 1 / (tзд.р.тр. + tуст). Существует еще один параметр th - время удержания (hold) информационного сигнала относительного тактового (синхронизирующего), однако этим временем обычно можно пренебречь.


3.2 РЕГИСТРЫ

 

Последовательностные схемы с различными комбинациями последовательного и параллельного способов записи и считывания информации. Выполняются на основе триггеров.

 

3.2.1 ПАРАЛЛЕЛЬНЫЕ И ПОСЛЕДОВАТЕЛЬНЫЕ РЕГИСТРЫ

Регистры с параллельной записью называются, также регистрами памяти. В них могут использоваться, как прозрачные "защелки", так и триггеры с динамическим управлением. На рис.49 приведена схема 8-ми разрядного регистра памяти с общим входом управления записью информацией и ее условное обозначение. Высокий уровень на входе C переписывает информацию с входа на выход (Qi=Di), а низкий уровень - защелкивает данные.

ris49.gif (3081 bytes)

Последовательные регистры или, как их еще называют, регистры сдвига (рис. 50) выполняются на основе триггеров с динамическим синхровходом, ( справедливо для регистров с одним тактирующим сигналом). В двухтактных можно использовать и прозрачные регистры - "защелки". Функция записи в n-разрядном регистре сдвига на D-триггерах задается в виде условий: D0=DS=x, Di=Q(i-1), где i=1,2,...,n-1. DS - вход для последовательной записи.

ris50.gif (4039 bytes)

С приходом очередного положительного фронта синхроимпульса C , сигнал с входа i-го триггера через время tзд.р. окажется на его выходе и поступит на вход следующего (i+1)-го триггера. Однако на его выход эта информация не перепишется, т.к. длительность активного фронта t0,1 меньше tзд.р. На этом процесс сдвига данных на один разряд закончится до прихода следующего положительного фронта тактового сигнала. Отсюда понятно, почему нельзя использовать триггеры со статическим управлением. Каждый раз при C = 1 вся цепочка окажется прозрачной от входа DS до выхода Q7 и значение DS = x будет записано во все триггеры.

В обозначениях регистров сдвига направление стрелки, указывающей сдвиг, условно. В разных справочниках, ее направление различно.Условно принимается, что сдвиг производится от младшего разряда к старшему. Практические схемы регистров дополняются схемами, подключаемыми к каждому триггеру и имеющими вход параллельной записи Di, общий вход разрешения записи L и общий асинхронный вход сброса ~R всех триггеров. Эти схемы подключаются к незадействованным входам ~Ri, ~Si триггеров. Данному описанию соответствует таблица истинности 9.

 ris50-1.gif (3611 bytes)

Di и X - могут принимать любые значения, но Di в пределах одной строки, неизменно. Минимизируя логические функции ~Ri и ~Si с помощью таблиц Карно получим: ~Si = ~(L*Di*~R) и ~Ri = ~R*(~L + Di). Этой паре уравнений соответствует схема, показанная на рис.51, где приведено также условное обозначение регистра сдвига выполненного по такой схеме.

ris51.gif (3818 bytes)

Вход ~R обладает наивысшим приоритетом, если ~R=0, то ~Ri=0, а ~Si=1 и все триггеры обнуляются, независимо от сигналов L,Di и C. Меньшим приоритетом обладют входы L и Di. Если ~R = 1, то при L = 1, производится параллельная запись информации и Qi = Di независимо от сигнала C.  И, наконец, если на входах ~R и L пассивные уровни, то ~Ri = ~Si = 1, тоже пассивный уровень и регистр хранит информацию, либо производит ее сдвиг.

Одно из применений регистров сдвига с параллельной загрузкой кода заключается в преобразовании параллельного формата данных в последовательный, передаче этих данных по однопроводной линии связи (вторая линия должна быть, как минимум "землей" или экраном) и обратном преобразовании последовательной информации в параллельную (рис.52).

ris52.gif (2250 bytes)

Такая схема применяется в коммуникационных портах ЭВМ (COM-порты), в микросхеме К580ИК51, а также в модемах.

 

3.2.2 РЕВЕРСИВНЫЙ РЕГИСТР СДВИГА

Название указывает, что сдвиг данных от разряда к разряду может производиться, как в одну сторону, так и в другую.Одна из возможных схем трехразрядного реверсивного регистра с двумя последовательными информационными входами, для сдвига информации влево DSL, и вправо DSR, с параллельными входами записи (D0..D2), синхровходом C, входом ~R установки в 0 всех триггеров и двумя входами выбора режима M1,M0, приведена на рис.53.

ris53.gif (6067 bytes)

К D-входу любого разряда, за исключением крайних, подключены, через входы 1 и 2 мультиплексора, выходы и левого и правого соседних триггеров. Если M1=0, а M0=1, то к входам D подключены первые входы мультиплексоров и информация в каждый триггер, кроме нулевого записывается от левого соседа (происходит сдвиг вправо). Вход DSR служит в этом режиме для последовательного ввода информации. Если M1=1, M0=0, то к входам D подключены вторые входы мультиплексоров и информация в каждый триггер, кроме последнего записывается от правого соседа (происходит сдвиг влево). Для последовательного ввода данных в этом режиме используется вход DSL. При M1=M0=1 происходит параллельная запись Qi=Di положительным фронтом тактового сигнала.    Для хранения информации необходимо подать комбинацию M1=M0=0. В этом случае к D-входам триггеров подключатся нулевые входы мультиплексоров (на схеме не показаны). Чтобы не произошло несанкционированной записи схема ИЛИ-И запрещает в этом режиме прохождение синхроимпульсов. По такой схеме выполнен 8-разрядный регистр 1533ИР13. Реверсивный регистр может использоваться для быстрого (всего за n тактов) деления и умножения двоичных чисел на 2^n, где n-число сдвигов. Например вместо числа 5, после сдвига влево на 2 разряда, стало число 20.

ris53-1.gif (2157 bytes)

 

3.2.3 СИНХРОННЫЙ И АСИНХРОННЫЙ СПОСОБЫ ЗАГРУЗКИ ПАРАЛЛЕЛЬНОГО КОДА

Устройства (в том числе регистры), в которых для записи входного параллельного кода Di  используется сигнал разрешения записи L, а тактовый сигнал C не используется, называются устройствами с асинхронной   параллельной записью кода.

syn-asyn-load.gif (2316 bytes)

Устройства (в том числе регистры), в которых для записи входного параллельного кода  Di необходим, во-первых, сигнал разрешения записи L и, во-вторых, перепад синхросигнала на тактовом входе C - называются устройствами с синхронной параллельной записью кода.

Условные обозначения таких входов могут совпадать поэтому для точной идентификации способа записи необходимо обращаться к справочникам (таблица состояний либо описание).