Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсачи / 8421+3 и-не и.doc
Скачиваний:
92
Добавлен:
30.04.2013
Размер:
1.7 Mб
Скачать

МИНИСТЕРСТВО ОБЩЕГО И ПРОФЕССИОНАЛЬНОГО

ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ

Московский государственный институт

электроники и математики

( Технический университет)

кафедра «Вычислительные системы и сети»

Проектирование многоразрядного десятичного

сумматора комбинационного типа

Курсовая работа

по дисциплине « Теория автоматов »

Выполнил студент:

Группа С-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 и Р суммы и переноса в одноразрядном двоичном сумматоре

a

b

c

S

P

0

0

0

0

0

0

0

1

1

0

0

1

0

1

0

0

1

1

0

1

1

0

0

1

0

1

0

1

0

1

1

1

0

0

1

1

1

1

1

1

a

a

b

1

b

1

1

1

c

c

c

a

a

b

1

1

b

1

1

c

c

c

Рис. Логическая схема одноразрядного двоичного сумматора

Суммирование одноразрядных десятичных чисел происходит в два этапа. На первой ступени суммирования получается результат, который подвергается анализу на предмет введения коррекции и на второй ступени вводится одна или другая коррекция.

Нахождение функции коррекции.

Пi

К8

К4

К2

К1

0

1

1

0

1

1

0

0

1

1

Пi = 0

Пi = 1

Соседние файлы в папке Курсачи