Автор: Мижева Фатима Канчаубиевна
Должность: преподаватель специальных дисциплин
Учебное заведение: ГАПОУ КК "НКСЭ"
Населённый пункт: г. Новороссийск
Наименование материала: Методическая разработка
Тема: Проектирование сумматора
Раздел: среднее профессиональное
Министерство образования и науки Российской Федерации
Федеральное агентство по образованию
САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ
ЭЛЕКТРОТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ "ЛЭТИ"
ИМЕНИ В.И. УЛЬЯНОВА (ЛЕНИНА)
197376, Санкт-Петербург, ул. проф. Попова, 5.
Факультет компьютерных технологий и информатики
Кафедра САПР
Курсовая работа
По схемотехнике
Тема:
"Сумматор"
Выполнил:
Проверил:
Санкт Петербург
Содержание
Содержание...................................................................................................................................2
1.Техническое задание..................................................................................................................3
2.Теоретические сведения.............................................................................................................4
2.1 Сумматоры...........................................................................................................................4
2.2 Логические элементы..........................................................................................................4
3. Этапы выполнения курсовой работы:.....................................................................................7
3.1 Разработка структурной схемы сумматора.......................................................................7
3.1.1 Одноразрядный сумматор............................................................................................7
3.1.2 Четырехразрядный сумматор......................................................................................8
3.2 Разработка схемы в MAX+PLUS.......................................................................................8
3.2.1.1 Реализация одноразрядного сумматора на языке AHDL.......................................8
3.2.1.2 Схема одноразрядного сумматора...........................................................................9
3.2.2.1 Реализация четырехразрядного сумматора на языке AHDL:..............................10
3.2.2.2 Схема четырехразрядного сумматора на основе каскадов одноразрядного
сумматора.............................................................................................................................10
4. Разработка управляющего сигнала....................................................................................12
4.1 Управляющий сигнал для суммирования с константой................................................12
4.1.1 Подключение сигнала для одного разряда...............................................................12
4.1.2 Подключение сигнала для четырех разрядов..........................................................12
5. Результаты работы спроектированных устройств...............................................................15
5.1 Результат работы четырехразрядного сумматора..............................................................15
5.2 Результаты работы сумматора с подключенным сигналом для суммирования с
константой....................................................................................................................................15
6. Выводы о проделанной курсовой работе..............................................................................17
2
1.Техническое задание
В данной курсовой работе разрабатывается четырехразрядный сумматор:
Построить четырехразрядный сумматор на основе логических функций:
дизъюнкций, конъюнкций и отрицаний.
Построить четырехразрядный сумматор на основе каскадов одноразрядного
сумматора
Представить полную схему одноразрядного сумматора
Представить формулу одноразрядного сумматора
Представить схему четырехразрядного сумматора
Подключить управляющий сигнал для суммирования числа с константой.
3
2.Теоретические сведения
2.1 Сумматоры
Сумматоры предназначены для суммирования двух входных двоичных кодов, то
есть выходной код будет равен арифметической сумме двух входных кодов. Например,
если один входной код - 7 (0111), а второй - 5 (0101), то суммарный код на выходе будет
12 (1100). Сумма двух двоичных чисел с числом разрядов N может иметь число разрядов
(N + 1). Например, при суммировании чисел 13 (1101) и 6 (0110) получается число 19
(10011). Поэтому количество выходов сумматора на единицу больше количества разрядов
входных кодов. Этот дополнительный (старший) разряд называется выходом переноса.
Сумматоры бывают одноразрядные (для суммирования двух одноразрядных
чисел), 2-х разрядные (суммируют 2-х разрядные числа) и 4-х разрядные (суммируют 4-х
разрядные числа). Чаще всего применяют именно 4-разрядные сумматоры.
Помимо выходных разрядов суммы и выхода переноса, сумматоры имеют вход
расширения (другое название - вход переноса) для объединения нескольких сумматоров с
целью увеличения разрядности. Если на этот вход приходит единица, то выходная сумма
увеличивается на единицу, если же приходит нуль, то выходная сумма не увеличивается.
Если используется одна микросхема сумматора, то на ее вход расширения необходимо
подать нуль.
Сумматоры могут использоваться также для суммирования чисел в отрицательной
логике (когда логической единице соответствует электрический нуль, и наоборот,
логическому нулю соответствует электрическая единица). Но в этом случае входной
сигнал переноса также становится инверсным, поэтому при использовании одной
микросхемы сумматора на вход С надо подать электрическую единицу (высокий уровень
напряжения). Инверсным становится и выходной сигнал переноса Р, низкий уровень
напряжения на нем (электрический нуль) соответствует наличию переноса. То есть
получается, что сумматор абсолютно одинаково работает как с положительной, так и с
отрицательной логикой.
Рассмотрим пример. Пусть нам надо сложить два числа 5 и 7 в отрицательной
логике. Числу 5 в положительной логике соответствует двоичный код 0101, а в
отрицательной - код 1010. Числу 7 в положительной логике соответствует двоичный код
0111, а в отрицательной - код 1000. При подаче на вход сумматора кодов 1010 (десятичное
число 10 в положительной логике) и 1000 (десятичное число 8 в положительной логике)
получаем сумму 10 + 8 = 18, то есть код 10010 в положительной логике. С учетом
входного сигнала переноса С=1 (отсутствие входного переноса в отрицательной логике)
выходной код сумматора получится на единицу больше: 18 + 1 = 19, то есть 10011. При
отрицательной логике это будет соответствовать числу 01100, то есть 12 при отсутствии
выходного переноса. В результате получили 5+7=12.
2.2 Логические элементы
Любые цифровые микросхемы строятся на основе простейших логических элементов:
"НЕ" - выполняет функцию инвертирования;
"И" - выполняет функцию логического умножения;
"ИЛИ" - выполняет функцию логического суммирования.
Рассмотрим эти элементы.
4
¬
Элемент «НЕ» (или инвертор) является простейшим логическим элементом. Инвертор
просто изменяет значение входного сигнала на прямо противоположное значение. Его
функция записывается в следующем виде:
F(x)= ¬x
Таблица истинности логического инвертора
I
n
Out
0
1
1
0
Условно-графическое изображение инвертора приведено на рисунке 2.
Элемент "И"
Следующим простейшим элементом является схема, реализующая операцию логического
умножения "И":
F(x1,x2)=x1^x2
где символ ^ и обозначает функцию логического умножения.
То же самое действие можно записать при помощи таблицы истинности, приведённой в
таблице 2. В формуле, приведенной выше использовано два аргумента. Поэтому элемент,
выполняющий эту функцию имеет два входа. Для элемента "И" таблица истинности будет
состоять из четырех строк.
In
1
In2 Out
0
0
0
0
1
0
1
0
0
1
1
1
Как видно из приведённой таблицы истинности активный сигнал на выходе этого
логического элемента появляется только тогда, когда и на входе X и на входе Y будут
присутствовать логические единицы. То есть этот логический элемент действительно
реализует операцию "И"
Условно-графическое изображение схемы, выполняющей логическую функцию "И",
приведено на рисунке
Точно так же описывается и функция логического умножения трёх
переменных:
F(x1,x2,x3)=x1^x2^x3
Таблица истинности трёхвходовой схемы логического умножения "И" приведена в
таблице
In
1
In2 In3 Out
&
5
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
1
0
0
0
1
0
1
0
1
1
0
0
1
1
1
1
Условное обозначение на схеме
Элемент "ИЛИ"
Следующим простейшим элементом является схема, реализующая операцию логического
сложения "ИЛИ":
F(x1,x2)=x1Vx2
где символ V обозначает функцию логического сложения.
Таблица истинности схемы, выполняющей логическую функцию "ИЛИ"
In
1
In2 Out
0
0
0
0
1
1
1
0
1
1
1
1
Условное обозначение на схеме:
&
&
6
3. Этапы выполнения курсовой работы:
3.1 Разработка структурной схемы сумматора
3.1.1 Одноразрядный сумматор
В данном разделе рассматривается создание одноразрядного сумматора со следующими
обозначениями:
A, B – входы;
S – выход (сумма );
С – входной перенос;
P – выходной перенос.
Таблица истинности одноразрядного сумматора
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
Формула одноразрядного сумматора
Впишем формулу по таблице истинности для выходного переноса и для значения суммы:
S=¬A¬BCv¬AB¬CvA¬B¬CvABC
P=¬ABCvA¬BCvAB¬СvABC
Минимизируем функции S и P с помощью карт Карно:
Карта Карно для S:
AB/C
00
01
11
10
0
0
1
0
1
1
1
0
1
0
Как видно из таблицы функцию S минимизировать не удается.
Карта Карно для P:
AB/C
00
01
11
10
0
0
0
1
0
1
0
1
1
1
Минимизирования функция:
ABvBCvAC
Схема одноразрядного сумматора
Исходя из теоретических сведений о сумматорах, построим структурную схему
одноразрядного сумматора.
7
Сумма входных переменных
Выход переноса
Вход переноса
Вход 2 числа
Вход 1 числа
SM
сумма
Число 2
Число 1
SM
SM
SM
SM
3.1.2 Четырехразрядный сумматор
Четырехразрядный сумматор удобно собрать из каскадов одноразрядного сумматора:
Структурная схема четырехразрядного сумматора:
3.2 Разработка схемы в MAX+PLUS
3.2.1.1 Реализация одноразрядного сумматора на языке AHDL
Код программы:
subdesign gurov
(a,b,c :input;
s0,s1 :output;
)
begin
s0=!a&!b&c#!a&b&!c#a&!b&!c#a&b&c;
s1=a&b#b&c#a&c;
end;
8
3.2.1.2 Схема одноразрядного сумматора
Построим в программе MAX+ схему одноразрядного сумматора на основе полученных
уравнений.
Получившаяся схема одноразрядного сумматора представлена на рисунке:
Упрощенное обозначение:
На упрощенном обозначении:
А – вход для первого слагаемого
В – вход для второго слагаемого
С – вход переноса разряда
S – сумма
P – выход переноса (старший двоичный разряд суммы)
9
3.2.2.1 Реализация четырехразрядного сумматора на языке AHDL:
Код программы:
subdesign sum4
(a0,a1,a2,a3,b0,b1,b2,b3,c :input;
s0,s1,s2,s3,s4,p0,p1,p2 :output;
)
begin
s0=!a0&!b0&c#!a0&b0&!c#a0&!b0&!c#a0&b0&c;
p0=a0&b0#b0&c#a0&c;
s1=!a1&!b1&p0#!a1&b1&!p0#a1&!b1&!p0#a1&b1&p0;
p1=a1&b1#b1&p0#a1&p0;
s2=!a2&!b2&p1#!a2&b2&!p1#a2&!b2&!p1#a2&b2&p1;
p2=a2&b2#b2&p1#a2&p1;
s3=!a3&!b3&p2#!a3&b3&!p2#a3&!b3&!p2#a3&b3&p2;
S4=a3&b3#b3&p2#a3&p2;
end;
3.2.2.2 Схема четырехразрядного сумматора на основе каскадов
одноразрядного сумматора.
Схема представлена на рисунке:
Упрощенная схема:
10
Обозначения на схеме:
A0 – нулевой разряд первого слагаемого
А1 – первый разряд первого слагаемого
A2 – второй разряд первого слагаемого
A3 – третий разряд первого слагаемого
В0 – нулевой разряд второго слагаемого
В1 – первый разряд второго слагаемого
B2 – второй разряд второго слагаемого
В3 – третий разряд второго слагаемого
С – вход переноса
S0 – нулевой разряд суммы
S1 – первый разряд суммы
S2 – второй разряд суммы
S3 – третий разряд суммы
S4 – четвертый разряд суммы.
11
4. Разработка управляющего сигнала
4.1 Управляющий сигнал для суммирования с константой
4.1.1 Подключение сигнала для одного разряда
Для выбора элемента суммирования с помощью управляющего сигнала воспользуемся
следующей формулой:
ZCv¬ZB
Где Z это сигнал, С – константа, В – переменная.
Построим схему согласно этой формуле:
Упрощенная схема:
4.1.2 Подключение сигнала для четырех разрядов
4.1.2.1 Реализация на языке AHDL
Код программы:
subdesign sum4_sign1
(a0,a1,a2,a3,b0,b1,b2,b3,c :input;
c0,c1,c2,c3:input;
s0,s1,s2,s3,s4,p0,p1,p2 :output;
x0,x1,x2,x3 : output;
z:input;
)
begin
x0=z&c0#!z&b0;
x1=z&c1#!z&b1;
x2=z&c2#!z&b2;
x3=z&c3#!z&b3;
12
s0=!a0&!x0&c#!a0&x0&!c#a0&!x0&!c#a0&x0&c;
p0=a0&x0#x0&c#a0&c;
s1=!a1&!x1&p0#!a1&x1&!p0#a1&!x1&!p0#a1&x1&p0;
p1=a1&x1#x1&x0#a1&p0;
s2=!a2&!x2&p1#!a2&x2&!p1#a2&!x2&!p1#a2&x2&p1;
p2=a2&x2#x2&p1#a2&p1;
s3=!a3&!x3&p2#!a3&x3&!p2#a3&!x3&!p2#a3&x3&p2;
S4=a3&x3#x3&p2#a3&p2;
end;
4.1.2.2 Схема в MAX+PLUS
Сигнал для выбора из двух четырехразрядных чисел:
Упрощенная схема:
Сумматор с подключенным управляющим сигналом
13
Упрощенная схема:
14
5. Результаты работы спроектированных устройств
5.1 Результат работы четырехразрядного сумматора
Ниже приведены временные диаграммы, на которых можно посмотреть результат работы
четырехразрядного сумматора.
На данной временной диаграмме показано сложение чисел 4+8. Результат данного
сложения равен 12, что собственно и демонстрирует временная диаграмма.
Рассмотрим временную диаграмму с подключением счетчиков к обоим слагаемым.
На временной диаграмме видно, что сложение происходит правильно.
Зададим смещение второго слагаемого на число 3 и проверим результат снова:
Из приведенных временных диаграмм видно, что устройство работает корректно.
5.2 Результаты работы сумматора с подключенным
сигналом для суммирования с константой
Ниже приведены 2 временные диаграммы работы сумматора с подключенным сигналом
для суммирования с константой. Входные значения подключены к счетчикам. Начальные
значения чисел А и В соответственно равны 0 и 2. значение константы равно 6. На первом
рисунке приведен пример работы устройства с подачей нулевого значения на вход
сигнала:
15
Подача единицы на вход сигнала:
16
6. Выводы о проделанной курсовой работе
В данной курсовой работе был разработан четырехразрядный сумматор. В основе
устройства лежат каскады одноразрядного сумматора, который был спроектирован на
основании таблицы истинности входных значений. На вход четырехразрядного сумматора
подаются 2 числа с четырьмя двоичными разрядами. Каждая пара разрядов, начиная с
нулевого, суммируется поочередно в одноразрядных сумматорах с учетом входных
переносов. Значение суммы начинает формироваться при выходе из первого
одноразрядного сумматора. Конечным разрядом значения суммы является выходной
перенос из четвертого (последнего) одноразрядного сумматора. Устройство разработано в
графическом редакторе MAX+PLUS и на языке AHDL.
17