Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
РГР / IVT-222_Nazrov N.M._AiLOVS_RGR_2023.1.doc
Скачиваний:
12
Добавлен:
11.05.2024
Размер:
1.25 Mб
Скачать

2.2Принцип работы

В регистр RM2 загружается mB, в сумматор SMM загружается mA. Регистр RM1 обнуляется, счётчик CT инициализируется числом n, где n = 8. В триггер T загружается . Это необходимо для последующей коррекции. Бит записывается в CI, который является младшим битом RM1.

В регистр RP2 загружается pB, в регистр RP1 загружается pA. Сумматор SMP обнуляется.

Перед началом работы цикла проверяется значение RM2. Если RM2=0, то генерируется исключение «деление на 0» и работа устройства прекращается. Далее производится работа с порядками. Искомый порядок является разностью порядков RP1 и RP2. Если при вычитании порядков с разными знаками, то есть, сложения чисел с одинаковыми знаками, произошла смена знака (сложили два положительных – получили отрицательное, и наоборот), то генерируется исключение «переполнение». Поскольку может произойти как смена знака с «+» на «–», так и с «–» на «+», то существует два различных исключения – «переполнение +» и «переполнение –».

После этого проверяется условие . Для этого, если знаки равны, производится вычитание , иначе . Если в результате знак не изменился, что соответствует нарушению этого условия, производится сдвиг SMM в сторону младших разрядов, иначе – переходим к циклу. Естественно, после проверки необходимо восстановить значение сумматора.

В цикле сначала проверяется значение счётчика CT. Если счётчик CT стал равен нулю, выходим из цикла. Для начала проверяем , затем двигаем сумматор в сторону старших разрядов. Если , то выполняем , иначе – . Затем в CI записываем и сдвигаем RM1 в сторону старших разрядов. Затем уменьшаем CT на 1 и возвращаемся к началу цикла.

После цикла происходит коррекция. Если T=0 и RM2[1]=1, то к младшему разряду RM1 прибавляется 1 (то есть, RM1 += 0,00…01). Если T=1 и RM2[1]=0, то RM1 += 1,00…01, если же T=1 и RM2[1]=1, то RM1 += 1,00…00.

Структурная схема показана на рисунке 1. Схема алгоритма разбита на несколько частей и показана на рисунках 2, 3, 4, 5, 6.

Рисунок 1 — Структурная схема устройства

Рисунок 2 — Схема алгоритма работы устройства, инициализация

Рисунок 3 — Схема алгоритма работы устройства, работа с порядками

Рисунок 4 — Схема алгоритма работы устройства, проверка и денормализация делимого

Рисунок 5 — Схема алгоритма работы устройства, деление как таковое

Рисунок 6 — Схема алгоритма работы устройства, коррекция и вывод

3Пример работы устройства

3.1A и b – положительные

mA = 0,11101010

pA = 00000101

mB = 0,10010000

pB = 00000001

SMM = 0,11101010

RM1 = 0,00000000

RM2 = 0,10010000

CT = 8

-RM2 = 1,01110000

T = 0

RP1 = 00000101

SMP = 00000000

RP2 = 00000001

SMP=

00000101

-RP2=

11111110

SMP=

00000011

SMM=

0,11101010

-RM2=

1,01110000

0,01011010

|mA| > |mB|

RM2=

0,10010000

SMM=

0,11101010

SMM=

0,01110101

SMP=

00000100

1)

SMM=0,01110101

SMM=0,11101010

-RM2=1,01110000

0,01011010

CI=1

RM1=0,00000001

CT=7

2)

SMM=0,01011010

SMM=0,10110100

-RM2=1,01110000

0,00100100

CI=1

RM1=0,00000011

CT=6

3)

SMM=0,00100100

SMM=0,01001000

-RM2=1,01110000

1,10111000

CI=0

RM1=0,00000110

CT=5

4)

SMM=1,10111000

SMM=1,01110000

-RM2=1,01110000

0,00000000

CI=1

RM1=0,00001101

CT=4

5)

SMM=0,00000000

SMM=0,00000000

-RM2=1,01110000

1,01110000

CI=0

RM1=0,00011010

CT=3

6)

SMM=1,01110000

SMM=0,11100000

RM2=0,10010000

1,01110000

CI=0

RM1=0,00110100

CT=2

7)

