Автор работы: Пользователь скрыл имя, 20 Сентября 2013 в 18:55, курсовая работа
Суммирование одноразрядных десятичных чисел происходит в два этапа. На первой ступени суммирования получается результат, который подвергается анализу на предмет введения коррекции, на второй ступени при необходимости вводится коррекция.
1. Исходные данные для проектирования 3
2. Разработка алгоритма выполнения арифметических операций сложения
и вычитания многоразрядных чисел в заданном двоично-десятичном коде 3
2.1. Разработка алгоритма для одноразрядных чисел,
получение величины коррекции и критерии ее ввода 3
2.2. Обобщение полученного алгоритма на многоразрядные числа
при выполнении операций сложения и вычитания 5
2.3. Примеры на случаи сложения 6
3. Разработка функциональной схемы одноразрядного десятичного сумматора комбинационного типа 8
3.1. Разработка оптимальной схемы одноразрядного двоичного сумматора 8
3.2. Разработка схемы коррекции 10
4. Разработка дополнительных схем для функционирования многоразрядного десятичного сумматора 16
4.1. Разработка преобразователя прямого кода в обратный код 16
4.2. Разработка схемы, фиксирующей переполнение разрядной сетки 19
4.3. Разработка схемы для определения знака суммы 20
5. Разработка схемы многоразрядного десятичного сумматора 20
6. Разработка устройства управления для многоразрядного десятичного сумматора 21
6.1. Разработка входных и выходных регистров хранения числовой информации 21
6.2. Разработка регистра признаков результата 22
6.3. Расчет временных параметров устройства управления 24
6.4. Разработка схемы для получения управляющих сигналов
и схемы пуска выполнения операции сложения 25
7. Общая структура многоразрядного десятичного сумматора комбинационного типа
с устройством управления 29
8. Вывод по работе 30
Правительство Российской федерации
Московский государственный
Национальный исследовательский университет
Высшая школа экономики
Кафедра «Вычислительные системы и сети»
Курсовая работа
По дисциплине «Теория автоматов»
На тему: «Проектирование многоразрядного десятичного сумматора комбинационного типа»
Вариант 12
Исполнитель: Руководитель:
студент группы СВ-51 ст. преподаватель кафедры ВСиС
Кандальцев О.И. Бирюков И.И.
Москва 2013
Содержание
1. Исходные данные для проектирования 3
2. Разработка алгоритма
выполнения арифметических операций сложения
и вычитания многоразрядных чисел в заданном
двоично-десятичном коде 3
2.1. Разработка алгоритма
для одноразрядных чисел,
получение величины коррекции и критерии
ее ввода 3
2.2. Обобщение полученного
алгоритма на многоразрядные числа
при выполнении операций сложения и вычитания 5
2.3. Примеры на случаи сложения 6
3. Разработка функциональной схемы одноразрядного десятичного сумматора комбинационного типа 8
3.1. Разработка оптимальной схемы одноразрядного двоичного сумматора 8
3.2. Разработка схемы коррекции 10
4. Разработка дополнительных схем для функционирования многоразрядного десятичного сумматора 16
4.1. Разработка преобразователя прямого кода в обратный код 16
4.2. Разработка схемы, фиксирующей переполнение разрядной сетки 19
4.3. Разработка схемы для определения знака суммы 20
5. Разработка схемы многоразрядного десятичного сумматора 20
6. Разработка устройства управления для многоразрядного десятичного сумматора 21
6.1. Разработка входных и выходных регистров хранения числовой информации 21
6.2. Разработка регистра признаков результата 22
6.3. Расчет временных параметров устройства управления 24
6.4. Разработка схемы для
получения управляющих сигналов
и схемы пуска выполнения операции сложения 25
7. Общая структура многоразрядного
десятичного сумматора комбинационного
типа
с устройством управления 29
8. Вывод по работе 30
Таблица 1 – Кодирование цифр десятичного кода в формате 2421.
Цифра |
Кодирование 2421 |
0 |
0000 |
1 |
0001 |
2 |
0010 |
3 |
0011 |
4 |
0100 |
5 |
1011 |
6 |
1100 |
7 |
1101 |
8 |
1110 |
9 |
1111 |
Для получения алгоритма сложения двух чисел в коде 2421 построим симметричную относительно главной диагонали таблицу соответствия результатов сложения десятичных и двоично-десятичных кодов.
Каждая клетка таблицы содержит:
Таблица 2 - Соответствие результатов сложения десятичных и двоично-десятичных кодов.
Код 2421 |
0 0000 |
1 0001 |
2 0010 |
3 0011 |
4 0100 |
5 1011 |
6 1100 |
7 1101 |
8 1110 |
9 1111 |
0 0000 |
0000 0000 |
0001 0001 |
0010 0010 |
0011 0011 |
0100 0100 |
1011 1011 |
1100 1100 |
1101 1101 |
1110 1110 |
1111 1111 |
1 0001 |
0001 0001 |
0010 0010 |
0011 0011 |
0100 0100 |
0110 0101 1011 |
1100 1100 |
1101 1101 |
1110 1110 |
1111 1111 |
1 0000 1 0000 |
2 0010 |
0010 0010 |
0011 0011 |
0100 0100 |
0110 0101 1011 |
0110 0110 1100 |
1101 1101 |
1110 1110 |
1111 1111 |
1.0000 1.0000 |
1.0001 1.0001 |
3 0011 |
0011 0011 |
0100 0100 |
0110 0101 1011 |
0110 0110 1100 |
0110 0111 1101 |
1110 1110 |
1111 1111 |
1.0000 1.0000 |
1.0001 1.0001 |
1.0010 1.0010 |
4 0100 |
0100 0100 |
0110 0101 1011 |
0110 0110 1100 |
0110 0111 1101 |
1110 1110 |
1111 1111 |
1.0000 1.0000 |
1.0001 1.0001 |
1.0010 1.0010 |
1.0011 1.0011 |
5 1011 |
1011 1011 |
1100 1100 |
1101 1101 |
1110 1110 |
1111 1111 |
1010 0110 1.0000 |
1010 0111 1.0001 |
1010 1000 1.0010 |
1010 1001 1.0011 |
1010 1010 1.0100 |
6 1100 |
1100 1100 |
1101 1101 |
1110 1110 |
1111 1111 |
1.0000 1.0000 |
1010 0111 1.0001 |
1010 1000 1.0010 |
1010 1001 1.0011 |
1010 1010 1.0100 |
1.1011 1.1011 |
7 1101 |
1101 1101 |
1110 1110 |
1111 1111 |
1.0000 1.0000 |
1.0001 1.0001 |
1010 1000 1.0010 |
1010 1001 1.0011 |
1010 1010 1.0100 |
1.1011 1.1011 |
1.1100 1.1100 |
8 1110 |
1110 1110 |
1111 1111 |
1.0000 1.0000 |
1.0001 1.0001 |
1.0010 1.0010 |
1010 1001 1.0011 |
1010 1010 1.0100 |
1.1011 1.1011 |
1.1100 1.1100 |
1.1101 1.1101 |
9 1111 |
1111 1111 |
1.0000 1.0000 |
1.0001 1.0001 |
1.0010 1.0010 |
1.0011 1.0011 |
1010 1010 1.0100 |
1.1011 1.1011 |
1.1100 1.1100 |
1.1101 1.1101 |
1.1110 1.1110 |
На основании таблицы 2 были получены две корректирующие величины: 0110 и 1010.
Если результат сложения двух одноразрядных десятичных чисел с учетом переноса из предыдущего разряда меньше десяти, то коррекция 0110 вводится только при получении одной из запрещенных комбинаций:
Если результат сложения двух одноразрядных десятичных чисел с учетом переноса из предыдущего разряда больше десяти, то коррекция 1010 вводится только при получении одной из запрещенных комбинаций (при этом перенос из предыдущего разряда не учитывается):
Пусть A - многоразрядное десятичное число со знаком плюс. В прямом, обратном и дополнительном видах кодирования оно будет представлено следующим образом:
A = a0 a1 a2 a3 ... an
где ai — десятичное одноразрядное число, записанное в виде двоичной тетрады, а a0 –
знак числа.
Если A имеет знак плюс, то для его представления в прямом, обратном или дополнительном коде число A будет иметь вид:
A = 0. a1 a2 a3 ... an
Если же A имеет знак минус, то для его представления в прямом, обратном или дополнительном коде число A будет иметь вид:
[A]пр. = 1. a1 a2 a3 ... an
[A]обр. = 1. a1 a2 a3 ... an
где ai — дополнение до "9" в десятичной системе;
[A]доп. = 1. a1 a2 a3 ... an-1 an
где ai — дополнение до "9" во всех десятичных разрядах, кроме младшего. В младшем разряде берётся дополнение до "10" (an).
Величина +875 в коде 2421 будет иметь вид:
0.1110.1101.1011
Та же самая величина со знаком минус будет представлена:
[-875]пр. = 1.1110.1101.1011
[-875]обр. = 1.0001.0010.0100
[-875]доп. = 1.0001.0010.0101
Для работы с отрицательными числами в двоично-десятичной арифметике удобнее работать в обратном коде, так как все преобразователи из прямого кода в обратный код будут одинаковые.
+ |
249 |
+ |
0.0010.0100.1111 | |
358 |
0.0011.1011.1110 | |||
607 |
0.0110.0000.1101 |
Получена запрещенная комбинация в коде — требуется 1 коррекция:
+ |
0.0110.0000.1101 |
0110.0000.0000 | |
0.1100.0000.1101 |
Получен требуемый результат. Результат сохраняется.
+ |
479 |
+ |
0.0100.1101.1111 |
|||
-258 |
1.1101.0100.0001 | |||||
221 |
+ |
10.0010.0010.0000 |
Коррекция | |||
0000.0000.0000 | ||||||
10.0010.0010.0000 |
При сложении чисел в обратном коде "1" переноса из знакового разряда добавляется к младшему разряду результата:
+ |
1 |
0.0010.0010.0000 | |
1 | |||
0.0010.0010.0001 |
Получен требуемый результат. Результат сохраняется.
+ |
378 |
+ |
0.0011.1101.1110 |
|||
-859 |
1.0001.0100.0000 | |||||
-481 |
+ |
1.0101.0001.1110 |
Коррекция | |||
0110 | ||||||
1.1011.0001.1110 |
Получен требуемый результат в обратном коде. В прямом коде этот результат будет иметь вид: 1.0100.1110.0001. Результат сохраняется.
+ |
-452 |
+ |
1.1011.0100.1101 |
|||
-377 |
1.1100.0010.0010 | |||||
-829 |
+ |
1. 0111.0110.1111 |
Коррекция | |||
1010.0110.0001 | ||||||
1.0001.1101.0000 |
Получен требуемый результат. Результат сохраняется.
В примере учитывается, что при сложение коррекционной величины 1010 с числом получившийся перенос не учитывается.
+ |
759 |
+ |
0.1101.1011.1111 |
|||
878 |
0.1110.1101.1110 | |||||
(1)637 |
+ |
1.1100.1001.1101 |
Коррекция | |||
1010.0000 | ||||||
1.1100.0011.1101 |
Признаком переполнения является отрицательный результат от сложения двух положительных величин.
+ |
-547 |
+ |
1.0100.1011.0010 |
|||
-759 |
1.0010.0100.0000 | |||||
-(1)303 |
+ |
0.0110.1111.0010 |
Коррекция | |||
0110.0000.0001 | ||||||
0.1100.1111.0011 |
Информация о работе Проектирование многоразрядного десятичного сумматора комбинационного типа