Вычислительное устройство, выполняющее операции изменения знака числа и деление чисел.
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