Перейти к содержанию

Микрокод и 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-таблицы:

  1. CU_PLA.txt - основная таблица управляющего устройства. Содержит 35-битные выходные векторы для каждой инструкции.
  2. MICROCODE_PLA.txt - упрощённая таблица микрокода (16-битный выход).
  3. LENGHT_PLA.txt - таблица длин инструкций (5-битный вход → 3-битный выход).
  4. ALU_PLA.txt - таблица операций АЛУ.

CU_PLA

Формат: 16-битный вход → 35-битный выход.

Пример строки:

0000001000000000 00000000000000000000010000000000101 # ADD

Здесь: - Вход: 00000010 00000000 - opcode 02h, суффикс 00h. - Выход: 35-битный управляющий вектор.

MICROCODE_PLA

Формат: 16-битный вход → 16-битный выход.

Пример:

0000001000000000 0011100011101100 # ADD

LENGHT_PLA

Формат: 5-битный вход (ID формата) → 3-битный выход (длина − 2).

Пример:

00000 000 # S0
00001 001 # S1 (rD)
...
10110 101 # D3SI

Полная таблица:

Вход Выход Формат
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-битный выход (код операции АЛУ).

Пример:

00000010 0000 # ADD
00000011 0000 # ADC
00000100 0001 # SUB
...

Полная таблица приведена в разделе ALU и BSU.