Скачать

Проектирование АЛУ для сложения двоично-десятичных чисел

МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ

БЕЛОРУССКО-РОССИЙСКИЙ УНИВЕРСИТЕТ

Кафедра «АСУ» Курсовой проект

по предмету «Микропроцессоры и микрокомпьютеры»

Тема проекта: Проектирование АЛУ для сложения двоично-десятичных чисел

Группа АСОИЗ-011

Т1001.011572.00

Выполнил: Васильков А.ЕПроверил: Столяров Ю.Д Могилев, 2005 г.Содержание

Введение 2

1 Постановка задачи 3

1.1Общие сведения о работе сумматора. Принцип построения сумматоров 3

1.2 Запись десятичных чисел 6

1.3Суммирование двоично-десятичных чисел 7

2 Построение АЛУ 8

2.1 Построение функциональной и структурной схем АЛУ 8

2.2 Описание работы принципиальной схемы 8

3 Описание элементной базы АЛУ 11

Список литературы 12

Введение

В настоящее время – время компьютерных технологий, в нашу жизнь всё больше и больше входят и успешно применяются всевозможные «умные вещи», например автоматические стиральные машины, СВЧ печи, DVD проигрыватели тому подобные предметы. Все они предназначены для того, чтобы, как можно больше облегчить наши повседневные хлопоты и одновременно уменьшить время, затрачиваемое на рутинные бытовые заботы. Однако не все знают, что работа этих устройств не просто какое-то волшебство, а свет инженерной мысли их создателей. Также, не все знают, что команды, выполняемые этими приборами, подразумевают работу с двоичными числами, которые представляются в виде кодов выполняемых операций. Например, мы нажимаем кнопку изменения уровня громкости на пульте управления телевизора, и видим на экране шкалу, которая увеличивается (уменьшается) в зависимости от выбранной кнопки, одновременно вы слышим изменение звучания. Эти изменения вызваны тем, что определённая комбинация представленная в двоичном коде передаётся на управляющие органы телевизора, тем самым выполняет необходимое нам действие.

1 Постановка задачи

1.1Общие сведения о работе сумматора. Принцип построения сумматоров

Сумматор осуществляет арифметическое суммирование n-разрядных кодов X=(x(n-1),..,x0) и Y=(y(n-1),..,y0). Правила сложения двух одноразрядных двоичных чисел:

0 (+) 0 = 0

0 (+) 1 = 1 (+) 0 = 1

1 (+) 1 = 0 и перенос 1 в старший разряд.

Операция (+) называется - сумма по модулю два. Устройство реализующее эти правила называется одноразрядным полусумматором и имеет два входа и два выхода. Сложение трех одноразрядных чисел производится следующим образом:

0 (+) 0 (+) 0 = 0

0 (+) 0 (+) 1 = 1

0 (+) 1 (+) 1 = 0 и перенос 1 в старший разряд

1 (+) 1 (+) 1 = 1 и перенос 1 в старший разряд.

Устройство реализующее эти правила называется одноразрядным полным сумматором (ОПС) и имеет три входа и два выхода. Таблица истинности ОПС приведена на рис.1, слева.

Рисунок 1

xi,yi - одноименные двоичные разряды чисел X и Y, ci - перенос из предыдущего разряда, si - частичная сумма по модулю два и c(i+1) - перенос в следующий разряд. Значения c(i+1) совпадают со значениями функции мажоритарности, поэтому воспользуемся готовым решением:

c(i+1) = xi*yi + xi*ci + yi*ci.      (1)

Таблица Карно для si приведена на рис.1 справа. Из таблицы находим: si = xi*~yi*~ci + ~xi*~yi*ci + xi*yi*ci+ ~xi*yi*~ci = ~yi(xi*~ci + ~xi*ci) + yi(xi*ci + ~xi*~ci) = ~yi(xi (+) ci) + yi(xi*ci + ~xi*~ci). Выражение в последней скобке необходимо преобразовать, используя соотношение двойственности.

xi*ci + ~xi*~ci = ~(xi*ci) * ~(~xi*~ci) = (~xi+~ci) *(xi+ci)= ~xi*xi + ~xi*ci + ~ci*xi + ~ci*ci = ~xi*ci + xi*~ci = ~(xi (+) ci) = ~F6 = F9,

где F6=x1 (+) x0 - исключающее ИЛИ,

F9= ~(x1 (+) x0) исключающее - ИЛИ-НЕ

С учетом последнего выражения

si = ~yi(xi (+) ci) + yi~(xi (+) ci) =

