О САЙТЕ
Добро пожаловать!

Теперь вы можете поделиться своей работой!

Просто нажмите на значок
O2 Design Template

ФЭА / АИТ / Полные сумматоры

(автор - student, добавлено - 11-01-2014, 11:43)

 

СКАЧАТЬ:  uca-2.zip [8,25 Mb] (cкачиваний: 22)

 

 

Полные сумматоры

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

Полным сумматором называется схема, которая может складывать три двоичных числа.

Вар

С

В

А

 

Z

1

0

0

0

0

0

2

0

0

1

0

1

3

0

1

0

0

1

4

0

1

1

1

0

5

1

0

0

0

1

6

1

0

1

1

0

7

1

1

0

1

0

8

1

1

1

1

1

Рис. 1

Схема полного сумматора проектируется по правилам синтеза схем. Полный сумматор имеет три входа – для каждого складываемого двоичного числа. Назовем их А, В и С. Выходы называются, как и в полусумматоре, Z и .

Таблица истинности полного сумматора получается из правил сложения. Она представлена на рис. 1. В случае 1 выходы Z и  равны нулю, так как все входные слагаемые являются нулями. В случае 2 в результате сложения 0+0+1 Z=1 и  =0. В случае 4 в результате сложения 0+1+1 получается Z=0 и  =1. Рассмотрим еще вариант 8. Сложение 1+1+1 даст в результате Z=1 и  =1. Нормальная форма ИЛИ для Z состоит из четырех полных конъюнкций:

 

Нормальная форма ИЛИ для :

 

Уравнение для Z дольше не упрощается. Для  с помощью карты Карно получают упрощенное уравнение:

 

Эти уравнения приводят к схеме на рис. 2.

Полный сумматор может быть построен из двух полусумматоров и элемента ИЛИ.

Порядок выполнения примера 1.

1. Запускаем программу Logic Designer. Выбираем File – New Project – STARDOM NPAS                                                                                                          

 

 

2. Установим связь с контроллером. Для этого необходимо выбрать программу Resource Configurator. Выбираем FileConnectionOK.

 

3. Возвращаемся в программу Logic Designer. Открываем диалоговое окно Defining device label variables, для этого необходимо произвести двойной щелчок по папке Device Label Definition.

 

 Затем в Device label name печатаем имена и выбираем категории.

 

4. В окне Project Tree Window выбираем Target Setting. Двойным щелчком открываем окно. Затем вводим IP Address.

 

5. Добавление программы. Для этого необходимо щелкнуть правой кнопкой мыши по папке Logical POUs, а затем выбрать InsertProgram.

 

В графе Name печатаем имя.

 

Убедитесь что в иерархической структуре проекта создался POU с вашим именем. Двойным щелчком открываем окно Summator.

 

6. В окне Edit Wizard выбираем 3 элементa NPAS_DI_STS.

 

7. Затем добавляем элемент AND. Щелкаем правой кнопкой мыши на элементе, выбираем Object Properties.

 

8. Выделяем IN2 и нажимаем Duplicate один раз.

 

Появится еще один вход IN3.

 

9. Создаем 4 элемента AND с четырмя входами и 3 элемента с тремя входами.

 

10. Добавляем 2 элемента NPAS_DO_STS.

 

11. Щелкаем правой кнопкой мыши на элементе AND, выбираем Object Properties. Появляется окно:

 

Ставим галочки на входах IN2 и IN3. Нажимаем ОК.

 

Получаем:

 

На следующем элементе AND также щелкаем правой кнопкой мыши и выбираем Object Properties. Ставим галочки на входах IN1 и IN3.

 

Получаем:

 

На третьем элементе ставим галочки на входах IN1 и IN2.

 

Получаем:

 

12. Открываем окно Variable Properties, двойным щелчком на входе IN элемента NPAS_DI_STS

 

13. Связываем элементы между собой с помощью кнопки    и добавляем 2 элемента OR.

 

14. Щелкаем правой кнопкой мыши на элементе OR и выбираем Object Properties.

 

Добавляем еще два входа.

 

Получаем:

 

15. На следующем элементе OR добавляем один вход.

 

 

Получаем:

 

16. Связываем все элементы с помощью кнопки    как показано на рисунке. Открываем окно Variable Propertios, двойным щелчком на выходе OUT.

 

Щелкаем правой кнопкой мыши на Tasks0:CYCLIC – Insert- Program instance.

 

 

Вводим Summator1, наимаем ОК.

 

