Синтез микропрограммного управляющего автоматаРефераты >> Программирование и компьютеры >> Синтез микропрограммного управляющего автомата
Из приведенного рисунка видно, что с увеличением количества состояний автомата наглядность графа теряется и больше удобств представляет табличный способ задания автомата.
7.2 Построение структурной таблицы переходов и выходов
Таблица 7. Прямая структурная таблица переходов и выходов автомата Мили.
Исходное состояние |
Код am |
Состояние перехода as |
Код as |
Входной сигнал X(am,as) |
Выходные сигналы Y(am,as) |
Функции возбуждения D-триггеров |
a0 |
0001 |
a0 a1 |
0001 0011 |
X1 X1 |
- Y1(y1,y2,y3) |
D4 D3D4 |
a1 |
0011 |
a2 a9 |
0010 0000 |
X2 X2 |
Y6(y4,y6) Y9(y1,y3) |
D3 |
a2 |
0010 |
a2 a3 |
0010 0110 |
X1 X1 |
- Y2(y2) |
D3 D2D3 |
a3 |
0110 |
a4 a4 a9 |
1100 1100 0000 |
X2X3 X2X3 X2 |
- Y3(y3) Y9(y1,y3) |
D1D2 D1D2 |
a4 |
1100 |
a5 a5 |
0100 0100 |
X4 X4 |
- Y6(y4,y6) |
D2 D2 |
a5 |
0100 |
a6 a6 |
0101 0101 |
X5 X5 |
- Y4(y4) |
D2D4 D2D4 |
a6 |
0101 |
a7 |
1001 |
1 |
Y5(y5) |
D1D4 |
a7 |
1001 |
a5 a8 |
0100 1000 |
X6 X6 |
- - |
D2 D1 |
a8 |
1000 |
a0 a8 a9 |
0001 1000 0000 |
X7X8 X7 X7X8 |
- Y7(y7) - |
D4 D1 |
a9 |
0000 |
a0 a9 |
0001 0000 |
X9 X9 |
- Y8(y8) |
D4 |
7.3 Кодирование на D-триггерах
При кодировании состояний автомата, в качестве элементов памяти которого выбраны D-триггеры, следует стремится использовать коды с меньшим числом "1" в кодовом слове. Для кодирования 10 состояний (a0 ,…, a10) необходимо 4 элемента памяти и из множества 4-разрядных двоичных слов надо выбрать код каждого состояния, ориентируясь на граф и таблицу переходов: чем чаще в какое-либо состояние происходят переходы из других состояний, то есть чем чаще оно встречается в столбце as таблицы 7, тем меньше в коде этого состояния следует иметь "1". Для этого построим таблицу 8, в первой строке которой перечислены состояния, в которые есть более одного перехода, а во второй - состояния, из которых осуществляются эти переходы.
Таблица 8
As |
a0 |
a1 |
a2 |
a3 |
a4 |
a5 |
a6 |
a7 |
a8 |
a9 |
{am} |
A0a8a9 |
a0 |
a1a2 |
a2 |
a3 |
a4a7 |
a5 |
a6 |
a7a8 |
a1a3a8a9 |
Наибольшее количество переходов в состояние a9 - закодируем его кодом К(a9)=0000. Состояниям a0, a2, a5, a8 назначим коды с одной "1": K(a0) =0001, К(a2) =0010, К(a5)=0100, К(a8)=1000. Для кодирования других состояний будем использовать слова с двумя "1" в кодовом слове, К(a1)=0011, К(a3)=0110, К(a4)=1100, К(a6)=0101, К(a7)=1001, стараясь, насколько возможно, использовать соседние с as коды для состояний, находящихся в одном столбце таблицы 7.
Кодирования для D-триггеров изображены в таблице 9.
Таблица 9
As |
a0 |
a1 |
a2 |
a3 |
a4 |
a5 |
a6 |
a7 |
a8 |
A9 |
K{as} |
0001 |
0011 |
0010 |
0110 |
1100 |
0100 |
0101 |
1001 |
1000 |
0000 |