Синтез микропрограммного автомата для операции умножения двоичных чисел в ПЗ 4 способом
Содержание
1.Введение….………………………………..…………
1.1Постановка задачи…………………..………………………………………
1.2Алгоритм умножения двоичных
чисел в формате с ПЗ 4 способом в ДК с простой
коррекцией и порядками………..……………………………………..
1.3Численные примеры………..……………………………………….……
2. Выбор и описание структурной схемы ОА…………………………………...6
3. Реализация содержательной ГСА…………………..………………………....7
4. Построение отмеченной ГСА……………………………………………..…...8
5. Построение графов автоматов для моделей Мили и Мура…..………….…..9
6. Кодирование состояний автоматов
и построение структурных таблиц переходов
и выходов…………………………………….……………….…
6.1Кодирование состояний
автомата Мили на D-триггерах……
6.2Кодирование состояний
автомата Мили на RS-триггерах…
6.3Кодирование состояний автомата Мили на счетчике….……..……………17
6.4Кодирование состояний автомата Мура на D-триггерах…………………..19
6.5Кодирование состояний автомата Мура на RS-триггерах…………….…..22
7. Выбор и обоснование структурной схемы УА. Построение логической схемы управляющего микропрограммного автомата…………..……………..27
8. Заключение……………………………………………………
Приложение А…………..………………….…………
Приложение Б……………………………..……………
Приложение В………..……………………..………
Приложение Г………………………………..…………
Приложение Д……………………………………..……
Приложение Е……………………………………..……
Библиографический список……………………………………………………..
- Введение
Последние
годы с большой интенсивностью ведутся
работы по созданию и применению различных
автоматических систем для переработки
информации. Такие автоматы реализуются
в виде самостоятельных устройств
специального назначения или в виде
блоков, входящих в системы управления
и системы обработки
Основной целью данной
курсовой работы является получение
навыков синтеза
Постановка задачи
Синтезировать микропрограммный автомат, управляющий выполнением умножения двоичных чисел в формате ПЗ четвертым способом в ДК с простой коррекцией и порядками в основном логическом базисе. Разрядность операндов 32 бита.
1.2Алгоритм умножения двоичных чисел в формате с ПЗ 4 способом в ДК с простой коррекцией и порядками
- Проверить операнды на равенство 0. Если один из них равен 0, то результат будет нулевым.
- Сложить порядки в дополнительном коде.
- Проверить сумму порядков на возникновение ситуации ПРС и ПМР. Если при сложении порядков одного знака в результате получен порядок, знак которого отличается от знаков операндов, то эта ситуация сигнализирует о возникновении ПРС, при котором следует прекратить операцию умножения. Особого внимания требует ситуация, когда в результате может возникнуть комбинация «100..0», т.е. «1» в знаковом разряде порядка, а во всех остальных – нули. Это может быть как признак временного ПРС (в дальнейшем, если возникает необходимость в нормализации мантиссы результата, устраняется, в противном случае нужно выдать сигнал «ПРС»), так и ПМР, при котором результат равен 0. Поэтому необходимо различать эти ситуации.
- Произвести коррекцию по правилу:
-если сомножители положительные, коррекции нет
- если один сомножитель отрицателен, то к сумме ЧП надо прибавить ДК от модуля положительного сомножителя
- если оба сомножителя отрицательны, то к сумме ЧП надо прибавить ПК сомножителей.
- Сдвинуть регистр множимого вправо
- Проверить старший разряд множителя. Если он равен 1 то прибавить к сумме ЧП множимое
- Произвести сдвиги.
- Цикл умножения повторять до тех пор, пока старшие n+1 разряды множимого не станут равными нулю. Т.к. мантиссы операндов нормализованы, это будет сигнализировать о произведении n тактов с учетом первого сдвига множимого и позволит не включать счетчик тактов в функциональную схему операционного автомата.
- После окончания цикла умножения произвести нормализацию мантиссы, если это необходимо.
- Снова проверить сумму порядков на ПРС и ПМР.
- Определить знак произведения путем сложения по модулю два знаковых разрядов сомножителей.
- Вывести результат.
1.3 Численные примеры:
C=1010=10102 – множитель
D= -2210= -10110 – множимое
Сдк=0,1010 Dдк=1,01010
C |
0 |
10100 |
0 |
0100 |
D |
1 |
01010 |
0 |
0101 |
|
множитель |
множимое |
Сумма ЧП |
комментарии |
0,10100 0,10100
0,01000 0,10000
0,00000 0,00000 |
0,01010 00000 0,00101 00000
0,00010 10000 0,00001 01000
0,00000 10100 0,00000 01010 |
0,00000 00000
0,00000 00000 0,00101 00000 0,00101 00000
0,00101 00000 0,00001 01000 0,00110 01000 |
Сдвиг множимого Сложение
Сдвиги Сдвиги Сложение
Сдвиги Сдвиги |
Коррекция
0,00110 01000
+
0,01100 00000
0,10010 01000
3)Порядок произведения
0,0100
+
0,0101
0,10012=910
|
1 |
0,10010 |
0 |
1001 |
Проверка: (C D)пк=1,01110 (29)= -011100000(2)=-22410
(C D)=220 Ошибка округления =-4
Если порядки равны 0,1100 и 0,1001, то при их сложении возникнет ПРС
0,1100
0,1001
=1,0101
Если порядки будут равны 1,1100 и 1,0100, то при их сложении возникнет ПМР
1,1100
1,0100
=1,000
- Выбор и описание структурной схемы ОА
Операционный автомат содержит следующие элементы (приложение А):
- 24 разрядный сдвиговый регистр для хранения знака и мантиссы множителя
- два 46 разрядных сдвиговых регистра для хранения множимого и суммы ЧП
- 8 разрядный регистр для хранения порядков операндов
- 8 разрядный счетчик для хранения суммы порядков
- 8 разрядный сумматор для сложения порядков
- 46 разрядный сумматор для формирования суммы ЧП
- 2 D-триггера для хранения знака множимого и знака порядка множимого
- RS-триггер для записи ПРС
- 3 набора схем сложения по модулю 2 для преобразования чисел из ПК в ДК и обратно
- Набор схем И, ИЛИ/НЕ, ИЛИ для обработки и создания сигналов
- Усилитель-формирователь для выдачи результата на шину данных
Для организации работы всего автомата необходимо из УА подать в ОА управляющие сигналы, реализующие следующие МО:
y0- Обнуление триггера ПРС и счетчика
y1- Запись множителя в RG1
y2- Запись мантиссы операнда в RG2 и запись порядка в RG4
y3- Запись суммы порядков в счетчик
y4- Сдвиги RG1 и RG2
y5- Занесение в Т2 знака порядка операнда
y6- Формирование ДК для коррекции
y7- Счетчик - 1
y8- Обнуление RG3
y9- Сброс в 0 RG1и T1
y10- Сдвиг RG3
y11- Запись ПРС
y12- Занесение в RG3
y13- Выдача результата на выходную шину
Для работы всего автомата
из ОА в УА необходимо передать следующие
осведомительные сигналы о
X- проверка наличия операндов на ШИВх
P1- Знак множимого
P2- Старший разряд RG1
P3- ПРС
P4- ПМР
P5- временное ПРС
P6- Проверка условия окончания цикла умножения
P7- Проверка на нормализованность результата
P8- Проверка суммы порядков на запись в ПК
Z- проверка возможности выдачи по ШИВых
3. Реализация содержательной граф-схемы алгоритма
Работа автомата начинается с получения данных через входную шину. Сначала приходит множитель. Его мантисса записывается в RG1 и старшие разряды RG2, а порядок в RG4. После проверки на ноль(P6) проинвертированный множитель заноситься в RG3, что упрощает операционный автомат и его работу при возможном проведении коррекции, а его порядок в СТ (блок 4). Затем на шину приходит множимое и заноситься в RG2 и RG4, его знак запоминается в Т1(блок 6). После проверки на 0 множимого порядки складываются и происходит проверка на ПРС (Р3) и ПМР (Р4). При ПРС Т3 устанавливается в 1 и операция умножения заканчивается (блок 22). При ПМР на выходную шину подаем нулевой результат. Анализируя знаки сомножителей производим коррекцию (блоки 9 и 14). Т.к. ДК от мантиссы множителя уже занесен в RG3, то сначала проверяем знак множимого (Р1) . Если он равен 0, то коррекция не нужна и в RG3 заноситься 0. Сдвигаем RG 1 и RG2 и начинаем цикл умножения, который заключается в анализе старшего разряда множителя (Р2). Если он равен 1, то складываем данные из RG2 и RG3, занося их в RG3. Цикл продолжается, пока старшие разряды RG2 не станут равными 0. После окончания цикла умножения проводим нормализацию, если это необходимо. Если нормализация не нужна, то временное ПРС, если оно присутствовало, становиться ПРС. Если результат был нормализован, возможно возникновение ПМР. Выдаем результат на выходную шину (блок 28).
Содержательная ГСА приведена
в приложении Б.
- Построение отмеченной граф-схемы алгоритма.
Для разметки ГСА каждой совокупности микроопераций, находящихся в операторных вершинах, ставятся в соответствие управляющие сигналы Y1…Yn. Эти сигналы являются выходными сигналами УА и обеспечивают выполнение требуемых действий в соответствии со списком МО операционного автомата. Совокупности МО для каждой операторной вершины образуют МК, список которых приведен в таблице 1.
Таблица 1.
К |
МО |
Y1 |
y0,y1,y2,y8 |
Y2 |
y3,y5,y6,y12 |
Y3 |
y2 |
Y4 |
y3,y8 |
Y5 |
y3 |
Y6 |
y6,y12 |
Y7 |
y4 |
Y8 |
y12 |
Y9 |
y7,y10 |
Y10 |
y0,y8,y9 |
Y11 |
y11 |
Y12 |
y7 |
Y13 |
y13 |
Каждой условной вершине содержательной ГСА ставится в соответствие один из входных сигналов управляющего автомата X1…Xm, список которых приведен в таблице 2.
Таблица 2.
X1 |
X2 |
X3 |
X4 |
X5 |
X6 |
X7 |
X8 |
X9 |
X10 |
X |
P1 |
P2 |
P3 |
P4 |
P5 |
P6 |
P7 |
P8 |
Z |
Далее в полном соответствии с содержательной ГСА строится отмеченная ГСА, условным вершинам которой приписывается один из входных сигналов УА, а операторным вершинам – одна из МК (приложение В).
Получаем
ГСА, размеченную для модели Мили символами
a0…a8, для модели Мура символами
b0…b15.
- Построение графов автоматов для моделей Мили и Мура
На основе отмеченной ГСА построены графы автомата для модели Мили (приложение Г) и для модели Мура (приложение Д).
Граф автомата Мили имеет 9 вершин, соответствующих состояниям автомата a0,…,a8. Дуги его отмечены входными сигналами, действующими на каждом переходе, и набором выходных сигналов, вырабатываемых УА на данном переходе.
Граф автомата Мура имеет 16 вершин, соответствующих состояниям автомата b0,…,b15, каждое их которых определяет наборы выходных сигналов y0,…,y13 УА, а дуги графа отмечены входными сигналами, действующими на данном переходе.
- Кодирование состояний автоматов и построен
ие структурных таблиц переходов и выходов
Рассмотрим некоторые варианты возможных структурных схем УА:
-классическая структура УА пригодна для реализации любого УА;
-модифицированная классическая структура на основе регистра и дешифратора, использование которого понижает цену схемы классического варианта;
-структура УА на основе сдвигового регистра с выбором унитарного кодирования внутренних состояний целесообразно использовать только в тех случаях, когда число разрядов кода ненамного меньше числа внутренних состояний, иначе возникнут значительные затраты на память автомата, которые поглотят выигрыш от уменьшения цены КС;
-структура на основе счетчика выгодна, когда граф проектируемого автомата имеет большое количество последовательных (стандартных) переходов и незначительное число нестандартных;
модифицированная структура на основе счетчика с использованием дешифратора, введение которого приводит к снижению цены схемы.
В управляющем автомате в качестве ЭП могут использоваться как D-триггеры, так и RS-триггеры. Также могут использоваться и счетчики.
При использовании D-триггеров в качестве элементов памяти при переходе из одного состояния в другое сигналы возбуждения должны быть поданы на те триггеры, которые в коде состояния содержат единицу. Отсюда следует, что для получения минимального кодирования необходимо закодировать состояния кодами, содержащими наименьшее количество единиц. Для этого используют инверсные таблицы переходов.
Для RS-триггеров лучше использовать соседнее кодирование, так как именно этот способ минимизирует число переключений ЭП.
В случае счетчиков разность кодов
между соседними состояниями
должна быть равна единице, тогда
переход из одного состояния в
другое будет осуществляться подачей
на вход счетчика сигнала, увеличивающего
или уменьшающего содержимое самого
счетчика.
6.1Кодирование состояний автомата Мили на D-триггерах
Составим инверсную таблицу
переходов (см. таблицу 3) и закодируем
состояния четырехразрядными
Таблица 3.
a0 |
a1 |
a2 |
a3 |
a4 |
a5 |
a6 |
a7 |
a8 |
a0,a4,a6,a8 |
a0 |
a1,a2 |
a2 |
a3 |
a4,a6 |
a5 |
a6 |
a1,a3,a4,a6,a7,a8 |
0001 |
0011 |
0010 |
1010 |
0110 |
0100 |
1100 |
1000 |
0000 |
Как видно из таблицы 3, состояние a8 с наибольшим числом переходов в него кодируется 0000. Состояния с меньшим числом переходов обозначаются кодом с одной единицей, затем с двумя и до тех пор, пока все состояния графа не будут закодированы.
Построим структурные таблицы переходов и выходов. Получим логические уравнения для функции возбуждения ЭП и функций выходов и их совместно минимизируем.
Структурная таблица переходов и выходов представлена в таблице 4
Таблица 4. Структурная таблица переходов и выходов кодирования автомата Мили на D-триггерах.
Исходное состояние |
Код am |
Состояние перехода as |
Код as |
Входной сигнал X(am,as) |
Выходные сигналы Y(am,as) |
Функции возбуждения D-триггеров |
a0 |
0001 |
a0 a1 |
0001 0011 |
~x1 x1 |
- y0,y1,y2,y8 |
D4 D3D4 |
a1 |
0011 |
a2 a8 |
0010 0000 |
~x7 x7 |
y3,y5,y6,y12 y0,y8,y9 |
D3 - |
a2 |
0010 |
a2 a3 |
0010 1010 |
~x1 x1 |
- y2 |
D3 D1D3 |
a3 |
1010 |
a4 a4 a8 |
0110 0110 0000 |
~x7x2 ~x7~x2 x7 |
y3 y3,y8 y0,y8,y9 |
D2D3 D2D3 - |
a4 |
0110 |
a0 a5 a5 a8 |
0001 0100 0100 0000 |
x4 ~x4~x5x3 ~x4~x5~x3 ~x4x5 |
y11 y6,y12 - y0,y8,y9 |
D4 D2 D2 - |
a5 |
0100 |
a6 |
1100 |
1 |
y4 |
D1D2 |
a6 |
1100 |
a0 a5 a5 a7 a8 a8 |
0001 0100 0100 1000 0000 0000 |
x7x8x6 ~x7x3 ~x7~x3 x7~x8 x7x8~x6x9 x7x8~x6~x9 |
y11 y12 - y7,y10 y7 - |
D4 D2 D2 D1 - - |
a7 |
1000 |
a8 a8 a8 |
0000 0000 0000 |
x5 ~x5x9 ~x5~x9 |
y0,y8,y9 y7 - |
- - - |
a8 |
0000 |
a0 a8 |
0001 0000 |
x10 ~x10 |
y13 - |
D4 - |
D1=a2x1 v a5 v a6x7~x8
D2=a3~x7 v a4~x4~x5 v a5 v a6~x7
D3=a0x1 v a1~x7 v a2 v a3~x7
D4=a0 v a4x4 v a6x7x8x6 v a8x10
y0=a0x1 v a1x7 v a3x7 v a4~x4x5 v a7x5
y1=a0x1
y2=a0x1 v a2x1
y3=a1~x7 v a3~x7
y4=a5
y5=a1~x7
y6=a1~x7 v a4~x4~x5x3
y7=a6x7~x8 v a6x7x8~x6x9 v a7~x5x9
y8=a0x1 v a1x7 v a3~x7~x2 v a3x7 v a4~x4x5 v a7x5
y9=a1x7 v a3x7 v a4~x4x5 v a7x5
y10=a6x7~x8
y11=a4x4 v a6x7x8x6
y12=a1~x7 v a4~x4~x5x3 v a6~x7x3
y13=a8x10
t= a2x1
m= a6x7
k= a3~x7
w= a4~x4
p= a6~x7
e= a4x4
f= (a1 v a3)x7
q= a7x5
u=w~x5
l=mx8
D1=t v a5 v y10
D2=k v u v a5 v p
D3=y1 v y3 v a2
D4=a0 v y11 v y13
y0=y1 v y9
y1=a0x1
y2=y1 v t
y3=y5 v k
y4=a5
y5=a1~x7
y6=y5 v ux3
y7=y10 v l~x6x9 v a7~x5x9
y8=y1 v y9 v k~x2
y9=f v wx5 v q
y10=m~x8
y11=e v lx6
y12=y6 v px3
y13=a8x10
Цена по Квайну C=86, причем в схеме УА предлагается использовать 4-х входовой дешифратор.
6.2 Кодирование состояний автомата Мили на RS-триггерах
Составим матрицу переходов М и произведем кодирование состояний автомата.
00 k0=0000
01 k1=0001
12
18 12 B2 ={0001}
22 M2= 22 C1={0011,0101,1001}
M= 23 23 D2={0011,0101,1001}
38 W0011=1
34 W0101=1
40 W1001=1
45 k2=0011
48
56
60
65
67
68
78
80
88
B3={0011}
M3= 38 C2={0010,0111,1011}
34 D3={0010,0111,1011}
23 W0010=1
W0111=1
W1011=1
k3=0010
34
M4= 40
48 B4={0000,0010}
45 C3={0110,1010} C0={1000,0100}
D4={0100,0110,1000,1010}
W0100=ô0100-0010ô2+ô0100-0000ô
W0110=ô0110-0010ô2+ô0110-0000ô
W1000=ô1000-0010ô2+ô1000-0000ô
W1010=ô1010-0010ô2+ô1010-0000ô
k4=1010
45 B5={1010}
M5= 56 C4={1000,1011,1110}
D5={1000,1011,1110}
W1000=1
W1011=1
W1110=1
k5=1000
56
60
M6= 65 B6={1000,0000}
67 C5={1001,1100} C0{0100}
68 D6={0100,1001,1100}
W0100=ô0100-1000ô2+ô0100-0000ô
W1001=ô1001-1000ô2+ô1001-0000ô
W1100=ô1100-1000ô2+ô1100-0000ô
k6=1100
B7={1100}
M7= 67 C6={1101,1110,0100}
78 D7={1101,1110,0100}
W1110=1
W0100=1
k7=0100
78 B8={0001,0010,0000,1101}
80 C1={0101,1001} C4{1011,
88 C7={0110,0101}
M8= 18 C3={0110} C6{1110,1101}
38 D8={0101,0110,1001,1011,
48
60
W0101=1+2+0+1+3+4+2=13 W0110=1+2+0+3+1+2+2=11
W1001=3+2+0+1+3+2+2=13 W1011=4+3+0+2+2+1+3=15
W1101=2+3+0+2+4+3+1=15 W1110=2+3+0+2+4+3+1=15
k8=0110
Результат кодирования приведен в таблице 5.
Таблица 5 . Результат кодирования автомата Мили на RS-триггерах.
a0 |
a1 |
a2 |
a3 |
a4 |
a5 |
a6 |
a7 |
a8 |
0000 |
0001 |
0011 |
0010 |
1010 |
1000 |
1100 |
0100 |
0110 |
Структурная таблица переходов и выходов представлена в таблице 6
Таблица 6.
Исходное состояние |
Код am |
Состояние перехода as |
Код as |
Входной сигнал X(am,as) |
Выходные сигналы Y(am,as) |
Функции возбуждения RS-триггеров |
a0 |
0000 |
a0 a1 |
0000 0001 |
~x1 x1 |
- y0,y1,y2,y8 |
- S4 |
a1 |
0001 |
a2 a8 |
0011 0110 |
~x7 x7 |
y3,y5,y6,y12 y0,y8,y9 |
S3 S2S3R4 |
a2 |
0011 |
a2 a3 |
0011 0010 |
~x1 x1 |
- y2 |
- R4 |
a3 |
0010 |
a4 a4 a8 |
1010 1010 0110 |
~x7x2 ~x7~x2 x7 |
y3 y3,y8 y0,y8,y9 |
S1 S1 S2 |
a4 |
1010 |
a0 a5 a5 a8 |
0000 1000 1000 0110 |
x4 ~x4~x5x3 ~x4~x5~x3 ~x4x5 |
y11 y6,y12 - y0,y8,y9 |
R1R3 R3 R3 R1S2 |
a5 |
1000 |
a6 |
1100 |
1 |
y4 |
S2 |
a6 |
1100 |
a0 a5 a5 a7 a8 a8 |
0000 1000 1000 0100 0110 0110 |
x7x8x6 ~x7x3 ~x7~x3 x7~x8 x7x8~x6x9 x7x8~x6~x9 |
y11 y12 - y7,y10 y7 - |
R1R2 R2 R2 R1 R1S3 R1S3 |
a7 |
0100 |
a8 a8 a8 |
0110 0110 0110 |
x5 ~x5x9 ~x5~x9 |
y0,y8,y9 y7 - |
S3 S3 S3 |
a8 |
0110 |
a0 a8 |
0000 0110 |
x10 ~x10 |
y13 - |
R2R3 - |
S1=a3~x7
S2=a1x7 v a3x7 v a4~x4x5 v a5
S3=a1 v a6x7x8~x6 v a7
S4=a0x1
R1=a4x4 v a4~x4x5 v a6x7
R2=a6x7x8x6 v a6~x7 v a8x10
R3=a4x4 v a4~x4~x5 v a8x10
R4=a1x7 v a2x1
y0=a0x1 v a1x7 v a3x7 v a4~x4x5 v a7x5
y1=a0x1
y2=a0x1 v a2x1
y3=a1~x7 v a3~x7
y4=a5
y5=a1~x7
y6=a1~x7 v a4~x4~x5x3
y7=a6x7~x8 v a6x7x8~x6x9 v a7~x5x9
y8=a0x1 v a1x7 v a3~x7~x2 v a3x7 v a4~x4x5 v a7x5
y9=a1x7 v a3x7 v a4~x4x5 v a7x5
y10=a6x7~x8
y11=a4x4 v a6x7x8x6
y12=a1~x7 v a4~x4~x5x3 v a6~x7x3
y13=a8x10
t= a3~x7
p= a1x7
m= a3x7
k= a4~x4
f= a6x7
w= a4x4
d= a6~x7
h= a2x1
g= a7x5
u=kx5
e=fx8
S1=t
S2=p v m v u v a5
S3=a1 v e~x6 v a7
S4=y1
R1=w v u v f
R2=ex6 v d v y13
R3=w v k~x5 v y13
R4=p v h
y0=y1 v y9
y1=a0x1
y2=y1 v h
y3=y5 v t
y4=a5
y5=a1~x7
y6=y5v k~x5x3
y7=y10 v e~x6x9 v a7~x5x9
y8=y1 v y9 v t~x2
y9=p v m v u v g
y10=f~x8
y11=w v ex6
y12=y6 v dx3
y13=a8x10Цена по Квайну C=96, причем в схеме УА предлагается использовать 4-х входовой дешифратор.
6.3Кодирование состояний автомата Мили на счетчике
Закодируем состояния таким образом, чтобы разность значений кодов между соседними состояниями составляла единицу (см.таблицу 7).
Таблица 7
a0 |
a1 |
a2 |
a3 |
a4 |
a5 |
a6 |
a7 |
a8 |
0001 |
0010 |
0011 |
0100 |
0101 |
0110 |
0111 |
1000 |
0000 |
Структурная таблица переходов и выходов представлена в таблице 8
Исходное состояние |
Код am |
Состояние перехода as |
Код as |
Входной сигнал X(am,as) |
Выходные сигналы Y(am,as) |
Функции возбуждения счетчика |
a0 |
0001 |
a0 a1 |
0001 0010 |
~x1 x1 |
- y0,y1,y2,y8 |
- E+1 |
a1 |
0010 |
a2 a8 |
0011 0000 |
~x7 x7 |
y3,y5,y6,y12 y0,y8,y9 |
E+1 M |
a2 |
0011 |
a2 a3 |
0011 0100 |
~x1 x1 |
- y2 |
- E+1 |
a3 |
0100 |
a4 a4 a8 |
0101 0101 0000 |
~x7x2 ~x7~x2 x7 |
y3 y3,y8 y0,y8,y9 |
E+1 E+1 M |
a4 |
0101 |
a0 a5 a5 a8 |
0001 0110 0110 0000 |
x4 ~x4~x5x3 ~x4~x5~x3 ~x4x5 |
y11 y6,y12 - y0,y8,y9 |
D1M E+1 E+1 M |
a5 |
0110 |
a6 |
0111 |
1 |
y4 |
E+1 |
a6 |
0111 |
a0 a5 a5 a7 a8 a8 |
0001 0110 0110 1000 0000 0000 |
x7x8x6 ~x7x3 ~x7~x3 x7~x8 x7x8~x6x9 x7x8~x6~x9 |
y11 y12 - y7,y10 y7 - |
D1M M E+1 M E+1 E+1 M M |
a7 |
1000 |
a8 a8 a8 |
0000 0000 0000 |
x5 ~x5x9 ~x5~x9 |
y0,y8,y9 y7 - |
M M M |
a8 |
0000 |
a0 a8 |
0001 0000 |
x10 ~x10 |
y13 - |
E+1 - |
Таблица 8
Работа счётчика производится в соответствии с таблицей 9
Таблица 9
М |
E+1 |
Режим |
1 0 1 0 |
0 1 1 0 |
Запись в счётчик Прямой счёт Обратный счёт Хранение |
E+1=a0x1 v a1~x7 v a2x1 v a3~x7 v a4~x4~x5 v a5 v a6~x7 v a6x7~x8 v a8x10
M=a1x7 v a3x7 v a4x4 v a4~x4x5 v a6x7x8 v a6~x7 v a7
D1=a4x4 v a6x7x8x6
y0=a0x1 v a1x7 v a3x7 v a4~x4x5 v a7x5
y1=a0x1
y2=a0x1 v a2x1
y3=a1~x7 v a3~x7
y4=a5
y5=a1~x7
y6=a1~x7 v a4~x4~x5x3
y7=a6x7~x8 v a6x7x8~x6x9 v a7~x5x9
y8=a0x1 v a1x7 v a3~x7~x2 v a3x7 v a4~x4x5 v a7x5
y9=a1x7 v a3x7 v a4~x4x5 v a7x5
y10=a6x7~x8
y11=a4x4 v a6x7x8x6
y12=a1~x7 v a4~x4~x5x3 v a6~x7x3
y13=a8x10t= a2x1
m= a3~x7
k= a4~x4
p= a6~x7
f= a6x7
g= (a1 v a3)x7 l= a4x4
e= a7x5
h=fx8
n=kx5
u= k~x5
E+1=y2 v y3 v u v a5 v p v y10 v y13
M=g v l v n v h v p v a7
D1=y11
y0=y1 v y9
y1=a0x1
y2=y1 v t
y3=y5 v m
y4=a5
y5=a1~x7
y6=y5 v ux3
y7=y10 v h~x6x9 v a7~x5x9
y8=y1 v y9 v m~x2
y9=g v n v e
y10=f~x8
y11=l v hx6
y12=y6 v px3
y13=a8x10
Цена по Квайну C=85, причем в схеме УА
предлагается использовать 3-х входовой
дешифратор.
6.4Кодирование состояний автомата Мура на D-триггерах
Составим инверсную таблицу переходов (см. таблицу 10) и закодируем состояния четырехразрядными двоичными числами, в которые будет входить наименьшее число единиц.
Таблица 10.
b0 |
b1 |
b2 |
b3 |
b4 |
b5 |
b6 |
b7 |
b8 |
b9 |
b0,b11,b15 |
b0 |
b1 |
b2,b3 |
b2,b3 |
b4 |
b4 |
b5,b6 |
b5,b6,b7,b8,b9 |
b8 |
1000 |
1110 |
1101 |
1001 |
1010 |
0111 |
1011 |
0101 |
0100 |
1111 |
b10 |
b11 |
b12 |
b13 |
b14 |
b15 |
b8 |
b5,b6,b8 |
b1,b4,b5,b6,b10 |
b8,b10 |
b8,b10,b12,b13,b14 |
b8,b10,b12,b13,b14 |
1100 |
0110 |
0010 |
0011 |
0001 |
0000 |
Как видно из таблицы 10, состояние b15 с наибольшим числом переходов в него кодируется 0000. Состояния с меньшим числом переходов обозначаются кодом с одной единицей, затем с двумя и до тех пор, пока все состояния графа не будут закодированы.
Структурная таблица переходов и выходов представлена в таблице 11.
Таблица 11.
Исходное состояние bm |
Выходные сигналы |
Код bm |
Состояние перехода bs |
Код bs |
Входной сигнал |
Функции возбуждения D-триггеров |
b0 |
- |
1000 |
b0 b1 |
1000 1110 |
~x1 x1 |
D1 D1D2D3 |
b1 |
y0,y1,y2 y8 |
1110 |
b2 b12 |
1101 0010 |
~x7 x7 |
D1D2D4 D3 |
b2 |
y3,y5,y6 y12 |
1101 |
b3 b4 |
1001 1010 |
~x1 x1 |
D1D4 D1D3 |
b3 |
- |
1001 |
b3 b4 |
1001 1010 |
~x1 x1 |
D1D4 D1D3 |
b4 |
y2
|
1010 |
b5 b6 b12 |
0111 1011 0010 |
~x7~x3 ~x7x3 x7 |
D2D3D4 D1D3D4 D3 |
b5 |
y3,y8
|
0111 |
b7 b8 b11 b12 |
0101 0100 0110 0010 |
~x4~x5x2 ~x4~x5~x2 x4 ~x4x5 |
D2D4 D2 D2D3 D3 |
b6 |
y3 |
1011 |
b7 b8 b11 b12 |
0101 0100 0110 0010 |
~x4~x5x2 ~x4~x5~x2 x4 ~x4x5 |
D2D4 D2 D2D3 D3 |
b7 |
y6,y12 |
0101 |
b8 |
0100 |
1 |
D2 |
b8 |
y4 |
0100 |
b8 b9 b10 b11 b13 b14 b15 |
0100 1111 1100 0110 0011 0001 0000 |
~x7~x3 ~x7x3 x7~x8 x7x8x6 x7x8~x6x9 x7x8~x6~x9~x10 x7x8~x6~x9x10 |
D2 D1D2D3D4 D1D2 D2D3 D3D4 D4 - |
b9 |
y12 |
1111 |
b8 |
0100 |
1 |
D2 |
b10 |
y7,y10 |
1100 |
b12 b13 b14 b15 |
0010 0011 0001 0000 |
x5 ~x5x9 ~x5~x9~x10 ~x5~x9x10 |
D3 D3D4 D4 - |
b11 |
y11 |
0110 |
b0 |
1000 |
1 |
D1 |
b12 |
y0,y8,y9 |
0010 |
b14 b15 |
0001 0000 |
~x10 x10 |
D4 - |
b13 |
y7 |
0011 |
b14 b15 |
0001 0000 |
~x10 x10 |
D4 - |
b14 |
- |
0001 |
b14 b15 |
0001 0000 |
~x10 x10 |
D4 - |
b15 |
y13 |
0000 |
b0 |
1000 |
1 |
D1 |