17.Проверяем программу на наличие ошибок: BuildRebuild Project.

 

Если ошибок нет,то переходим к п. ,а если есть,то нажимаем на Errors и исправляем ошибки.

  1. Запускаем программу следующим образом: Online – Project Control – Stop – Reset – Download – Delete on Target. Затем сново Download – Download – Cold. Online – Debug.

 

19. Правой кнопкой мыши щелкаем на линии. Появляется окно, выбираем Online Layout

 

 

Ставим галочку напротив строки show parameter values.

 

 

 

20. Построение временных характеристик с помощью Logic Analyzer. В этом режиме правой кнопкой мыши щелкаем на входах I_D_09, I_D_10, I_D_11 и на выходах Q_D_24 и Q_D_32. Выбираем пункт Add to Logic Analyzer. Появляется окно Logic Analyzer. Online – Logic Analyzer – Start Recording.

 

 

 

 

Получаем:

 

 

 

 

 

 

Деширатор

Для управления различными модулями требуются так называемые адреса. В цифровой технике под адресом понимают последовательность 1-0 определенной длины, т. е. бинарное слово с установленным количеством битов. Существуют, например, 2-битовые адреса и т. д.

Дешифратор является схемой с определенным количеством выходов. На выходы, выбранные через адресные входы, подается 1-сигнал.

2-битовые дешифраторы.

Если у деширатора четыре выхода, то требуется два адресных входа. Такой дешифратор управляется 2-битовым адресом. С 2 битами можно получить различные адреса (рис. 3). Схема 2-битового деширатора показана на рис. 4.

Порядок выполнения примера 2.

1. Запускаем программу Logic Designer. Выбираем File – New Project – STARDOM NPAS.

 

2. Возвращаемся в программу Logic Designer. Открываем диалоговое окно Defining device label variables, для этого необходимо произвести двойной щелчок по папке Device Label Definition. Затем в Device label name печатаем имена и выбираем категории.

 

3. Добавление программы. Для этого необходимо щелкнуть правой кнопкой мыши по папке Logical POUs, а затем выбрать InsertProgram. В графе Name печатаем имя. Убедитесь что в иерархической структуре проекта создался POU с вашим именем. Двойным щелчком открываем окно Deshifrator.

 

4. В окне Edit Wizard выбираем 2 элемента NPAS_DI_STS, 4 элемента AND и 4 элемента NPAS_DO_STS.

 

5. Щелкаем правой кнопкой мыши на первом элементе AND, выбираем Object Properties. Ставим галочки на входах IN1 и IN2.  

 

Получаем:

 

6. На следующем элементе отмечам инверсный вход на IN2.

 

 

7. На третьем элементе, на входе IN1

 

 

8. Открываем окно Variable Properties, двойным щелчком на входе IN элемента.

 

Получаем:

 

9. Открываем окно Variable Propertios, двойным щелчком на выходе OUT.

 

Получаем:

 

10. Связываем элементы с помощью кнопки .

 

11. Щелчком правой кнопкой мыши по Task0, вызываем окно Insert, вводим новое имя.

 

Получаем:

 

12. Проверяем программу на наличие ошибок: BuildRebuild Project.

 

Если ошибок нет,то переходим к п.14,а если есть,то нажимаем на Errors и исправляем ошибки.

13.Запускаем программу следующим образом: OnlineProject ControlStopResetDownloadDelete on Target. Затем сново DownloadDownloadCold. OnlineDebug.

 

Результат:

 

Переключая на контроллеры тумблеры, тем самым мы изменяем входные сигналы с 0 на 1 и наоборот.

 

 

 

14. Построение временных характеристик с помощью Logic Analyzer. В этом режиме правой кнопкой мыши щелкаем на входах I_D_09, I_D_10, I_D_11 и на выходе Q_D_24. Выбираем пункт Add to Logic Analyzer. Появляется окно Logic Analyzer. Online – Logic Analyzer – Start Recording.

 

 

 

 

Получаем:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Счетчики

    Счетом – или точнее сказать счетом на увеличение – является непрерывное прибавление 1 к предыдущему числу. К начальному значению, которое часто равно нулю, снова и снова прибавляется 1 до завершения процесса счета.

    Счетом на уменьшение является непрерывное вычитание 1. Счет на уменьшение начинается с начального значения и продолжается до конечного. Это конечное значение может быть нулем, но не обязательно.

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

    Для любых задач, связанных со счетом, могут быть синтезированы электронные счетчики. Особенное значение имеют бинарные счетчики, также называемые двоичными счетчиками.

    Двоичные счетчики обрабатывают только сигналы 0 и 1.

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

    Счетчики могут работать с различными кодами или системами счисления. Системы счисления рассматриваются как особенный код. В зависимости от поставленной задачи нужен либо суммирующий счетчик, либо вычитающий, либо реверсивный.

    Счетчики различаются по обрабатываемому коду и по направлению счета.

