Блок выполнения операций десятичной арифметики

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информатика, ВТ, телекоммуникации
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    611,55 Кб
  • Опубликовано:
    2013-05-26
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Блок выполнения операций десятичной арифметики

Федеральное агентство по образованию РФ

ГОУ ВПО "Уральский государственный технический университет - УПИ"

Физико-технический факультет

Кафедра вычислительной техники

Специальность

"Вычислительные машины, комплексы, системы и сети"





Курсовой проект

БЛОК ВЫПОЛНЕНИЯ ОПЕРАЦИЙ ДЕСЯТИЧНОЙ АРИФМЕТИКИ















Задание на проектирование

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

Числа произвольных знаков, разрядность 32, прямой код. Тип УА: с адресным ПЗУ.

Арифметические операции над десятичными числами выполняются подобно операций над двоичными числами. Основой АЛУ десятичной арифметики является сумматор двоично-десятичных кодов. Такой сумматор, как правило, строится на основе двоичного, путем добавления некоторых специальных цепей.

Содержание

 

Введение

1. Разработка структурной схемы

2. Блок суммы и разности

3. Блок умножений

4. Блок делений

5. Управляющий блок

Обзор литературы

Введение

Каноническая структура синтеза синхронного вычислительного устройства состоит из двух автоматов - операционного (ОА) и управляющего (УА).

Каноническая структура вычислительного устройства

Рис.1

На вход ОА подаются входные (исходные) данные, а на выходе ОА формируются выходные данные (результат). На вход УА подается управляющая информация (например, код операции (КОП), сигнал разрешения чтения и т.д.), а на выходе УА формируется выходная управляющая информация (например, сигнал готовности, сигнал ошибки и т.д.). ОА и УА взаимосвязаны: от ОА к УА передаются сигналы признаков (условия) и в зависимости от этих условий от УА к ОА возвращается соответствующая микрокоманда. Синхронизация служит для управления работой всех синхронных узлов и деталей устройства.

блок вычислительное устройство схема

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

1. Разработка структурной схемы


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

Рис.1.1

2. Блок суммы и разности


Упрощенная структура АЛУ для сложения (вычитания) десятичных чисел

Рис.2.1

Реализация сложения модулей сводится к следующим действиям:

Прием операнда Х на регистр первого слагаемого РгВ и прием цифр 6 во все тетрады второго слагаемого РгА.

Получение с помощью двоичного сумматора Х6. Пересылка Х6 на регистр первого слагаемого РгВ и прием Y на регистр второго слагаемого РгА.

Получение с помощью двоичного сумматора Z' = Х6 + Y и фиксация тетрад Z', из которых не возник перенос.

Пересылка Z' на регистр первого слагаемого РгВ. Занесение цифр 10 во все тетрады регистра второго слагаемого РгА, соответствующие тетрадам Z', из которых не было переноса, и 0 в остальные тетрады.

Сложение на двоичном сумматоре содержимого РгА и РгВ с блокировкой межтетрадных переносов.

Вычитание двоично-десятичных модулей X - Y осуществляется следующим образом:

Все разряды Y инвертируются, что дает дополнение каждой цифры Y до 15. При этом получается обратный код двоично-десятичного Y с избытком 6, обозначенный Yo6p6. Затем, складывая X + Yo6p6 и прибавляя 1 к младшему разряду, получаем Z'. Результат Z' является положительным числом, если из старшей тетрады его возникает перенос. При этом Z' корректируется по тем же правилам, что и при сложении модулей.

Если из старшей тетрады Z' нет переноса, то получен отрицательный результат, представленный в дополнительном коде. В этом случае код Z' инвертируется и к нему прибавляется 1 младшего разряда. Новое Z' корректируется. При этом к тетрадам, из которых возникал перенос при получении (X + Yo (lp6 + 1), прибавляется 10, а к остальным не прибавляется. Выполнение сложения и вычитания чисел со знаками сводится к выполнению сложения или вычитания модулей путем определения фактической выполняемой операции по знакам операндов и виду выполняемой операции. Знак результата определяется отдельно. Например, при X < 0 и Y < 0 вычитание X - Y заменяется на вычитание | Y | - | X |. Затем знак результата меняется на противоположный знаку (| У | - | X |).

