Разработка управляющей части автомата для сложения двух чисел с плавающей запятой в дополнительном коде с помощью модели Мура

Содержание

                                                                                                                                                                                                                                                                                                    Стр.

Задание . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3

       1й раздел. Разработка машинного алгоритма выполнения операций . . . . . . . . . . . . . . . 3

1.1. Построение алгоритма операций . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  3

1.2. Пример выполнения сложения, оценка погрешности . . . . . . . . . . . . . . . . . . . . . . . 5

       2й раздел. Разработка ГСА и функциональной схемы ОА . . . . . . . . . . . . . . . . . . . . . . . . 5

           2.1. Разработка ГСА . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5

           2.2. Построение функциональной схемы ОА . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

       3й раздел. Разработка логической схемы управляющей части автомата . . . . . . . . . . . . .8

           3.1. Составление таблицы переходов-выходов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8

           3.2. Граф автомата Мура . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  9

           3.3. Построение функций возбуждения входов триггеров и логической схемы . . . .10

       4й раздел. Оценка времени выполнения микропрограммы . . . . . . . . . . . . . . . . . . . . . . .12

       Заключение. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

Задание

Разработать управляющую часть автомата для сложения двух чисел с плавающей запятой в дополнительном коде с помощью модели Мура. Логическую схему реализовать в базисе «И-НЕ» на D-триггерах.

Раздел 1. Разработка машинного алгоритма выполнения операции.

Шаг 1. Сравнить порядки чисел A и B. Вычислить разность порядков чисел. Если Dp ³ 14, то выдать число A и закончить выполнение. Если Dp £ -14, то выдать число B и закончить выполнение. Если 0 £ Dp < 14, то сдвинуть мантиссу числа B на çDpç разрядов вправо. Если 0 > Dp > -14, то сдвинуть мантиссу числа А на çDpç разрядов вправо. Порядок ответа равен большему порядку.

Шаг 2. Сложить мантиссы по правилам ДК.

Шаг 3. Проверить условие нормализации g. Если оно не выполняется, сдвинуть сумму на один разряд вправо, к порядку результата прибавить единицу и перейти к п. 5.

Шаг 4. Циклически проверять условие нормализации d. Если оно не выполняется, сдвинуть сумму на один разряд влево, от порядка результата отнять единицу.

Шаг 5. Проверить сумматор порядков на переполнением. Если возникло переполнение, установить флаг №1. Если возникла ошибка типа «машинный ноль», установить флаг №2.

Блок-схема имеет следующий вид.

1

1

0

0

1

0

3

1

СМП(0)=0

СММ:=РгВ(0:15);

СМП:=РгВ(16:21)

СММ:=РгА(0:15);

СМП:=РгА(16:21)

[СМП]<=-14

СМП:=РгА(16:21) - РгВ(16:21)

[СМП]>=14

РгА:=А; РгB:=В; СММ:=0; F1:=0; F2:=0

Начало

2

[СМП]=0

[СМП]=0

РгА(0:15);

СМП:=[СМП]+1

РгВ(0:15);

СМП:=[СМП]-1

СМП:=РгВ(16:21)

СМП:=РгА(16:21)

СММ:=РгА(0:15)+РгВ(0:15); F1:=СМП(0)

g

[СММ];

СМП:=[СМП]+1

[СММ];

СМП:=[СМП]-1

d

F1&ùСМП(0)

ùF1&СМП(0)

F1:=0;

F2:=1

F1:=0

F1:=1

Конец

0

1

1

0

1

0

1

1

1

0

0

0

3

2

1

Рассмотрим пример выполнения операции.

При сдвиге мантиссы числа В получается погрешность, равная:

Раздел 2. Разработка ГСА и функциональной схемы ОА.

Регистры РгА и РгВ имеют 22 разряда: биты 0-1 – знак числа, биты 2-15 – мантисса, бит 16 – знак порядка, бит 17-21 – порядок. Сумматор мантисс СММ имеет следующую структуру: биты 0-1 – знак, биты 2-15 – мантисса. Сумматор порядков СМП имеет следующую структуру: бит 0 – знак, биты 1-5 – порядок. Используются два одноразрядных регистра в качестве флагов переполнения F1 и машинного нуля F2. Типы слов, используемых в микропрограмме, представлены в таблице.

Тип
Слово
Пояснение
I

A(0:21)

Первое слагаемое

I

B(0:21)

Второе слагаемое

L

PrA(0:21)

Регистр А

L

PrB(0:21)

Регистр В

LO

CMM(0:15)

Сумматор мантисс

LO

CMП(0:5)

Сумматор порядков

LO

F1(0)

Флаг переполнения

LO

F2(0)

Флаг машинного нуля

Список микроопераций и логических условий представлен в таблице.

Y1

РгА:=А

X1

ùT0&T2&T3&T4 Ú ùT0&T1 Ú

Ú ùРгА(16)&РгВ(16)&T0

Y2

РгВ:=В

X2

T0&ùT2&ùT3&(ùT4 Ú ùT5) Ú  Ú T0&ùT1 Ú РгА(16)&ùРгВ(16)&ùT0