Счетчики строятся на бинарных элементах. Стандартными элементами являются бистабильные ячейки, так называемые триггеры. Триггеры переключаются в определенные моменты времени. Если все триггеры переключаются одновременно, то это синхронный режим работы. В асинхронном режиме триггеры переключаются в разные моменты времени.            Счетчики, которые работают в синхронном режиме, называются синхронными счетчиками. Счетчики, которые работают в асинхронном режиме, называются асинхронными счетчиками.

Синхронные двоичные счетчики

     Синхронные двоичные счетчики считают в двоичной системе счисления. Они бывают суммирующими, вычитающими и реверсивными.

Двоичные суммирующие счетчики

     Схему синхронного двоичного суммирующего счетчика можно рассчитать. Ее также можно синтезировать путем логического рассуждения. На рис. 1 изображены 4 JK-триггера. Все они объединены общим тактом синхронизации.

   J и K – входы должны быть соединены таким образом, чтобы счетчик считал на увеличение в двоичной системе счисления. Рассмотрим временные диаграммы двоичного суммирующего счетчика на рис 2. Триггер А должен переключаться с каждым обратным фронтом синхроимпульса. На ходы JA и KA  следует подать 1-сигналы.

     Триггер В может переключаться тактом только в том случае, если триггер А установлен, то есть QA=1. Выход QA должен соединяться с JB и KB.

 

Рис 2. Структура 4-битового двоичного синхронного суммирующего счетчика.

 

Рис 3. Временная диаграмма 4-битового двоичного суммирующего счетчика.

     Из рисунка 2 следует, что триггер может переключаться только тогда, когда установлены триггер А и триггер В, то есть QA=1 и QВ=1. Выходы QA=1 и QВ=1 подаются на элемент И и соединяются с JB и KС.

     Условия, при которых переключается D, можно также узнать из ременной диаграммы на рис 2. Триггер D может переключаться только тогда, когда QA=1, QВ=1 и QС=1. Выходы QA, QВ и QС объединяются элементом И. Выход И-элемента связывается с JD и KD.

     Если необходим синхронный двоичный суммирующий счетчик с числом битов более 4, то его можно построить по принципу, изображенному на рис 1. Для JK – триггеров действуют следующие правила:

   - в синхронном двоичном суммирующем счетчике J и K входы каждого триггера нужно соединить друг с другом;

   - в первом триггере на входы подается 1-сигнал. Каждый следующая триггер получает входной сигнал в виде результата логического умножения И Q – выходов всех предыдущих триггеров.

 

 

 

Двоичные вычитающие счетчики

   Двоичный вычитающий счетчик можно построить на базе двоичного суммирующего счетчика. Вместо Q-выходов для подключения J и K-входов используются -выходы. В остальном структуры счетчиков одинаковы. На входы J и K первого триггера подается 1-сигнал. Схема синхронного 4-битового двоичного вычитающего счетчика показана на рис 3.

 

Рис 3. Структура 4-битового двоичного синхронного вычитающего счетчика.

Десятичное

число

QD

QC

QB

QA

D

С

B

A

Десятичное

число

0

0

0

0

0

1

1

1

1

15

1

0

0

0

1

1

1

1

0

14

2

0

0

1

0

1

1

0

1

13

3

0

0

1

1

1

1

0

0

12

4

0

1

0

0

1

0

1

1

11

5

0

1

0

1

1

0

1

0

10

6

0

1

1

0

1

0

0

1

9

7

0

1

1

1

1

0

0

0

8

8

1

0

0

0

0

1

1

1

7

9

1

0

0

1

0

1

1

0

6

10

1

0

1

0

0

1

0

1

5

11

1

0

1

1

0

1

0

0

4

12

1

1

0

0

0

0

1

1

3

13

1

1

0

1

0

0

1

0

2

14

1

1

1

0

0

0

0

1

1

15

1

1

1

1

0

0

0

0

0

 

