Исключение состязаний является основной целью кодирования состояний асинхронного автомата. Для этого необходимо состояния, между которыми происходит переход, закодировать так, чтобы при этом переходе менялся только один элемент памяти.
Необходимое число разрядов кода q определяется также как при кодировании синхронного автомата, т.е. qmin = ┐log2k┌ , qmax = k, где k – число состояний автомата.
Способ кодирования соседними кодами.
Этот способ предполагает использование минимального числа элементов памяти и состоит в том, что состояния, между которыми существует переход, кодируются соседними кодами.
Однако, даже используя код любой длины, не всегда удается на всех переходах закодировать состояния соседними кодами (рис. 6.7).
Рис. 6.7
В этом случае необходимо вводить дополнительные промежуточные состояния, которые являются неустойчивым и называются транзитными. Число транзитных состояний на переходе может быть любым. Они служат для исключения состязаний и задания очередности изменения элементов памяти. На рис. 6.8 между состоянием с кодом 00 и состоянием с кодом 11 введено транзитное состояние с кодом 10.
Рис. 6.8
Если число переходов велико и при минимальном числе элементов памяти не удается соседними кодами закодировать состояния, то необходимо увеличить на единицу число разрядов кода и повторить процедуру кодирования, при этом надо стремиться при минимально возможной длине кода, ввести минимум транзитных состояний.
Универсальный способ кодирования.
Это кодирование состояний унитарным кодом.
В данном способе кодирования состояние si кодируется кодом, содержащим одну единицу в i - том разряде.
Для исключения состязаний элементов памяти при переходе из si в sj на этом переходе вводится транзитное состояние, которое кодируется кодом, содержащим две единицы в i и j разрядах (рис. 6.9).
Рис. 6.9
Универсальный способ кодирования позволяет получить функции возбуждения и выхода прямо по графу автомата, которые не требуется минимизировать, но иногда можно упростить.
Пример универсального способа кодирования.
После кодирования унитарным кодом состояний автомата, заданного графом на рис. 6.3:s1 = 100, s2 = 010, s3 = 001 и введения транзитных состояний получается граф на рис. 6.10.
Рис. 6.10
Если в качестве элемента памяти задан D-триггер, то при построении его функций возбуждения необходимо обеспечить его переходы: 0 1 и 1 1. Например, для реализации двенадцатого перехода (номер перехода на pис. 6.10 обведен) надо в функцию возбуждения первого триггера включить конъюнкцию y1 2 3, а для реализации первого перехода из состояния: s1 = 100 в транзитное состояние с кодом 110, необходимо второй триггер установить в единицу, для этого в функцию возбуждения второго триггера надо включить конъюнкцию x1x2y1, как только y2 = 1 конъюнкция y1 2 3 примет значение ноль и этим сбросит первый триггер в ноль - так будет реализован второй переход, т.е. из транзитного с кодом 110 автомат перейдет в состояние s2 = 010. Последовательно просматривая все переходы в графе (pис. 6.10), формируются конъюнкции, которые включаются в соответствующие функции возбуждения. Под каждой конъюнкцией указан номер перехода, который она обеспечивает:
y’D1 = 1 2y2 V 1 2 y3 V y1 2 3;
y’D2 = x1 x2 y1 V 1 x2 y3 V x1 x2 y3 V 1 y2 3;
y’D3 = x1 2 y1 V 1 2 y3;
z = y3.
На рис. 6.11 представлена временн я диаграмма первого и второго перехода:
Рис. 6.11
Пусть в момент времени t0 автомат находится в состоянии s1 , y1y2y3 = 100, а входные сигналы x1x2 = 01. Функции возбуждения триггеров имеют следующие значения y’D1 = 1, y’D2 = 0, y’D3 = 0 и это подтверждает состояние 100, до момента t1.
В момент t1 меняется x1 и к моменту t2 становится y’D2 = 1, а это к моменту времени t3 устанавливает триггер y2 = 1; в интервале t3 и t4 получается транзитное состояние 110. Изменение y2 меняет значение y’D1: 1 0, которое в свою очередь устанавливает в момент t5 триггер y1 = 0 , после t5 автомат находится в устойчивом состоянии 010 , т.е. в s2.
При переходе из s1 в s2 последовательно меняется вначале y2 и затем y1. Это обеспечивает отсутствие состязаний между ними.
Если в качестве элемента памяти задан RS-триггер, то при построении его функций возбуждения необходимо обеспечить его переходы: 0 1 и 1 0. Например, для реализации первого перехода (pис. 6.10) из состояния: s1 = 100 в транзитное состояние 110, необходимо второй триггер установить в единицу, для этого в функцию возбуждения входа S второго триггера надо включить конъюнкцию x1x2y1. Далее для реализации второго перехода из транзитного 110 в состояние s2 = 010 необходимо первый триггер сбросить в ноль, для этого в функцию возбуждения входа R первого триггера надо включить конъюнкцию x1x2 y2. Последовательно просматривая все переходы в графе (pис. 6.10), формируются конъюнкции, которые включаются в соответствующие функции возбуждения:
y’
S1 =
1 2 y
2 V
1 2 y
3;
y’S2 = x1 x2 y1 V 1 x2 y3 V x1 x2 y3;
y’S3 = x1 2 y1;
y’R1 = x1 x2 y2 V x1 2 y3;
y’R2 = 1 2 y2;
y’
R3 =
1 2 y
3 V
1 x
2 y
3 V x
1 x
2 y
3;
z = y3.
На рис. 6.12 представлена временн я диаграмма первого и второго перехода:
Пусть в момент времени t0 автомат находится в устойчивом состоянии s1 , y1y2y3 = 100, а входные сигналы x1x2 = 01. Функции возбуждения триггеров имеют следующие значения: y’R1 = 0, y’S1 = 0, y’R2 = 0, y’s2 = 0 и это подтверждает состояние 100, до момента t1.
В момент t1 меняется x1: 0 1 и к моменту t2 изменяет y’D2 = 1, а это к моменту времени t3 устанавливает триггер y2 = 1; в интервале t3 и t4 получается транзитное состояние 110. Далее изменение y2 меняет значение y’D1: 1 0, которое в свою очередь устанавливает в момент t5 триггер y1 = 0 , после t5 автомат находится в состоянии 010 , т.е. в состоянии s2.
При переходе из s1 в s2 последовательно меняется вначале y2 и затем y1. Это обеспечивает отсутствие состязаний между ними.
Рис. 6.12
6.4.Синтез схем элементов памяти
Методы теория автоматов позволяют описывать функционирование и синтезировать логические схемы элементов памяти.
По логическому функционированию элементы памяти (триггеры) делятся на следующие типы: RS, JK, D и T.
По принципу записи и считыванию информации схемы триггеров делятся:
1. в зависимости от наличия или отсутствия сигнала синхронизации:
a. асинхронные;
b. синхронные;
2. в зависимости от времени записи новой информации, и ее появление на выходе триггера:
a. триггеры без логической задержки;
b. триггеры с логической задержкой.
Триггером с логической задержкой называется триггер, который меняет своё состояние по окончанию сигнала вызвавшего это изменение.
На рис. 6.13 -6.16 приведены временные диаграммы работы всех четырех вариантов логических схем RS-триггера.
В триггерах без логической задержки изменение состояния происходит по фронту информационного сигнала (рис. 6.13) или по фронту синхросигнала (рис. 6.14), а в триггерах с логической задержкой по “спаду” информационного сигнала (рис. 6.15) или “спаду” синхросигнала (рис. 6.16).
Асинхронный RS-триггер
без логической задержки.
Рис. 6.13
Асинхронный RS-триггер
с логической задержкой.
Рис. 6.15
Синхронный RS-триггер
без логической задержки.
Рис. 6.14
Синхронный S-триггер
с логической задержкой
Рис. 6.16
Построение асинхронного RS-триггера без логической задержки из логических элементов потенциального типа.
RS-триггер из логических элементов ИЛИ-НЕ.
На рис. 6.17 приведена схема, так называемой, “бистабильной ячейки” из элементов ИЛИ-НЕ, которая может находиться в одном из двух состояний. Пусть на одном из выходов схемы, который обозначим – q, значение логический ноль, а на другом, который обозначим – , значение логической единицы. После подачи на входы схемы тестовых последовательностей и построения временной диаграммы (рис. 6.18) видно, что это схема является RS-триггером, так как подача 0 0 на входы схемы не меняет значения на её выходах, а подача на входы 1 1 дает на выходах 0 0, т.е. схема перестает быть триггером и следовательно набор
1 1 не допустим. Верхний вход является R-входом, а нижний S-входом. Условное обозначение триггера (рис. 6.19).
0 0 0 1 |
0 1 0 1 |
0 0 1 1 0 |
Рис. 6.17
Рис. 6.18
Рис.6.19
RS-триггер из логических элементов И-НЕ
На рис. 6.20 приведена схема “бистабильной ячейки” из элементов И-НЕ, которая может находиться в одном из двух состояний. Пусть на одном из выходов схемы, который обозначим – q, значение логический ноль, а на другом, который обозначим – , значение логической единицы. После подачи на входы схемы тестовых последовательностей и построения временной диаграммы (рис. 6.21) видно, что это схема является RS-триггером, с инверсными входами так как подача 0 0 на входы схемы дает на выходах 1 1, т.е. схема перестает быть триггером и следовательно набор 0 0 не допустим, а входной набор 1 1 не меняет значения на её выходах.. Верхний вход является -входом, а нижний -входом. Условное обозначение триггера (рис. 6.22).
1 0 1 1 |
1 1 1 0 |
0 0 1 1 |
1 1 0 0 |
Рис. 6.20
Рис. 6.21
Рис. 6.22
Элементы памяти с установочными входами.
Для того чтобы перед началом работы схема триггера находилась в нужном состоянии, в схему вводятся дополнительные, так называемые установочные входы R0 и S0 для элементов ИЛИ-НЕ (рис. 6.23), 0 и 0 для элементов И-НЕ (рис. 6.24). Они отличаются от информационных входов только тем, что нужные значения подаются на входы только перед началом работы триггера. После установки триггера в требуемое состояние они меняются на значение, не влияющие на дальнейшую работу триггера. На рис. 6.25 и рис. 6.26 указаны сигналы устанавливающие триггеры в нулевоё состояние, т.е. q = 0. На рис. 6.27 и рис. 6.28 даны условные обозначения триггеров с установочными входами.
Рис. 6.23
Рис. 6.25
0 0 |
0 0 |
Рис. 6.24
0 |
0 |
Рис.6.26
Рис. 6.27 Рис. 6.28
Синхронные элементы памяти.
Синхронизация позволяет:
1. исключить влияние временных смещений сигналов триггера на его разных информационных входах;
2. позволяет обеспечить одновременное изменение состояний различных элементов памяти.
Рис. 6.29
На рис. 6.29 приведен пример исключение временного смещения входных сигналов на величину ∆. Для асинхронного триггера это привело бы к недопустимой ситуации – подачи на входы RS-триггера двух единиц одновременно. Введение сигнала синхронизации позволяет это исключить.
Требования, предъявляемые к сигналу синхронизации:
1. сигнал синхронизации по длительности должен быть короче информационного сигнала;
2. сигнал синхронизации должен быть во времени сдвинут от изменения информационного сигнала на величину ∆, обеспечивающую устойчивую работу триггера (рис. 6.30).
Информационный сигнал не должен меняться при C = 1.
Рис. 6.30
Синтез синхронного D-триггера без логической задержки.
При синтезе всех триггерных схем синтезируемое устройство рассматривается как асинхронный автомат Мура, который реализуется из заданных логических элементов с использованием в качестве элемента памяти асинхронный RS-триггер без логической задержки (базовый RS-триггер) из заданных логических элементов.
На рис. 6. 31 граф и таблица переходов автомата Мура (табл. 6.4), задающих синхронный D-триггер
Таблица 6.4
Рис. 6.31
На рис. 6. 32 изображена структурная схема синтезируемого D-триггера.
В качестве элемента памяти автомата используется базовый RS-триггер.
Рис. 6.32
q(t) →q(t+1) | S R |
0 → 0 | 0 * |
0 → 1 | 1 0 |
1 → 0 | 0 1 |
1 → 1 | * 0 |
Рис. 6.33
Таблица 6.5
По таблице переходов (табл. 6.4), используя матрицу переходов RS-триггера (рис. 6. 33), строится таблица функций возбуждения (табл. 6.5).
Далее по этой таблице строятся карты Карно для функций возбуждения: y’S (табл. 6.6) и y’R (табл. 6.7). После минимизации получаются следующие выражения для функций возбуждения RS-триггера в базисе ИЛИ-НЕ:
y’S = DC = = V ; y’R = C = C = D V .
Таблица 6.6 Таблица 6.7
На рис. 6.34 приведена схема синтезированного синхронного D- триггера из элементов ИЛИ-НЕ, а на рис. 6.35 его условное обозначение:
Рис. 6.34 Рис. 6.35
На рис. 6.36 приведена схема синтезированного синхронного D- триггера из элементов И-НЕ, а на рис. 6.37 его условное обозначение:
0 |
0 |
Рис. 6.36 Рис. 6.37
На рис. 6.38 приведена временная диаграмма работы синхронного D- триггера из элементов ИЛИ-НЕ (рис. 6.34).
Рис. 6.38
В момент времени t0 сигнал R0, ранее установивший в RS-триггер в 0, становится R0 = 0 и RS-триггер начинает реагировать на сигналы подаваемые на информационные входы.
В момент t1 появляется сигнал R = 1 , однако триггер в состоянии 0 и следовательно смены состояния не происходит.
В момент t2 появляется сигнал S = 1, который устанавливает = 0, а затем q = 1. Повторный сигнал S = 1 в момент t3 лишь подтверждает состояние q =1.
В момент времени t4 появившийся сигнал R = 1 устанавливает q = 0, а затем = 1, т.е. сбрасывает триггер в 0.
Синтез асинхронного T триггера с задержкой.
Триггером с логической задержкой называется триггер, который меняет своё состояние по окончанию сигнала вызвавшего это изменение, т.е. триггер меняет состояние по спаду информационного сигнала (рис. 6.39).
Рис. 6.39
Появление входного информационного сигнала T = 1 устанавливает новое состояние триггера q = 1 , однако на выходе это значение появляется лишь после исчезновения сигнала T = 1. Эффект такой логической задержки можно организовать, используя два элемента памяти, т.е. для задания такого триггера используется автомат Мура, который имеет четыре состояния и соответственно граф - четыре вершины (рис. 6.40):
Рис. 6.40
Tаблица переходов автомата (табл.6.8) и его структурная схема (рис.6.41):
Tаблица 6.8
’R1 |
S1 |
R2 |
S2 |
1 |
Рис.6.41
По таблице переходов (табл. 6.8), используя матрицу переходов RS-триггера (рис. 6. 42), строится таблица функций возбуждения (табл. 6.9).
Далее по этой таблице строятся карты Карно функций возбуждения
y’S1 (табл. 6.10), y’R1 (табл. 6.11) и y’S2 (табл. 6.12) , y’R2 (табл. 6.13).
Таблица 6.9
q | T y1y2 | | |
| | 0* , 0* | 0* , 10 |
| | 10 , *0 | 0* , *0 |
| | *0 , *0 | *0 , 01 |
| | 01 , 0* | *0 , 0* |
q(t) →q(t+1) | S R |
0 → 0 | 0 * |
0 → 1 | 1 0 |
1 → 0 | 0 1 |
1 → 1 | * 0 |
Рис. 6. 42
Далее по этой таблице строятся карты Карно функций возбуждения:
y’S1 (табл. 6.10), y’R1 (табл. 6.11) и y’S2 (табл. 6.12) , y’R2 (табл. 6.13) :
Таблица 6.10
y1y2
Таблица 6.11
y1y2
Таблица 6.12
y1y2
Таблица 6.13
y1y2
После минимизации получаются следующие выражения для функций возбуждения RS-триггеров:
y’S1 = y2 , y’R1 = 2 , y’S2 = 1 T, y’R2 = y1 T.
Для построения схемы Т-триггера в базисе И-НЕ в качестве элемента памяти используется базовый RS-триггер c инверсными входами. Выражения инверсных функций возбуждения RS-триггеров имеют вид:
y’S1 = y2 , y’R1 = 2 , y’S2 = 1 T, y’R2 = y1 T.
Схема Т-триггера на логических элементах И-НЕ (рис. 6. 43):
0 |
2 2 |