Понятие о синтезе цифрового автомата с памятью
При синтезе ЦА последовательно выясняются, а затем удовлетворяются условия его устойчивой работы (без нарушения заданной логики), в том числе помехоустойчивости.
Критерием устойчивости ЦА может служить следующее положение: ЦА устойчив, если любой набор входных сигналов x1, x2, …, xn вызывает в данный дискретный момент времени конечное число изменений выходных сигналов.
В частности, для обеспечение устойчивости ЦА необходимо и достаточно, чтобы набор входных сигналов x1, x2, …, xn вызывал в данный дискретный момент однократное изменение внутреннего состояния автомата Q1, Q2, …, Qn.
Синтез ЦА обычно осуществляют в три этапа:
- вначале определяют минимальное число внутренних состояний автомата Nмин, обеспечивающее устойчивую его работу в заданных условиях. Затем выбирают тип элемента памяти (триггеров) путем сравнения правил работы ЦА и триггера по таблицам переходов. Часто оказывается, что в ЦА могут успешно работать триггеры различных типов, и, следовательно, допускается известная свобода выбора элементной базы;
- определяют функции возбуждения всех триггеров. Функция возбуждения формируется комбинационной схемой и представляет собой логическую зависимость сигналов на входах триггеров от сигналов на входе автомата и выходных сигналов предыдущего состояния триггеров. Очень часто функция возбуждения оказывается неопределенной и допускает применение факультативных условий для эффективной ее минимизации с целью упрощения схемы;
- минимизируют функцию возбуждения и реализуют ее на выбранном базисе ЛЭ. В заключении составляется функциональная схема всего автомата.
Сдвигающие регистры
Сдвигающие регистры строят только на синхронных RS-, D-, JK-триггерах путем последовательного соединения входов данного триггера с выходами предыдущего (при сдвиге кода в сторону младших разрядов - вправо), либо с выходами последующего (при сдвиге кода в сторону старших разрядов - влево).
Схема сдвигающего регистра на RS Триггерах со сдвигом вправо приведена на рис. 5.4.
Рис. 5.4
Действительно, если подать на S и R входы триггеров парафазную информацию о цифрах ai в последовательном коде, то каждый раз во время синхроимпульса все триггеры принимают новое состояние от предыдущих триггеров.
Реализация регистра на Д-триггера со сдвигом влево приведена на рис. 5.5. для сдвигающих регистров в основном поле условного обозначения могут указываться направления сдвига:
® вправо, влево, реверсивный.
Рис. 5.5.
Комбинируя схемы сдвига вправо и влево и используя управляющие сигналы, можно построить регистр сдвига в обоих направлениях. Такой регистр называется реверсивным (рис. 5.6).
Рис. 5.6
В этом регистре логические цепи управления допускают сдвиг кода вправо при управляющем сигнале y=1 или влево при у=0. Входы и выходы триггеров в регистре соединены между собой в прямом и обратном направлениях через схемы управления на ИЛЭ 2И-2И-2ИЛИ. Эта логическая схема задает направление сдвига. При этом на D-входе i-го триггера формируется сигнал .
Согласно данному выражению при у=1 на входе i-го триггера действует сигнал от предыдущего триггера , который под действием синхроимпульса записывается на выход i-го триггера. Код сдвигается вправо. При у=0 и на выходе i-го триггера . Код сдвигается влево. В регистрах сдвига влево и вправо разряды двоичного кода выходят за пределы разрядности регистра. Если соединить выход крайнего правого разряда регистра с входом крайнего левого разряда, то получим схему кольцевого (циклического) регистра сдвига. Такой регистр, кроме режима ввода и вывода информации, имеет так же режим хранения информации. Логическая схема, входящая в состав регистра, осуществляет связь входа регистра с его выходом, источником информации и управляющими сигналами y и z.
Рис. 5.7.
Схема кольцевого регистра и временные диаграммы его работы приведены на рис. 5.7.
Основным функциональным узлом этого регистра является трехразрядный сдвигающий регистр, старший разряд которого находится слева (сдвиг информации осуществляется в сторону младших разрядов вправо).
Функционирование всех триггеров регистра, кроме триггера старшего разряда, описывается функцией , отражающей сдвиг записанной в регистр информации в сторону младших разрядов на один разряд во время каждого такта.
.
Последовательный код числа вводится в регистр за три такта работы младшим разрядом впереди при сигналах , так как согласно (1) . При каждом синхроимпульсе в триггер старшего разряда записывается очередной разряд кода числа А и происходит сдвиг кода вправо на один разряд. После трех тактов работы (Q2=a2, Q1=a1, Q0=a0) c выходов триггеров регистра возможно параллельное считывание записанного кода на один разряд вправо.
Последовательный вывод информации производится также за три такта работы. Регистр обнуляется также за три такта при условии подачи управляющих сигналов у=0, z =0, когда согласно (1) z=0.
Режим хранения информации обеспечивается при управляющих сигналах z=1, когда, согласно (1), .
В этом случае при поступлении очередного синхроимпульса код сдвигается вправо, триггер старшего разряда освобождается от старой информации, но принимает информацию Qi с выхода младшего разряда регистра. Таким образом, записанный в регистре код непрерывно циркулирует в нем.
Все рассмотренные схемы регистров можно реализовать в виде одной схемы универсального регистра. Обычно универсальные регистры выпускаются в виде интегральных микросхем. В зависимости от подавляемых управляющих сигналов такой регистр может работать в режимах регистра памяти, регистров сдвига, реверсивного регистра, кольцевого регистра и т.д. (К155ИР1).
Последовательный регистр
Последовательные регистры строят на базе сдвигающих, взаимно связывая триггеры последовательно слева на право или наоборот.
Для ввода n цифр кода разряд за разрядом в последовательный регистр требуется n тактов работы. При непрерывном поступлении тактовых синхроимпульсов (ТИ) код непрерывно сдвигается, а регистр называют бегущим.
Для сохранения информации в бегущем регистре его выход и вход замыкают кольцом обратной связи через схему управления. Такой последовательный регистр называется кольцевым.
Счетчики
Счетчиком называется цифровой автомат для счета, регистрации числа импульсов (единиц информации), поступивших на его информационный вход.
Схема счетчика содержит n связанных между собой триггеров, расположенных по возрастанию их разрядного веса 20, 21,…, 2n-1 так, что вход младшего триггера служит информационным входом счетчика.
Номер состояния счетчика, как и регистра, определяется совокупностью значений Qi на выходах триггеров, образующих двоичный код числа
, где .
Счетчики можно классифицировать по нескольким признакам. В зависимости от направления счета различают: суммирующие (с прямым счетом), вычитающие (с обратным счетом) и реверсивные (с прямым и обратным счетом). Если с каждым входным импульсом записанное в счетчике число увеличивается, то такой счетчик является суммирующим, если же оно уменьшается, то – вычитающим. Счетчик, работающий как на сложения, так и на вычитание, называют реверсивным. По способу организации схемы переноса различают счетчики с последовательным, сквозным, параллельным и комбинированным переносом единицы от разряда к разряду. В зависимости от наличия синхронизации (различают синхронные и асинхронные счетчики).
К основным параметрам счетчиков относятся модуль (коэффициент) пересчета КС и быстродействие. Модуль пересчета КС равен числу устойчивых состояний, которое может принимать данный счетчик.
Счетчик, содержащий n двоичных разрядов, может находиться в состояниях 0,1,2,…, 2-1. При поступлении на вход суммирующего счетчика 2-й единицы он переходит из состояния 2n-1 в состояние 0. Таким образом, n-разрядный суммирующий счетчик имеет модуль пересчета .
Быстродействие счетчика определяется его разрешающим временем tразр., равным тому минимальному отрезку времени между двумя поступающими на вход импульсами, при котором эти сигналы воспринимаются счетчиком как раздельные. Минимальный период повторения входных импульсов Tmin не должен быть меньше разрешающего времени . Быстродействие удобно характеризовать также максимально возможной частотой поступления входных сигналов, наименьшей длительности , при которой счетчик реагирует на каждый входной импульс:
.
Счетчики реализуются на Т-, Д-, JК – триггерах.
Суммирующий счетчик
Суммирующий асинхронный счетчик с последовательным переносом
В суммирующих счетчиках записанное число при каждом входном импульсе, увеличивается на 1. Поэтому их строят с учетом правила увеличения двоичного кода на 1: «Двоичный код числа А+1 получается из двоичного кода числа А путем инвертирования младшего из нулей и старших правее него единиц».
Например,
Из этого правила можно сделать следующие выводы:
- триггер младшего (нулевого) разряда должен переключаться при воздействии каждого единичного сигнала;
- при очередном входном единичном сигнале 1-й триггер счетчика переключается независимо от исходного состояния, если все триггеры предыдущих младших разрядов переключаются из состояния Q=1 в состояние Q=0;
- переключение i-го триггера вызывается отрицательным перепадом на входе 1/0.
На основании этих выводов заключаем, что при построении суммирующего счетчика на асинхронных Т-триггерах инверсные Т-входы триггеров следует соединять с прямыми выходами предыдущих триггеров, а при прямых Т-входах их надо соединять с инверсными выходами предыдущих триггеров. Рассмотрим трехразрядный суммирующий счетчик на асинхронных Т-триггерах с инверсными Т-входами (см. рис. 5.8.).
Рис. 5.8.
В начале работы все триггеры счетчика установлены в нулевое состояние. Затем в каждом такте на счетный вход младшего триггера ТТ0 поступает очередной импульс (n+1), окончание которого вызывает переход в единичное состояние только триггера ТТ0. Его вход является счетным входом следующего триггера ТТ1 и т.д. Из временных диаграмм и соответствующих двоичных обозначений состояний триггеров следует, что в промежутках между входными сигналами состояние счетчика представляет собой двоичный код числа поступивших сигналов.
Когда все n триггеров заполнены единицами, то в счетчике записано наибольшее число . Очередной 2n-й импульс обнуляет счетчик, и далее ведется новый цикл счета от 0 до . Каждый триггер счетчика является делителем частоты поступивших на его вход импульсов на два. Общий коэффициент деления счетчика равен КС=2.
Запуск каждого последующего триггера счетчика происходит только после срабатывания предыдущего, т.е. с некоторой задержкой (рис. 5.8). Это снижает быстродействие счетчика: его разрешающее время будет возрастать пропорционально количеству разрядов , где tуд.р.ср.т.- среднее время задержки распространения сигнала при срабатывании одного триггера. Отсюда с учетом длительности входного импульса in максимальная частота работы счетчика с последовательным переносом и соответственно минимальный период повторения входных импульсов определяются по формулам:
; Тн=1/Fn.
Помимо суммирующих, существуют вычитающие и реверсивные счетчики с последовательностным переносом. Принцип их построения аналогичен вышеописанному, т.е. перенос (переключение триггеров) осуществляется последовательно (последующий триггер переключается только после переключения предыдущего).
Вычитающий счетчик
Вычитающий счетчик с последовательным переносом. Чтобы выяснить принцип построения вычитающего счетчика, вычтем из двоичного числа единицу:
_111001 111000
1 1
111000 110111
Если в каждом примере поразрядно сравнить исходное число и результат (111001 и 111000, а также 111000 и 110111), то можно сделать вывод, что младший разряд исходного числа переключается всегда; каждый более старший разряд переключается, если предыдущий переключился из 0 в 1.
Применительно к рассматриваемому счетчику на вычитание это означает, что счетные импульсы следует подавать на вход триггера младшего разряда, а между собой триггеры должны быть соединены так, чтобы обеспечить переключение последующего, когда предыдущий по прямому выходу переходит из 0 в 1. Для выполнения последнего условия счетный вход последующего триггера следует соединить с инверсным выходом предыдущего, если триггеры переключаются перепадом 1/0, или с прямым выходом, если триггеры переключаются перепадом 0/1.
Схема вычитающего счетчика на триггерах, переключающихся перепадом 1/0, приведена на рис. По входам S в разряды счетчика заносится двоичное число, из которого нужно вычесть число, представляемое количеством входных импульсов.
Пусть, например, в счетчик (рис.) записано число 510=1012. Первым входным импульсом триггер Т1 переключится из 1 в 0 (по прямому выходу); при этом на инверсном выходе возникает перепад 0/1, которым триггер Т2переключиться не сможет; в счетчике останется число 1002 = 410. Второй входной импульс устанавливает Т1 в состояние 1, на выходе появляется перепад 1/0, который переключает Т2в состояние 1, а формирующийся при этом на Q2перепад 1/0 переключает ТЗ в состояние 0 – в счетчике остается число 0112 = 310. Аналогично можно рассмотреть действие последующих входных импульсов. Очевидно, что после пятого входного импульса во все разряды счетчика будут записаны нули.
Нетрудно установить, что следующий импульс, воздействуя на обнуленный счетчик, переключит все его триггеры в 1.
Счетчики с последовательным переносом, имея простую структуру, обладают рядом недостатков. Один из них состоит в сравнительно низком быстродействии: к к-му разряду переключающий сигнал проходит через к– 1 предыдущих, поэтому интервал между соседними входными импульсами должен превышать tn (п – 1), где tп – время переключения триггера; п – число разрядов счетчика. Другим недостатком является то, что в ходе переключения младшие разряды счетчика принимают уже новые состояния, в то время как старшие еще находятся в прежнем, т. е. при смене одного числа другим счетчик проходит ряд промежуточных состояний, каждое из которых может быть принято за двоичный код числа прошедших на входе импульсов.
Когда для устройства, куда входит счетчик, отмеченные недостатки являются существенными, используют счетчик с параллельным переносом.
Реверсивный счетчик
Реверсивный счетчик с параллельным переносом. Такой счетчик должен работать как на сложение, так и на вычитание. В суммирующем счетчике каждый последующий триггер получает информацию с прямого выхода предыдущего, а в вычитающем – с инверсного выхода, т. е. для перехода от сложения к вычитанию и обратно надо изменять подключение счетного входа последующего триггера к выходам предыдущего.
Такая программа реализуется в схеме реверсивного счетчика (рис. 5.9.). До некоторой степени эта схема аналогична схеме суммирующего счетчика: на объединенные входы J u K каждого триггера подается конъюнкция сигналов с выходов предыдущих триггеров. Разница состоит в том, что входы J и К каждого триггера через дизъюнктор могут присоединяться к основному выходу предыдущего триггера (через конъюнктор верхнего ряда) или к инверсному выходу (через конъюнктор нижнего ряда).
Чтобы осуществить сложение, на шину сложения с входа D подается 1, которой вводятся в действие конъюнкторы верхнего ряда. При этом на шине вычитания присутствует 0, за счет чего конъюнкторы нижнего ряда выключены. Вычитание осуществляется при D = 0, т. е. с подачей 1 на шину вычитания и 0 на шину сложения. Счетные импульсы поступают на вход Т.
Каждый триггер переключается по тактовому входу С при J=K=1, что имеет место, когда на выходах всех предыдущих триггеров (на прямых – при сложении, на инверсных – при вычитании) будут единицы. Как следует из изложенного ранее, это является условием правильной работы счетчиков в натуральном двоичном коде.
Рис. 5.9.
Пусть, к примеру, в счетчик, установленный на сложение, записано число 1002 = 410 (Q3 = 1, Q2 = Q1 = 0). Так как при этом предыдущими разрядами обеспечивается J3 = K3 = 0, J2 = K2 = 0и постоянно J1 = K1 = l,то первый счетный импульс может переключить только первый разряд. Вслед за этим с выхода Q1 на входы J2, К2поступит 1, поэтому второй счетный импульс установит в 1 второй разряд и сбросит в 0 первый. Далее процесс счета протекает аналогично и с приходом на вход каждого счетного импульса регистрируемое в счетчике число возрастает на единицу.
Пусть при тех же условиях (Q3 = 1, Q2 = Q1=0) счетчик устанавливается в режим вычитания. Теперь входы J и К каждого триггера получают информацию с инверсного выхода предыдущего, т. е. сейчас J3= К3 =1, J2 = K2=1, J1 = K1=1. Поэтому первый счетный импульс переключит все рассматриваемые разряды, установив Q3 =0, Q2 =Q1 = 1, т.е. уменьшив предварительно записанное в счетчик число на единицу. Аналогично действует каждый входной импульс.
На рис. 5. 10. приведено условное изображение одного из типов реверсивных счетчиков. На входы +1,-1 подают счетные импульсысоответственно в режимах сложения и вычитания. Через входы предварительной записи D1-D4 в счетчик можетбыть записано число. Такая запись осуществляется с поступлением импульса на вход разрешения V. Выводы 1,2,4,8 — выходы разрядов счетчика, цифры указывают на вес каждого из них.
Рис. 5. 10.