Вычислительное устройство. Изменение знака и деление чисел

Вычислительное устройство, выполняющее операции изменения знака числа и деление
чисел.
Числа представлены в формате с плавающей точкой с разрядностью 18+6.
1. Описание структурной схемы устройства с ее обоснованием
Структурная схема устройства представлена на рисунке 1. Она состоит из двух
частей. Первая часть схемы, в состав которой входят регистры Ao и Bo и сумматор,
предназначена для работы с порядками чисел. Вторая часть схемы, состоящая из
регистров Am, Bm и Z, мультиплексора, сумматора и компаратора предназначена для
работы с мантиссами чисел.
При выполнении операции деления используется два числа - A (делимое) и B
(делитель). Число A хранится в регистрах Ao и Am соответственно порядок и
мантисса. Число B хранится в регистрах Bo и Bm соответственно порядок и
мантисса.
В начале работы делимое A заносится в регистры: мантисса в регистр Am с помощью
сигнала Y3, порядок в регистр Ao - Y4, а делитель B: мантисса в регистр Bm (Y5),
порядок в регистр Bo (Y6). Мантисса делимого A сдвигается влево путем косой
передачи из регистра Am в сумматор. Делитель B поступает в сумматор SM из
регистра Bm в прямом или обратном кодах (Y9). Дополнительный код делимого
образуется в SM за счет подсуммирования обратного кода делимого B сигналом
“+1SM” (Y10).
Цифры частного Zi, определяемые по знаку частичных остатков в регистре Am,
фиксируются в регистре Z путем последовательного занесения их в младший разряд
регистра Z (Y7) и сдвига содержимого регистра Z (Y8).
Порядок частного определяется вычитанием порядков на SM путем подачи обратного
значения порядка делителя из регистра Bo и фиксации результата в регистре Bo.
При выполнении операции изменения знака используется одно число. Число
записывается в регистр Bm (Y5) и подается на сумматор SM в обратном коде (Y9) и
записывается в регистр Am (Y3) с предварительным подсумированием единицы в
сумматоре (Y10).

Рисунок 1
2.Описание блок-схемы алгоритма выполнения операций и ее микропрограммной
реализации.
Блок-схема выполнения операций представлена на рисунке 2.
В начале работы гасится выходная готовность (Y14) и проверяется входная
готовность (P1). После получения сигнала входной готовности обнуляются регистры
A o и Am (Y0), Bo и Bm (Y1) и Z (Y2). Далее проверяется код операции (P2) для
определения дальнейших действий.
Операция изменения знака числа - ветвь один.
Записываем исходное число в регистр Bm (Y5). Передаем на SM его обратный код с
подсуммированием единицы младшего разряда (Y10). Данные с SM записываем в
регистр Am (Y3). После этого устанавливаем выходную готовность (Y13) и
заканчиваем работу.
Операция деления чисел - ветвь два.
Производим запись: мантиссы делимого в регистр Am (Y3), порядка делимого в
регистр Ao (Y4) и мантиссы и порядка делителя в регистр Bm (Y5) и Bo (Y6)
соответственно. Вычисляем разность порядков чисел путем сложения первого порядка
с обратным кодом второго (Y11) и сохраняем результат в регистре Bo (Y6).
Проверяем равенство делителя нулю (P3). Если делитель равен нулю, то
сигнализируем об ошибке аргументов и устанавливаем выходную готовность (Y13).
Если делитель не равен нулю, тогда деление возможно и начинается цикл
поразрядного получения мантиссы частного. На SM передается сдвинутое косой
передачей в сторону старших разрядов делимое и обратный код делителя (Y9) с
подсуммированием единицы младшего разряда (Y10). С выхода SM частичный остаток
заносится в регистр Am (Y3). Цифра модуля частного вычисляется как сумма по
модулю два знаковых разрядов частичного остатка и делителя и заносится в
предварительно сдвинутый на один разряд влево (Y8) регистр Z (Y7). Проверяем
счетчик чисел (P4). Если он не равен нулю, продолжаем цикл по определению
разрядов частного. Если счетчик равен нулю, то мы определили все разряды
частного, и переходим к нормализации результата. Если число не нормализовано
(P6), то производим сдвиг Z в сторону старших разрядов (Y8) и уменьшение порядка
(Y12). После нормализации числа устанавливаем выходную готовность и заканчиваем
работу.
Для реализации устройства используется управляющий автомат с выделенной адресной
памятью, его схема изображена на рисунке 3, в таблице 1 представлены состояния
его переходов, в таблице 2 управляющие сигналы и в таблице 4 описаны префиксные
функции.