yi (+) (xi (+) ci) = yi (+) xi (+) ci. (2)

        

Схема полного одноразрядного сумматора соответствующая уравнениям (1) и (2) и её условное обозначение приведены на рисунке 2.

Рисунок 2

Сумматор с последовательным переносом для сложения n- разрядных двоичных чисел показан на схеме (рис.3.). К его недостатку относится большое время задержки, в наихудшем случае, когда от сложения x0,y0 возникает сквозной перенос через все разряды до выхода s(n-1). При двухъярусной схеме одноразрядного сумматора, задержка сигнала от входов до выходов составит 2tзд.р., если считать задержку в каждом ярусе одинаковой. Суммарная величина задержки будет равна:

tзд.р.посл.сумматора = n*2tзд.р. (3)

При сложении многоразрядных чисел задержка выходного сигнала на выходе последнего разряда становится недопустимо большой.

Рисунок 3

В ЭВМ сумматор является центральным узлом арифметико-логического устройства (АЛУ) и от его быстродействия зависит производительность компьютера. Поэтому применяются сумматоры с параллельной схемой переноса. Выражение (1) для младшего разряда можно преобразовать, используя тождество для функции ИЛИ: x + y = ~x*y + x*~y + xy. В правой части равенства совершенной дизъюнктивной нормальной формой (СДНФ) выражения (4) функции ИЛИ. Тогда

c1 = x0*y0 + x0*c0 + y0*c0 = x0*y0 + c0(x0 + y0) =

x0*y0 + c0(~x0*y0 + x0*~y0 + x0*y0) =

x0*y0(с0 +1) + c0(~x0*y0 + x0*~y0) =

x0*y0 + с0(x0 (+) y0). (5)

Уравнениям (2) и (5) соответствует схема на рис.4

Рисунок 4

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

c1 = g0 + p0*c0, с2 = g1 + p1*c1 = (6)

     = g1 + p1*g0 + p1*p0*c0, (7)

с3 = g2 + p2*c2 = (8)

     = g2 + p2*g1 + p2*p1*g0 + p2*p1*p0*c0, (9)

......, и так далее. Выражения (6, 8) - это еще последовательный сумматор, т.к. c3 зависит от c2, c2 зависит от c1, а c1 зависит от c0. Выражения (7, 9) соответствуют уже параллельному, т.к. величина ci снимается с выхода предыдущего разряда, в котором она формируется параллельно из всех первичных переменных. Схемы узлов переноса УП1 и УП2 приведены на рис.5.

Рисунок 5

Из рис.4 и 5 видно, что узел сложения в каждом разряде остается неизменным, а изменяется только узел переноса, причем задержка сигнала от входов xi, yi до c(i+1) остается неизменной и для 3-ярусной схемы равна 3tзд.р.. Суммарная задержка в каждом разряде увеличится на время прохождения сигнала от входа ci до si, т.е. на величину tзд.р., и составит: tзд.р.паралл.сумматора = 4tзд.р. независимо от количества разрядов. За это приходится платить усложнением узла переноса от разряда к разряду.

1.2 Запись десятичных чисел

Иногда бывает удобно хранить числа в памяти процессора в десятичном виде (Например, для вывода на экран дисплея). Для записи таких чисел используются двоично-десятичные коды. Для записи одного десятичного разряда используется четыре двоичных бита. Эти четыре бита называются тетрадой. Иногда встречается название, пришедшее из англоязычной литературы: нибл. При помощи четырех бит можно закодировать шестнадцать цифр. Лишние комбинации в двоично-десятичном коде являются запрещенными. Таблица соответствия двоично-десятичного кода и десятичных цифр приведена в таблице 1.

Таблица 1.

Остальные комбинации двоичного кода в тетраде являются запрещенными. Запишем пример двоично-десятичного кода:

1258 = 0001 0010 0101 1000

589 = 0000 0101 1000 1001

Достаточно часто в памяти процессора для хранения одной десятичной цифры выделяется одна ячейка памяти (восьми, шестнадцати или тридцатидвухразрядная). Это делается для повышения скорости работы программы. Для того, чтобы отличить такой способ записи двоично-десятичного числа от стандартного, способ записи десятичного числа, как это показано в примере, называется упакованной формой двоично-десятичного числа.

1.3Суммирование двоично-десятичных чисел

