Микрокод и PLA¶
Формат микрокода¶
Микрокод формируется из двух частей: входной (IN) и выходной (OUT).
IN:
OP SF
╒══════╕╒══════╕
FF < XXXXXXXXXXXXXXXX < 00
OUT:
IT FM MD
╒═══╕╒══════╕╒═╕
FF < XXXXXXXXXXXXXXXX < 00
- OP - opcode (8 бит).
- SF - суффикс (8 бит).
- IT - Instruction Type (5 бит).
- FM - Flag Mask (8 бит).
- MD - Mode (3 бита).
PLA-таблицы¶
В проекте используются четыре PLA-таблицы:
CU_PLA.txt- основная таблица управляющего устройства. Содержит 35-битные выходные векторы для каждой инструкции.MICROCODE_PLA.txt- упрощённая таблица микрокода (16-битный выход).LENGHT_PLA.txt- таблица длин инструкций (5-битный вход → 3-битный выход).ALU_PLA.txt- таблица операций АЛУ.
CU_PLA¶
Формат: 16-битный вход → 35-битный выход.
Пример строки:
Здесь:
- Вход: 00000010 00000000 - opcode 02h, суффикс 00h.
- Выход: 35-битный управляющий вектор.
MICROCODE_PLA¶
Формат: 16-битный вход → 16-битный выход.
Пример:
LENGHT_PLA¶
Формат: 5-битный вход (ID формата) → 3-битный выход (длина − 2).
Пример:
Полная таблица:
| Вход | Выход | Формат |
|---|---|---|
00000 |
000 |
S0 |
00001 |
001 |
S1 |
00010 |
001 |
S2 |
00011 |
001 |
S3 |
00100 |
001 |
S4 |
00101 |
010 |
S5 |
00110 |
011 |
S6 |
00111 |
010 |
A0 |
01000 |
010 |
A1 |
01001 |
011 |
A2 |
01010 |
100 |
A3 |
01011 |
100 |
J0 |
01100 |
010 |
D0 |
01101 |
010 |
D1B |
01110 |
011 |
D1W |
01111 |
100 |
D1A |
10000 |
100 |
D2F |
10001 |
011 |
D2S |
10010 |
101 |
D2SI |
10011 |
010 |
D2R |
10100 |
100 |
D3F |
10101 |
011 |
D3S |
10110 |
101 |
D3SI |
10111 |
010 |
D3R |
ALU_PLA¶
Формат: 8-битный вход (opcode) → 4-битный выход (код операции АЛУ).
Пример:
Полная таблица приведена в разделе ALU и BSU.