Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ргр / ргр.docx
Скачиваний:
13
Добавлен:
08.06.2023
Размер:
178.1 Кб
Скачать

Министерство науки и высшего образования РФ

Федеральное государственное автономное образовательное учреждение высшего образования

«Омский государственный технический университет»

Кафедра «Информатика и вычислительная техника»

ОТЧЁТ ПО РАСЧЕТНО-ГРАФИЧЕСКОЙ РАБОТЕ

по дисциплине «Арифметические и логические основы вычислительной техники»

«Разработка арифметико-логического устройства, выполняющего деление со сдвигом сумматора без восстановления остатка в прямом коде»

студента Симон Карины Владимировны группы ПИН-221

Пояснительная записка

Шифр работы От-2068998-43-ПИН-221-37 ПЗ

Направление 09.03.04

Доцент, к.т. Н Червенчук И.В

Студент Симон К.В

Омск 2023

Реализация операции деления со сдвигом сумматора

без восстановления остатка

При выполнения операции С=А В мантисса mА загружается в сумматор SM, мантисса mВ загружается в регистр RM2, регистр RM1 и сумматор порядков SP обнуляются, в счетчик загружается число порядков мантиссы уменьшенное на один – CT=n-1. При выполнении операции деления порядки операндов должны вычитаться - СP=pA-pB.

Метод деление без восстановления остатка заключается в необходимости анализа старшего разряда сумматора (знака), на основе этого анализа решается какое действие необходимо делать на следующей итерации цикла.

Реализация деления:

1) Анализируется старший разряд сумматора(знак) SM.

Если старший разряд (знак) сумматора до сдвига равен 0 SM[1]=0 , то в следующей итерации цикла производится вычитание SM=SM-RM2,

Если старший разряд(знак) сумматора да сдвига равен 1 SM[1]=1, то в следующей итерации цикле производится сложение SM=SM-RM2

2) Выполняется сдвиг сумматора SM в сторону старших разрядов.

3) Производится действие на основе анализа 1 пункта.

4) Анализируется значение старшего разряда (знака) сумматора SM[1]

Регистр RM1 сдвигается в сторону старших разрядов и со стороны младших разрядов в RM1 задвигается инвертированное значение старшего разряда сумматора(знака).

5) Содержимое счетчика уменьшается на 1 СT=СТ-1, до тех пор пока СТ не равен 0.

По окончанию указанных действий на регистре RM1 должен находиться результат.

Схемы Алгоритма

На рисунке 1 представлен алгоритм ввода данных и начальная проверка на возможность деления и в случае, если проверка подтверждается, осуществляется переход на вывод результата (в регистрах RM1 и SP находятся нулевые значения, они и выведутся.) Далее проверяется RM2 на ноль, если проверка подтверждается, выводится сообщение об ошибке «деление на ноль».

Рисунок 1- Схема алгоритма ввода данных и начальной проверки

На рисунке 2 представлена схема алгоритма работы с порядками. При выполнении операции деления в формате с плавающей запятой порядок результата находится как рС = рА – рВ, но если порядки представлены в прямом коде данное действие разворачивается в большой алгоритм.

Рисунок 2- Схема алгоритма работы с порядками

На рисунке 3 представлена схема алгоритма денормализации делимого.

Рисунок 3 – Схема алгоритма денормализации делимого

На рисунке 4 представлена схема алгоритма деления мантисс, представленных в прямом годе без восстановления остатка со сдвигом сумматора.

Рисунок 4- Схема алгоритма деления мантисс без восстановления остатка, со сдвигом сумматора

Схема устройства

На рисунке 5 представлена схема устройства деления со сдвигом сумматора, без восстановления остатка.

В таблице 1 представлены логические условия формируемые устройством.

В таблице 2 представлены управляющие сигналы, формируемые устройством.

Таблица 1.

Логические условия

Обозначение

Сокращенная запись

Комментарии

X1

SM=0

Проверка сумматора мантисс (делимого) на ноль

X2

RM2=0

Проверка регистра делителя на ноль

X3

RP1[1]

Знак порядка делимого

X4

RP2[1]

Знак порядка делителя

X5

SP[1]

Знак сумматора порядка

X6

SM[1]

Знак сумматора мантисс

X7

CT=0

Проверка счетчика на ноль

X8

SP[2…p]

Проверка сумматора порядков на ноль (без учета знакового разряда)

Таблица 2

Управляющие сигналы

Обозначение

Сокращенная запись

Комментарии

y1

SM = mA, RP1 = pA

Загрузка Мантиссы И Порядка А

y2

RM2 = mB, RP2 = pB

Загрузка Мантиссы И Порядка B

y3

RM1 = 0, SP = 0

Сброс RM1 И SP

y4

Деление на 0

Вывод Сигнала «Деление На 0»

y5

SP = RP1

Загрузка Сумматора SP Из RP1

y6

SP = SP – RP2

Вычитание SP И RP2, Результат В SP (Содержимое RP2 Не Меняется)

y7

SP = RP2

Загрузка Сумматора SP Из RP2

Обозначение

Сокращенная запись

Комментарии

y8

SP = SP – RP1

Вычитание SP И RP1, Результат В SP (Содержимое RP1 Не Меняется)

y9

SP[1] = 1

Установка Знакового Разряда SP

y10

RP2[1] = 0

Сброс Знакового Разряда RP2

y11

SP = SP + RP2

Сумма SP И RP2, Результат В SP (Содержимое RP2 Не Меняется)

y12

RP1[1] = 0

Сброс Знакового Разряда RP1

y13

Переполнение –

Вывод Сигнала «Переполнение –»

y14

T = SM[1] ⊕ RM2[1]

Получение Знака Результата И Сохранение Его В Триггере

y15

SM[1] = 0, RM2[1] = 0

Сброс Знаковых Разрядов SM И RM2

y16

SM = SM-RM2

Вычитание SM И RМ2, Результат В SМ

y17

SM←

Сдвиг SM Влево

y18

SP = SP+1

Увеличение SP На 1

y19

SP = SP-1

Уменьшение SP На 1

y20

SP[1] = 0

Сброс Знакового Разряда SP

y21

CT = n-1

Загрузка Счетчика (N-1 Циклов)

y23

SM = SM+RM1

Сложение SM И RМ2, Результат В SМ

y24

ci = SM[1], RM1←

В RM1 Задвигается Очередной Разряд Частного C

y25

RM1[1] = T

Присвоение Знака Результата

y26

Вывод RM1, SP

Вывод Мантиссы И Порядка Результата

y27

Переполнение +

Вывод Сигнала «Переполнение +»

y28

SM→

Сдвиг SM вправо

Соседние файлы в папке ргр