SMM=1,01110000

SMM=0,11100000

RM2=0,10010000

1,01110000

CI=0

RM1=0,01101000

CT=1

8)

SMM=1,01110000

SMM=0,11100000

RM2=0,10010000

1,01110000

CI=0

RM1=0,11010000

CT=0

mC=

RM1=0,11010000

pC=

SMP=00000100

3.2 А – положительное, B – отрицательное

mA = 0,11101010

pA = 00000101

mB = 1,01110000

pB = 00000001

SMM = 0,11101010

RM1 = 0,00000000

RM2 = 1,01110000

CT = 8

-RM2 = 0,10010000

T = 1

RP1 = 00000101

SMP = 00000000

RP2 = 00000001

SMP=

00000101

-RP2=

11111110

SMP=

00000011

SMM=

0,11101010

RM2=

1,01110000

0,01011010

|mA| > |mB|

-RM2=

0,10010000

SMM=

0,11101010

SMM=

0,01110101

SMP=

00000100

1)

SMM=0,01110101

SMM=0,11101010

RM2=1,01110000

0,01011010

CI=0

RM1=0,00000000

CT=7

2)

SMM=0,01011010

SMM=0,10110100

RM2=1,01110000

0,00100100

CI=0

RM1=0,00000000

CT=6

3)

SMM=0,00100100

SMM=0,01001000

RM2=1,01110000

1,10111000

CI=1

RM1=0,00000001

CT=5

4)

SMM=1,10111000

SMM=1,01110000

-RM2=0,10010000

0,00000000

CI=0

RM1=0,00000010

CT=4

5)

SMM=0,00000000

SMM=0,00000000

RM2=1,01110000

1,01110000

CI=1

RM1=0,00000101

CT=3

6)

SMM=1,01110000

SMM=0,11100000

-RM2=0,10010000

1,01110000

CI=1

RM1=0,00001011

CT=2

7)

SMM=1,01110000

SMM=0,11100000

-RM2=0,10010000

1,01110000

CI=1

RM1=0,00010111

CT=1

8)

SMM=1,01110000

SMM=0,11100000

-RM2=0,10010000

1,01110000

CI=1

RM1=0,00101111

CT=0

T=1

RM1=0,00101111

1,00000001

RM1=1,00110000

mC=

RM1=0,11010000

pC=

SMP=00000100

3.3A – отрицательное, B – положительное

mA = 1,00010110

pA = 00000101

mB = 0,10010000

pB = 00000001

SMM = 1,00010110

RM1 = 0,00000000

RM2 = 0,10010000

CT = 8

-RM2 = 1,01110000

T = 1

RP1 = 00000101

SMP = 00000000

RP2 = 00000001

SMP=

00000101

-RP2=

11111110

SMP=

00000011

SMM=

1,00010110

RM2=

0,10010000

1,10100110

|mA| > |mB|

-RM2=

1,01110000

SMM=

1,00010110

SMM=

1,10001011

SMP=

00000100

1)

SMM=1,10001011

SMM=1,00010110

RM2=0,10010000

1,10100110

CI=0

RM1=0,00000000

CT=7

2)

SMM=1,10100110

SMM=1,01001100

RM2=0,10010000

1,11011100

CI=0

RM1=0,00000000

CT=6

3)

SMM=1,11011100

SMM=1,10111000

RM2=0,10010000

0,01001000

CI=1

RM1=0,00000001

CT=5

4)

SMM=0,01001000

SMM=0,10010000

-RM2=1,01110000

0,00000000

CI=1

RM1=0,00000011

CT=4

5)

SMM=0,00000000

SMM=0,00000000

-RM2=1,01110000

1,01110000

CI=0

RM1=0,00000110

CT=3

6)

SMM=1,01110000

SMM=0,11100000

RM2=0,10010000

1,01110000

CI=0

RM1=0,00001100

CT=2

7)

SMM=1,01110000

SMM=0,11100000

RM2=0,10010000

1,01110000

CI=0

RM1=0,00011000

CT=1

8)

SMM=1,01110000

SMM=0,11100000

RM2=0,10010000

1,01110000

CI=0

RM1=0,00110000

CT=0

T=1

RM1=0,00110000

1,00000000

1,00110000

mC=

RM1=1,00110000

pC=

SMP=00000100

Соседние файлы в папке РГР