Курсовая на тему Последовательный 16 ти разрядный сумматор
Работа добавлена на сайт bukvasha.net: 2014-12-06Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
от 25%
договор
Министерство образования и науки Российской Федерации
Московский государственный технический университет им. Н.Э. Баумана
Калужский филиал
Факультет электроники, информатики и управления
Кафедра «Компьютерные системы и сети»
Пояснительная записка к курсовой работе по дисциплине
«Схемотехника ЭВМ»
"Последовательный 16-ти разрядный сумматор"
Калуга 2007
Техническое задание
Разработать 16-ти разрядный последовательный сумматор двоичных чисел с фиксированной запятой. Обеспечить преобразование результата в код Грея и индикацию в десятичном коде. Предусмотреть средства встроенного контроля. В качестве элементной базы выбрать серию с низкой потребляемой мощностью.
Содержание
Введение
1. Теоретическая часть
1.1 Классификация существующих сумматоров
1.2 Последовательный сумматор
1.3 Контроль работы сумматора
1.4 Преобразования кода
2. Элементная база
2.1 Выбор и обоснование элементной базы
2.2 Использованные элементы
3. Схемотехническое проектирование
3.1 Блок опорных частот
3.2 Блок выбора числа
3.3 Блок ввода числа
3.4 Блок вывода числа
3.5 Блок преобразований кода
3.6 Сумматор
Заключение
Список литературы
Введение
В основу любого арифметико-логического устройства ЭВМ входит сумматор. Он выполняет операции сложения и вычитания, причем операция вычитания в сумматоре представляется, как операция сложения с отрицательным числом. Сумматор используется, как составная часть более сложных арифметико-логических устройств.
В зависимости от способа работы сумматоры бывают параллельные и последовательные. В параллельном сумматоре сложение всех разрядов происходит практически одновременно, а в последовательном – по очереди от младших разрядов к старшим. Может производиться сложение чисел, как с фиксированной, так и с плавающей запятой.
Одна из важных характеристик сумматора – разрядность. Разряды подразделяются на знаковые и цифровые. Знаковые разряды содержат знак числа, цифровые содержат число, над которым выполняется операция сложения.
Существуют три основных кода представления чисел: прямой, обратный и дополнительные. При переводе из одного кода в другой изменяются только цифровые разряды. Знаковые разряды остаются постоянными в любом коде.
В данной работе был спроектирован последовательный 16-ти разрядный сумматор (2 знаковых разряда и 14 цифровых) с фиксированной запятой. Сумматор выполняет сложение чисел в обратном коде. В случае, если после сложения знаковые разряды отличаются, фиксируется переполнение. В процессе схемотехнического проектирования сумматора были учтены такие особенности устройств последовательного действия, как подача синхросигнала и согласование временных задержек.
1. Теоретическая часть
1.1 Классификация существующих сумматоров
Сумматор – это электронный узел, предназначенный для выполнения микрооперации арифметического сложения (суммирования) двух чисел (слов). При сложении двух чисел, представленных в виде двоичных кодов A (a0, a1,… an) и B (b0, b1,… bn) образуется сумма S (s0, s1,… sn). Значение i-x разрядов образуется в соответствии с правилом:
Si=ai+bi+pi-1; pi=0 – при (ai+bi+pi-1) < q, Si=ai+bi+pi-1; pi=1 – при (ai+bi+pi-1) >= q,
где: Si – сумма в i‑м разряде, pi-1 – перенос из соседнего младшего разряда, q – основание системы счисления.
Сумматоры классифицируют:
– По принятой системе счисления и кодирования различают: двоичные, двоично-десятичные, десятичные и др;
– В зависимости от количества входов и выходов бывают: сумматоры по модулю 2, полусумматоры и полные сумматоры;
– По способу организации процесса суммирования одноразрядной суммирующей схемы: комбинационного типа, накапливающего типа и комбинированные;
– По способу организации цепей переноса между разрядами: с последовательным, с параллельным, с групповым и с одновременным переносами;
– По способу обработки многоразрядных чисел различают: последовательные, параллельные и комбинированные.
Для сложения многоразрядных чисел сумматор представляет собой набор одноразрядных сумматоров, имеющих входы для слагаемых и переноса из младшего разряда и выходы суммы и переноса в старший разряд.
1.2 Последовательный сумматор
Сумматор для последовательных операндов содержит всего один одноразрядный сумматор, обрабатывающий числа последовательно разряд за разрядом, начиная с младшего. Сложив младшие разряды (a0 и b0), одноразрядный сумматор вырабатывает сумму (s0) для младшего разряда результата и перенос (c0), который запоминается на один такт.
В следующем такте складываются вновь поступившие разряды слагаемых (a1 и b1) с переносом из младшего разряда (с0) и т.д. Условная схема последовательного n‑разрядного сумматора (рис. 1), помимо одноразрядного двоичного сумматора, содержит сдвигающие регистры слагаемых и суммы, а также триггер, запоминающий перенос. Регистры и триггер тактируются сигналом ТИ.
Рис. 1. Схема последовательного n‑разрядного сумматора.
1.3 Контроль работы сумматора
Для контроля работы сумматоров часто применяют контроль по модулю два. Суть метода заключается в следующем:
пусть имеются два складываемых числа (X и Y) и их сумма (S):
определим код четности суммы:
заменим , получим:
Обозначив контрольные коды четности буквами ks, kx, ky и kp:
или
Полученное тождество и определяет сущность контроля сумматора, контроля сложения двух чисел. Код четности суммы равен сумме по модулю два контрольных кодов слагаемых и контрольного кода переноса. Важным выводом из полученного контрольного соотношения является необходимость формирования и учета контрольного кода переноса.
1.4 Преобразования кода
Преобразование двоичного числа в код Грея производится в соответствии с табл. 1.
Таблица 1
Анализ таблицы показывает, что код Грея можно интерпретировать как двоичную систему счисления с весами разрядов, равными
где: i =1,2,…, n. – номера разрядов, считая справа налево;
j – количество единиц слева от данного разряда с номером i. Такая интерпретация позволяет сформулировать правило преобразования любого двоичного числа в код Грея:
1. самая старшая значащая цифра (единица) числа в коде Грея совпадает с самой старшей значащей цифрой этого же числа в двоичном коде;
2. цифра в любом другом, более младшем разряде числа в коде Грея:
а) совпадает с соответствующей цифрой числа в двоичном коде, если слева от данной цифры в коде Грея имеется четное количество единиц;
б) совпадает с отрицанием соответствующей цифры в двоичном коде, если слева от данной цифры в коде Грея имеется нечетное количество, единиц; т.е.: .
Правила составления преобразователя двоичного кода в двоично-десятичный код: веса разрядов входных сигналов всех преобразователей кодов должны находится в отношении 1:2:4:8, так как каждый преобразователь кодов преобразует только один двоичный разряд в двоично-десятичный разряд (вес 8 изменяется на вес 5), то преобразователь двоичного кода в двоично-десятичный код имеет пирамидальную структуру; построение продолжается до тех пор, пока не будут получены веса , где j=0,1,2,… (за исключением старшего десятичного разряда); на преобразователи нельзя подавать двоичные числа, превышающие сумму весов входных сигналов 5+4+2+1=12.
Часть схемы имеет 5 входов и 6 выходов и выполняет функцию:
X, если 0<X<4
X+3, если 5<X<9
X+6, если 10<X<14
Y= X+9, если 15<X<19
X+12, если 20<X<24
X+15, если 25<X<29
X+18, если 30<X<31
Остальная часть схемы также может быть разбита на узлы.
2. Элементная база
2.1 Выбор и обоснование элементной базы
Из-за отсутствия в серии К555 некоторых ИС дополнительно были взяты элементы из следующих серий: К155, К514 и К1533.
2.2 Использованные элементы
1. Логический элемент НЕ (К555ЛН1 – 6 элементов в корпусе) УГО:
Таблица истинности
2. Логический элемент 2ИЛИ (К555ЛЛ1 – 4 элемента в корпусе) УГО:
Таблица истинности
3. Логический элемент 3ИЛИ-НЕ (К555ЛЕ4 – 3 элемента в корпусе) УГО:
Таблица истинности
4. Логический элемент 2И (К555ЛИ1 – 4 элемента в корпусе) УГО:
Таблица истинности
5. Логический элемент 3И (К555ЛИ3 – 3 элемента в корпусе) УГО:
Таблица истинности
6. Буферный повторитель (КР1533ЛП16 – 6 элементов в корпусе) УГО:
Таблица истинности
7. Логический элемент ИСКЛЮЧАЮЩЕЕ ИЛИ (К555ЛП5 – 4 элемента в корпусе) УГО:
Таблица истинности
8. JK‑триггер (КР1533ТВ15 – 2 элемента в корпусе) УГО:
При работе в асинхронном режиме перевод триггера в единичное и нулевое состояния осуществляется по входам S и R соответственно. При синхронном управлении, когда используются входы J и K, смена состояний совершается по положительному фронту тактового импульса на входе C. Вход K является инверсным.
9. D‑триггер (К555ТМ2 – 2 элемента в корпусе) УГО:
Триггер функционирует как в синхронном, так и в асинхронном режимах. В последнем случае управление осуществляется по входам S и R. При работе в синхронном режиме и запись информации с входа D происходит по положительному фронту тактового импульса C.
10. Восьмиразрядный регистр сдвига с последовательным выходом (К555ИР10 – 1 элемент в корпусе) УГО:
Входная информация, представленная в параллельном коде на входах D, записывается в регистр асинхронно при . Причем состояния других входов могут быть произвольными. После записи на выходе Q7 появляется логический уровень, отвечающий разряду D7 входного кода. Для сдвига информации вправо на один из тактовых входов C необходимо подать последовательность импульсов, по положительным фронтам которых происходит сдвиг и прием информации в последовательном коде по входу DR. На свободном входе C устанавливают уровень логического нуля. Обнуление регистра происходит при .
11. Восьмиразрядный регистр сдвига с параллельным выходом (К555ИР8 – 1 элемент в корпусе) УГО:
Запись и сдвиг информации осуществляются под действием положительного фронта тактового импульса на входе C. На входе обнуления R в этом режиме устанавливают уровень логической единицы, а информацию подают на любой из входов D1, D2. Причем на свободном входе D фиксируют уровень логической единицы. Асинхронное обнуление регистра производится подачей уровня логического нуля на вход R.
12. Восьмиразрядный регистр с параллельными входом и параллельным выходом (К555ИР27 – 1 элемент в корпусе) УГО:
Ввод данных происходит синхронно, по положительному фронту тактового импульса при . Для фиксации данных в регистре на входе L устанавливают уровень логической единицы.
13. Четырехразрядный асинхронный счетчик (К555ИЕ5 – 1 элемент в корпусе) УГО:
Содержит два независимых делителя: на два и на восемь. Для образования делителя на шестнадцать выход Q0 соединяют с входом C2. Счет ведется в натуральном двоичном коде. Счет происходит по отрицательным фронтам сигналов C1 и C2. Асинхронное обнуление наступает при R1=R2=1.
14. Полный одноразрядный сумматор (К555ИМ5 – 2 элемента в корпусе) УГО:
Выполняет суммирование одноразрядных чисел. Результат выдается на выходе S0 с образованием переноса на выходе C1.
15. Двухканальный четырехразрядный стробируемый мультиплексор (К555КП16 – 1 элемент в корпусе) УГО:
Функционирует в соответствии с таблицей истинности
16. Преобразователь двоичного кода в двоично-десятичный (К155ПР7 – 1 элемент в корпусе) УГО:
ИС построена на основе программируемого в процессе производства ПЗУ емкостью 256 бит. Одна структура позволяет преобразовывать шестиразрядный двоичный код в двухдекадный двоично-десятичный, с неполной второй декадой.
17. Дешифратор преобразователь с памятью (514ИД4А – 1 элемент в корпусе) УГО:
Наличие внутренней регистровой памяти позволяет хранить входную информацию после снятия данных с входа DI. Фиксация данных происходит при . В случае, если , реализуется режим преобразования без запоминания.
3. Схемотехническое проектирование
3.1 Блок опорных частот
Поскольку сложение происходит последовательно, то сигналы надо считывать в определенные промежутки времени. Для этого вместе с информационным сигналом нужно подавать сигнал «тактирующий». Оба сигнала будут идти на соответствующие входы триггера, что обеспечит синхронную подачу информации. Нужно также указывать какое действие выполнять в каждом такте в зависимости от его номера, т.е. 1‑й, 2‑й и так далее до шестнадцатого. Роль указателя выполняет 4‑х разрядный двоичный счетчик: подавая 4 выходных сигнала счетчика на элемент «И» образуются единицы или нули на выходах блока опорных частот для соответствующего номера такта в том случае, если тактовый сигнал подается синхронно с сигналами счетчика.
Блок опорных частот – функциональный блок, который падаёт 16 тактовых сигналов синхронно с сигналами счетчика от 0 до 15. Фактически он является управляющим устройством сумматора. Логика работы блока опорных частот основывается на элементе ИЛИ-НЕ (DD2:1). На один из входов элемента ИЛИ-НЕ подается управляющий сигнал X, другой вход соединяется с выходом элемента. Для запуска счетчика на управляющие входы (C1, C2) подается 10. Причем импульс 1 должен чуть превышать задержку элемента ИЛИ-НЕ. Тогда после подачи на вход Х единицы на выходе ИЛИ-НЕ установится ноль. К тому времени как Х снова обратится в ноль, получится ситуация, когда оба входа ИЛИ-НЕ равны нулю, тогда на выходе через определенную задержку, составляющую пол такта, установится 1, а значит и на входе тоже установится 1. Но раз на входе 1, тогда на выходе снова через следующие пол такта установится 0. Для повышения устойчивости единицы блока опорных частот на выходе ИЛИ-НЕ устанавливается повторитель DD4:1.
Тактирующий импульс будет продолжаться до бесконечности, если не создать блокировки. Для этого используется третий вход ИЛИ-НЕ (DD2:1). Как только выполнится 14 счет, на третий вход ИЛИ-НЕ подается 1, и тактирующий сигнал блокируется, D‑триггер DD3:2 не позволит ему снова установиться в 0. Поскольку счетчик имеет задержку, превышающую один такт, то он успеет выполнить также и 15-й счет.
В начальный момент времени пока на X еще не подалась 1, на выходах ИЛИ-НЕ будет неопределенное состояние, выходы счетчика и тактирующий сигнал, тоже имеют неопределенное состояние. Для того чтобы не пропустить случайный сигнал на выход блока опорных частот, используется серия элементов И (DD7:2, DD7:3, DD7:4, DD8:1), управляемых D‑триггером DD3:1. Если импульс X еще не подан – на выходе D‑триггера сохраняется 0, и, следовательно, на выходах элементов И тоже будет 0 независимо от состояния другого входа этих элементов. Как только подается импульс единицы, через определенную задержку на вход И подается 1 и тогда на выходе будут значения сигналов, которые уже успели установиться в определенные состояния. Вместе с номером очередного такта (CN0, CN1, CN2, CN3) на выход (CLK) блока опорных частот выходит тактирующий сигнал для основных элементов последовательного сумматора.
Выход OE выведен на землю, сигнал A соединен с прямым выходом триггера DD2:2 (DD7:1). В случае подачи логического нуля на вход NX, триггер устанавливается в 0, и на выходы подаются сигналы DI00, DI10, DI20, DI30, если подан импульс PR, триггер устанавливается в 1 и на выход подаются значения входов DI01, DI11, DI21, DI31.
3.3 Блок ввода числа
Основной целью блока ввода является перевод числа подающегося параллельно в прямом коде в последовательную форму обратного кода. Поскольку регистры DD22, DD23 (DD29, DD30) восьмиразрядные, а каждое число-операнд шестнадцатиразрядное, то для правильности извлечения числа из регистров, используется следующий метод: сигналы с обоих регистров подаются на один элемент ИЛИ и организовывается управление регистрами так, чтобы первые 8 тактов подавался сигнал с выхода младшего регистра, а сигнал с выхода старшего регистра оставался нулевым, вторые 8 тактов подавался сигнал с выхода старшего регистра, а сигнал с выхода младшего был бы ноль.
Регистр имеет пять управляющих сигналов DR, L, R, C1, C2. В случае если сигнал DR равен 0, то после сдвига регистр заполняется нулями и после 8‑ми тактов на выходе всегда будет 0, поэтому DR устанавливается на обоих регистрах в 0. Нулевое значение сигнала С1 необходимо для, того чтоб регистры могли реагировать на тактирующий сигнал, поэтому С1=0. Остается только три сигнала управляя, которыми можно осуществлять процесс загрузки числа.
– R – если сигнал 0, то на выходе всегда 0.
– C2 – тактирующий сигнал, при подаче которого происходит либо сдвиг, либо загрузка в зависимости от состояния L.
– L – если сигнал 0, то происходит загрузка числа, если 1 – сдвиг.
На выход регистра подается младший разряд, сдвиг происходит, тоже в сторону младшего разряда. Это позволяет осуществлять подачу числа от младших разрядов к старшим.
Т. к. сигнал вначале надо загрузить, а только потом начать сдвигать, для обоих регистров, действует принцип, что 1 на L подается после подачи первого тактирующего сигнала, и до подачи второго. С первым тактом происходит загрузка числа в регистр, со второго начинается его сдвиг.
С первыми восемью тактами будет подаваться сигнал только с младшего регистра, поскольку сигнал R старшего регистра установиться в 1 только после 8‑го такта. Со вторыми восемью тактами будет подаваться только сигнал со старшего регистра, поскольку младший регистр за счет нулевого DR успеет к этому моменту полностью обнулиться.
Во время перевода из параллельной формы в последовательную, необходимо также перевести число из прямого кода в обратный. Для этого нужно инвертировать все разряды кроме двух старших – знаковых. Но, поскольку, операцию инвертирования отдельных разрядов сделать достаточно сложно, инвертируются все разряды, а на два входа регистра, предназначенных для знаковых разрядов числа, всегда подаются нули. В случае если знаковые разряды равны 0, то на регистр подаются тоже нули, на выходе получается ноль, знаковые разряды не изменились. В случае если знаковые разряды равны 1, то в регистр подаются нули, которые потом инвертируются в 1, знаковые разряды снова не изменились.
При возникновении переноса во втором цикле суммирования на регистры будет подана сумма. Очевидно, что даже, если сумма будет отрицательной инвертировать ее не надо, поскольку она и так уже находится в обратном коде. Для этого введен вход INV разрешающий или запрещающий инвертирование.
3.5 Блок преобразований кода
Блок преобразований кода предназначен для представления результата последовательного суммирования в коде Грея и формирования управляющих сигналов для семисегментных индикаторов. 16-ти разрядное число поступает в данный блок в параллельной форме. Затем оно сохраняется в два 8-ми разрядных регистра DD47 и DD48 с приходом управляющего сигнала C на соответствующие входы регистров. Сигнал C формируется из импульсного сигнала R (сигнал окончания сложения), с помощью схемы выделения переднего фронта, образованной элементами DD26:4, DD26:5, DD26:6, DD49:1, DD49:2 и DD26:1. Для разрешения приема данных на входы L регистров подается уровень логического нуля.
Преобразование 16-ти разрядного числа происходит на 14 элементах ИСКЛЮЧАЮЩЕЕ ИЛИ (DD41:2…DD52:3), при этом знаковый разряд (SN) числа не участвует в преобразовании.
В данном блоке исходное число в двоичном коде также преобразуется в двоично-десятичный код с помощью схемы, составленной из преобразователей двоичного кода в двоично-десятичный (DD53, DD57…DD69). Двоично-десятичный код необходим для формирования управляющих сигналов семисегментных индикаторов. Данные сигналы формируются с помощью дешифраторов DD54, DD55, DD56, DD70, DD71, обладающих собственной памятью. Память необходима для сохранения управляющих сигналов на выходах дешифраторов (т.е. сохранение индикации) до прихода следующей комбинации входных сигналов.
Данные в коде Грея и управляющие сигналы семисегментных индикаторов поступают на выход блока преобразований кода.
Следующий этап сложения – анализ последнего переноса. Поскольку перенос подавался на сумму через D‑триггер значение последнего переноса сохранилось на этом триггере. Значение последнего переноса и сигнал завершения операции сложения подается на элемент И (DD36:1). В случае если сложение завершилось и последний перенос равен 1, на выходе этого элемента получается 1 – признак переноса. Признак переноса подается на блок выбора, сообщая, что в данном случае будут складываться не начальные операнды, а их сумма с единицей. После этого сигнал INV – разрешение инверсии обнуляется, т.е. даже если сумма будет отрицательной ее не надо преобразовать в обратный код, поскольку она и так уже находится в обратном коде. Заключительный этап работы признака переноса – подача его на блок опорных частот и повторный запуск сложения.
Об окончания сложения свидетельствует импульсный сигнал R из блока вывода и нулевой последний перенос. В случае если эти условия выполняются, результат преобразуется в прямой код и подается на выход вместе с признаком переполнения и сигналом завершения операции сложения. До формирования сигнала завершения все сигналы на выходе равны нулю. Результат сложения поступает в блок преобразований кода, на выходе которого формируются код Грея и сигналы управления семисегментными индикаторами.
В схеме предусмотрен контроль по модулю два, который реализован на триггерах DD72, DD73 и двух элементах ИСКЛЮЧАЮЩЕЕ ИЛИ DD41:2, DD41:3.
Заключение
В результате выполненной работы был разработан 16-ти разрядный последовательный сумматор двоичных чисел с фиксированной запятой. Сумматор полностью отвечает требованиям, заданным в техническом задании. В работе были использованы элементы ТТЛ логики маломощных серий. Разработаны средства встроенного контроля работы сумматора методом контроля по модулю два. Обеспечено преобразование результата суммирования в код Грея и формирование управляющих сигналов семисегментных индикаторов для отображения суммы в десятичном представлении.
Список литературы
1. Аванесян Г.Р., Левшин В.П. Интегральные микросхемы ТТЛ, ТТЛШ: Справочник. – М.: Машиностроение, 1993. – 256 с.: ил.
2. Пухальский Г.И., Новосельцева Т.Я. Проектирование дискретных устройств на интегральных микросхемах: Справочник. – М.: Радио и связь, 1990. – 304 с.: ил.
3. Угрюмов Е.П. Цифровая Схемотехника: Учеб. пособие для вузов. – 2‑ое изд., перераб. и доп. – СПб.: БХВ-Петербург, 2004. – 800 с.: ил.
4. Файзулаев Б.Н., Тарабрин Б.В. Применение интегральных микросхем в электронной вычислительной технике: Справочник. – М.: Радио и связь, 1986.
5. Шило В.Л. Популярные цифровые микросхемы: Справочник. – М.: Радио и связь, 1988.
Московский государственный технический университет им. Н.Э. Баумана
Калужский филиал
Факультет электроники, информатики и управления
Кафедра «Компьютерные системы и сети»
Пояснительная записка к курсовой работе по дисциплине
«Схемотехника ЭВМ»
"Последовательный 16-ти разрядный сумматор"
Калуга 2007
Техническое задание
Разработать 16-ти разрядный последовательный сумматор двоичных чисел с фиксированной запятой. Обеспечить преобразование результата в код Грея и индикацию в десятичном коде. Предусмотреть средства встроенного контроля. В качестве элементной базы выбрать серию с низкой потребляемой мощностью.
Содержание
Введение
1. Теоретическая часть
1.1 Классификация существующих сумматоров
1.2 Последовательный сумматор
1.3 Контроль работы сумматора
1.4 Преобразования кода
2. Элементная база
2.1 Выбор и обоснование элементной базы
2.2 Использованные элементы
3. Схемотехническое проектирование
3.1 Блок опорных частот
3.2 Блок выбора числа
3.3 Блок ввода числа
3.4 Блок вывода числа
3.5 Блок преобразований кода
3.6 Сумматор
Заключение
Список литературы
Введение
В основу любого арифметико-логического устройства ЭВМ входит сумматор. Он выполняет операции сложения и вычитания, причем операция вычитания в сумматоре представляется, как операция сложения с отрицательным числом. Сумматор используется, как составная часть более сложных арифметико-логических устройств.
В зависимости от способа работы сумматоры бывают параллельные и последовательные. В параллельном сумматоре сложение всех разрядов происходит практически одновременно, а в последовательном – по очереди от младших разрядов к старшим. Может производиться сложение чисел, как с фиксированной, так и с плавающей запятой.
Одна из важных характеристик сумматора – разрядность. Разряды подразделяются на знаковые и цифровые. Знаковые разряды содержат знак числа, цифровые содержат число, над которым выполняется операция сложения.
Существуют три основных кода представления чисел: прямой, обратный и дополнительные. При переводе из одного кода в другой изменяются только цифровые разряды. Знаковые разряды остаются постоянными в любом коде.
В данной работе был спроектирован последовательный 16-ти разрядный сумматор (2 знаковых разряда и 14 цифровых) с фиксированной запятой. Сумматор выполняет сложение чисел в обратном коде. В случае, если после сложения знаковые разряды отличаются, фиксируется переполнение. В процессе схемотехнического проектирования сумматора были учтены такие особенности устройств последовательного действия, как подача синхросигнала и согласование временных задержек.
1. Теоретическая часть
1.1 Классификация существующих сумматоров
Сумматор – это электронный узел, предназначенный для выполнения микрооперации арифметического сложения (суммирования) двух чисел (слов). При сложении двух чисел, представленных в виде двоичных кодов A (a0, a1,… an) и B (b0, b1,… bn) образуется сумма S (s0, s1,… sn). Значение i-x разрядов образуется в соответствии с правилом:
Si=ai+bi+pi-1; pi=0 – при (ai+bi+pi-1) < q, Si=ai+bi+pi-1; pi=1 – при (ai+bi+pi-1) >= q,
где: Si – сумма в i‑м разряде, pi-1 – перенос из соседнего младшего разряда, q – основание системы счисления.
Сумматоры классифицируют:
– По принятой системе счисления и кодирования различают: двоичные, двоично-десятичные, десятичные и др;
– В зависимости от количества входов и выходов бывают: сумматоры по модулю 2, полусумматоры и полные сумматоры;
– По способу организации процесса суммирования одноразрядной суммирующей схемы: комбинационного типа, накапливающего типа и комбинированные;
– По способу организации цепей переноса между разрядами: с последовательным, с параллельным, с групповым и с одновременным переносами;
– По способу обработки многоразрядных чисел различают: последовательные, параллельные и комбинированные.
Для сложения многоразрядных чисел сумматор представляет собой набор одноразрядных сумматоров, имеющих входы для слагаемых и переноса из младшего разряда и выходы суммы и переноса в старший разряд.
1.2 Последовательный сумматор
Сумматор для последовательных операндов содержит всего один одноразрядный сумматор, обрабатывающий числа последовательно разряд за разрядом, начиная с младшего. Сложив младшие разряды (a0 и b0), одноразрядный сумматор вырабатывает сумму (s0) для младшего разряда результата и перенос (c0), который запоминается на один такт.
В следующем такте складываются вновь поступившие разряды слагаемых (a1 и b1) с переносом из младшего разряда (с0) и т.д. Условная схема последовательного n‑разрядного сумматора (рис. 1), помимо одноразрядного двоичного сумматора, содержит сдвигающие регистры слагаемых и суммы, а также триггер, запоминающий перенос. Регистры и триггер тактируются сигналом ТИ.
Рис. 1. Схема последовательного n‑разрядного сумматора.
1.3 Контроль работы сумматора
Для контроля работы сумматоров часто применяют контроль по модулю два. Суть метода заключается в следующем:
пусть имеются два складываемых числа (X и Y) и их сумма (S):
определим код четности суммы:
заменим
Обозначив контрольные коды четности буквами ks, kx, ky и kp:
Полученное тождество и определяет сущность контроля сумматора, контроля сложения двух чисел. Код четности суммы равен сумме по модулю два контрольных кодов слагаемых и контрольного кода переноса. Важным выводом из полученного контрольного соотношения является необходимость формирования и учета контрольного кода переноса.
1.4 Преобразования кода
Преобразование двоичного числа в код Грея производится в соответствии с табл. 1.
Таблица 1
Двоичные числа | Числа в коде Грея |
0 0 0 0 | 0 0 0 0 |
0 0 0 1 | 0 0 0 1 |
0 0 1 0 | 0 0 1 1 |
0 0 1 1 | 0 0 1 0 |
0 1 0 0 | 0 1 1 0 |
0 1 0 1 | 0 1 1 1 |
0 1 1 0 | 0 1 0 1 |
0 1 1 1 | 0 1 0 0 |
1 0 0 0 | 1 1 0 0 |
1 0 0 1 | 1 1 0 1 |
1 0 1 0 | 1 1 1 1 |
1 0 1 1 | 1 1 1 0 |
1 1 0 0 | 1 0 1 0 |
1 1 0 1 | 1 0 1 1 |
1 1 1 0 | 1 0 0 1 |
1 1 1 1 | 1 0 0 0 |
где: i =1,2,…, n. – номера разрядов, считая справа налево;
j – количество единиц слева от данного разряда с номером i. Такая интерпретация позволяет сформулировать правило преобразования любого двоичного числа в код Грея:
1. самая старшая значащая цифра (единица) числа в коде Грея совпадает с самой старшей значащей цифрой этого же числа в двоичном коде;
2. цифра в любом другом, более младшем разряде числа в коде Грея:
а) совпадает с соответствующей цифрой числа в двоичном коде, если слева от данной цифры в коде Грея имеется четное количество единиц;
б) совпадает с отрицанием соответствующей цифры в двоичном коде, если слева от данной цифры в коде Грея имеется нечетное количество, единиц; т.е.:
Правила составления преобразователя двоичного кода в двоично-десятичный код: веса разрядов входных сигналов всех преобразователей кодов должны находится в отношении 1:2:4:8, так как каждый преобразователь кодов преобразует только один двоичный разряд в двоично-десятичный разряд (вес 8 изменяется на вес 5), то преобразователь двоичного кода в двоично-десятичный код имеет пирамидальную структуру; построение продолжается до тех пор, пока не будут получены веса
Часть схемы имеет 5 входов и 6 выходов и выполняет функцию:
X+3, если 5<X<9
X+6, если 10<X<14
Y= X+9, если 15<X<19
X+12, если 20<X<24
X+15, если 25<X<29
X+18, если 30<X<31
Остальная часть схемы также может быть разбита на узлы.
2. Элементная база
2.1 Выбор и обоснование элементной базы
В качестве основной серии была выбрана К555. Микросхемы К555 представляют собой цифровые маломощные схемы, выполненные по биполярной технологии на основе транзисторно-транзисторной логики с диодами Шотки (ТТЛШ). В состав этой серии входит функционально полный набор устройств цифровой обработки информации, включая ЛЭ, арифметические устройства, триггеры, счетчики, регистры хранения и сдвига, шифраторы, дешифраторы, мультиплексоры, магистральные элементы и др. Микросхемы полностью совместимы с ИС К133, К155, КМ155 по логическим уровням, напряжению питания, помехоустойчивости и при одинаковом быстродействии потребляют в 5 раз меньшую мощность от источника питания на один базовый ЛЭ. Логические уровни напряжения составляют не более 0,4 В при токе нагрузки 8 мА для низкого уровня и не менее 2,4 В - для высокого уровня (для ряда микросхем высокий уровень напряжения 2,5 В). Помехоустойчивость схем – не менее 0,3 В, нагрузочная способность не менее 20 ИС.
Конструктивно-технологически ИС К555 выполнены по планарно-эпитаксиальной технологии с изоляцией p-n переходами, имеют унифицированные корпуса, число выводов которых составляет 14..28.Из-за отсутствия в серии К555 некоторых ИС дополнительно были взяты элементы из следующих серий: К155, К514 и К1533.
2.2 Использованные элементы
1. Логический элемент НЕ (К555ЛН1 – 6 элементов в корпусе) УГО:
Таблица истинности
X | Y |
0 | 1 |
1 | 0 |
Таблица истинности
X1 | X2 | Y |
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
Таблица истинности
X1 | X2 | X3 | Y |
0 | 0 | 0 | 1 |
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 | 0 |
Таблица истинности
X1 | X2 | Y |
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
Таблица истинности
X1 | X2 | X3 | Y |
0 | 0 | 0 | 0 |
0 | 0 | 1 | 1 |
0 | 1 | 0 | 1 |
0 | 1 | 1 | 1 |
1 | 0 | 0 | 1 |
1 | 0 | 1 | 1 |
1 | 1 | 0 | 1 |
1 | 1 | 1 | 1 |
Таблица истинности
X | Y |
0 | 0 |
1 | 1 |
Таблица истинности
X1 | X2 | Y |
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
|
При работе в асинхронном режиме перевод триггера в единичное и нулевое состояния осуществляется по входам S и R соответственно. При синхронном управлении, когда используются входы J и K, смена состояний совершается по положительному фронту тактового импульса на входе C. Вход K является инверсным.
9. D‑триггер (К555ТМ2 – 2 элемента в корпусе) УГО:
|
Триггер функционирует как в синхронном, так и в асинхронном режимах. В последнем случае управление осуществляется по входам S и R. При работе в синхронном режиме
10. Восьмиразрядный регистр сдвига с последовательным выходом (К555ИР10 – 1 элемент в корпусе) УГО:
Входная информация, представленная в параллельном коде на входах D, записывается в регистр асинхронно при
11. Восьмиразрядный регистр сдвига с параллельным выходом (К555ИР8 – 1 элемент в корпусе) УГО:
Запись и сдвиг информации осуществляются под действием положительного фронта тактового импульса на входе C. На входе обнуления R в этом режиме устанавливают уровень логической единицы, а информацию подают на любой из входов D1, D2. Причем на свободном входе D фиксируют уровень логической единицы. Асинхронное обнуление регистра производится подачей уровня логического нуля на вход R.
12. Восьмиразрядный регистр с параллельными входом и параллельным выходом (К555ИР27 – 1 элемент в корпусе) УГО:
Ввод данных происходит синхронно, по положительному фронту тактового импульса при
13. Четырехразрядный асинхронный счетчик (К555ИЕ5 – 1 элемент в корпусе) УГО:
Содержит два независимых делителя: на два и на восемь. Для образования делителя на шестнадцать выход Q0 соединяют с входом C2. Счет ведется в натуральном двоичном коде. Счет происходит по отрицательным фронтам сигналов C1 и C2. Асинхронное обнуление наступает при R1=R2=1.
14. Полный одноразрядный сумматор (К555ИМ5 – 2 элемента в корпусе) УГО:
Выполняет суммирование одноразрядных чисел. Результат выдается на выходе S0 с образованием переноса на выходе C1.
15. Двухканальный четырехразрядный стробируемый мультиплексор (К555КП16 – 1 элемент в корпусе) УГО:
Функционирует в соответствии с таблицей истинности
A | | DO3 | DO2 | DO1 | DO0 |
x | 1 | 0 | 0 | 0 | 0 |
0 | 0 | DI30 | DI20 | DI10 | DI00 |
1 | 0 | DI31 | DI21 | DI11 | DI01 |
ИС построена на основе программируемого в процессе производства ПЗУ емкостью 256 бит. Одна структура позволяет преобразовывать шестиразрядный двоичный код в двухдекадный двоично-десятичный, с неполной второй декадой.
17. Дешифратор преобразователь с памятью (514ИД4А – 1 элемент в корпусе) УГО:
Наличие внутренней регистровой памяти позволяет хранить входную информацию после снятия данных с входа DI. Фиксация данных происходит при
3. Схемотехническое проектирование
3.1 Блок опорных частот
Поскольку сложение происходит последовательно, то сигналы надо считывать в определенные промежутки времени. Для этого вместе с информационным сигналом нужно подавать сигнал «тактирующий». Оба сигнала будут идти на соответствующие входы триггера, что обеспечит синхронную подачу информации. Нужно также указывать какое действие выполнять в каждом такте в зависимости от его номера, т.е. 1‑й, 2‑й и так далее до шестнадцатого. Роль указателя выполняет 4‑х разрядный двоичный счетчик: подавая 4 выходных сигнала счетчика на элемент «И» образуются единицы или нули на выходах блока опорных частот для соответствующего номера такта в том случае, если тактовый сигнал подается синхронно с сигналами счетчика.
Блок опорных частот – функциональный блок, который падаёт 16 тактовых сигналов синхронно с сигналами счетчика от 0 до 15. Фактически он является управляющим устройством сумматора. Логика работы блока опорных частот основывается на элементе ИЛИ-НЕ (DD2:1). На один из входов элемента ИЛИ-НЕ подается управляющий сигнал X, другой вход соединяется с выходом элемента. Для запуска счетчика на управляющие входы (C1, C2) подается 10. Причем импульс 1 должен чуть превышать задержку элемента ИЛИ-НЕ. Тогда после подачи на вход Х единицы на выходе ИЛИ-НЕ установится ноль. К тому времени как Х снова обратится в ноль, получится ситуация, когда оба входа ИЛИ-НЕ равны нулю, тогда на выходе через определенную задержку, составляющую пол такта, установится 1, а значит и на входе тоже установится 1. Но раз на входе 1, тогда на выходе снова через следующие пол такта установится 0. Для повышения устойчивости единицы блока опорных частот на выходе ИЛИ-НЕ устанавливается повторитель DD4:1.
Тактирующий импульс будет продолжаться до бесконечности, если не создать блокировки. Для этого используется третий вход ИЛИ-НЕ (DD2:1). Как только выполнится 14 счет, на третий вход ИЛИ-НЕ подается 1, и тактирующий сигнал блокируется, D‑триггер DD3:2 не позволит ему снова установиться в 0. Поскольку счетчик имеет задержку, превышающую один такт, то он успеет выполнить также и 15-й счет.
В начальный момент времени пока на X еще не подалась 1, на выходах ИЛИ-НЕ будет неопределенное состояние, выходы счетчика и тактирующий сигнал, тоже имеют неопределенное состояние. Для того чтобы не пропустить случайный сигнал на выход блока опорных частот, используется серия элементов И (DD7:2, DD7:3, DD7:4, DD8:1), управляемых D‑триггером DD3:1. Если импульс X еще не подан – на выходе D‑триггера сохраняется 0, и, следовательно, на выходах элементов И тоже будет 0 независимо от состояния другого входа этих элементов. Как только подается импульс единицы, через определенную задержку на вход И подается 1 и тогда на выходе будут значения сигналов, которые уже успели установиться в определенные состояния. Вместе с номером очередного такта (CN0, CN1, CN2, CN3) на выход (CLK) блока опорных частот выходит тактирующий сигнал для основных элементов последовательного сумматора.
3.2 Блок выбора числа
Блок выбора строится на селекторах-мультиплексорах DD3, DD4, DD5, DD6 (DD8, DD9, DD10, DD11), которые содержат два управляющих сигнала: A, OE. В случае если OE=1, то на выходах мультиплексора всегда ноль, если OE=0, то сигналы на выходах зависит от состояния A. Если A=0, то на выходы мультиплексора подаются сигналы DI00, DI10, DI20, DI30, если A=1, то – DI01, DI11, DI21, DI31.Выход OE выведен на землю, сигнал A соединен с прямым выходом триггера DD2:2 (DD7:1). В случае подачи логического нуля на вход NX, триггер устанавливается в 0, и на выходы подаются сигналы DI00, DI10, DI20, DI30, если подан импульс PR, триггер устанавливается в 1 и на выход подаются значения входов DI01, DI11, DI21, DI31.
3.3 Блок ввода числа
Основной целью блока ввода является перевод числа подающегося параллельно в прямом коде в последовательную форму обратного кода. Поскольку регистры DD22, DD23 (DD29, DD30) восьмиразрядные, а каждое число-операнд шестнадцатиразрядное, то для правильности извлечения числа из регистров, используется следующий метод: сигналы с обоих регистров подаются на один элемент ИЛИ и организовывается управление регистрами так, чтобы первые 8 тактов подавался сигнал с выхода младшего регистра, а сигнал с выхода старшего регистра оставался нулевым, вторые 8 тактов подавался сигнал с выхода старшего регистра, а сигнал с выхода младшего был бы ноль.
Регистр имеет пять управляющих сигналов DR, L, R, C1, C2. В случае если сигнал DR равен 0, то после сдвига регистр заполняется нулями и после 8‑ми тактов на выходе всегда будет 0, поэтому DR устанавливается на обоих регистрах в 0. Нулевое значение сигнала С1 необходимо для, того чтоб регистры могли реагировать на тактирующий сигнал, поэтому С1=0. Остается только три сигнала управляя, которыми можно осуществлять процесс загрузки числа.
– R – если сигнал 0, то на выходе всегда 0.
– C2 – тактирующий сигнал, при подаче которого происходит либо сдвиг, либо загрузка в зависимости от состояния L.
– L – если сигнал 0, то происходит загрузка числа, если 1 – сдвиг.
На выход регистра подается младший разряд, сдвиг происходит, тоже в сторону младшего разряда. Это позволяет осуществлять подачу числа от младших разрядов к старшим.
Т. к. сигнал вначале надо загрузить, а только потом начать сдвигать, для обоих регистров, действует принцип, что 1 на L подается после подачи первого тактирующего сигнала, и до подачи второго. С первым тактом происходит загрузка числа в регистр, со второго начинается его сдвиг.
С первыми восемью тактами будет подаваться сигнал только с младшего регистра, поскольку сигнал R старшего регистра установиться в 1 только после 8‑го такта. Со вторыми восемью тактами будет подаваться только сигнал со старшего регистра, поскольку младший регистр за счет нулевого DR успеет к этому моменту полностью обнулиться.
Во время перевода из параллельной формы в последовательную, необходимо также перевести число из прямого кода в обратный. Для этого нужно инвертировать все разряды кроме двух старших – знаковых. Но, поскольку, операцию инвертирования отдельных разрядов сделать достаточно сложно, инвертируются все разряды, а на два входа регистра, предназначенных для знаковых разрядов числа, всегда подаются нули. В случае если знаковые разряды равны 0, то на регистр подаются тоже нули, на выходе получается ноль, знаковые разряды не изменились. В случае если знаковые разряды равны 1, то в регистр подаются нули, которые потом инвертируются в 1, знаковые разряды снова не изменились.
При возникновении переноса во втором цикле суммирования на регистры будет подана сумма. Очевидно, что даже, если сумма будет отрицательной инвертировать ее не надо, поскольку она и так уже находится в обратном коде. Для этого введен вход INV разрешающий или запрещающий инвертирование.
3.4 Блок вывода числа
Основная задача блока вывода преобразование числа из последовательной формы в параллельную. Регистры DD34, DD35 блока вывода содержат два информационных сигнала: D1, D2, и два управляющих: R, C. В случае если R=0, то на выходе всегда 0, поэтому на входы R обоих регистров подается логическая единица. В случае подачи тактового сигнала на вход C, значения на выходах регистра сдвигаются в сторону младшего разряда, а в старший разряд добавляется значение информационных сигналов. Тактовые сигналы подаются на регистры через элементы И DD28:3, DD28:4. В случае если на второй вход И подается 1, то тактовый сигнал пропускается если 0, то тактовый сигнал равен 0. Второй вход элемента И для каждого регистра соединен с соответствующим JK‑триггером DD33:1, DD33:2. В начальном состоянии на выходе триггера младшего разряда 1, старшего – 0. Поэтому до 8‑го такта информационный сигнал загружается только на младший регистр. После восьмого такта состояния обоих триггеров меняется на противоположные, и информационный сигнал загружается только на старший регистр.3.5 Блок преобразований кода
Блок преобразований кода предназначен для представления результата последовательного суммирования в коде Грея и формирования управляющих сигналов для семисегментных индикаторов. 16-ти разрядное число поступает в данный блок в параллельной форме. Затем оно сохраняется в два 8-ми разрядных регистра DD47 и DD48 с приходом управляющего сигнала C на соответствующие входы регистров. Сигнал C формируется из импульсного сигнала R (сигнал окончания сложения), с помощью схемы выделения переднего фронта, образованной элементами DD26:4, DD26:5, DD26:6, DD49:1, DD49:2 и DD26:1. Для разрешения приема данных на входы L регистров подается уровень логического нуля.
Преобразование 16-ти разрядного числа происходит на 14 элементах ИСКЛЮЧАЮЩЕЕ ИЛИ (DD41:2…DD52:3), при этом знаковый разряд (SN) числа не участвует в преобразовании.
В данном блоке исходное число в двоичном коде также преобразуется в двоично-десятичный код с помощью схемы, составленной из преобразователей двоичного кода в двоично-десятичный (DD53, DD57…DD69). Двоично-десятичный код необходим для формирования управляющих сигналов семисегментных индикаторов. Данные сигналы формируются с помощью дешифраторов DD54, DD55, DD56, DD70, DD71, обладающих собственной памятью. Память необходима для сохранения управляющих сигналов на выходах дешифраторов (т.е. сохранение индикации) до прихода следующей комбинации входных сигналов.
Данные в коде Грея и управляющие сигналы семисегментных индикаторов поступают на выход блока преобразований кода.
3.6 Сумматор
Сумматор запускается подачей импульса на сигнал X. В этот момент происходит обнуление всех регистров и триггеров. Т. е. устройство устанавливается в начальное состояние. Сигнал X запускает Блок опорных частот и сообщает блоку выбора числа о том, что происходит подача начальных операндов A и B и разрешено преобразование чисел в обратный код (единица на сигнал INV). После чего операнды поступают на блок ввода числа. Под воздействием тактовых сигналов и управляющих сигналов счетчика, числа преобразуются из параллельного кода в последовательный. Полученные последовательные сигналы синхронно с тактовым сигналом подаются на D‑триггеры, а с выходов D‑триггеров на одноразрядный сумматор DD32:1. Такая подача позволяет синхронизировать информационный сигнал по тактовому. На выходе сумматора получается сумма и перенос, перенос подается обратно на вход сумматора, также через D‑триггер вместе с тактовым сигналом. Начальное значение переноса устанавливается в ноль вместе с подачей импульса на сигнал X. На выходе S0 одноразрядного сумматора получается сумма в последовательном коде. В результате получается синхронная подача суммы, тактирующего сигнала и управляющих сигналов счетчика на блок вывода. Блок вывода преобразует сумму из последовательной формы в параллельную, после чего, сообщает о завершение операции сложения (сигнал R).Следующий этап сложения – анализ последнего переноса. Поскольку перенос подавался на сумму через D‑триггер значение последнего переноса сохранилось на этом триггере. Значение последнего переноса и сигнал завершения операции сложения подается на элемент И (DD36:1). В случае если сложение завершилось и последний перенос равен 1, на выходе этого элемента получается 1 – признак переноса. Признак переноса подается на блок выбора, сообщая, что в данном случае будут складываться не начальные операнды, а их сумма с единицей. После этого сигнал INV – разрешение инверсии обнуляется, т.е. даже если сумма будет отрицательной ее не надо преобразовать в обратный код, поскольку она и так уже находится в обратном коде. Заключительный этап работы признака переноса – подача его на блок опорных частот и повторный запуск сложения.
Об окончания сложения свидетельствует импульсный сигнал R из блока вывода и нулевой последний перенос. В случае если эти условия выполняются, результат преобразуется в прямой код и подается на выход вместе с признаком переполнения и сигналом завершения операции сложения. До формирования сигнала завершения все сигналы на выходе равны нулю. Результат сложения поступает в блок преобразований кода, на выходе которого формируются код Грея и сигналы управления семисегментными индикаторами.
В схеме предусмотрен контроль по модулю два, который реализован на триггерах DD72, DD73 и двух элементах ИСКЛЮЧАЮЩЕЕ ИЛИ DD41:2, DD41:3.
Заключение
В результате выполненной работы был разработан 16-ти разрядный последовательный сумматор двоичных чисел с фиксированной запятой. Сумматор полностью отвечает требованиям, заданным в техническом задании. В работе были использованы элементы ТТЛ логики маломощных серий. Разработаны средства встроенного контроля работы сумматора методом контроля по модулю два. Обеспечено преобразование результата суммирования в код Грея и формирование управляющих сигналов семисегментных индикаторов для отображения суммы в десятичном представлении.
Список литературы
1. Аванесян Г.Р., Левшин В.П. Интегральные микросхемы ТТЛ, ТТЛШ: Справочник. – М.: Машиностроение, 1993. – 256 с.: ил.
2. Пухальский Г.И., Новосельцева Т.Я. Проектирование дискретных устройств на интегральных микросхемах: Справочник. – М.: Радио и связь, 1990. – 304 с.: ил.
3. Угрюмов Е.П. Цифровая Схемотехника: Учеб. пособие для вузов. – 2‑ое изд., перераб. и доп. – СПб.: БХВ-Петербург, 2004. – 800 с.: ил.
4. Файзулаев Б.Н., Тарабрин Б.В. Применение интегральных микросхем в электронной вычислительной технике: Справочник. – М.: Радио и связь, 1986.
5. Шило В.Л. Популярные цифровые микросхемы: Справочник. – М.: Радио и связь, 1988.