Приём заказов:
Круглосуточно
Москва
ул. Никольская, д. 10.
Ежедневно 8:00–20:00
Звонок бесплатный

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

Диплом777
Email: info@diplom777.ru
Phone: +7 (800) 707-84-52
Url:
Логотип сайта компании Диплом777
Никольская 10
Москва, RU 109012
Содержание

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

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

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

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

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

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

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

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

2005

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

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

Числа произвольных знаков, разрядность 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. Определяем вид операции, которую будем проводить над модулями (сложение или вычитание)

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

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

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

Рис.2.2

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

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

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

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

Комбинационная схема 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

РгА: =

w4

000100

1100

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

РгВ: =

w14

001110

1100

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

ШиВых: = КС3

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

01010101

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

1100

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: =

w76

1001100

1100

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. Далее в памяти выбирается следующая микрокоманда.

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

1. Без осведомительного сигнала (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 с.

Picture of Леонид Федотов
Леонид Федотов
Окончил НИУ ВШЭ факультет компьютерных наук. Сам являюсь кандидатом наук. По специальности работаю 13 лет, за это время создал 8 научных статей и 2 диссертации. В компании подрабатываю в свободное от работы время уже более 5 лет. Нравится помогать школьникам и студентам в решении контрольных работ и написании курсовых проектов. Люблю свою профессию за то, что это направление с каждым годом становится все более востребованным и актуальным.