Суммирование двоично-десятичных чисел можно производить по правилам обычной двоичной арифметики, а затем производить двоично-десятичную коррекцию. Двоично-десятичная коррекция заключается в проверке каждой тетрады на допустимые коды. Если в какой либо тетраде обнаруживается запрещенная комбинация , то это говорит о переполнении. В этом случае необходимо произвести двоично-десятичную коррекцию. Двоично-десятичная коррекция заключается в дополнительном суммировании числа шесть (число запрещенных комбинаций) с тетрадой, в которой произошло переполнение или произошёл перенос в старшую тетраду. Приведём два примера:

Каждое целое число занимает два байта (две ячейки) в памяти компьютера, т.е. 16 разрядов. При этом старший разряд отводится под знак числа. У положительных чисел в старшем разряде находится 0, а у отрицательных — 1. Таким образом, можно закодировать числа в диапазоне от —32 768 до 32 767. Отрицательные числа кодируются в дополнительном коде.

Правила создания дополнительного кода:

  1. Все биты модуля двоичного числа инвертируются.
  2. К полученному числу прибавляется 1.

Примеры:

3- 0000000000000011

- 3 - 11111111 11111101

9- 0000000000001001

-9- 11111111 11110111

32 767- 0111111111111111

—32 767- 10000000 00000001

—32 768-   10000000 00000000

2 Построение АЛУ

2.1 Построение функциональной и структурной схем АЛУ

АЛУ состроит из следующих функциональных блоков рис 6:

Блок ввода, включающий в себя клавиатуру с кнопками набора цифр, а также управляющие клавиши «=,+,- «Сброс»» и входные регистры;

Блок вычислений. В состав блока вычислений входят сумматоры, преобразователи дополнительного кода и схема коррекции;

Блок индикации, который состоит из дешифраторов, семисегментных индикаторов, а также схемы сравнения, состоящей из трёх компараторов.

Рисунок 6

Рассмотрим принцип работы устройства по функциональной схеме. На клавиатуре набирается число. В данном случае набираемое число не должно превышать двух знаков (максимамальное-99). Набираемое число поступает на регистр. В случае если число состоит из одного знака, то после нажатия управляющей клавиши «+» или «-» сигнал «выгружается» в блок вычислений на входы сумматора. Если же число состоит из двух знаков, в этом случае первая внесённая цифра последовательно передается в другой сумматор старшего разряда десятичного числа. Аналогичным образом происходит ввод второго числа. После набора чисел, при нажатии клавиши «=» результат суммы поступает в схему коррекции блока вычислений, при необходимости корректируется, с последующей передачей сигнала в блок индикации, где происходит дешифрация числа из двоично-десятичного кода в десятичный. Необходимо обратить внимание на то, что при нажатии клавиши «-» происходит преобразование числа в обратный код. Одновременно происходит сравнение введённых чисел. В том случае, если первое число меньше другого формируется знак минус на индикаторе с помощью схемы сравнения.

2.2 Описание работы принципиальной схемы

В момент включения устройства (рис приложение 1) либо нажатии клавиши «Сброс», происходит сброс всех регистров, при этом триггер Т2 (микросхема DD12) находится в нулевом состоянии. Двоичный код введённого числа с клавиатуры поступает на вход регистра RG1 (микросхема DD1). Одновременно сигнал с входа регистра поступает через логический элемент ИЛИ на вход ключа, (элемента И). Так как триггер Т2 находится в нулевом состоянии, то полученный сигнал поступает на разрешающие входы регистра RG1, после чего данные передаются на выход регистра. Регистр RG2 (микросхема DD1) подключён последовательно регистру RG1. Код с выхода RG1 подаётся на вход RG2, который в свою очередь находится в закрытом состоянии. Открытия регистра RG2 происходит в момент следующего нажатия клавиши. В этом случае данные из регистра RG1 перегружаются в регистр RG2 – в старший разряд десятичного числа, а вновь введённое число помещается на место предыдущего – в младший. После нажатия клавиши «+»или « - », триггер Т2 переключается в единичное состояние. В этом случае регистр RG1 закрыт, а ввод осуществляется аналогичным образом в регистры RG3 и RG4 (микросхема DD2). Необходимо обратить внимание на то, что при нажатии клавиши « - » происходит переключение триггера Т4 (микросхема DD12) в единичное состояние, после чего данные на выходе регистров RG3 и RG4 преобразуются в дополнительный код. Далее, коды поступают на входы сумматоров SM1, SM2 (микросхемы DD3, DD4). Одновременно информация с выходов регистров RG1- RG4 поступает на компараторы = =1-= =3 (микросхемы DD7, DD8, DD9). Где происходит сравнение чисел и формирования знака « - » в случае отрицательного результата. После суммирования чисел производится коррекция полученного результата, т.е. в случае появления запрещенных комбинаций происходит сложение переполненных разрядов с числом 6. Данная коррекция выполняется на сумматорах SM3, SM4 (микросхемы DD5, DD6). Отображение вводимых чисел, а также результата вычисления выполняется с помощью дешифраторов DC1 и DC2 (микросхемы DD10, DD11). Вначале, когда триггер Т2 находится в нулевом состоянии происходит отображение первого вводимого числа. Так, как параллельно управлению регистрами RG1и RG2, триггер Т2 производит управление дешифраторами. Управление осуществляется путем подачи инвертированного нулевого сигнала с триггера Т2 на управляющий вход дешифратора. В этот момент, код, имеющийся на выходах регистров RG1и RG2, помещается в дешифратор, где происходит его преобразование с последующей передачей на индикаторы HL1, HL2. Как только нажата клавиша «+» или «-», происходит блокировка данных с регистров первого числа, из-за того, что триггер Т2 становится в единичное состояние. Дешифратор готовится к отображению второго вводимого числа. Индикация второго числа осуществляется аналогично первому. Вывод результата на индикаторы происходит после нажатия клавиши «=». В этом случае блокируются, выходы регистров RG3 и RG4 и на вход дешифраторов поступает выходной сигнал с сумматоров SM3 и SM4. Вывод третий цифры на индикаторе, в случае переполнения второго двоично-десятичного разряда производится с выхода переноса в следующий разряд сумматоров SM3 и SM4. В этом случае сигнал с выходов Cn+1 предаются на соответствующие ячейки третьего индикатора HL3.

