- •Проектирование логической схемы одноразрядного двоичного сумматора
- •Проектирование логической схемы одноразрядного десятичного сумматора.
- •2.3.4. Проектирование дополнительных схем.
- •Построение функциональной схемы 3-х разрядного сумматора.
- •Устройство управления многоразрядным сумматором
- •2.4.1. Проектирование распределителя сигналов
МИНИСТЕРСТВО ОБЩЕГО И ПРОФЕССИОНАЛЬНОГО
ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
Московский государственный институт
электроники и математики
( Технический университет)
кафедра «Вычислительные системы и сети»
Проектирование многоразрядного десятичного
сумматора комбинационного типа
Курсовая работа
по дисциплине « Теория автоматов »
Выполнил студент:
Группа С-33
Москва 2005
Исходные данные.
1.1. Количество десятичных разрядов сумматора - 3
1.2. Двоично-десятичный код 8421+3
1.3. Система логических элементов: И – НЕ, И
1.4. Критерий оптимальности: минимальное число логических элементов (ЛЭ) в
проектируемых схемах.
1.5. Триггер для схем управления - двухтактный синхронный J - К-триггер
1.6. Время задержки в любом ЛЭ - 1 нсек;
импульсы синхронизации длительностью 2 нсек со скважностью 1нс.
Разработка алгоритма выполнения арифметических операций сложения и вычитания многоразрядных чисел в заданном двоично-десятичном коде
|
Десятичная цифра |
Двоично-десятичный код |
|
|
8421+3 |
||
|
0 |
0011 |
|
|
1 |
0100 |
|
|
2 |
0101 |
|
|
3 |
0110 |
|
|
4 |
0111 |
|
|
5 |
1000 |
|
|
6 |
1001 |
|
|
7 |
1010 |
|
|
8 |
1011 |
|
|
9 |
1100 |
|
Сложение одноразрядных десятичных чисел со знаком в двоично-десятичном коде
Пусть
T(A) = 8421 - тетрада, изображающая одноразрядное десятичное число А
Т(В) = 8421 - тетрада, изображающая однорядное десятичное число В
T(C) = 8421 - результат от сложения чисел А и В
При этом Пi-1 - перенос из предыдущего десятичного разряда (тетрады)
Пi - перенос в следующий десятичный разряд (тетраду)
Если при сложении Т(А) + Т(В) + Пi-1 мы не получаем единицу переноса в следующий разряд, то нужно вводить коррекцию: 1101.
Если при сложении Т(А) + Т(В) + Пi-1 мы получаем единицу переноса в следующий разряд, то нужно вводить коррекцию: 0011.
7 + 5 = 12 1010 + 1000 = 0001.0010 + 0011.0011 = 0100.0101
ТАБЛИЦА СООТВЕТСТВИЯ
|
Код 8421+3 |
0 0011 |
1 0100 |
2 0101 |
3 0110 |
4 0111 |
5 1000 |
6 1001 |
7 1010 |
8 1011 |
9 1100 |
|
0 0011 |
0110 1101 0011 |
0111 1101 0100 |
1000 1101 0101 |
1001 1101 0110 |
1010 1101 0111 |
1011 1101 1000 |
1100 1101 1001 |
1101 1101 1010 |
1110 1101 1011 |
1111 1101 1100 |
|
1 0100 |
-"- |
1000 1101 0101 |
1001 1101 0110 |
1010 1101 0111 |
1011 1101 1000 |
1100 1101 1001 |
1101 1101 1010 |
1110 1101 1011 |
1111 1101 1100 |
1.0000 0011 0100.0011 |
|
2 0101 |
-"- |
-"- |
1010 1101 0111 |
1011 1101 1000 |
1100 1101 1001 |
1101 1101 1010 |
1110 1101 1011 |
1111 1101 1100 |
1.0000 0011 0100.0011 |
1.0001 0011 0100.0100 |
|
3 0110 |
-"- |
-"- |
-"- |
1100 1101 1001 |
1101 1101 1010 |
1110 1101 1011 |
1111 1101 1100 |
1.0000 0011 0100.0011 |
1.0001 0011 0100.0100 |
1.0010 0011 0100.0101 |
|
4 0111 |
-"- |
-"- |
-"- |
-"- |
1110 1101 1011 |
1111 1101 1100 |
1.0000 0011 0100.0011 |
1.0001 0011 0100.0100 |
1.0010 0011 0100.0101 |
1.0011 0011 0100.0110 |
|
5 1000 |
-"- |
-"- |
-"- |
-"- |
-"- |
1.0000 0011 0100.0011 |
1.0001 0011 0100.0100 |
1.0010 0011 0100.0101 |
1.0011 0011 0100.0110 |
1.0100 0011 0100.0111 |
|
6 1001 |
-"- |
-"- |
-"- |
-"- |
-"- |
-"- |
1.0010 0011 0100.0101 |
1.0011 0011 0100.0110 |
1.0100 0011 0100.0111 |
1.0101 0011 0100.1000 |
|
7 1010 |
-"- |
-"- |
-"- |
-"- |
-"- |
-"- |
-"- |
1.0100 0011 0100.0111 |
1.0101 0011 0100.1000 |
1.0110 0011 0100.1001 |
|
8 1011 |
-"- |
-"- |
-"- |
-"- |
-"- |
-"- |
-"- |
-"- |
1.0110 0011 0100.1001 |
1.0111 0011 0100.1010 |
|
9 1100 |
-"- |
-"- |
-"- |
-"- |
-"- |
-"- |
-"- |
-"- |
-"- |
1.1000 0011 0100.1011 |
Поскольку нельзя оперировать, только с одноразрядными положительными числами, то надо уметь представлять многоразрядные числа с положительным и отрицательным знаком.
Если А - многоразрядное десятичное число, то со знаком плюс оно будет представлено следующим образом и любом виде кодирования
А= 0.а1 а2 а3 ... аn, где аi - десятичное одноразрядное число, записанное в виде двоичной тетрады.
Если А имеет знак минус, то для её представления можно использовать прямой, обратный и дополнительный код.
[А]пр = 1.а1 а2 а3 ... аn
[А]обр = 1.а1 а2 а3 ... аn
где аi - дополнение до 9 в десятичной системе
[А]доп = 1.а1 а2 а3 ... аn
где аi - дополнение до 9 во всех десятичных разрядах кроме младшего. В младшем разряде берется дополнение до 10.
Величина +875 в коде 8421 + 3 будет иметь вид: 0.1011.1010.1000
Та же самая величина со знаком минус будет представлена:
[-875]пр = 1.1011.1010.1000
[-875]обр = 1.0100.0101.0100
[-875]доп = 1.1101.0110.1000
Для работы с отрицательными числами в двоично-десятичной арифметике удобнее работать в обратом коде, так как все преобразователи из прямого кода в обратный будут одинаковые.
|
+ 375 0,0110,1010,1000 + 281 0,0101,1011,0100 + 656 0,1100,0101,1100 1101,0011,1101 0,1001,1000,1001 |
Сложение двух положительных чисел в прямом коде. Переполнения разрядной сетки нет |
|
+ 842 0,1011,0111,0101 – 376 1,1001,0101,0110 + 466 0,0100,1100,1100 0011,1101,1101 0,0111,1001,1001 |
Сложение положительного (прямой код) и отрицательного (обратный код) числа, ответ получается в прямом коде. Появляется единица переноса в знак. разряд, единица из знакового разряда идет в младший разряд первой тетрады. |
|
– 415 1,1000,1011,0111 – 134 1,1011,1001,1000 – 549 1,0100,0101,0000 0011,0011,0011 1,0111,1000,0011 |
Сложение двух отрицательных чисел в обратном коде, ответ в обратном коде. Появляется единица переноса в знак. разряд, единица из знакового разряда идет в младший разряд первой тетрады. |
|
+ 139 0,0100,0110,1100 – 543 1,0111,1000,1001 – 404 1,1011,1111,0101 1101,1101,0011 1,1000,1100,1000 |
Сложение положительного (прямой код) и отрицательного (обратный код) числа, ответ получается в обратном коде. (ответ будет отрицательный)
|
|
+ 875 0,1011,1010,1000 + 731 0,1010,0110,0100 +1606 1,0110,0000,1100 0011,0011,1101 1,1001,0011,1001 |
При сложение двух положительных чисел в прямом коде, ответ отрицательный, значит, мы получили переполнение разрядной сетки. |
|
– 578 1,0111,0101,0100 – 632 1,0110,1001,1010 – 1210 0,1101,1110,1111 1101,1101,1101 0,1010,1011,1100 |
При сложении двух отрицательных чисел в обратном коде, ответ положительный, значит, мы получили переполнение разрядной сетки. |
Проектирование функциональной логической схемы и её реализация в заданном базисе логических элементов
Проектирование логической схемы одноразрядного двоичного сумматора
Реализация в базисе ("и-не, и").
|
|
а - первое слагаемое, b - второе слагаемое, с - перенос из соседнего (младшего разряда), s - сумма в данном разряде, р - перенос в соседний старший разряд |
Рис. Одноразрядный двоичный сумматор
Таблица истинности для функций S и Р суммы и переноса в одноразрядном двоичном сумматоре
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||

Рис. Логическая схема одноразрядного двоичного сумматора
Суммирование одноразрядных десятичных чисел происходит в два этапа. На первой ступени суммирования получается результат, который подвергается анализу на предмет введения коррекции и на второй ступени вводится одна или другая коррекция.
Нахождение функции коррекции.
|
Пi
К8
К4
К2
К1
0
1
1
0
1
1
0
0
1
1 |
Пi = 0
Пi = 1
|