Рис 4. Сопоставление выходных сигналов при применении Q-выходов и -выходов.

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

      Нужно лишь для вывода результата использовать инверсные -выходы. Если -выходы, как это бывает в интегральных микросхемах, недоступны, надо просто инвертировать прямые -выходы. Выходные сигналы при применении Q-выходов и -выходов в качестве результирующих сопоставлены на рис 4.

Двоичные реверсивные счетчики

     Синхронные реверсивные двоичные счетчики можно построить как из синхронных двоичных суммирующих счетчиков, так и из синхронных двоичных вычитающих счетчиков. В первом случае J и K-входы подключаются через Q-выходы, во втором – через инверсные -выходы. Для реверса необходимо переключать между Q и   - выходами.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Порядок выполнения:

1. Запускаем программу Logic Designer. Выбираем File – New Project – STARDOM NPAS. 

 

2. Открываем диалоговое окно Defining device label variables, для этого необходимо произвести двойной щелчок по папке Device Label Definition. Затем в Device label name печатаем имена и выбираем категории.

 

  1. Добавляем подпрограмму. Для этого необходимо щелкнуть правой кнопкой мыши по папке Logical POUs, а затем выбрать Insert Function Block.

 

 

4. В окне Edit Wizard выбираем 2 элемента OR, 2 элемента RS, 2 элемента  R_TRIG и 2 эелемента F_TRIG. На входе перого элемента OR двойным щелчком открываем окно Variable Properties.

 

На входе второго элемента OR щелчком открываем окно Variable Properties.

 

На двух последних элементах OR необходимо установить инверсные выходы. Соединяем элементы между собой.

 

5. Добавление программы. Для этого необходимо щелкнуть правой кнопкой мыши по папке Logical POUs, а затем выбрать Insert Program.

 

6. В окне Edit Wizard выбираем 2 элемента AND и один элемент F_TRIG, также выбираем элемент RS_1. Соединяем элементы.

 

 

 

7. Добавление программы. Для этого необходимо щелкнуть правой кнопкой мыши по папке Logical POUs, а затем выбрать Insert Program.

 

8. Создаем выходы.

 

 

 

9. В окне Edit Wizard выбираем 3 элемента F_TRIG и JK-триггеры Соединяем элементы как показано на рисунке.

 

10. Создаем блок преобразования. Добавление программы. Для этого необходимо щелкнуть правой кнопкой мыши по папке Logical POUs, а затем выбрать Insert Program.

 

11. В окне Edit Wizard выбираем 3 элемента BOOL_TO_INT, 2 элемента MUL и один элемент ADD. Соединяем элементы.

 

12. Открываем окно Variable Properties, двойным щелчком на входе result элемента ADD. В строке Data Type выбираем INT.

 

13. В окне Edit Wizard выбираем элемент Prectr и добавляем его. Обозначаем входы и выходы элемента, как показано на рисунке.

 

14. Проверяем программу на наличие ошибок: BuildRebuild Project.

 

15. Запускаем программу следующим образом: Online – Project Control – Stop – Reset – Download – Delete on Target. Затем сново DownloadDownloadCold. OnlineDebug.

 

Переключая на контроллеры тумблеры, тем самым мы изменяем входные сигналы с 0 на 1 и наоборот.

Результат:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ПРИЛОЖЕНИЕ

 

Это поразрядная логическая функция, которая реализует логическое «И».

Значение функции в этом блоке имеют тип BOOL.

 

Это конверсионная функция, которая изменяет входную величину типа данных BOOL в выходную величину типа данных INT.

Если входная величина является ложью, то выходная величина преобразуется в 0. Если входная величина – истина, то выходной величиной будет 1.

 

 

Этот блок используется для входных сигналов.

 

 

Этот блок используется для выходных сигналов.

 

 

Это поразрядная логическая функция, которая реализует логическое «ИЛИ».

 

Это бистабильный функциональный блок, который реализует предшествующий сброс выхода Q1. Вход Reset1 "преимущественный",он и сбрасывает выход Q1, то есть, если оба входа установлены в "1" на выходе остается "0".

 

Это функциональный блок, предназначенный для введения входной величины по фронту.

 

Это функциональный блок, предназначенный для введения входной величины по срезу.

 

Это комбинационный блок мультиплексора.

 

Это арифметическая функция, реализующая дополнение операндов, связанных с входными параметрами.

 

 


Ключевые слова -


ФНГ ФИМ ФЭА ФЭУ Яндекс.Метрика
Copyright 2021. Для правильного отображения сайта рекомендуем обновить Ваш браузер до последней версии!