Разработка вычислительного устройства

Разработка вычислительного устройства

Разработать вычислительное устройство, выполняющее следующие операции:

    изменение знака числа

    деление чисел

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

Функциональная схема реализует схему работы с мантиссами.

Используемый мультиплексор 21 на вход которого подается число в прямом и дополнительном коде и в зависимости от ситуации выбирается одно из двух чисел. В процессе работы осуществляется контроль делителя на равенство нулю, поэтому используемый мультиплексор должен иметь стробируемый вход.

Сумматор складывает числа, которые пришли с выхода мультиплексора и регистра A>m>, результат переписывается в регистр A>m>, который запоминает это число, сдвигает его влево в сторону старших разрядов и снова передает его на сумматор.

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

Рисунок 5

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

Принципиальная схема устройства представлена на рисунке 6.

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

Рисунок 6

Заключение

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

    Нахождение абсолютного значения числа.

    Деление чисел в формате с плавающей запятой.

Построен алгоритм обработки чисел. Расписаны управляющие сигналы и префиксные функции. По имеющемся данным построена функциональная схема устройства. Также была построена принципиальная схема указанной части устройства, в которой были использованы конкретные микросхемы. Приведен тестовый пример выполнения операций.