Рисунок 2
ПЗУ А
Адреса памятиУсловия переходовКод ПФАдреса переходов
0001
10P11
1P12
20P24
1P23
30010
40P38
1P312
50P46
1P410
60P57
1P58
7009
8009
9005
100P611
1P612
110010
1200*

Таблица 1
Y0Обнуление регистров Ao и Am
Y1Обнуление регистров Bo и Bm
Y2Обнуление регистра Z
Y3Запись в регистр Am
Y4Запись в регистр Ao
Y5Запись в регистр Bm
Y6Запись в регистр Ao
Y7Запись разряда частного в регистр Z
Y8Сдвиг регистра Z в сторону старших разрядов
Y9Выбор операции в сумматоре
Y10Подсуммирование 1 в сумматоре
Y11Разность порядков
Y12Уменьшение порядка частного в регистре Bo
Y13Установка выходной готовности
Y14Гашение выходной готовности

Таблица 2

Рисунок 3
ФункцияЗначение
P1Входная готовность
P2Код операции
P3Признак равенства 0 делителя
P4Конец деления
P5Знак числа в регистре Am
P6Признак нормализации
P7Знак числа в регистре Bm

Таблица 3
На рисунке 4 представлена связь управляющего автомата с операционным автоматом.

Рисунок 4
3. Числовые тестовые примеры выполнения операций с пояснениями
Пусть X=11010111*23, Y=1101*22. Найти частное от деления X/Y.
Все действия выполняются в устройстве в следующей последовательности:
0.1101111Прямой код делимогоЧастное X/Y
+1.0011Дополнительный код делителя
0.0000Остаток положительный1
0.0000Остаток сдвинут влево на один разряд
+1.0011Дополнительный код делителя
1.0011Остаток отрицательный10
0.0111Остаток сдвинут влево на один разряд
+0.1101Прямой код делителя
1.0100Остаток отрицательный100
0.1001Остаток сдвинут влево на один разряд
+0.1101Прямой код делителя
1.0110Остаток отрицательный1000
0.1101Остаток сдвинут влево на один разряд
+0.1101Прямой код делителя
1.1010Остаток отрицательный10000

Одновременно вычисляется порядок частного следующим образом:
pc = px - py = 0.011 - 0.010 = 0.001
4. Описание функциональной схемы устройства.
Функциональная схема устройства представлена на рисунке 5.
Функциональная схема реализует схему работы с мантиссами.
Используемый мультиплексор 2ґ1 на вход которого подается число в прямом и
дополнительном коде и в зависимости от ситуации выбирается одно из двух чисел. В
процессе работы осуществляется контроль делителя на равенство нулю, поэтому
используемый мультиплексор должен иметь стробируемый вход.
Сумматор складывает числа, которые пришли с выхода мультиплексора и регистра Am,
результат переписывается в регистр Am, который запоминает это число, сдвигает
его влево в сторону старших разрядов и снова передает его на сумматор.
Так же старший разряд регистра подается на результирующий последовательно
параллельный регистр Z, в котором происходит накопление результата. После
определение результата, полученное число надо нормализовать и поэтому
результирующий регистр кроме последовательного входа и параллельного вывода
должен осуществлять сдвиг числа влево в сторону старших разрядов.

Рисунок 5
5. Краткое описание принципиальной схемы
Принципиальная схема устройства представлена на рисунке 6.
Два числа поступают на сумматор, который их суммирует и передает результат на
регистр. В качестве сумматора используется микросхема К555ИМ6, а в качестве
регистра К155ИР13 и К555ИР11 которые отличаются только разрядностью. Старший
разряд регистра поступает на вход результирующего последовательно –
параллельного регистра, в котором накапливается результат. В данной схеме в
качестве результирующего регистра используется микросхема К531ИР24.

Рисунок 6