Примечание | от автора: Схема устройства распечатывается на листы А4 и склеивается |
Загрузить архив: | |
Файл: ref-22787.zip (128kb [zip], Скачиваний: 70) скачать |
БЕЛОРУССКО-РОССИЙСКИЙ УНИВЕРСИТЕТ
по предмету «Микропроцессоры и микрокомпьютеры»
Тема проекта: Проектирование АЛУ для сложения двоично-десятичных чисел
Группа АСОИЗ-011
Т1001.011572.00
Введение 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)
Примеры:
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 Описание элементной базы АЛУ
При проектировании данного устройства были использованы следующие элементы:
DD1, DD2. Это два четырёхразрядных буферных регистра. Каждый из регистров имеет четыре входа данных и четыре выхода, вход сброс R в состояние логического нуля, вывод разрешения выхода ЕО вход разрешения записи РЕ. Номера выводов указаны на принципиальной схеме 24-питание; 12-общий;
Сумматор 133ИМ3 микросхемы DD3-DD6. Это четырёхразрядный быстродействующий двоичный полный сумматор. Он принимает два четырёхразрядных слова по входам данных А0-А3 и В0-В3 по входу Cn – сигнал переноса. Сумма разрядов входных слов появляется на выходах S0-S3. На выходе 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-общий;
DD12. Включает четыре асинхронных oRS-триггера, причём два из них имеют по два входа установки 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/