При сложении (вычитании) двух чисел (Z= X±Y) возможны следующие ситуации:

табл.2.1

Таблица возможных ситуаций при сложении и вычитании

X

Операция

Y

Z

+X

"+"

+Y

X+Y

+X

"+"

-Y

X-Y

-X

"+"

+Y

Y-X

-X

"+"

-Y

- (X+Y)

+X

"-"

+Y

X-Y

+X

"-"

-Y

X+Y

-X

"-"

+Y

- (X+Y)

-X

"-"

-Y

Y-X


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

1.      При необходимости меняем местами операнды (например, - X - (-Y) = (|Y|-|X|)

2.      Определяем вид операции, которую будем проводить над модулями (сложение или вычитание)

.        Проводим операцию сложения (вычитания)

.        При необходимости меняем знак результата

 

Функциональная схема сложения (вычитания)

Рис.2.2

Комбинационная схема 1 (КС1) в зависимости от знаков операндов, вида выполняемой операции производит следующие действия:

1.      Меняет местами операнды.

2.      Выдает сигнал о необходимости изменить знак результата.

.        Вырабатывает сигнал в УБ, какая будет производиться операция над модулями (сложение или вычитание).

Комбинационная схема 1 (КС1)

Рис.2.3

Комбинационная схема 1.1 фиксирует оба слагаемых, выделяет модули и знаки

Комбинационная схема 1.1 (КС1.1)

Рис.2.4

Комбинационная схема 1.2 обрабатывает знаки, вид операции и вырабатывает сигнал о необходимости менять местами операнды.

Комбинационная схема 1.2 (КС1.2)

Рис.2.5

Комбинационная схема 1.3 меняет местами операнды

Комбинационная схема 1.3 (КС1.3)

Рис.2.6

Комбинационная схема 1.3.1 меняет местами разряды операндов

Комбинационная схема 1.3.1 (КС1.3.1)

Рис.2.7

Комбинационная схема 1.4 вырабатывает сигнал в УБ о том, какая будет проводиться операция над модулями чисел (сложение или вычитание)

Комбинационная схема 1.4 (КС1.4)

Рис.2.8

Комбинационная схема 1.5 выдает сигнал о необходимости изменить знак результата

Комбинационная схема 1.5 (КС1.5)

Рис.2.9

Комбинационные схемы 2 и 3 производят обработку переносов из тетрад. Число, полученное путем агрегации переносов из тетрад, преобразуется в двоично-десятичное число. В комбинационной схеме 2 переносы из тетрад, где был перенос, преобразуются в двоичное число 10, а там, где переноса не было, преобразуется в число 0000. В комбинационной схеме 3 переносы из тетрад, где переноса не было, преобразуются в двоичное число 10, а там, где был перенос, преобразуется в число 0000.

Комбинационная схема 2 (КС2)

Рис.2.10

Комбинационная схема 3 (КС3)

Рис.2.11

Комбинационная схема 4 обрабатывает результат.

Комбинационная схема 4 (КС4)

Рис.2.12

Электронный ключ

Рис.2.13

Сумматор

Рис.2.14

Алгоритм сложения (вычитания)

Рис.2.15

табл.2.1

Таблица микрокоманд сложения (вычитания)

Адрес мк. команды (МК)

Адрес след. МК

Сигн. оповещ.

Микрокоманда

Код МК

Адрес оповещ. сигнала

1

00000001

00000010


КС1 (А): =ШиВх

w1

000001

1100

2

00000010

00000100

f0

КС1 (В): =ШиВх

w2

000010

1011

3

00000011

00000101

 

ТГВыпОп: = 0

w19

010011

1100

4

00000100

00000101


ТГВыпОп: = 1

w16

010000

1100

5

00000101

00001101

v0

пусто

w57

111001

0000




А+В





6

00000110

00000111


РгВ: = КС1 (В)

w5

000101

1100

7

00000111

00001000


РгА: = 6…6

w7

000111

1100

8

00001000

00001001


РгСм: =См

w11

001011

1100

9

00001001

00001010


РгВ: = РгСм

w9

001001

1100

10

00001010

00001011


РгА: = КС1 (А)

w3

000011

1100

11

00001011

00001100


РгСм: =См

w11

001011

1100

12

00001100

00010100


РгП: =Прн

w10

001010

0001




А-В





13

00001101

00001110


РгА: = w40001001100




14

00001110

00001111


РгВ: = КС1 (В)

w5

000101

1100

15

00001111

00010000


РгСм: =См

w11

001011

1100

16

00010000

00010001


РгА: =1

w8

001000

1100

17

00010001

00010010


РгВ: =РгСм

w9

001001

1100

18

00010010

00010011


РгСм: =См

w11

001011

1100

19

00010011

00010111

v1

РгП: =Прн

w10

001010

0001









20

00010100

00010101


РгВ: =РгСм

w9

001001

1100

21

00010101

00010110


РгА: =КС2

w6

000110

1100

22

00010110

00011100


Ргблпер: =1

w12

001100

1100









23

00010111

00011000


РгВ: = w140011101100




24

00011000

00011001


РгА: = 1

w8

001000

1100

25

00011001

00011010


РгСм: =См

w11

001011

1100

26

00011010

00011011


РгВ: = РгСм

w9

001001

1100

27

00011011

00011100


РгА: = КС3

w17

010001

1100









28

00011100

00011101


РгСм: =См

w11

001011

1100

29

00011101

00011110


Ргблпер: =0

w18

010010

1100

30

00011110

10110100

w13

001101

1100


3. Блок умножений


Двоично-десятичное умножение сводится к образованию и многократному сложению двоично-десятичных произведений. Умножение двоично-десятичных чисел выполняется следующим образом. Сумма частичных произведений полагается равной нулю. Анализируется очередная цифра (тетрада) множителя, и множимое прибавляется к сумме частичных произведений столько раз, какова цифра множителя. Сумма частичных произведений сдвигается вправо на 1 тетраду, и повторяются действия, указанные в п.2, пока все цифры множителя не будут обработаны. Для ускорения умножения часто отдельно формируются кратные множимого 8Х, 4Х, 2Х, при наличии которых уменьшается количество сложения при выполнении п.2.

Знак обрабатывается отдельно.

Функциональная схема умножения

Рис 3.1

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

Комбинационная схема 5 (КС5)

Рис.3.2

Алгоритм выполнения операции умножения

Рис.3.3

Рис.3.6 Алгоритм сложения модулей (РгХ4+РгХ4)

табл.3.1

Таблица микрокоманд умножения

Адрес МК

Адрес след. МК

Сигнал оповещ.

Микрокоманда

Код МК

Адрес оповещ. сигнала

40

00101000

00101001


Рг Y: = ШиВх

w30

011110

1100

41

00101001

00101010


РгХ: =ШиВх

w31

011111

1100

42

00101010

00101011


ТгЗнY: =РгY [0]

w32

100000

1100




Х+Х





43

00101011

00101100


ТгБл. прн: =0

w58

111010

1100

44

00101100

00101101


РгВ: = РгХ

w35

100011

1100

45

00101101

00101110


РгА: = 6…6

w48

110000

1100

46

00101110

00101111


РгСм: = См

w50

110010

1100

47

00101111

00110000


РгВ: = РгСм

w39

100111

1100

48

00110000

00110001


РгА: = РгХ

w40

101000

1100

49

00110001

00110010


РгСм: = См

w50

110010

1100

50

00110010

00110011


Рг П: = Прн

w52

110100

1100

51

00110011

00110100


РгВ: = РгСм

w39

100111

1100

52

00110100

00110101


РгА: = КС2

w47

101111

1100

53

00110101

00111000

v4

ТгБл. прн: =1

w49

110001

0100

54

00110110

00110111


РгСм: = См

w50

110010

1100

55

00110111

00111001


РгХ2: =Рг См

w44

101100

1100

56

00111000

00111001


РгХ2: =9…9

w59

111011

1100




2Х+2Х





57

00111001

00111010


ТгБл. прн: =0

w58

111010

1100

58

00111010

00111011


РгВ: = РгХ2

w36

100100

1100

59

00111011

00111100


РгА: = 6…6

w48

110000

1100

60

00111100

00111101


РгСм: = См

w50

110010

1100

61

00111101

00111110


РгВ: = РгСм

w39

100111

1100

62

00111110

00111111


РгА: = РгХ2

w41

101001

1100

63

00111111

01000000


РгСм: = См

w50

110010

1100

64

01000000

01000001


Рг П: = Прн

w52

110100

1100

65

01000001

01000010


РгВ: = РгСм

w39

100111

1100

66

01000010

01000011


РгА: = КС2

w47

101111

1100

67

01000011

01000110

v4

ТгБл. прн: =1

w49

110001

0100

68

01000100

01000101


РгСм: = См

w50

110010

1100

69

01000101

01000111


РгХ4: =Рг См

w45

101101

1100

70

01000110

01000111


РгХ4: =9…9

w60

111100

1100




4Х+4Х





71

01000111

01001000


ТгБл. прн: =0

w58

111010

1100

72

01001000

01001001


РгВ: = РгХ4

w37

100101

1100

73

01001001

01001010


РгА: = 6…6

w48

110000

1100

74

01001010

01001011


РгСм: = См

w50

110010

1100

75

01001011

01001100


РгВ: = РгСм

w39

100111

1100

76

01001100

01001101


РгА: = РгХ4

w42

101010

1100

77

01001101

01001110


РгСм: = См

w50

110010

1100

78

01001110

01001111


Рг П: = Прн

w52

110100

1100

79

01001111

01010000


РгВ: = РгСм

w39

100111

1100

80

01010000

01010001


РгА: = КС2

w47

101111

1100

81

01010001

01010100

v4

ТгБл. прн: =1

w49

110001

0100

82

01010010

01010011


РгСм: = См

w50

110010

1100

83

01010011

01010101

 

РгХ8: =Рг См

w46

101110

1100

84

01010100

01010101

 

РгХ8: =9…9

w61

111101

1100









85

01010110


Сч1: =8

w54

110110

1100

86

01010110

01010111


РгСм: =0

w56

111000

1100

87

01010111

01100100 (100)

V3

Пустая

w57

111001

0011




РгХ+РгСм





88

01011000

01011001


ТгБл. прн: =0

w58

111010

1100

89

01011001

01011010


РгВ: = РгСм

w39

100111

1100

90

01011010

01011011


РгА: = 6…6

w48

110000

1100

91

01011011

01011100


РгСм: = См

w50

110010

1100

92

01011100

01011101


РгВ: = РгСм

w39

100111

1100

93

01011101

01011110


РгА: = РгХ

w40

101000

1100

94

01011110

01011111


РгСм: = См

w50

110010

1100

95

01011111

01100000


Рг П: = Прн

w52

110100

1100

96

01100000

01100001


РгВ: = РгСм

w39

100111

1100

97

01100001

01100010


РгА: = КС2

w47

101111

1100

98

01100010

10110100

v4

ТгБл. прн: =1

w49

110001

0100

99

01100011

01100100


РгСм: = См

w50

110010

0011




РгХ2+РгСм





100

01100100

01110000 (112)

v3

ТгБл. прн: =0

w58

111010

1100

101

01100101

01100110


РгВ: = РгСм

w39

100111

1100

102

01100110

01100111


РгА: = 6…6

w48

110000

1100

103

01100111

01101000


РгСм: = См

w50

110010

1100

104

01101000

01101001


РгВ: = РгСм

w39

100111

1100

105

01101001

01101010


РгА: = РгХ2

w41

101001

1100

106

01101010

01101011


РгСм: = См

w50

110010

1100

107

01101011

10110100


Рг П: = Прн

w52

110100

1100

108

01101100

01101101


РгВ: = РгСм

w39

100111

1100

109

01101101

01101110


РгА: = КС2

w47

101111

1100

110

01101110

10110100

v4

ТгБл. прн: =1

w49

110001

0100

111

01101111

01110000


РгСм: = См

w50

110010

0011

112

01110000

01111100 (124)

v3

ТгБл. прн: =0

w58

111010

1100

113

01110001

01110010


РгВ: = РгСм

w39

100111

1100

114

01110010

01110011


РгА: = 6…6

w48

110000

1100

115

01110011

01110100


РгСм: = См

w50

110010

1100

116

01110100

01110101


РгВ: = РгСм

w39

100111

1100

117

01110101

01110110


РгА: = РгХ4

w42

101010

1100

118

01110110

01110111


РгСм: = См

w50

110010

1100

119

01110111

01111000


Рг П: = Прн

w52

110100

1100

120

01111000

01111001


РгВ: = РгСм

w39

100111

1100

121

01111001

01111010


РгА: = КС2

w47

101111

1100

122

01111010

10110100

v4

ТгБл. прн: =1

w49

110001

0100

123

01111011

01111100


РгСм: = См

w50

110010

0011




РгХ8+РгСм





124

01111100

10001000 (136)

v3

ТгБл. прн: =0

w58

111010

1100

125

01111101

01111110


РгВ: = РгСм

w39

100111

1100

126

01111110

01111111


РгА: = 6…6

w48

110000

1100

127

01111111

10000000


РгСм: = См

w50

110010

1100

128

10000000

10000001


РгВ: = РгСм

w39

100111

1100

129

10000001

10000010


РгА: = РгХ8

w43

101011

1100

130

10000010

10000011


РгСм: = См

w50

110010

1100

131

10000011

10110100


Рг П: = Прн

w52

110100

1100

132

10000100

10000101


РгВ: = РгСм

w39

100111

1100

133

10000101

10000110


РгА: = КС2

w47

101111

134

10000110

10110100

v4

ТгБл. прн: =1

w49

110001

0100

135

10000111

10001000


РгСм: = См

w50

110010

1100









136

10001000

10001001


РгY: = Л (1) РгY

w34

100010

1100

137

10001001

10001010


РгY [0.3]: = РгСм [28.31]

w33

100001

1100

138

10001010

10001011


РгСм: =П (4) РгСм

w51

110011

1100

139

10001011

01010111 (87)

v5

Сч1: = Сч1-1

w53

110101

0101









140

10001100

10110100


ШиВых: = КС5

w55

110111

1100

4. Блок делений


Двоично-десятичное деление выполняется путем многократных вычитаний подобно тому, как это делается при делении "уголком".

Знак обрабатывается отдельно.

Функциональная схема деления

Рис.4.1

Комбинационная схема 6 сравнивает разряды мантисс, составленных из тетрад делимого (Х) и делителя (Y). Вырабатывает сигналы: v6 - Y=0,v7 - разрядность Y> разрядности X, v8 - разрядность Y= разрядности X.

Комбинационная схема 6 (КС6)

Рис.4.2

Комбинационная схема 6.1 вычисляет разрядность мантиссы числа.

Комбинационная схема 6.1 (КС6.1)

Рис.4.3

Комбинационная схема 6.1.1 вычисляет разрядность мантиссы числа по тетрадам.

Комбинационная схема 6.1.1 (КС6.1.1)

Рис.4.4

Алгоритм выполнения операции деления

Рис.4.5

табл.4.1

Таблица микрокоманд деления

Адрес МК

Адрес след. МК

сигнал оповещ.

Микрокоманда

Код МК

Адрес оповещ. сигнала

149

10010101

10010110


РгX: =ШиВх

w70

1000110

1100

150

10010110

10010111


РгY: =ШиВх

w75

1001011

1100

151

10010111

10110100

v6

пусто

w57

0111001

0110

152

10011000

10110100

v7

пусто

w57

0111001

0111

153

10011001

10011010


Тг2: = РгХ [0]

w87

1010111

1100

154

10011010

10011011


Тг3: = РгY [0]

w88

1011000

1100

155

10011011

10011110

v8

пусто

w57

0111001

1000

156

10011100

10011101


РгY: =Л (4) РгY

w73

1001001

1100

157

10011101

10011011


Сч1: =Сч1+1

w83

1010011

1100

158

10011110

10011111


Сч2: =0

w86

1010110

1100

159

10011111

10100000


ТгБл. прн: =0

w89

1011001

1100

160

10100000

10100001


РгX1: =РгX

w72

1001000

1100

161

10100001

10100010


РгY1: = w7610011001100




162

10100010

10100011


РгСм: =См

w81

1010001

1100

163

10100011

10100100


РгY1: = 1

w92

1011100

1100

164

10100100

10100101


РгX1: = РгСм

w71

1000111

1100

165

10100101

10100110


РгСм: =См

w81

1010001

1100

166

10100110

10101101

v9

РгП: = Прн

w78

1001110

1001

167

10100111

10101000


РгX1: = РгСм

w71

1000111

1100

168

10101000

10101001


РгY1: = КС2

w77

1001101

1100

169

10101001

10101010


ТгБл. прн: =1

w90

1011010

1100

170

10101010

10101011


РгСм: =См

w81

1010001

1100

171

10101011

10101100


РгХ: =РгСм

w82

1010010

1100

172

10101100

10011111


Сч2: = Сч2+1

w85

1010101

1100

173

10101101

10101110


РгРез: =Л (4) Ргрез

w79

1001111

1100

174

10101110

10110001

v10

РгРез [28.31]: =Сч2

w80

1010000

1010

175

10101111

10110000


Сч1: =Сч1-1

w84

1010100

1100

176

10110000

10011110


РгY: =П (4) РгY

w74

1001010

1100

177

10110001

10110100


ШиВых: =КС 5

w91

1011011

1100

5. Управляющий блок


Управляющий блок построен на основе автомата с хранимой в памяти логикой.

Принцип действия автомата:

Под воздействием синхросигнала в регистр Рг1 из памяти считывается очередная микрокоманда. Операционная часть микрокоманды поступает в операционный блок. Адресная часть микрокоманды поступает в комбинационную схему 1 (КС1), в которой формируется адрес следующей микрокоманды. Этот адрес формируется исходя из: кода операции, осведомительного сигнала из управляющего блока, адресной части микрокоманды, предыдущего адреса микрокоманды. Сформированный адрес поступает в Рг2. Далее в памяти выбирается следующая микрокоманда.

Ветвления обрабатываются следующим образом:

.        Без осведомительного сигнала (v=0) адрес следующей микрокоманды равен адресной части выбранной в памяти микрокоманды.

2.      С осведомительным сигналом (v=1) адрес следующей микрокоманды получается путем прибавление единицы к адресу текущей микрокоманды.

Логическая схема управляющего блока:

Рис.5.1

Функциональная схема управляющего блока

Рис.5.2

Комбинационная схема 7 (КС7)

Комбинационная схема вырабатывает адрес следующей микрокоманды исходя из: кода операции, осведомительного сигнала из управляющего блока, адресной части микрокоманды, предыдущего адреса микрокоманды, сигнала "пуск". Если сформированный адрес является конечным, вырабатывается сигнал "стоп" для остановки процесса.

Рис.5.3

Комбинационная схема 7.1 (КС7.1)

Комбинационная схема анализирует код операции и выдает адрес начала обработки операции.

Рис.5.4

Обзор литературы


1.       Каган Б.М. Электронные вычислительные машины и системы. Учеб. пособие для вузов. М.: Энергия, 1979г.528 с.

2.      Угрюмов Е.П. Цифровая схемотехника СПб.: БХВ-Петербург, 2004г.528 с.

Похожие работы на - Блок выполнения операций десятичной арифметики

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!