Умножение выполняется по алгоритму умножения с младших разрядов множителя и сдвигом суммы частичных произведений вправо с одним корректирующим шагом. Данный алгоритм при представлении сомножителей в прямом коде можно выразить следующей формулой:
Представим рассмотренный метод умножения в виде схемы алгоритма на рисунке
Операция проверяет бит в RB по адресу из RA, устанавливает флаг CF, если значение бита в операнде 1, значение бита в операнде устанавливается в 1
Функциональная схема блока операций представлена на рисунке , в таблице приведены все элементы функциональной схемы блока операций с их функциями и назначением.
| Обозначение блока | Назначение |
|---|---|
| RA | Регистр первого операнда, 4 разряда, хранение, параллельная загрузка A |
| RB | Регистр второго операнда, 4 разряда, хранение, параллельная загрузка B, логический сдвиг вправо, формирование сигнала F0 |
| RLO | Регистр младшей части результата, 4 разряда, хранение, параллельная загрузка, логический сдвиг вправо, синхронный сброс в 0 |
| RHI | Регистр старшей части результата, 4 разряда, хранение, параллельная загрузка, логический сдвиг вправо с переносом в RLO, синхронный сброс в 0 |
| CS1 | Формирование знака произведения |
| CS2 | Формирование нового значения B с установленным битом по индексу A |
| CS3 | Формирование флага CF (значения бита из B по индексу A) |
| SM | Сумматор, 4 разряда |
| TS | Регистр знака произведения, 1 разряд, хранение, загрузка |
| TCF | Регистр флага CF (значения бита из B по индексу A), 1 разряд, хранение, загрузка |
Данный регистр является четырёхразрядным регистром хранения. Наиболее подходящим для реализации функций регистра RA является регистр FD4CE
| Обозначение | Назначение |
|---|---|
| Y0 | |
| 0 | Хранение |
| 1 | Параллельная загрузка |
Данный регистр должен выполнять микрооперации хранения, параллельной загрузки и логического сдвига вправо. Для реализации выбран универсальный регистр со сдвигом влево SR4CLE, для получения сдвига вправо входы и выходы подключены в обратном порядке. Младший бит выхода Q0 формирует сигнал F0
| Обозначение | Назначение | |
|---|---|---|
| Y1 | Y2 | |
| 0 | 0 | Хранение |
| 1 | 0 | Параллельная загрузка |
| 0 | 1 | Логический сдвиг вправо |
Данный регистр должен выполнять микрооперации хранения, параллельной загрузки, логического сдвига вправо (с заполнением старшего бита младшим разрядом из RHI) и синхронного сброса в 0. Для реализации выбран универсальный сдвиговый регистр SR4RLE
| Обозначение | Назначение | ||
|---|---|---|---|
| Y5 | Y6 | Y8 | |
| 0 | 0 | 0 | Хранение |
| 0 | 1 | 0 | Параллельная загрузка |
| 0 | 0 | 1 | Логический сдвиг вправо |
| 1 | 0 | 0 | Сброс в 0 |
Данный регистр должен выполнять микрооперации хранения, параллельной загрузки, логического сдвига вправо (c коммутацией младшего бита в старший разряд RLO) и синхронного сброса в 0. Для реализации выбран универсальный сдвиговый регистр SR4RLE
| Обозначение | Назначение | ||
|---|---|---|---|
| Y5 | Y7 | Y8 | |
| 0 | 0 | 0 | Хранение |
| 0 | 1 | 0 | Параллельная загрузка |
| 0 | 0 | 1 | Логический сдвиг вправо |
| 1 | 0 | 0 | Сброс в 0 |
Отвечает за формирование знака произведения
Отвечает за формирование нового значения B с установленным битом по индексу A
Отвечает за формирование флага CF (бита из B по индексу A)
4-х битный сумматор ADD4
| Обозначение | Назначение |
|---|---|
| Y3 | |
| 0 | Хранение |
| 1 | Загрузка |
| Обозначение | Назначение |
|---|---|
| Y4 | |
| 0 | Хранение |
| 1 | Загрузка |
| Сигнал | Операция |
|---|---|
| Y0 | Загрузка A в RA |
| Y1 | Загрузка B в RB |
| Y2 | Логический сдвиг вправо RB |
| Y3 | Загрузка значения на выходе CS1 в TS |
| Y4 | Загрузка значения на выходе CS3 в TCF |
| Y5 | Синхронный сброс RLO и RHI |
| Y6 | Загрузка значения на выходе CS2 в RLO |
| Y7 | Загрузка значения на выходе SM в RHI |
| Y8 | Логический сдвиг вправо группы регистров RHI и RLO |
| Сигнал | Операция |
|---|---|
| F0 | Младший разряд B |