3 Описание элементной базы АЛУ

При проектировании данного устройства были использованы следующие элементы:

Регистр 1534ИР34 микросхемы DD1, DD2. Это два четырёхразрядных буферных регистра. Каждый из регистров имеет четыре входа данных и четыре выхода, вход сброс R в состояние логического нуля, вывод разрешения выхода ЕО вход разрешения записи РЕ. Номера выводов указаны на принципиальной схеме 24-питание; 12-общий;

Сумматор 133ИМ3 микросхемы DD3-DD6. Это четырёхразрядный быстродействующий двоичный полный сумматор. Он принимает два четырёхразрядных слова по входам данных А0-А3 и В0-В3 по входу Cn – сигнал переноса. Сумма разрядов входных слов появляется на выходах Σ0-Σ3. На выходе Cn+1 выделяется сигнал переноса. Имеется схема ускоренного переноса (СУП). Номера выводов указаны на принципиальной схеме 12-питание; 5-общий;

Компаратор К134СП1 микросхемы DD7-DD9. Схема сравнения (компаратор)двух четырёхразрядных чисел. Он имеет 11 входов: четырёхразрядных числа А0-А3 и В0-В3, три входа I(AB) необходимы для увеличения ёмкости схемы (соединения нескольких ИС типа СП1). Компаратор имеет три выхода: AB. Номера выводов указаны на принципиальной схеме 16-питание; 8-общий;

Дешифратор К555ИД18 микросхемы DD10-DD11. Дешифратор двоично-десятичного кода в семисегментный код. Дешифратор имеет четыре входа данных D0-D3 и семь выходов Q1-Q7. Вход С2 – «Регулировка яркости» а вход С1 – «Запрет», вход V –«Контроль». Номера выводов указаны на принципиальной схеме 16-питание; 8-общий;

Триггер К555ТР2 микросхема DD12. Включает четыре асинхронных o RS-триггера, причём два из них имеют по два входа установки S. Управляющим сигналов является уровень логического нуля (низки уровень), так как триггеры построены на логических элементах И-НЕ с обратными связями (т.е. входы инверсные статические). Установка триггера в состояние высокого или низкого уровня осуществляется кодом 01 или 10 на входах S и R со сменой кода информации. Номера выводов указаны на принципиальной схеме 16-питание; 8-общий;

Логические элементы: 155ЛП5 –элементы «исключающее ИЛИ».; 155ЛН1 представляют собой инверторы и выполняют логическую операцию НЕ. Каждая микросхема содержит по шесть инверторов.; К155ЛЕ2 выполняют логическую функцию тИЛИ-НЕ, где т – число входов.; К555ЛИ1 выполняют логическую функцию И.

Список литературы

1 Цифровые интегральные микросхемы: Справочник/М.И.Богданович и др. –2изд., перераб. и доп.-Мн.:Беларусь, Полымя. 1996.-605с.:ил.

2 Интернет:

www.sibsutis.ru/

cde.infmo.ru/