|
Вычислительное устройство, выполняющее операции изменения знака числа и деление чисел
Вычислительное устройство, выполняющее операции изменения знака числа и деление чисел.
1. Структурной схемы устройства с ее обоснованием
На
рисунке 1 изображена
структурная схема устройства, состоящая из двух частей. Первая часть схемы предназначена для работы с порядками чисел. В ее состав входят регистры A
o и B
o и сумматор. Вторая часть схемы предназначена для работы с мантиссами чисел и состоящая из регистров A
m
, B
m и Z, мультиплексора, сумматора и компаратора.
Числа A (делимое) и B (делитель) используются при выполнении
операции деления
. Числа А и В хранятся в своих регистрах A
o
и B
o соответственно. Также им соответствует порядок мантисса. Делимое A, в начале работы, заносится в регистры: мантисса в регистр A
m с помощью определенного сигнала Y
3
, порядок в регистр A
o - Y
4
, а делитель B: мантисса в регистр B
m (Y
5
), порядок в регистр B
o (Y
6
). Мантисса делимого A сдвигается влево путем косой передачи из регистра A
m в сумматор. Делитель B поступает в сумматор SM из регистра B
m в прямом или обратном кодах (Y
9
).
За счет подсуммирования обратного кода делимого B сигналом “+1SM” (Y
10
), дополнительный код делимого образуется в SM.
По знаку частичных остатков определяемых в регистре A
m
, фиксируются в регистре Z цифры частного Z
i
.
Вычитанием порядков на SM, определяется порядок частного. Это достигается путем подачи обратного значения порядка делителя из регистра B
o и фиксации результата в регистре B
o
.
Для выполнения
операции изменения знака используется одно число. Число записывается в регистр B
m (Y
5
). Потом оно подается на сумматор SM в обратном коде (Y
9
) и записывается в регистр A
m (Y
3
) с предварительным подсуммированием единицы в сумматоре (Y
10
).
Рисунок 1
2.
Описание блок-схемы алгоритма выполнения операций и ее микропрограммной реализации
.
Проверяется входная готовность (P
1
) и выходная готовность (Y
14
) гасится в начале работы. Как только будет получен сигнал входной готовности обнуляются регистры A o и A
m (Y
0
), B
o и B
m (Y
1
) и Z (Y
2
). Далее проверяется код операции (P
2
) для определения дальнейших действий. Изменения знака числа - ветвь один.
Для выполнения этой операции необходимо внести число в регистр Bm (Y
5
). После этого надо передать его обратный код на SM и при этом подсуммироваем единицу младшего разряда (Y
10
) Данные с SM записываем в регистр A
m (Y
3
). После всех этих операций можно установить выходную готовность (Y
13
), заканчивая этим самым работу. Деления чисел - ветвь два.
Для выполнения этой операции необходимо произвести запись: порядка делимого в регистр A
o (Y
4
), мантиссы делимого в регистр A
m (Y
3
) и мантиссы и порядка делителя в регистр B
m (Y
5
) и B
o (Y
6
) соответственно. После этого можно приступить к вычислению разности порядков чисел путем сложения первого порядка с обратным кодом второго (Y
11
). Результат сохраняем в регистре B
o (Y
6
).
Далее идет проверка равенства делителя нулю (P
3
). Если это условие выполняется, что значит – ошибка, то сообщаем об ошибке аргументов и устанавливаем выходную готовность (Y
13
). Если это условие не выполняется, тогда деление возможно. При делении начинается цикл поразрядного получения мантиссы частного. Делимое, сдвинутое косой передачей в сторону старших разрядов передается на SM и обратный код делителя (Y
9
) с подсуммированием единицы младшего разряда (Y
10
). Частичный остаток заносится в регистр A
m (Y
3
). Проверяем, равен ли счетчик чисел (P
4
) нулю. Если это условие выполняется, то цикл продолжается по определению разрядов частного.при невыполнении этого условия мы можем определить все разряды частного, и переходим к нормализации результата.
При ненормализованном числе (P
6
) производим уменьшение порядка (Y
12
) и сдвиг Z в сторону старших разрядов (Y
8
). После выполнения этой операции устанавливаем выходную готовность и заканчиваем работу.
Это устройство реализовывает его схема изображена на рисунке 3.
В таблице 1 представлены состояния его переходов, в таблице 2 управляющие сигналы и в таблице 4 описаны префиксные функции.
Рисунок 2
ПЗУ А
Адреса памяти
Условия переходов
Код ПФ
Адреса переходов
0
0
0
1
1
0
P
1
1
1
P
1
2
2
0
P
2
4
1
P
2
3
3
0
0
10
4
0
P
3
8
1
P
3
12
5
0
P
4
6
1
P
4
10
6
0
P
5
7
1
P
5
8
7
0
0
9
8
0
0
9
9
0
0
5
10
0
P
6
11
1
P
6
12
11
0
0
10
12
0
0
*
Таблица 1
Y
0
Обнуление регистров A
o и A
m
Y
1
Обнуление регистров B
o и B
m
Y
2
Обнуление регистра Z
Y
3
Запись в регистр A
m
Y
4
Запись в регистр A
o
Y
5
Запись в регистр B
m
Y
6
Запись в регистр A
o
Y
7
Запись разряда частного в регистр Z
Y
8
Сдвиг регистра Z в сторону старших разрядов
Y
9
Выбор операции в сумматоре
Y
10
Подсуммирование 1 в сумматоре
Y
11
Разность порядков
Y
12
Уменьшение порядка частного в регистре B
o
Y
13
Установка выходной готовности
Y
14
Гашение выходной готовности
Таблица 2
Рисунок 3
Функция
Значение
P
1
Входная готовность
P
2
Код операции
P
3
Признак равенства 0 делителя
P
4
Конец деления
P
5
Знак числа в регистре A
m
P
6
Признак нормализации
P
7
Знак числа в регистре B
m
Таблица 3
На рисунке 4 представлена связь управляющего автомата с операционным автоматом.
Рисунок 4
3. Числовые тестовые примеры выполнения операций с пояснениями
Пусть X=11010111*2
3
, Y=1101*2
2
. Найти частное от деления 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
Порядок частного вычисляется следующим образом:
p
c = p
x - p
y = 0.011 - 0.010 = 0.001
4. Описание функциональной схемы устройства.
В работе функциональной схемы использованы мантиссы.
На выход мультиплексора подается число в прямом и дополнительном коде. В зависимости от ситуации выбирается одно из двух чисел. Также в процессе работы мы должны контролировать чтобы делитель не был равен нулю. Для этого используемый мультиплексор должен иметь стробируемый вход.
В сумматоре складываются числа пришедшие с выхода мультиплексора и регистра A
m
. Результат данной работы переписывается в регистр A
m
, который запоминает это число, сдвигает его влево в сторону старших разрядов и снова передает его на сумматор.
Накопление результата происходит в регистре Z. Так как после определения результата, полученное число надо нормализовать, поэтому результирующий регистр кроме последовательного входа и параллельного вывода должен осуществлять сдвиг числа влево в сторону старших разрядов.
Рисунок 5
5. Краткое описание принципиальной схемы
В качестве сумматора используется микросхема К555ИМ6, а в качестве регистра К155ИР13 и К555ИР11 которые отличаются только разрядностью. Два числа поступают на сумматор, который их суммирует и передает результат на регистр. В данной схеме в качестве результирующего регистра используется микросхема К531ИР24. Старший разряд регистра поступает на вход результирующего последовательно – параллельного регистра, в котором накапливается результат.
Рисунок 6
|
|
|