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