3. Синтез автоматів з програмованою логікою
3.1 Синтез автомата з примусовою адресацією команд
ПЗУ – зберігаємий набір команд, кожна з котрих несе інформацію про набір вихідного сигналу, про поточний такт та адресу мікрокоманд, котрі повинні бути виконані у наступному такті.
Рис. 3.1 - Формат МК
Рис. 3.2 - Структурна схема АПЛ з примусовою адресацією мікрокоманд
Аналіз рисунка 3.2:
- СФВС - дозволяє декодувати інформацію, що утримується в полі Y.
- САХ - являє собою мультиплексор на інформаційні входи якого подаються вхідні сигнали, а на адресні, код з поля Nх при цьому на А0 завжди подається сигнал "0", у такий спосіб формується сигнал Z, що забезпечує передачу на адресний вхід пам'яті А або А0, або А1.
Для того щоб сформувати вміст ROM по граф-схемі мікрокоманд необхідно:
- відзначити номера мікрокоманд;
- закодувати вихідні сигнали і сформувати мікрокоманди по заданому форматі;
- сформувати таблицю вмісту ROM.
Рис. 3.3 – Граф-схема автомата з примусовою адресацією команд
Для скорочення довжини слова ROM будемо використовувати принцип максимального кодування вихідних сигналів.
Табл. 3.1 – Максимальне кодування вихідних сигналів
№п/п | Макрокоманда | Мікрооперації | Код |
1 | Y0 | - | 000000 |
2 | Y1 | y1 y2 y4 y7 | 000001 |
3 | Y2 | y3 y8 | 000010 |
4 | Y3 | y14 y17 y21 y40 | 000011 |
5 | Y4 | y11 y16 y35 | 000100 |
6 | Y5 | y10 y17 y27 y41 | 000101 |
7 | Y6 | y11 y25 y37 | 000110 |
8 | Y7 | y10 y20 y27 y41 | 000111 |
9 | Y8 | y13 y16 y35 | 001000 |
10 | Y9 | y15 y19 y34 | 001001 |
11 | Y10 | y10 y30 y32 y41 | 001010 |
12 | Y11 | y12 y18 y20 y41 | 001011 |
13 | Y12 | y11 y28 y36 | 001100 |
14 | Y13 | y10 y27 y29 y41 | 001101 |
15 | Y14 | y14 y17 y21 y41 | 001110 |
16 | Y15 | y15 y19 y34 | 001111 |
17 | Y16 | y14 y18 y32 y41 | 010000 |
18 | Y17 | y13 y31 y36 | 010001 |
19 | Y18 | y12 y30 y32 y41 | 010010 |
20 | Y19 | y13 y28 y39 | 010011 |
21 | Y20 | y12 y15 y17 y21 y22 y34 y40 | 010100 |
22 | Y21 | y12 y30 y32 y41 | 010101 |
23 | Y22 | y12 y23 y30 y41 | 010110 |
24 | Y23 | y15 y19 y37 | 010111 |
25 | Y24 | y12 y18 y32 y41 | 011000 |
26 | Y25 | y14 y20 y24 y40 | 011001 |
27 | Y26 | y14 y17 y24 y41 | 011010 |
28 | Y27 | y15 y31 y38 | 011011 |
29 | Y28 | y9 y14 y18 y19 y20 y35 y41 | 011100 |
30 | Y29 | y14 y23 y33 y41 | 011101 |
31 | Y30 | y15 y31 y34 | 011110 |
32 | Y31 | y14 y24 y32 y40 | 011111 |
33 | Y32 | y11 y31 y35 | 100000 |
34 | Y33 | y10 y26 y30 y40 y0 | 100001 |
35 | Y34 | y10 y26 y30 y41 y0 | 100010 |
36 | Y35 | y11 y25 y34 | 100011 |
Табл. 3.2 – Структура переходів для автомата з примусовою адресацією команд
Адресаа1а2а3а4а5а6 | Y0..5 | X6..8 | FA09..14 | FA115..20 | Перехід |
000000 | 000001 | 000 | 000001 | * | b0 → b1 |
000001 | 000010 | 000 | 000010 | * | b1 → b2 |
000010 | 000011 | 011 | 000011 | 001011 | b2 → |
000011 | 000000 | 100 | 000100 | 001000 | b3 → |
000100 | 000100 | 000 | 000101 | * | b4 → b5 |
000101 | 000101 | 000 | 000110 | * | b5 → b6 |
000110 | 000110 | 000 | 000111 | * | b6 → b7 |
000111 | 000111 | 000 | 001110 | * | b7 → b14 |
001000 | 001000 | 000 | 001001 | * | b8 → b9 |
001001 | 001001 | 000 | 001010 | * | b9 → b10 |
001010 | 001010 | 000 | 001110 | * | b10 → b14 |
001011 | 001011 | 000 | 001100 | * | b11 → b12 |
001100 | 001100 | 000 | 001101 | * | b12 → b13 |
001101 | 001101 | 000 | 001110 | * | b13 → b14 |
001110 | 001110 | 011 | 001111 | 011000 | b14 → |
001111 | 000000 | 100 | 010000 | 010101 | b15 → |
010000 | 001111 | 000 | 010001 | * | b16 → b17 |
010001 | 010000 | 000 | 010010 | * | b17 → b18 |
010010 | 010001 | 000 | 010011 | * | b18 → b19 |
010011 | 010010 | 000 | 010100 | * | b19 → b20 |
010100 | 010011 | 000 | 011010 | * | b20 → b26 |
010101 | 010100 | 000 | 010110 | * | b21 → b22 |
010110 | 010101 | 000 | 010111 | * | b22 → b23 |
010111 | 010110 | 000 | 011010 | * | b23 → b26 |
011000 | 010111 | 000 | 011001 | * | b24 → b25 |
011001 | 011000 | 000 | 011010 | * | b25 → b26 |
011010 | 011001 | 011 | 011011 | 100000 | b26 → |
011011 | 000000 | 100 | 011100 | 011110 | b27 → |
011100 | 011010 | 000 | 011101 | * | b28 → b29 |
011101 | 011011 | 010 | 100010 | 100110 | b29 → |
011110 | 011100 | 000 | 011111 | * | b30 → b31 |
011111 | 011101 | 010 | 100010 | 100110 | b31 → |
100000 | 011110 | 000 | 100001 | * | b32 → b33 |
100001 | 011111 | 010 | 100010 | 100110 | b33 → |
100010 | 000000 | 001 | 100011 | 100101 | b34 → |
100011 | 100000 | 000 | 100100 | * | b35 → b36 |
100100 | 100001 | 000 | 000000 | * | b36 → кінець |
100101 | 100010 | 000 | 000000 | * | b37 → кінець |
100110 | 100011 | 000 | 100111 | * | b38 → b39 |
100111 | 100001 | 000 | 000000 | * | b39 → кінець |
Табл. 3.3 – Таблиця кодів станівавтомата з примусовою адресацієюкоманд
№ п/п | Стан | Код |
1 | b0 | 000000 |
2 | b1 | 000001 |
3 | b2 | 000010 |
4 | b3 | 000011 |
5 | b4 | 000100 |
6 | b5 | 000101 |
7 | b6 | 000110 |
8 | b7 | 000111 |
9 | b8 | 001000 |
10 | b9 | 001001 |
11 | b10 | 001010 |
12 | b11 | 001011 |
13 | b12 | 001100 |
14 | b13 | 001101 |
15 | b14 | 001110 |
16 | b15 | 001111 |
17 | b16 | 010000 |
18 | b17 | 010001 |
19 | b18 | 010010 |
20 | b19 | 010011 |
21 | b20 | 010100 |
22 | b21 | 010101 |
23 | b22 | 010110 |
24 | b23 | 010111 |
25 | b24 | 011000 |
26 | b25 | 011001 |
27 | b26 | 011010 |
28 | b27 | 011011 |
29 | b28 | 011100 |
30 | b29 | 011101 |
31 | b30 | 011110 |
32 | b31 | 011111 |
33 | b32 | 100000 |
34 | b33 | 100001 |
35 | b34 | 100010 |
36 | b35 | 100011 |
37 | b36 | 100100 |
38 | b37 | 100101 |
39 | b38 | 100110 |
40 | b39 | 100111 |
Табл. 3.4 – Таблиця вхіднихсигналівавтомата з примусовоюадресацієюкоманд