Вычислительное устройство, выполняющее операции изменения знака числа и деление чисел

Вычислительное устройство, выполняющее операции изменения знака числа и деление чисел.

1. Структурной схемы устройства с ее обоснованием

На рисунке 1 изображена структурная схема устройства, состоящая из двух частей. Первая часть схемы предназначена для работы с порядками чисел. В ее состав входят регистры Ao и Bo и сумматор. Вторая часть схемы предназначена для работы с мантиссами чисел и состоящая из регистров Am, Bm и Z, мультиплексора, сумматора и компаратора.

Числа A (делимое) и B (делитель) используются при выполнении операции деления. Числа, А и В хранятся в своих регистрах Ao и Bo соответственно. Также им соответствует порядок мантисса. Делимое A, в начале работы, заносится в регистры: мантисса в регистр Am с помощью определенного сигнала Y3, порядок в регистр Ao — Y4, а делитель B: мантисса в регистр Bm (Y5), порядок в регистр Bo (Y6). Мантисса делимого A сдвигается влево путем косой передачи из регистра Am в сумматор. Делитель B поступает в сумматор SM из регистра Bm в прямом или обратном кодах (Y9).

За счет подсуммирования обратного кода делимого B сигналом «+1SM» (Y10), дополнительный код делимого образуется в SM.

По знаку частичных остатков определяемых в регистре Am, фиксируются в регистре Z цифры частного Zi.

Вычитанием порядков на SM, определяется порядок частного. Это достигается путем подачи обратного значения порядка делителя из регистра Bo и фиксации результата в регистре Bo.

Для выполнения операции изменения знака используется одно число. Число записывается в регистр Bm (Y5). Потом оно подается на сумматор SM в обратном коде (Y9) и записывается в регистр Am (Y3) с предварительным подсуммированием единицы в сумматоре (Y10).

Рисунок 1

2.Описание блок-схемы алгоритма выполнения операций и ее микропрограммной реализации.

Проверяется входная готовность (P1) и выходная готовность (Y14) гасится в начале работы. Как только будет получен сигнал входной готовности обнуляются регистры A o и Am (Y0), Bo и Bm (Y1) и Z (Y2). Далее проверяется код операции (P2) для определения дальнейших действий.

Изменения знака числа — ветвь один.

Для выполнения этой операции необходимо внести число в регистр Bm (Y5). После этого надо передать его обратный код на SM и при этом подсуммироваем единицу младшего разряда (Y10) Данные с SM записываем в регистр Am (Y3). После всех этих операций можно установить выходную готовность (Y13), заканчивая этим самым работу.

Деления чисел — ветвь два.

Для выполнения этой операции необходимо произвести запись: порядка делимого в регистр Ao (Y4), мантиссы делимого в регистр Am (Y3) и мантиссы и порядка делителя в регистр Bm (Y5) и Bo (Y6) соответственно. После этого можно приступить к вычислению разности порядков чисел путем сложения первого порядка с обратным кодом второго (Y11). Результат сохраняем в регистре Bo (Y6).

Далее идет проверка равенства делителя нулю (P3). Если это условие выполняется, что значит — ошибка, то сообщаем об ошибке аргументов и устанавливаем выходную готовность (Y13). Если это условие не выполняется, тогда деление возможно. При делении начинается цикл поразрядного получения мантиссы частного. Делимое, сдвинутое косой передачей в сторону старших разрядов передается на SM и обратный код делителя (Y9) с подсуммированием единицы младшего разряда (Y10). Частичный остаток заносится в регистр Am (Y3).

Проверяем, равен ли счетчик чисел (P4) нулю. Если это условие выполняется, то цикл продолжается по определению разрядов частного. при невыполнении этого условия мы можем определить все разряды частного, и переходим к нормализации результата.

При ненормализованном числе (P6) производим уменьшение порядка (Y12) и сдвиг Z в сторону старших разрядов (Y8). После выполнения этой операции устанавливаем выходную готовность и заканчиваем работу.

Это устройство реализовывает его схема изображена на рисунке 3.

В таблице 1 представлены состояния его переходов, в таблице 2 управляющие сигналы и в таблице 4 описаны префиксные функции.

Рисунок 2

ПЗУ А

Адреса памяти

Условия переходов

Код ПФ

Адреса переходов

0

0

0

1

1

0

P1

1

1

P1

2

2

0

P2

4

1

P2

3

3

0

0

10

4

0

P3

8

1

P3

12

5

0

P4

6

1

P4

10

6

0

P5

7

1

P5

8

7

0

0

9

8

0

0

9

9

0

0

5

10

0

P6

11

1

P6

12

11

0

0

10

12

0

0

*

Таблица 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=11 010 111*23, Y=1101*22. Найти частное от деления X/Y.

Все действия выполняются в устройстве в следующей последовательности:

0.1 101 111

Прямой код делимого

Частное 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

Остаток отрицательный

10 000

Порядок частного вычисляется следующим образом:

pc = px — py = 0.011 — 0.010 = 0.001

4. Описание функциональной схемы устройства.

В работе функциональной схемы использованы мантиссы.

На выход мультиплексора подается число в прямом и дополнительном коде. В зависимости от ситуации выбирается одно из двух чисел. Также в процессе работы мы должны контролировать чтобы делитель не был равен нулю. Для этого используемый мультиплексор должен иметь стробируемый вход.

В сумматоре складываются числа пришедшие с выхода мультиплексора и регистра Am. Результат данной работы переписывается в регистр Am, который запоминает это число, сдвигает его влево в сторону старших разрядов и снова передает его на сумматор.

Накопление результата происходит в регистре Z. Так как после определения результата, полученное число надо нормализовать, поэтому результирующий регистр кроме последовательного входа и параллельного вывода должен осуществлять сдвиг числа влево в сторону старших разрядов.

Рисунок 5

5. Краткое описание принципиальной схемы

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

Рисунок 6