В данной статье рассматривается создание автомата Мура на примере вычисления простейших логических операций. В ходе данной работы будет проведена оценка экономических затрат на построение схемы, а также оценку её быстродействия.
Принцип микропрограммного управления допускает, что цифровое устройство состоит из двух частей: операционного автомата (ОА) и управляющего автомата (УА) [1]. ОА выполняет элементарные операции (микрооперации) такие как сдвиг, алгебраическое сложение, конъюнкция и дизъюнкция. УА формирует последовательность управляющих сигналов, которые поступают к ОА и это даёт возможность реализовывать более сложные алгоритмы.
УА подразделяются на две большие группы: автоматы с жёсткой логикой и автоматы с программируемой логикой. В данной статье будет разработан автомат с жёсткой логикой. В свою очередь такие автоматы делятся на автоматы, выполненные по схеме Мили и по схеме Мура.
Для наглядного примера реализуем простейшую микропрограмму, выполняющую заданный порядок действий на основе входных данных. В качестве входных данных принимаются значения регистров RA, RB, RC которые задаются вручную до начала работы микропрограммы.
Опишем принцип работы микропрограммы. Общая схема приведена на рисунке 1.
Рис. 1. Общий алгоритм вычисления формулы S
Возможны два варианта работы программы в зависимости от введённых данных. Если заданное условие выполняется, то необходимо вычислить аддитивный блок работы, иначе мультипликативный. Для вычисления блоков используются выражения S1 и S2, формулы для которых приведены ниже.
Функциональный алгоритм разработаем согласно входным данным. Сначала выполним загрузку входных данных в регистры RA, RB, RC. При составлении алгоритма необходимо уменьшить разнообразие команд, а также уменьшить количество операторных вершин. Из-за того, что невозможно загрузить за один такт работы данные сразу в три регистра, осуществим это за два такта. За первый так параллельно загрузим данные в регистры RA и RB с помощью шин Z1 и Z2, а за второй — в регистр RC через шину Z1.
Далее необходимо построить операционный автомат. Чтобы построить структурную схему необходимо обозначить набор комбинационных схем: двуместные: {Sum, Sub, And}; одноместные: {Not, L2, L3, R1, R2, R3 }; распределить связи между регистра и локальными шинами А1, А2, А3: А1 = {RA, RB, RC, RD, RE}, А2 = {RA, RB, RD, RF, RE}, А3 = {RA, RB, RC, RD, RF, RE}; и обозначить обратные связи шин Z1 и Z2 с регистрами памяти: Z1 = {RA, RC, RD, RF, RE}, Z2 = {RB, RD, RF, RE}.
Каждое элементарное действие в схеме может выполняться только при наличии определённого управляющего сигнала yn (микрооперации):
y1–y3 — загрузка начальных данных на шины.
y4–y12 — загрузка данных в регистры памяти.
y13–y28 — загрузка из памяти на шины операндов А1, А2, А3.
y29–y31 — загрузка результатов двуместных операций на шину Z2.
y32–y37 — загрузка результатов двуместных операций на шину Z1.
Согласно с полученными данными формируем операционный автомат (Рис. 2).
Рис. 2. Структурная схема операционного автомата
Шинный формирователь — это комбинационная схема, которая обеспечивает соответствие бита информации, который принимается на шину и проводника.
Формулы для i-го бита шинного формирователя Аі:
;
;
;
Формулы для i-го бита шинного формирователя Zi:
;
;
Формулы для i-го бита шинного формирователя в заданном базисе:
Рис. 3. Фрагмент схемы шинного формирователя
В результате получаем граф-схему алгоритма вычисления формулы S. Она служит начальными данными для синтеза управляющего автомата.
После создания граф-схемы алгоритма вычисления заданных формул, синтеза шинного формирователя и построения операционного автомата приступим к разработке управляющих автоматов. Один из автоматов будет построен на принципе конечного автомата Мура, другой — Мили.
Порядок синтеза автомата Мура [2]:
На первом этапе начальная и конечная вершины обозначаются одним состоянием. Затем отдельным состоянием обозначается вход каждой операторной вершины.
Построение таблицы переходов сводится к формированию по обозначенной ГСА таблицы, которая содержит столбцы:
am — начальное состояние
k(am) — код начального стостояния
as — следующее состояние
k(as) — код следующего состояния
X — логическое условие, при котором выполянется переход
Y — мокрокоманды, которые выполняются при переходе
F — функции возбуждения памяти
При кодировании состояний необходимо стараться уменьшить количество функция возбуждения, которые принимают единичное значение.
Построим таблицу дла автомата Мура (Табл. 1), проверка RD=0 обозначена как Х1, проверка RD<0 обозначена как Х2, код операции (КОП) — как Х3, проверка RA
Таблица 1
Прямая структурная таблица для автомата Мура
am |
K(am) |
as |
K(as) |
X |
Y |
F |
a0 |
00000 |
a1 |
00001 |
1 |
- |
S0 |
a1 |
00001 |
a2 |
00010 |
1 |
y1, y2, y4, y5 |
S1 R0 |
a2 |
00010 |
a3 |
00011 |
1 |
y3, y6, y16, y17, y29, y10 |
S0 |
a3 |
00011 |
a4 |
00100 |
|
y13, y24, y30, y8 |
S2 R1 R0 |
a7 |
00111 |
|
S2 |
|||
a1o |
01010 |
|
S3 R0 |
|||
a4 |
00100 |
a5 |
00101 |
1 |
y21, y19, y30, y8, y18, y32, y0 |
S0 |
a5 |
00101 |
a6 |
00110 |
1 |
y21, y24, y29, y8, y15, y33, y4 |
S1 R0 |
a6 |
00110 |
a14 |
01110 |
|
y21, y27, y29, y12 |
S3 |
a16 |
10000 |
|
S4 R2 R1 |
|||
a7 |
00111 |
a8 |
01000 |
1 |
y15, y34, y11 |
S3 R2 R1 R0 |
a8 |
01000 |
a9 |
01001 |
1 |
y16, y27, y29, y12, y18, y33, y7 |
S0 |
a9 |
01001 |
a14 |
01110 |
|
y26, y22, y30, y10 |
S1 S2 R0 |
a16 |
10000 |
|
S4 R3 R0 |
|||
a10 |
01010 |
a11 |
01011 |
1 |
y13, y17, y31, y10 |
S0 |
a11 |
01011 |
a12 |
01100 |
1 |
y25, y33, y9 |
S2 R1 R0 |
a12 |
01100 |
a13 |
01101 |
1 |
y21, y24, y30, y8 |
S0 |
a13 |
01101 |
a14 |
01110 |
|
y23, y35, y11 |
S1 R0 |
a16 |
10000 |
|
S4 R3 R2 R0 |
|||
a14 |
01110 |
a15 |
01111 |
1 |
y20, y32, y9 |
S0 |
a15 |
01111 |
a19 |
10011 |
|
y16, y24, y29, y10 |
S4 R3 R2 |
a24 |
11000 |
|
S4 R2 R1 R0 |
|||
a16 |
10000 |
a17 |
10001 |
1 |
y28, y34, y7 |
S0 |
a17 |
10001 |
a18 |
10010 |
1 |
y21, y27, y30, y6 |
S1 R0 |
a18 |
10010 |
a0 |
00000 |
1 |
y23, y36, y7 |
R4 R1 |
a19 |
10011 |
a20 |
10100 |
1 |
y18, y33, y7 |
S2 R1 R0 |
a20 |
10100 |
a21 |
10101 |
|
y21, y17, y30, y8 |
S0 |
a22 |
10110 |
|
S1 |
|||
a21 |
10101 |
a29 |
11101 |
1 |
y21, y14, y29, y6 |
S3 |
a22 |
10110 |
a23 |
10111 |
1 |
y21, y14, y29, y8 |
S0 |
a23 |
10111 |
a29 |
11101 |
1 |
y23, y37, y7 |
S3 R1 |
a24 |
11000 |
a25 |
11001 |
1 |
y13, y19, y30, y10, y18, y32, y7 |
S0 |
a25 |
11001 |
a26 |
11010 |
1 |
y21, y24, y29, y10 |
S1 R0 |
a26 |
11010 |
a27 |
11011 |
1 |
y25, y33, y7 |
S0 |
a27 |
11011 |
a28 |
11100 |
1 |
y21, y24, y29, y8 |
S2 R1 R0 |
a28 |
11100 |
a29 |
11101 |
1 |
y21, y24, y29, y8 |
S0 |
a29 |
11101 |
a30 |
11110 |
1 |
y23, y32, y7 |
S1 R0 |
a30 |
11110 |
a0 |
00000 |
1 |
y26, y22, y29, y8 |
R4 R3 R2 R1 |
Функции возбуждения памяти в заданном базисе:

Уравнения выходных сигналов в заданном базисе:
;
;
;
;
;
;





;
;
Рис.4. Сокращённая схема автомата Мура
Количество затраченных ресурсов на построение схемы составило 134 элемента. Исходя из того, что эти элементы имеют низкую себестоимость, можно сделать вывод, что схема обладает высокой экономической эффективностью, но низкой скоростью вычисления результата.
В дальнейшем эта же задача будет решена на автомате, спроектированном по принципу автомата Мили и проведено экономическое сравнение с данным автоматом.
Литература:
- Баркалов А. А., Титаренко Л. А.. Прикладная теория цифровых автоматов.. — Донецк: ДонНТУ, Технопарк ДонНТУ УНИТЕХ, 2010. — 320 с.
- Баркалов А. А., Титаренко Л. А.. Синтез операционных устройств. — Донецк: РВА ДонНТУ, 2003. — 306 с.