Синтез цифровых устройств комбинационного типа в программной среде Proteus 8.1.
Мультиплексоры и демультиплексоры
Введение
В вычислительной технике техническим аналогом булевой функции является комбинационная схема, на вход которой поступают и с выхода снимаются электрические сигналы в виде одного из уровней напряжения, соответствующих значениям логического 0 или логической 1. Значения, полученные на выходе комбинационной схемы, в произвольный момент времени определяются значениями, поданными на вход этой схемы. Структурно комбинационная схема может быть представлена как совокупность элементарных логических схем (логических элементов), которые выполняют над входными сигналами логические операции. Число входов логического элемента соответствует числу аргументов воспроизводимой им булевой функции.
В ходе разработки комбинационных схем приходится решать задачи анализа и синтеза. Задача синтеза заключается в построении на основе логических элементов комбинационной схемы, реализующей заданную систему булевых функций, описывающих логику функционирования устройства.
Решение задачи синтеза не является однозначным. Можно предложить различные варианты комбинационных схем, реализующих одну и ту же систему булевых функций, но отличающихся по тем или иным параметрам. Разработчик комбинационных схем из этого множества вариантов выбирает один, исходя из дополнительных критериев: минимального количества логических элементов, необходимых для реализации схемы, максимального быстродействия и т. д.
Существуют различные методы синтеза комбинационных схем, среди них наиболее часто используемый — канонический метод, согласно которому при проектировании цифрового комбинационного устройства исходное задание обычно описывается при помощи таблицы истинности. По ней записываются логические выражения для выходного сигнала. Затем проводится минимизация этих выражений и составляется принципиальная схема разрабатываемого устройства.
Наиболее распространенными комбинационными устройствами считаются дешифраторы, шифраторы, мультиплексоры и демультиплексоры, арифметические сумматоры и арифметико-логические устройства (АЛУ).
Мультиплексор — это комбинационное устройство, которое подключает к своему выходу один из информационных входов в соответствии с сигналами, поданными на входы управления, имеет один выход и две группы входов: адресные входы (входы управления) и входы данных. Фактически мультиплексор является коммутатором соответствующего входа данных на свой выход. Нужный вход данных выбирается с помощью соответствующего адреса. Если мультиплексор имеет n адресных входов, то максимально возможное количество его входов данных равно 2n. Фактически мультиплексор состоит из дешифратора, который выполняет выборку входного канала, и управляемой им схемы коммутации входных сигналов на выход.
Демультиплексор — комбинационное устройство (коммутатор), которое подключает информационный вход к одному из нескольких информационных выходов в соответствии с сигналами, поданными на входы управления. Демультиплексор выполняет функцию, обратную функции мультиплексора.
Для моделирования работы схем мультиплексоров и демультиплексоров можно использовать специализированную програм-мную среду Proteus (рис. 1), предназначенную для схемотехнического проектирования электронных средств и содержащую практически все основные элементы электронных цепей, а также большой набор виртуальных приборов для исследования работы и анализа схем.
Проектирование и исследование работы мультиплексоров в среде Proteus
Построение мультиплексора на два информационных входа
Таблица истинности мультиплексора на два информационных входа состоит из трех столбцов, соответствующих входным сигналам A0, D0, D1, и одного столбца, соответствующего выходному сигналу Y (таблица 1).
A0 |
D0 |
D1 |
Y |
0 |
0 |
Х |
0 |
0 |
1 |
Х |
1 |
1 |
Х |
0 |
0 |
1 |
Х |
1 |
1 |
Согласно таблице истинности составим логическую функцию:
Запишем ее в базисе И‑НЕ, преобразовав к виду:
Теперь можно собрать схему, которая реализует составленное выражение. Для чего в редакторе ISIS при помощи команды контекстного меню Place/Component/From Libraries или посредством нажатия на кнопку P на панели DEVICES (рис. 2) необходимо открыть окно Pick Devices и выбрать из библиотеки компонентов Proteus элементы схемы, разместить их в рабочей области программы и соединить проводниками (рис. 3). Панель DEVICES (по умолчанию данная панель расположена в левой части программы и содержит список имеющихся в проекте компонентов) открывается нажатием на кнопку Component Mode на левой панели инструментов редактора ISIS.
В целом для построения мультиплексора на два информационных входа необходимо три логических элемента 2И‑НЕ и один элемент НЕ. В полученной схеме инвертор выполняет функцию дешифратора на два выхода.
Для моделирования цифровых устройств в Proteus доступны библиотеки компонентов TTL (рис. 4а) и CMOS (рис. 4б).
Чтобы добавить логические элементы НЕ и 2И‑НЕ в рабочее поле проекта, выберем в левой верхней части окна Pick Devices в поле Category библиотеку TTL 74S series, а в поле Results — пункты 74S04 (рис. 5а) и 74S00 (рис. 5б) соответственно.
Для подачи тестовых сигналов нуля и единицы в исследуемую схему мультиплексора будем использовать один компонент LOGICTOGGLE и два генератора DCLOCK. LOGICTOGGLE находится в разделе Logic Stimuli библиотеки компонентов Debugging Tools (рис. 6). После запуска симуляции компонент подает в схему логический сигнал, чье значение отображено на его пиктограмме. Переключение логического сигнала выполняется щелчком левой кнопки мыши по значку стрелки, расположенному над пиктограммой компонента на схеме. Добавим компонент LOGICTOGGLE в рабочую область проекта и подключим к входу А0 проектируемого мультиплексора.
Выбор генератора производится на панели GENERATORS (рис. 7), которая открывается нажатием на кнопку Generator Mode на левой панели инструментов редактора ISIS. Чтобы добавить генератор DCLOCK в рабочее поле программы, необходимо нажать на строку с его названием на панели GENERATORS (по умолчанию панель расположена в левой части программы и содержит список имеющихся виртуальных генераторов) и разместить его с помощью мыши в необходимом месте на схеме. Данные приборы размещаются в рабочем проекте Proteus до запуска процесса симуляции схемы. Над панелью GENERATORS расположено окно просмотра, где отображается выбранный на панели генератор.
Следует отметить, что генераторы не имеют собственной лицевой панели, как другие виртуальные приборы. Выполнение настроек их параметров реализуется в окне свойств до запуска симуляции схемы.
Для подключения генератора к схеме нужно выбрать его название на панели GENERATORS, подвести курсор к месту размещения генератора и щелкнуть левой кнопкой мыши по цепи. Подключение уже размещенного в рабочей области проекта прибора выполняется с помощью проводника. В каждой схеме может использоваться несколько генераторов, в том числе и копии одного и того же прибора. Каждая копия прибора настраивается и соединяется отдельно.
Неподключенные генераторы имеют по умолчанию название «?». Когда прибор присоединен к цепи, ему автоматически присваивается имя цепи, а если цепь не имеет имени, то прибор получает в качестве имени позиционное обозначение компонента или имя вывода того компонента, который первый подключен к цепи. Также разработчик может самостоятельно присвоить имя генератору.
Для того чтобы настроить параметры генератора DCLOCK, надо выделить его в рабочем поле при помощи левой кнопки мыши, а правой кнопкой вызвать контекстное меню и выбрать в нем пункт Edit Properties. В результате будет открыто диалоговое окно Digital Clock Generator Properties(рис. 8).
Рассмотрим данное окно более подробно. В его левой части размещены следующие поля:
- Generator Name — имя генератора;
- Analogue Types — генераторы аналогового типа;
- Digital Types — генераторы цифрового типа;
- Current Source — посредством установки флажка в данном чекбоксе можно превратить генератор в источник тока (чекбокс недоступен для генераторов цифрового типа);
- Isolate Before — путем установки флажка в данном чекбоксе можно имитировать обрыв цепи, к которой подключен генератор. При этом цепь, отходящая от генератора, изолируется от цепи за генератором;
- Manual Edits — установка флажка в данном чекбоксе меняет способ ввода и отображение параметров генератора. При этом параметры генератора отображаются в виде текстового списка, а вводятся вручную с клавиатуры.
DCLOCK генерирует последовательность цифровых сигналов, частоту (Frequency, Hz), период (Period, Secs), задержку (First Edge At) и тип (Clock Type — Low-High-Low Clock или High-Low-High Clock) которых можно настроить в правой части окна Digital Clock Generator Properties (рис. 8).
Добавим в рабочую область проекта два генератора DCLOCK, подключим их к входам D0 и D1 схемы мультиплексора (рис. 9) и установим в окне Digital Clock Generator Properties следующие параметры:
для генератора D0:
- частота — 1 Гц,
- тип — Low-High-Low Clock (0-1-0),
- задержка — 0 с;
для генератора D1:
- частота — 3 Гц,
- тип — High-Low-High Clock (1-0-1),
- задержка — 0 с.
Отметим, что значения частоты выбраны произвольно.
Для тестирования спроектированного мультиплексора воспользуемся таким виртуальным прибором программы Proteus, как четырехканальный осциллограф. Для чего выберем строку OSCILLOSCOPE на панели INSTRUMENTS (рис. 10) и разместим прибор при помощи мыши в рабочем поле программы. Чтобы открыть панель INSTRUMENTS, необходимо на левой панели инструментов редактора ISIS нажать на пиктограмму Instrument Mode. Над панелью INSTRUMENTS расположено окно просмотра, где отображается выбранный на панели прибор.
Виртуальный осциллограф предоставляет возможность наблюдать за формой сигнала во времени. В Proteus осциллограф имеет четыре сигнальных входа (канал А, В, C и D), и может отображать осциллограммы четырех сигналов одновременно. Осциллограф заземлен по умолчанию, поэтому вывод заземления отсутствует. Также отсутствует и вывод внешней синхронизации. Лицевая панель прибора открывается при запуске симуляции схемы. Пиктограмма используется для подключения прибора к схеме, в свою очередь лицевая панель предназначена для настройки прибора и наблюдения формы исследуемого сигнала.
Подключим четырехканальный осциллограф к схеме, как показано на рис. 11. Каналы А, В и С подсоединим к входам схемы, канал D — к ее выходу.
После того как все компоненты добавлены в рабочую область программы и подсоединены к схеме мультиплексора, запустим процесс симуляции, в итоге будет открыта лицевая панель осциллографа (рис. 12а).
Необходимо отметить, что процесс моделирования запускается при помощи кнопки Run the simulation, находящейся в левом нижнем углу окна программы. Для того чтобы временно приостановить процесс симуляции, используйте кнопку Pause the simulation, or start up at time 0 if stopped(кнопка находится в левом нижнем углу окна программы). Остановить моделирование можно кнопкой Stop the simulation.
В левой части лицевой панели четырех-канального осциллографа расположен графический дисплей, предназначенный для графического отображения формы сигнала, а именно для отображения напряжения по вертикальной оси и, соответственно, времени по горизонтальной оси. Панель управления осциллографа находится в правой части его лицевой панели и предусмотрена для настройки отображения измеряемого сигнала.
Для того чтобы приступить к измерениям входного сигнала, на осциллографе необходимо выполнить три основные настройки:
- Вертикальное отклонение: установка уровня ослабления или усиления сигнала.
- Горизонтальное отклонение: установка скорости развертки.
- Запуск: установка параметров запуска осциллографа.
Рассмотрим панель управления виртуального четырехканального осциллографа более подробно и выполним нужные настройки.
На панели управления размещено шесть окон настроек:
- Trigger (синхронизация);
- Channel A (канал А);
- Channel C (канал С);
- Channel B (канал В);
- Channel D (канал D);
- Horizontal (развертка).
В нижней части окна Channel A расположена ручка, при помощи которой задается величина деления по оси Y (количество вольт на деление). Начальная точка вывода сигнала на оси Y указывается в поле Position. Поле может принимать как положительное, так и отрицательное значение. Выбор положительного значения в данном поле сдвигает начальную точку вверх по оси Y, соответственно, выбор отрицательного значения сдвигает начальную точку вниз. Выбор режима работы осуществляется установкой ползунка в одну из четырех позиций: АС, DC, GND, OFF. В режиме АС отображается только переменная составляющая сигнала. В режиме DC отображается сумма переменной и постоянной составляющих сигнала. В случае выбора позиции GND входной канал замыкается на «землю», а на экране графического дисплея отображается прямая линия в точке исходной установки оси Y. Установка ползунка в позицию OFF выключает отображение сигнала на дисплее. Также в окне Channel A расположено две кнопки:
- Invert — задает инверсный режим работы осциллографа, в котором сигнал инвертируется относительно положения нуля;
- A+B — задает режим, в котором на экране графического дисплея отображается суммарный сигнал каналов А и В.
Интерфейс окон Channel C, Channel B, Channel D аналогичен уже рассмотренному окну Channel A за исключением того, что в окне Channel Cвместо кнопки A+B присутствует кнопка С+D, устанавливающая режим, в котором на экране графического дисплея отображается суммарный сигнал каналов С и D. В окнах Channel B и Channel D такая кнопка вообще отсутствует.
В нижней части окна Horizontal расположена ручка, при помощи которой задают величину деления по оси Х. Начальная точка вывода сигнала на оси Х указывается в поле Position. Поле может принимать как положительное, так и отрицательное значение. Отображение сигнала на экране графического дисплея производится слева направо. Выбор положительного значения в данном поле сдвигает начальную точку вывода сигнала вправо, соответственно, выбор отрицательного значения сдвигает начальную точку влево. Выбор режима развертки осуществляется в поле Source посредством установки ползунка в одну из следующих позиций: ˄, А, В, С, D. В случае выбора режима ˄ (сигнал по оси Y/время) на экране графического дисплея по оси Y будут отображаться сигналы каналов А, В, C, D, а ось Х будет осью времени. Режимы А, В, C, D — это режимы наблюдения фигур Лиссажу.
В верхней левой части панели управления осциллографа размещено окно Trigger (Синхронизация). Выбор канала для запуска синхронизации производится в поле Source посредством установки ползунка в одну из следующих позиций: А, В, С, D. Осуществить выбор запуска сигнала синхронизации — по фронту или по срезу — можно, расположив ползунок в соответствующем поле. В правой части окна Trigger находятся кнопки выбора режима синхронизации. Подробно работа с виртуальным осциллографом была рассмотрена в [2].
Отображение диаграмм на лицевой панели Digital Oscilloscope отрегулируем с помощью ручек управления. Установим в окнах Channel A, Channel C, Channel B, Channel D маленькую ручку в позицию 2, большую ручку в позицию 5. Установим маленькую и большую ручки в окне Horizontalв позицию 200. Установим режим работы осциллографа — DC. Отображение сигнала на экране графического дисплея производится слева направо.
Результаты работы четырехканального осциллографа отображаются на экране графического дисплея (рис. 12б), расположенном в левой части лицевой панели данного прибора, в виде четырех временных диаграмм, которые представляют четыре входных сигнала, полученных с входов А, В, C, D. Как видно на рис. 13а, когда на адресный вход схемы мультиплексора подан логический ноль, на выход схемы будет передан сигнал с первого информационного входа схемы. Если же на адресном входе единица (рис. 13б), то на выходе схемы будет присутствовать сигнал со второго информационного входа.
На лицевой панели осциллографа нижняя кривая отображает сигнал, полученный с выхода мультиплексора, верхняя кривая — с адресного входа A0, вторая кривая — сигнал с первого информационного входа D0, а третья кривая — сигнал со второго информационного входа D1 мультиплексора. Полученные данные занесем в таблицу истинности (табл. 2).
А0 |
Y |
0 |
D0 |
1 |
D1 |
Как видно из таблицы, в зависимости от поданного на вход А0 адреса на выход Y будет передан сигнал с входа D0 или D1.
Также построение схемы мультиплексора можно выполнить и другим способом на основе исходного выражения Y = ×D0+A0×D1, реализовав функцию только на вентилях И‑НЕ. Для этого потребуется четыре элемента 2И‑НЕ, в качестве которых можно применить элементы микросхемы 74S00 из библиотеки TTL 74S series. Добавим вентили в рабочее поле программы и соберем схему, соответствующую условиям заданной функции, соединив проводниками элементы 2И‑НЕ (рис. 14), один из которых (U1:A) выполняет роль инвертора.
Протестируем полученную схему. Для чего к входам A0, D0, D1 мультиплексора подключим выводы A, B, C четырехканального осциллографа, а к выходу мультиплексора — вывод D четырех-канального осциллографа. Как и в первом примере, в качестве источника логических сигналов нуля и единицы для мультиплексора будем использовать один компонент LOGICTOGGLE и два генератора DCLOCK (рис. 15).
В окне настроек генераторов установим следующие параметры:
для генератора D0:
- частота — 1 Гц,
- тип — Low-High-Low Clock (0-1-0),
- задержка — 0 с;
для генератора D1:
- частота — 5 Гц,
- тип — High-Low-High Clock (1-0-1),
- задержка — 0 с.
Запустим симуляцию схемы, в результате чего откроется лицевая панель осциллографа. Верхняя диаграмма на графическом дисплее осциллографа отображает сигнал, полученный с канала А осциллографа (с адресного входа мультиплексора), вторая диаграмма — сигнал с канала В, третья — сигнал с канала С. Нижняя диаграмма отображает сигнал, полученный с канала D четырехканального осциллографа, который соответствует данным, полученным с выхода схемы мультиплексора.
Полученные данные (рис. 16) соответствуют результатам, указанным в таблице 2. Из этого следует, что спроектированное устройство работает правильно.
Построение мультиплексора на четыре информационных входа
Таблица истинности мультиплексора на четыре информационных входа состоит из шести столбцов, соответствующих входным сигналам A0, A1, D0, D1, D2, D3, и одного столбца, соответствующего выходному сигналу Y (табл. 3).
A0 |
A1 |
D0 |
D1 |
D2 |
D3 |
Y |
0 |
0 |
0 |
Х |
Х |
Х |
0 |
0 |
0 |
1 |
Х |
Х |
Х |
1 |
0 |
1 |
Х |
0 |
Х |
Х |
0 |
0 |
1 |
Х |
1 |
Х |
Х |
1 |
1 |
0 |
Х |
Х |
0 |
Х |
0 |
1 |
0 |
Х |
Х |
1 |
Х |
1 |
1 |
1 |
Х |
Х |
Х |
0 |
0 |
1 |
1 |
Х |
Х |
Х |
1 |
1 |
Согласно таблице истинности составим логическую функцию:
Запишем ее в базисе И‑НЕ, преобразовав к виду:
Теперь можно собрать схему, которая реализует составленное выражение.
В рабочей области проекта схему мультиплексора можно оформить в виде подсхемы, представленной на основной схеме блоком («черным ящиком») в виде прямоугольника с выводами. Такой прием уменьшает размеры схемы, позволяет разделить сложный проект на более мелкие взаимосвязанные схемы.
Только что созданный в Proteus новый проект по определению становится схемой верхнего уровня в текущей разработке. Все подсхемы и иерархические блоки, на которые ссылается этот файл, будут отображены в дереве проекта как подчиненные.
Для того чтобы добавить иерархический блок в разрабатываемую схему, необходимо на левой панели редактора ISIS нажать на пиктограмму Subcircuit Mode, на открывшейся панели PORTS (рис. 17) выбрать пункт DEFAULT и с помощью мыши поместить блок в нужном месте рабочего поля. Для этого установите указатель мыши в окне редактора в точке, где должен находиться верхний левый угол блока. Нажмите левую кнопку мыши и растяните прямоугольник до требуемого размера, а затем отпустите кнопку мыши. Зафиксируйте размер блока щелчком левой кнопки мыши.
Размер уже сформированного блока можно изменить. Для чего нужно выделить его левой кнопкой мыши (рис. 18а) и растянуть мышью границы блока до нужных размеров (рис. 18б), а затем снять выделение щелчком левой кнопки мыши в области схемы (рис. 18в).
Название иерархического блока задается в поле Name его окна свойств Edit Subcircuit (рис. 19). Чтобы открыть данное окно, необходимо выделить блок на схеме левой кнопкой мыши, правой кнопкой мыши вызвать контекстное меню и выбрать в нем пункт Edit Properties.
Для того чтобы перейти к листу схемы созданного иерархического блока, следует левой кнопкой мыши выделить блок, правой кнопкой мыши вызвать контекстное меню и выбрать в нем пункт Goto Child Sheet (перейти к дочернему листу), как показано на рис. 20. Лист схемы созданного блока представляет собой обычный лист схемного проекта Proteus. Теперь, когда вы находитесь в рабочем поле схемы подсхемы, остается создать необходимый узел и подсоединить его выводы к контактам соединения блока подсхемы с основной схемой.
В целом для построения мультиплексора на четыре информационных входа необходимо пять логических элементов 2И‑НЕ, шесть элементов 2И и два элемента НЕ. Чтобы добавить логические элементы 2И в рабочее поле проекта, откроем окно Pick Devices и выберем в его левой верхней части в поле Category библиотеку TTL 74S series, в поле Sub-category — раздел Gates & Inverters, а в поле Results пункт — 74S08 (рис. 21).
Соединительные контакты в схему подсхемы добавляют вручную. Для этого, находясь на листе подсхемы, откройте панель TERMINALS (рис. 22) добавьте в рабочую область чертежа необходимое количество входных (INPUT) и выходных (OUTPUT) контактов и подсоедините их к разработанному узлу. В нашем примере используются шесть соединителей INPUT и один OUTPUT. Открыть панель TERMINALS можно с помощью пиктограммы Terminals Mode левой панели инструментов редактора ISIS.
Теперь разработчику остается только согласовать соединительные выводы с цепью основной схемы. Для чего с помощью команды контекстного меню Exit to Parent Sheet (перейти к родительскому листу) выполняется переход из подсхемы к основной схеме (рис. 23). Вызов контекстного меню производится щелчком правой кнопки мыши в области подсхемы.
Соединительные контакты также нужно добавить вручную и к иерархическому блоку основной схемы. Для этого, находясь на родительском листе, откройте панель PORTS и выберите на ней пункт INPUT для добавления входных соединителей и пункт OUTPUT для добавления выходного соединителя. Подключение соединителей к блоку выполняется щелчками левой кнопки мыши в местах размещения контактов. После выбора соединителя на панели PORTS для размещения каждого отдельного контакта необходимо подвести курсор мыши к краю иерархического блока мультиплексора (при этом в месте стыковки отобразится значок крестика) и щелкнуть в этом месте левой кнопкой мыши (рис. 24).
Соединительные контакты родительской схемы согласовываются с контактами дочерней схемы путем назначения им одинаковых имен. Имя соединительному контакту, подключенному к иерархическому блоку, присваивается в окне Edit Terminal Label (рис. 25), открыть которое можно дважды щелкнув по контакту. Аналогичным образом присваивается имя и соединительным контактам подсхемы.
В качестве источника информационных сигналов будем использовать четыре генератора DCLOCK. В окне свойств каждого генератора установим следующие значения частоты генерируемых им цифровых сигналов:
- для генератора DCLOCK D0 — 1 Гц;
- для генератора DCLOCK D1 — 3 Гц;
- для генератора DCLOCK D2 — 5 Гц;
- для генератора DCLOCK D3 — 8 Гц.
Значения параметров Clock Type (тип) и First Edge At (задержка) оставим по умолчанию (Low-High-Low Clock и 0 с соответственно).
Подачу сигналов на адресные входы А0, А1 мультиплексора организуем с помощью двух компонентов LOGICTOGGLE.
Для проверки работы спроектированного устройства можно воспользоваться таким виртуальным инструментом программы Proteus, как логический анализатор. Чтобы добавить прибор в рабочую область проекта, необходимо левой кнопкой мыши выбрать строку с его названием (LOGIC ANALYSER) на панели INSTRUMENTS и разместить прибор мышью в нужном месте на схеме.
Для съема сигналов с исследуемой схемы логический анализатор имеет 16 выводов и четыре шины разрядностью 8 бит каждая. Пикто-грамма логического анализатора на схеме и его лицевая панель представлены на рис. 26.
Добавим логический анализатор в рабочее поле проекта и подключим первых два его канала А0 и А1 к адресным входам А0 и А1 мультиплексора, следующие четыре канала, А2–А5, подключим к информационным входам D0–D3 мультиплексора. Выход мультиплексора Y подсоединим к седьмому каналу А6 логического анализатора (рис. 27).
Лицевая панель прибора открывается при запуске симуляции схемы. Шестнадцать переключателей в левой части панели соответствуют шестнадцати каналам съема сигналов A0–A15. В следующей колонке отображены имена входов логического анализатора. После запуска симуляции схемы прибор снимает входные значения со своих выводов и отображает полученные данные в виде прямоугольных импульсов на часовой диаграмме во временной области лицевой панели. В нижней части временной области отображаются сигналы, полученные с входов В0[0..7]–B3[0..7].
В правой части лицевой панели данного прибора расположена панель управления, на которой находятся два окна:
- Trigger (синхронизация);
- Horizontal (развертка).
Логический анализатор оперирует последовательно записанными в буфер захвата входными цифровыми данными. Процесс захвата данных запускается при помощи кнопки Capture окна Trigger. Спустя некоторое время после выполнения условий переключения процесс останавливается, а кнопка меняет свой цвет при записи и после ее завершения. Результат — содержимое буфера захвата — отображается на дисплее.
В окне Horizontal предусмотрено две ручки: Display Scale и Capture Resolution. При помощи первой производится масштабирование отображения диаграммы, при помощи второй — подстройка разрешения.
Итоги работы логического анализатора отображаются на экране графического дисплея в виде диаграмм, которые представляют сигналы, полученные с его входов. Подробно работа с логическим анализатором была рассмотрена в [2].
Запустим симуляцию схемы. Отображение диаграмм на панели VSM Logic Analyser отрегулируем с помощью ручек управления Display Scale и Capture Resolution окна Horizontal. Установим маленькую ручку Display Scale в позицию 1х, большую ручку Display Scale в позицию 500. Установим маленькую и большую ручки Capture Resolution в позицию 200.
Результаты тестирования (часовые диаграммы во временной области лицевой панели логического анализатора) представлены на рис. 28. Две верхние диаграммы А0, А1 соответствуют сигналам на адресных входах мультиплексора, следующие четыре диаграммы, А2–А5, соответствуют сигналам на информационных входах мультиплексора, а диаграмма А6 — сигналу на выходе мультиплексора.
Полученные данные занесем в таблицу истинности (табл. 4).
А0 |
А1 |
Y |
0 |
0 |
D0 |
0 |
1 |
D1 |
1 |
0 |
D2 |
1 |
1 |
D3 |
Как видно из таблицы, в зависимости от поданного на входы мультиплексора А0, А1 адреса на выход Y будет передан сигнал с одного из информационных входов D0, D1, D2 или D3, это означает, что спроектированное устройство работает правильно.
Просмотр иерархии проекта выполняется на вкладке Physical Partlist View (рис. 29), которая открывается с помощью пиктограммы Design Explorerверхней панели инструментов редактора ISIS.
Наращивание разрядности мультиплексоров с использованием серийных микросхем
Из серийно выпускаемых мультиплексоров меньшей разрядности нетрудно построить схему, эквивалентную мультиплексору большей разрядности. Например, синтезировать схему мультиплексора, обеспечивающего выбор «1 из 16», можно на базе мультиплексоров «1 из 4».
Для выбора одного информационного входа из 16 согласно формуле 2n (где n — количество адресных входов) необходимы четыре входные линии адреса (16 = 24): А0, А1, А2, А3. Четыре базовых мультиплексора обеспечивают выбор в зависимости от кода, поданного на входы А0 и А1 соответственно: первый — одного из сигналов D0, D1, D2, D3; второй — из сигналов D4, D5, D6 или D7; третий — из сигналов D8, D9, D10 или D11; четвертый — из сигналов D12, D13, D14 или D15. Также для реализации задачи необходим еще один, пятый мультиплексор, обеспечивающий выбор одного из ранее указанных сигналов в зависимости от кода, подаваемого на входы А2 и А3. Так, при подаче на линии А0–А3 кода 0111 на адресные входы А0 и А1 первых четырех мультиплексоров начнет поступать двоичный код 01. Поэтому первая часть каскада будет выбирать входные информационные линии D1, D5, D9, D13, соответственно подключенные к входам D0–D3 пятого мультиплексора. Поскольку на его адресные линии А2–А3 приходит код 11, на выход каскада передается информация с входа D3 пятого мультиплексора, то есть информация с входной информационной линии D13, что согласуется с принципом работы проектируемого мультиплексора «1 из 16».
В качестве мультиплексоров «1 из 4» в Proteus можно использовать микросхему 74LS153 (отечественный аналог — К555КП2) из раздела Multiplexers библиотеки компонентов TTL 74LS series (рис. 30). Микросхема 74LS153 — это два мультиплексора с объединенными адресными входами А0, А1. Каждый из мультиплексоров имеет четыре информационных входа (пины 1Х0–1Х3 и 2Х0–2Х3) и один выход (пины 1Y и 2Y). Выбор информационного входа для подключения к выходу реализуется подачей соответствующих сигналов на адресный вход. Таким образом, построение мультиплексора «1 из 16» можно выполнить на базе трех микросхем 74LS153.
Для тестирования собранной схемы воспользуемся цветными пробниками логических уровней 0 и 1, при помощи которых можно выполнить контроль выходных сигналов, и цветными источниками логических уровней 0 и 1, при помощи которых организуем подачу на схему информационных сигналов D0–D15, сигналов управления A0–A3 и стробирующего сигнала E.
Цветные пробники логических уровней 0 и 1 в программе Proteus представлены компонентами LOGICPROBE и LOGICPROBE (BIG) из раздела Logic Probes библиотеки Debugging Tools. Цветные источники логических уровней 0 и 1 представлены компонентами LOGICTOGGLE из раздела Logic Stimuli библиотеки Debugging Tools.
Добавим в рабочее поле программы пять пробников логических уровней 0 и 1 LOGICPROBE (BIG) и 21 источник логических уровней 0 и 1. Выводы пробников подключим к выходам микросхем DD1–DD3, а выводы источников — к входам микросхем DD1–DD3 так, как показано на рис. 31.
Запустим моделирование и определим правильность работы собранной схемы подачей тестовых значений на ее входы (рис. 32).
Результаты тестирования занесем в таблицу истинности (табл. 5).
А0 |
А1 |
А2 |
А3 |
Y |
0 |
0 |
0 |
0 |
D0 |
0 |
1 |
0 |
0 |
D1 |
1 |
0 |
0 |
0 |
D2 |
1 |
1 |
0 |
0 |
D3 |
0 |
0 |
0 |
1 |
D4 |
0 |
1 |
0 |
1 |
D5 |
1 |
0 |
0 |
1 |
D6 |
1 |
1 |
0 |
1 |
D7 |
0 |
0 |
1 |
0 |
D8 |
0 |
1 |
1 |
0 |
D9 |
1 |
0 |
1 |
0 |
D10 |
1 |
1 |
1 |
0 |
D11 |
0 |
0 |
1 |
1 |
D12 |
0 |
1 |
1 |
1 |
D13 |
1 |
0 |
1 |
1 |
D14 |
1 |
1 |
1 |
1 |
D15 |
Как видно из таблицы, в зависимости от поданного на входы А0–А3 адреса на выход Y поступит сигнал с одного из 16 информационных входов D0–D15 спроектированного устройства.
Проектирование и исследование работы демультиплексоров в среде Proteus
Демультиплексор имеет один информационный вход и несколько выходов и представляет собой устройство, которое осуществляет коммутацию входа к одному из выходов, соответствующему заданному адресу.
Таблица истинности демультиплексора, имеющего один информационный вход D и четыре выхода, состоит из двух столбцов, соответствующих входным сигналам управления A0 и А1, и четырех столбцов, соответствующих выходным сигналам Y0–Y3 (табл. 6).
А0 |
А1 |
Y0 |
Y1 |
Y2 |
Y3 |
0 |
0 |
D |
0 |
0 |
0 |
0 |
1 |
0 |
D |
0 |
0 |
1 |
0 |
0 |
0 |
D |
0 |
1 |
1 |
0 |
0 |
0 |
D |
Применение демультиплексора может существенно упростить создание логического устройства, имеющего несколько выходов, на которых формируются различные логические функции одних и тех же переменных.
Построить схему демультиплексора с одним информационным входом и четыремя выходами (рис. 33) можно на базе логических элементов НЕ (например, с помощью элементов НЕ микросхемы 74S04) и 3И (в частности, посредством элементов 3И микросхемы 74S11), которые добавляются в рабочее поле проекта Proteus из раздела Gates & Inverters библиотеки компонентов TTL 74S series (рис. 34).
Протестируем собранную схему при помощи компонентов LOGICTOGGLE и LOGICPROBE (BIG) (рис. 35).
Результаты запишем в таблицу 7.
D |
А0 |
А1 |
Y0 |
Y1 |
Y2 |
Y3 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
Как видно из таблицы, если на вход данных демультиплексора подать логическую единицу, то на выбранном в соответствии с заданным адресом выходе будет логическая единица, на остальных выходах — логический ноль. Если же на вход данных подать логический ноль, то на всех выходах демультиплексора будет логический ноль.
Заключение
Комбинационные устройства — это электронные схемы, выходной сигнал которых зависит от комбинации входных сигналов. Любое изменение входного сигнала влечет изменение сигнала на выходе. Как вы уже могли убедиться, программа Proteus предоставляет широкий набор инструментов для проектирования схем комбинационных устройств, их тестирования и отладки.
- ISIS Help. Labcenter Electronics, 2014.
- Филатов М. Проведение измерений при помощи виртуальных приборов в программной среде Proteus 8.1 // Компоненты и технологии. 2015. № 4.
- Филатов М. Синтез цифровых устройств комбинационного типа в програм-мной среде Proteus 8.1. Дешифраторы // Компоненты и технологии. 2018. № 2.