Факультет
|
ВАВТ
|
Дисциплина
|
ЭВМ СКС
|
Студент
|
|
|
Специальность
|
22.02
|
Преподаватель
|
Калиш Г.Г.
|
МОСКВА
декабрь 2008
Разработать вычислительное устройство,
выполняющее следующие операции:
·
изменение знака числа
·
деление чисел
Числа представлены в формате с плавающей точкой
с разрядностью 18+6.
1. Техническое задание....................................................................................................................................... 2
2. Содержание............................................................................................................................................................. 3
3. Описание структурной схемы устройства с
ее обоснованием.................................. 4
4. Описание блок-схемы алгоритма выполнения
операций и ее микропрограммной реализации. 6
5. Числовые тестовые примеры выполнения
операций с пояснениями................. 10
6. Описание функциональной схемы
устройства.................................................................... 11
7. Краткое описание принципиальной схемы............................................................................... 12
8. Заключение.......................................................................................................................................................... 13
9. Список литературы....................................................................................................................................... 13
Структурная
схема устройства представлена на рисунке 1. Она состоит из двух частей.
Первая часть схемы, в состав которой входят регистры Ao и Bo и сумматор, предназначена для
работы с порядками чисел. Вторая часть схемы, состоящая из регистров Am, Bm и Z,
мультиплексора, сумматора и компаратора предназначена для работы с мантиссами
чисел.
При
выполнении операции деления используется два числа - A (делимое) и B (делитель). Число A хранится в регистрах Ao и Am соответственно порядок и
мантисса. Число B хранится в регистрах Bo и Bm соответственно порядок и
мантисса.
В
начале работы делимое A заносится в регистры: мантисса в
регистр Am с помощью сигнала Y3, порядок в регистр Ao - Y4, а делитель B: мантисса в регистр Bm (Y5), порядок в регистр Bo (Y6). Мантисса делимого A сдвигается влево путем косой
передачи из регистра Am в сумматор. Делитель B поступает в сумматор SM из регистра Bm в прямом или обратном кодах (Y9).
Дополнительный код делимого образуется в SM за счет
подсуммирования обратного кода делимого B сигналом “+1SM” (Y10).
Цифры
частного Zi, определяемые по знаку частичных остатков в регистре Am, фиксируются в регистре Z путем
последовательного занесения их в младший разряд регистра Z
(Y7) и сдвига содержимого регистра Z (Y8).
Порядок
частного определяется вычитанием порядков на SM путем
подачи обратного значения порядка делителя из регистра Bo и фиксации результата в регистре Bo.
При
выполнении операции изменения знака используется одно число.
Число записывается в регистр Bm (Y5) и подается на сумматор SM в обратном коде (Y9) и записывается в
регистр Am (Y3) с предварительным подсумированием
единицы в сумматоре (Y10).
Рисунок
1
Блок-схема выполнения операций представлена на
рисунке 2.
В
начале работы гасится выходная готовность (Y14)
и проверяется входная готовность (P1). После
получения сигнала входной готовности обнуляются регистры A o и Am (Y0), Bo
и Bm (Y1) и Z
(Y2). Далее проверяется код
операции (P2) для определения дальнейших
действий.
Операция изменения знака числа - ветвь один.
Записываем
исходное число в регистр Bm (Y5). Передаем на SM его обратный код с
подсуммированием единицы младшего разряда (Y10).
Данные с SM записываем в регистр Am (Y3). После этого устанавливаем
выходную готовность (Y13) и заканчиваем работу.
Операция деления чисел - ветвь два.
Производим
запись: мантиссы делимого в регистр Am (Y3), порядка делимого в регистр Ao
(Y4) и мантиссы и порядка делителя в регистр Bm
(Y5) и Bo (Y6) соответственно. Вычисляем разность порядков чисел путем сложения
первого порядка с обратным кодом второго (Y11) и сохраняем результат в регистре Bo
(Y6). Проверяем равенство делителя нулю (P3). Если делитель равен нулю, то сигнализируем об ошибке аргументов и
устанавливаем выходную готовность (Y13). Если делитель не равен нулю, тогда деление
возможно и начинается цикл поразрядного получения мантиссы частного. На SM передается сдвинутое косой передачей в сторону старших разрядов
делимое и обратный код делителя (Y9) с
подсуммированием единицы младшего разряда (Y10).
С выхода SM частичный остаток заносится в регистр Am
(Y3). Цифра модуля частного
вычисляется как сумма по модулю два знаковых разрядов частичного остатка и
делителя и заносится в предварительно сдвинутый на один разряд влево (Y8) регистр Z (Y7). Проверяем счетчик
чисел (P4). Если он не равен нулю, продолжаем
цикл по определению разрядов частного. Если счетчик равен нулю, то мы
определили все разряды частного, и переходим к нормализации результата. Если
число не нормализовано (P6), то производим
сдвиг Z в сторону старших разрядов (Y8) и уменьшение порядка (Y12). После нормализации числа устанавливаем выходную готовность и
заканчиваем работу.
Для
реализации устройства используется управляющий автомат с выделенной адресной
памятью, его схема изображена на рисунке 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
|
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 в сумматоре
|
Разность порядков
|
Y12
|
Уменьшение порядка
частного в регистре Bo
|
Y13
|
Установка выходной
готовности
|
Y14
|
Гашение выходной готовности
|
Таблица
2
Рисунок
3
Функция
|
Значение
|
P1
|
Входная готовность
|
P2
|
Код операции
|
P3
|
Признак равенства 0
делителя
|
P4
|
Конец деления
|
P5
|
Знак числа в
регистре Am
|
P6
|
Признак
нормализации
|
P7
|
Знак числа в регистре Bm
|
Таблица
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
|
Прямой код делителя
|
Остаток отрицательный
|
10000
|
Одновременно вычисляется порядок частного
следующим образом:
pc = px - py = 0.011 -
0.010 = 0.001
Функциональная
схема устройства представлена на рисунке 5.
Функциональная
схема реализует схему работы с мантиссами.
Используемый
мультиплексор 2´1 на вход которого подается число в прямом и дополнительном коде и в
зависимости от ситуации выбирается одно из двух чисел. В процессе работы
осуществляется контроль делителя на равенство нулю, поэтому используемый
мультиплексор должен иметь стробируемый вход.
Сумматор
складывает числа, которые пришли с выхода мультиплексора и регистра Am, результат переписывается в регистр Am, который запоминает
это число, сдвигает его влево в сторону старших разрядов и снова передает его
на сумматор.
Так
же старший разряд регистра подается на результирующий последовательно
параллельный регистр Z, в котором происходит накопление
результата. После определение результата, полученное число надо нормализовать и
поэтому результирующий регистр кроме последовательного входа и параллельного
вывода должен осуществлять сдвиг числа влево в сторону старших разрядов.
Рисунок
5
Принципиальная
схема устройства представлена на рисунке 6.
Два
числа поступают на сумматор, который их суммирует и передает результат на
регистр. В качестве сумматора используется микросхема К555ИМ6, а в качестве
регистра К155ИР13 и К555ИР11 которые отличаются только разрядностью. Старший
разряд регистра поступает на вход результирующего последовательно –
параллельного регистра, в котором накапливается результат. В данной схеме в
качестве результирующего регистра используется микросхема К531ИР24.
Рисунок
6
В
данной курсовой работе было разработано вычислительное устройство, выполняющее
следующие операции:
·
Нахождение абсолютного значения числа.
·
Деление чисел в формате с плавающей запятой.
Построен алгоритм
обработки чисел. Расписаны управляющие сигналы и префиксные функции. По
имеющемся данным построена функциональная схема устройства. Также была
построена принципиальная схема указанной части устройства, в которой были
использованы конкретные микросхемы. Приведен
тестовый пример выполнения операций.
1. Нешумова К.А. Электронные вычислительные машины и системы. Москва,
«Высшая школа», 1989.
2. Савельев А.Я. Арифметические и логические основы цифровых автоматов.
Москва, «Высшая школа», 1980.
3. Стрыгин В.В., Щарев Л.С. Основы вычислительной, микропроцессорной
техники и программирования. Москва, «Высшая школа», 1989.
4. Справочник. Цифровые и аналоговые интегральные микросхемы. Москва
«Радио и связь», 1990.
5. Мальцев П.П. Справочник. Цифровые интегральные микросхемы. М. Радио и
связь. 1994.
6. Шило В.Л. Популярные цифровые микросхемы. М. Радио и связь. 1987.