Y3

СММ:=0

X3

T0=0

Y4

F1:=0

X4

СМП=0

Y5

F2:=0

X5

Z0&ùZ1 Ú ùZ0&Z1

Y6

СМП:=РгА(16:21)+ ù РгВ(16:21)+1

X6

Z0&Z1 Ú ùZ0&ùZ1

Y7

СММ:=РгА(0:15)

X7

ùF1&T0

Y8

СМП:=РгА(16:21)

X8

F1&ùT0

Y9

СММ:=РгВ(0:15)

Y10

СМП:=РгВ(16:21)

Y11

РгА(0:15):=R1(РгА(0).РгА(0:15))

Y12

СМП:=СМП+1

Y13

РгВ(0:15):=R1(РгВ(0).РгВ(0:15))

Y14

СМП:=СМП-1

Y15

СММ:=РгА(0:15)+РгВ(0:15)

Y16

F1:=СМП(0)

Y17

СММ:=R1(СММ(0).СММ(0:15))

Y18

СММ:=L1(СММ(0:15).0)

Y19

F1:=1

Y20

F2:=1

Ti – разряды СМП, Zi – разряды СММ. Условия X5 и X6 соответствуют условиям g и d в блок-схеме.

ГСА имеет вид:

Начало

Y1, Y2, Y3, Y4, Y5

Y6

X1

X2

1

Y7, Y8

Y9, Y10

2

1

1

0

0

b0

b1

b2

b3

b4

1

X3
X4
X4

Y11, Y12

Y13, Y14

Y10

Y8

Y15, Y16

X5

Y17, Y12

X6

2

0

1

1

0

0

1

0

1

1

0

Y18, Y14

X8
X7

Y4

Y19

Y4, Y20

Конец

0

0

1

1

b5

b6

b7

b8

b9

b10

b11

b12

b13

b14

b0

Функциональная схема ОА имеет вид:

X5, X6

Y16

Y14

Y12

Y17

Y18

Y3

Y9

Y7

Y1

Y11

Y8

Y5

Y20

Y19

Y4

Y10

Y2

Y13

X3

X4

F2

F1

СММ

15

2

0  1

СМП

5

1

0

РгВ

21

17

16

15

2

0 1

РгА

21

17

16

15

2

0 1

           

Раздел 3. Разработка логической схемы управляющей части автомата.

Каждое состояния автомата кодируется двоичным числом, равным индексу данного состояния. Например, b12 = 1100. Таблица переходов-выходов имеет вид:

Код ABCD

Исх. сост.

Входной набор

Выходной набор

След. сост.

0000

B0

--

--

B1

0001

B1

--

Y1…Y5

B2

0010

B2

X1

Y6

B3

0010

B2

ùX1&X2

Y6

B4

0010

B2

ùX1&ùX2&ùX3&ùX4

Y6

B5

0010

B2

ùX1&ùX2&ùX3&X4

Y6

B7

0010

B2

ùX1&ùX2&X3&ùX4

Y6

B6

0010

B2

ùX1&ùX2&X3&X4

Y6

B8

0011

B3

--

Y7 Y8

B0

0100

B4

--

Y9 Y10

B0

0101

B5

ùX4

Y11 Y12

B5

0101

B5

X4

Y11 Y12

B7

0110

B6

ùX4

Y13 Y14

B6

0110

B6

X4

Y13 Y14

B8

0111

B7

--

Y10

B9

1000

B8

--

Y8

B9

1001

B9

X5

Y15 Y16

B10

1001

B9

ùX5&X6

Y15 Y16

B11

1001

B9

ùX5&ùX6&X8

Y15 Y16

B14

1001

B9

ùX5&ùX6&ùX8

Y15 Y16

B13

1010

B10

X7

Y17 Y12

B12

1010

B10

ùX7

Y17 Y12

B13

1011

B11

X6

Y18 Y14

B11

1011

B11

ùX6&ùX8

Y18 Y14

B13

1011

B11

ùX6&X8

Y18 Y14

B14

1100

B12

--

Y19

B0

1101

B13

--

Y4

B0

1110

B14

--

Y4 Y20

B0

Граф автомата Мура имеет вид:

Из таблицы переходов-выходов можно вывести выражения для выходных сигналов:

Из графа автомата Мура выводятся выражения для сигналов возбуждения триггеров:

Заменим комбинации ABCD на Bi (например, B12 = A&B&ùC&ùD) и будем минимизировать выражения в скобках.

Теперь осуществим переход в базис «И-НЕ».

Раздел 4. Оценка времени выполнения микропрограммы.

Временной граф имеет следующий вид.

Начало

1

2

3

5

7

11

8

9

12

10

13

14

15

4

6

104/256

152/256

108/256

148/256

1/2

1/2

1/5

4/5

1/5

4/5

1/2

1/2

16

17

18

22

21

20

19

23

Конец

1/4

3/4

3/4

2/3

1/3

1/4

="workInfo">

  • Диплом
-->