Государственное образовательное учреждение

высшего профессионального образования

ИРКУТСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

ФИЗИЧЕСКИЙ ФАКУЛЬТЕТ

КАФЕДРА РАДИОЭЛЕКТРОНИКИ

Моделирование цифровых устройств в системе PCAD

Методическое пособие к лабораторным работам по курсу

«Теория конечных автоматов»

Иркутск

2013


Содержание

Предисловие ……………………………………………………………….….3

Тема 1. Логические функции. Булевский базис …………………………...4

Тема 2. Построение и моделирование логических схем ………………….7

Тема 3. Методика работы в системе PCAD …………………………….…9

Тема 4. Минимизация (упрощение) логических функций……………….14

Тема 5. Дополнительные сведения о логических функциях ……………16

Тема 6. Пример реализации функции в инвертирующем базисе ……….18

Тема 7. Этапы построения логической схемы. Варианты заданий………19

Тема 8. Цифровые устройства без памяти

8.1. Дешифраторы……………………………………………………19

8.2. Шифраторы……………………………………………………...20

8.3. Мультиплексоры………………………………………………..21

8.4. Схемы преобразования произвольных кодов…………………22

8.5. Сумматоры и арифметические устройства……………………23

Тема 9. Цифровые устройства с памятью

9.1. Триггеры…………………………………………………………24

9.2. Регистры и счётчики……………………………………………26

Моим лучшим друзьям

Михаилу и Григорию

посвящается

Предисловие

Интенсивное развитие цифровой электроники в начале XXI века ставит перед профессиональными учебными заведениями страны множество вопросов, связанных с изучением методов анализа и синтеза схем электронных устройств дискретного принципа действия, работающих с логическими сигналами. Это относится в первую очередь к таким специальностям, как «Автоматизированные системы управления», «Радиофизика и электроника», «Телекоммуникации» и ряду других.

НЕ нашли? Не то? Что вы ищете?

На физическом факультете ИГУ студенты III курса изучают дисциплину «Теория конечных автоматов», частью которой является рассмотрение методов логического проектирования цифровых электронных схем. В процессе изучения дисциплины студенты должны выполнить цикл лабораторных работ по синтезу схем различных цифровых устройств и моделированию этих схем на компьютере в системе PCAD. Сведения, необходимые для выполнения этих работ, представлены в настоящем пособии.

Учебный материал пособия разделён на структурные единицы, названные здесь темами. За одно лабораторное занятие могут быть изучены одна, две и более такие темы, в зависимости от уровня подготовки студента. Пособие будет особенно полезно студентам, пропустившим какие-либо занятия, позволяя им быстро нагнать упущенное.

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

В процессе подготовки пособия был использован графический редактор программной системы LogModel с целью подготовки изображений цифровых схем. Автор пособия выражает глубокую благодарность разработчику системы LogModel, выпускнику физического факультета ИГУ Агафонникову Владимиру Анатольевичу.
Тема 1. Логические функции. Булевский базис

Алгебра логики – это формальный математический аппарат для описания логической стороны различных процессов и явлений, в том числе процессов в цифровых устройствах. Ниже будут даны основные сведения по алгебре логики лишь в том минимальном объёме, который необходим для понимания материалов данного лабораторного практикума. Для более глубокого овладения предметом существует обширная учебная литература, список которой подскажет ваш преподаватель.

Зарождение логики как науки происходило ещё в античные времена, в частности, Аристотелем были сформулированы основные её законы. В то время логика мыслилась исключительно как наука о человеческих высказываниях и рассуждениях. В XIX веке английским математиком Джорджем Булем (George Boole) были сформулированы и развиты базовые положения математической логики. В XX веке алгебра логики нашла своё новое применение – стала использоваться как средство описания работы электрических и электронных схем дискретного действия.

Алгебра логики имеет дело с логическими переменными, то есть такими переменными, которые могут принимать только два значения, изображаемые как ДА и НЕТ, ИСТИНА и ЛОЖЬ, TRUE и FALSE, 1 и 0. Наиболее распространено последнее обозначение – в силу его краткости. При этом 1 и 0 нельзя трактовать как числа, над ними нельзя производить обычные арифметические действия. Не следует смешивать алгебру логики с арифметикой двоичной системы счисления.

Логические переменные хорошо описывают состояния таких объектов, как реле, тумблеры, кнопки и т. д., то есть таких, которые могут находиться в двух чётко различимых состояниях – включено или выключено. Сюда относятся и полупроводниковые логические элементы, которые при определённых условиях могут находиться в двух различных состояниях. Существуют также логические функции одной или нескольких переменных, которые тоже могут принимать лишь значения 0 и 1.

Если логическая функция зависит от нескольких переменных (а это наиболее распространённый случай), то её аргументы образуют какое-то множество (или набор) значений, которое вместе со значениями самой функции удобно представить в виде таблицы. Именно табличная форма задания логической функции является очень распространённой в повседневной практике. Приведём пример. Пусть некий любитель горного туризма произнёс следующее высказывание:

Моя поездка в горы состоится лишь при условии, что я достану путёвку в лагерь и не будет аврала на работе.

Здесь предполагается, что поездка в горы (G) есть логическая функция двух аргументов – аврала (A) и путёвки (Р). По смыслу высказывания очевидно, что:

·  если А=0 и Р=0, то G=0;

·  если А=0 и Р=1, то G=1;

·  если А=1 и Р=0, то G=0;

·  если А=1 и Р=1, то G=0.

Весь этот набор фактов принято записывать в виде таблицы:

A

P

G

0

0

1

1

0

1

0

1

0

1

0

0

Такая таблица полностью и однозначно описывает логическую функцию. Таблица, где перечислены обязательно все возможные (!) значения логической функции, называется таблицей истинности.

Количество строк в таблице истинности напрямую связано с числом аргументов функции. Если аргументов два, в таблице будет четыре строки, при трёх аргументах – восемь строк, при четырёх – шестнадцать, при N аргументах - 2N строк. Чтобы не ошибиться при перечислении всех возможных наборов значений аргументов, эти наборы всегда следует располагать в порядке возрастания натурального ряда чисел, записанных в двоичной системе счисления, начиная с нуля. Так, при двух аргументах (А и Р в предыдущем примере) этими наборами будут 00, 01, 10, 11. В случае трёх аргументов будем иметь наборы 000, 001, 010, 011, 100, 101, 110, 111. По аналогии с обычной (классической) математикой можно сказать, что эти наборы образуют область определения функции.

Отметим, что, в отличие от классической математики, где область определения функции может содержать (чаще всего так и бывает) бесконечное множество чисел, область определения логической функции всегда конечна. Именно поэтому и возможно полностью описать логическую функцию с помощью таблицы. Число самих логических функций от N аргументов также конечно. Оно равно в точности . Так, при трёх аргументах может существовать не более 256 различных логических функций.

Множество, состоящее из трёх логических функций с названиями «НЕ». «И», «ИЛИ», называется стандартным, каноническим или булевским базисом в честь уже известного нам Джорджа Буля, подробно исследовавшего эти функции.

Функция НЕ, или инверсия, отрицание – самая простая их всех. По определению, она равна 1, если её единственный аргумент равен 0, и равна 0, если аргумент равен 1. Таблица истинности этой функции, очевидно, состоит из двух строк, и мы не будем её рассматривать. Электронный логический элемент, реализующий эту функцию, называется инвертор. Он имеет один вход и один выход.

На рисунке ниже приведено условное графическое изображение инвертора (обратите внимание на кружок на выходе), а также его наглядная реализация в виде размыкающего контакта реле. Этот контакт замкнут (1), когда в обмотке реле нет тока (0), и наоборот, разомкнут (0), когда ток есть (1). На этом же рисунке приведено наиболее распространённое условное обозначение самой функции отрицания А, а именно «А с чертой сверху». Существуют и другие обозначения, например, Not(A), в школьном курсе информатики эта функция обозначена A.

Функция И (по-другому называемая конъюнкция), по определению, равна 1 тогда и только тогда, когда все её аргументы (их может быть два или более) равны 1. Функция называется также логическим умножением, обозначается как A&B (& - знак амперсанд), либо A·B, либо просто AB. Встречается также крайне неудобное обозначение (принятое, к сожалению, в школьном курсе информатики) AΛB. Соответствующий логический элемент называется конъюнктор.

На рисунке ниже приведено два условных графических обозначения конъюнктора – для случая двух и четырёх входов (теоретически их может быть любое количество, большее или равное 2), а также наглядная реализация в виде последовательно включённых замыкающих контактов реле. Электрический сигнал на выходе такой цепочки будет, очевидно, если замкнут и первый, и второй контакт.

Функция ИЛИ (также называемая дизъюнкция), по определению, равна 1 тогда и только тогда, если хотя бы один её аргумент (их может быть, как и в предыдущем случае, два или более) равны 1. Эта функция называется также логическим сложением, обозначается AVB (здесь V – это знак ИЛИ), а также иногда A+B, хотя такое обозначение нельзя признать удачным. Соответствующий логический элемент называется дизъюнктор. На рисунке ниже приведено два условных графических обозначения дизъюнктора – опять же для случая двух и четырёх входов, а также наглядная реализация в виде параллельно включённых замыкающих контактов реле. Электрический сигнал на выходе такой цепочки будет, очевидно, если замкнут или первый, или второй контакт, или оба сразу.

Таблица истинности для случая двух аргументов A и B приведена ниже. Кроме уже знакомых нам И, ИЛИ, в таблицу включены также значения функции «сложение по модулю два» (кратко обозначенную M2), а также широко используемых на практике комбинированных функций И-НЕ (обозначено NAND – от Not And), ИЛИ-НЕ (обозначено NOR – от Not Or).

A

B

A&B

AVB

M2

A NAND B

A NOR B

0

0

1

1

0

1

0

1

0

0

0

1

0

1

1

1

0

1

1

0

1

1

1

0

1

0

0

0


Рассмотренный булевский базис (набор функций) И, ИЛИ, НЕ обладает свойством полнотыэто означает, что с помощью только этих функций можно выразить любую функцию алгебры логики, сколь бы сложной она ни была (отметим, что существуют и другие базисы с этим же свойством). Соответственно, при помощи одних только конъюнкторов, дизъюнкторов и инверторов можно (в принципе) построить логическую схему любого цифрового устройства, работа которого описывается в терминах алгебры логики!

Отметим, что приведённые выше обозначения логических элементов относятся к так называемой европейской системе. В отечественном школьном курсе информатики ( и др.) используется другая символика, а именно:

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

Тема 2. Построение и моделирование логических схем

Представление логической функции в виде таблицы истинности – не единственно возможное. Располагая такой таблицей, можно получить представление функции в виде формулы, а затем, если это необходимо, построить по этой формуле логическую схему устройства, реализующего данную функцию.

Пусть дана таблица истинности для какой-то функции трёх переменных (здесь для экономии места таблица разбита на две части, размещённые рядом):

A

B

C

F

A

B

C

F

0

0

0

0

0

0

1

1

0

1

0

1

0

1

1

0

1

1

1

1

0

0

1

1

0

1

0

1

0

0

1

0

Мы видим, что столбец F заполнен нулями и единицами, в этом наборе оказалось три единицы, все остальные – нули. Откуда взялись эти данные? Они определяются постановкой задачи на разработку конкретного цифрового устройства. Сейчас наша цель – перейти от таблицы к формуле.

Делается это очень просто. Для каждой строки таблицы, содержащей 1 в столбце F, следует выписать так называемую элементарную конъюнкцию трёх входных переменных. Переменные A, B, C соединяем знаком конъюнкции (то есть попросту пишем переменные рядом, как при операции умножения) и затем ставим знак инверсии (черту над буквой) там, где во входном наборе переменных стоит ноль, и оставляем без инверсии там, где стоит единица:

Теперь полученные элементарные конъюнкции соединяем, как слагаемые в обычной алгебре, знаками дизъюнкции:


Выражение, которое у нас получилось, носит название совершенная дизъюнктивная нормальная форма (сокращённо СДНФ). Это и есть искомое представление логической функции в виде формулы. СДНФ всегда содержит ровно столько слагаемых, сколько единиц в таблице истинности; каждое слагаемое содержит обязательно все переменные, причём каждая из них входит в формулу либо непосредственно, либо в виде инверсии.

Существуют также представления логической функции в виде ДНФ (дизъюнктивных нормальных форм, без слова «совершенный»), когда каждое слагаемое содержит не обязательно все переменные.

Следующий шаг – это переход от СДНФ к логической схеме.

Стандартный вид логической схемы, построенной по СДНФ (и вообще любой ДНФ) – это так называемая трёхъярусная структура. В первом ярусе схемы располагаются инверторы (в нашем случае 555LN1); их количество не превосходит количества переменных-аргументов функции, Второй ярус образуют конъюнкторы (в нашем случае 555LI3); их число равно количеству слагаемых (элементарных конъюнкций). Наконец, третий ярус – это дизъюнктор, вырабатывающий выходной сигнал функции:

При построении этой схемы было учтено, что в учебной библиотеке логических элементов TTL. SLB системы PCAD нет, к сожалению, дизъюнктора с тремя входами, поэтому в третьем ярусе применено каскадное включение двух дизъюнкторов с двумя входами каждый (а именно 555LL1).

Схема построена. Уже в таком виде её можно моделировать в системе PCAD, хотя в дальнейшем мы будем подвергать её существенной доработке. Работа с этой системой описана в отдельном пособии, кроме того, самые необходимые сведения будут приведены ниже. Мы будем предполагать, что исходный файл со схемой, построенный в программе-редакторе схем PCCAPS, имеет имя F31.SCH, из которого после обработки программами PCNODES и PRESIM получился файл F31.NET.

Рекомендуем использовать следующее содержимое CMD-файла:

LOAD F31.NET

CYCLE 10

GEN [0 0] A (S0/4 S1/4)

GEN [0 0] B (S0/2 S1/2)

GEN [0 0] C (S0/1 S1/1)

PROBE A B C F

DISPLAY 1

SIM 25

Переменная A, как следует из таблицы истинности, изменяется медленнее всего (в её столбце идут сверху вниз сначала четыре нуля, затем четыре единицы), а переменная C – быстрее всего (0-1-0-1…). Исходя из этого и были выбраны параметры (длительность периода нуля – s0 и периода единицы – s1) в командах GEN.

Рассматривая временную диаграмму, построенную программой PCLOGS в результате обработки этого файла, мы должны убедиться, что она (диаграмма) полностью соответствует заданной таблице истинности. Если это не так, придётся искать ошибку в схеме или командном файле.

Тема 3. Методика работы в системе PCAD

Программная система PCAD располагается на компьютерах учебного кабинета (лаборатория № 000) в каталоге D:\PCAD. Здесь находится только та её часть, которая необходима для моделирования работы логических схем (возможности полного пакета PCAD не исчерпываются этим).

В ходе лабораторных занятий используются четыре программы, а именно: PCCAPS. EXE – редактор логических схем, PCNODES. EXE и PRESIM. EXE – вспомогательные программы для подготовки файла со схемой к моделированию, а также PCLOGS. EXE – логический эмулятор, осуществляющий собственно моделирование и построение временной диаграммы входных и выходных сигналов. Все эти программы, строго говоря, не рассчитаны на работу под управлением MS Windows (в отличие, например, от пакета Electronic Workbench) и не могут использовать её стандартный графический интерфейс – они создавались во времена предшествующей операционной системы MS-DOS. Поэтому не следует сразу же щёлкать мышью по изображению папки PCAD на диске D:. Более удобно воспользоваться файловой оболочкой FAR Manager (или просто FAR), являющейся усовершенствованным аналогом некогда популярной MS-DOS-оболочки Norton Commander, тем более что в процессе нашей работы неоднократно придётся создавать и редактировать текстовые файлы. Оболочка FAR, сама рассчитанная на работу под MS Windows, имеет в своём составе удобный текстовый редактор, средства просмотра файлов и каталогов.

Зачем же нужен текстовый редактор, если мы собираемся работать с графическими изображениями электронных логических схем? Дело в том, что, во-первых, запускать последовательно одну за другой все четыре упомянутых выше программы вручную (а это придётся делать всякий раз при любом внесении изменений в схему!) очень утомительно – удобнее делать это из специального командного файла, который надо сначала создать. Во-вторых, программа PCLOGS сама управляется при помощи текстовых команд, записанных в отдельный файл, который также придётся создать и, возможно, неоднократно редактировать. Пример такого файла был приведён выше.

Итак, мы начнём работу с того, что запустим оболочку FAR. Соответствующий значок должен находиться на Рабочем Столе MS Windows (если это не так, обратитесь к преподавателю или лаборанту). Вы увидите две панели с изображениями файлов и каталогов. Нажмите CTRL-F1, если хотите работать на левой панели (или CTRL-F2, если на правой) и, пользуясь клавишами со стрелками и клавишей Enter, войдите в каталог PCAD. Внимательно просмотрите его содержимое, обратите внимание на многочисленные файлы с описаниями логических элементов, найдите все четыре рассмотренных выше EXE-программы. Наконец, убедитесь в том, что в этом же каталоге присутствует библиотечный файл компонентов TTL. SLB – без него не удастся построить ни одной схемы.

Для своих будущих учебных проектов автор данного пособия рекомендует создать свой собственный рабочий каталог внутри каталога D:\PCAD. При таком его размещении будет несложно организовать запуск нужных программ из командных файлов. По завершении цикла лабораторных занятий этот каталог следует удалить.

Для тех, кто никогда не сталкивался с работой в оболочке FAR, приведём список минимально необходимых команд:

    F3 – просмотр файла, на имени которого расположен курсор (CursorBar); F4 – редактирование (текстового) файла, на котором расположен курсор; Shift-F4 – создание нового текстового (в том числе и командного!) файла; F7 – создание нового каталога; F8 – удаление файла или целого каталога, указанного курсором (ОСТОРОЖНО!!!); нажатие Enter на имени COM-, EXE - или BAT-файла – запуск на выполнение.

Во время работы со встроенным текстовым редактором оболочки FAR используются команды, в общем знакомые по другим редакторам, в частности, Shift+стрелки – для выделения фрагментов текста, CTRL-C – для копирования фрагмента во внутренний буфер, CTRL-V – для вставки содержимого буфера в текст. Для удаления выделенного блока следует нажать CTRL-D. Для сохранения набранного текста нажмите F2, для выхода из встроенного редактора – F10. Эта же функциональная клавиша используется и для завершения работы с оболочкой FAR.

Имя рабочего каталога, как и имена всех создаваемых файлов, должно удовлетворять стандартам MS-DOS. Это значит, что длина имени не превышает 8 (восемь!) символов и состоит только из ЛАТИНСКИХ букв (безразлично, заглавных или строчных), а также цифр. Пробелы внутри имени не допускаются. Имя каталога или файла ZHENYA будет правильным, а имена «Zhenya Fedorov» или «Женя Фёдоров» - нет (не будут корректно обрабатываться PCAD-программами). Нажав F7, создадим свой каталог и перейдём в него. Пусть это будет каталог VITYA.

Теперь надо выбрать имя будущего проекта, оно же – имя файла со схемой. Для схемы, рассмотренной выше, можно выбрать, допустим, имя F31 – функция с тремя входами и одним выходом.

Проверим наличие в каталоге D:\PCAD файла pccaps.bat, содержащий строчки path с параметрами и строку pccaps.exe %1. В имеющейся конфигурации он должен быть на всех компьютерах учебного кабинета. Вернёмся в каталог VITYA, нажмём Shift-F4 и наберём такой текст:

cd..

call pccaps. bat vitya\f31.sch

cd vitya

pause

..\pcnodes f31.sch f31.nlt

..\presim f31.nlt f31.net

pause

..\pclogs f31.cmd

Нажав F2, сохраним этот текст в файле F31.BAT. Это командный файл, из которого последовательно запускаются все необходимые программы и заданы все имена файлов с необходимыми расширениями. Программа PCCAPS редактирует файлы со схемами, сохраняя их с расширением SCH, программа PCNODES строит на основе SCH-файла новый файл с расширением NLT, далее программа PRESIM строит на основе NLT-файла ещё один – NET-файл. Ссылка на этот последний находится в файле с расширением CMD, который будет создан на следующем этапе работы. Сам CMD-файл, как видно из текста, подаётся на обработку программе PCLOGS.

В файле присутствуют две команды PAUSE. Первая из них является чисто отладочной – после успешного запуска файла её можно будет удалить. Вторую рекомендуется оставить, чтобы можно было узнать (по сообщениям на экране), что все промежуточные файлы были успешно созданы и сохранены.

Вновь нажмём Shift-F4, и, находясь в каталоге VITYA, создадим второй командный файл – на сей раз именно для управления программой PCLOGS. Это файл F31.CMD, текст которого был приведён выше – для более удобного соотнесения со схемой, находящейся на той же странице. Теперь наша задача – более подробно обсудить именно команды, поэтому повторим его текст ещё раз:

LOAD F31.NET

CYCLE 10

GEN [0 0] A (S0/4 S1/4)

GEN [0 0] B (S0/2 S1/2)

GEN [0 0] C (S0/1 S1/1)

PROBE A B C F

DISPLAY 1

SIM 25

В этом файле:

·  задана загрузка в логический эмулятор файла с необходимой схемой (LOAD),

·  установлена длительность машинного цикла (CYCLE),

·  генерируются (GEN) сигналы, действующие на входные линии схемы (причём с определёнными параметрами – указана продолжительность периода логического нуля – s0 и логической единицы – s1),

·  указано, какие именно сигналы следует вывести на диаграмму (PROBE),

·  установлен стандартный режим дисплея (DISPLAY 1),

·  задана команда моделирования (SIM) с указанием продолжительности процесса.

Использовать заглавные или строчные буквы в этих командах – не имеет значения. Параметры в квадратных скобках [0 0] в командах GEN в данном практикуме не используются, и на них можно не обращать внимания (то есть всегда оставлять именно такими). Отметим, что никакие разделительные знаки, кроме пробелов, в данном файле не используются.

Теперь в каталоге VITYA размещены два командных файла – F31.BAT и F31.CMD. Нажав Enter на первом из них, запустим его на выполнение. Если всё сделано правильно, должна запуститься программа PCCAPS – мы увидим её заставку, а затем стартовое меню из трёх пунктов:

Configure PC-CAPS

Edit database

Exit PC-CAPS

При первом запуске имеет смысл выбрать пункт «Configure PC-CAPS» и проверить там строку «Library Filename», значение которой следует задать как *.SLB или даже ещё более конкретно - TTL. SLB, ведь другие библиотеки здесь не используются. Можно и строку «Directory path» задать в виде D:\PCAD\VITYA (для нашего примера) - тем самым вы упростите файл F31.BAT, но усложните жизнь тем пользователям, которые будут работать после вас. Лучше оставить всё как есть.

Далее следует сохранить конфигурацию и, вернувшись в стартовое меню, выбрать пункт «Edit database». Здесь под «базой данных» понимается именно схема проектируемого цифрового устройства.

Процесс построения схемы описан в отдельном методическом пособии, имеющемся в компьютерном кабинете. Здесь же мы только перечислим необходимые действия (для начала работы даже этих кратких сведений может оказаться достаточно):

·  убедиться, что меню отображается зелёным цветом (если отображается красным, то выбрать в меню команду DETL);

·  для того чтобы отображались точки в местах соединений будущих проводов, выбрать команду VLYR и затем включить слой с именем SDOT в положение ON;

·  вернувшись в экран редактора, выбрать команду ENTR и далее (из жёлтого меню) – команду COMP;

·  нажать клавишу F1 (здесь это НЕ вызов помощи!) для показа списка доступных библиотек;

·  выбрать TTL. SLB;

·  найти в нижней части экрана команды Page Up и Page Down, а также Exit List; просматривая список, найти нужный элемент (например, 555LN1);

·  выбрав элемент щелчком (левой кнопки - ЛК) мыши, переместить его в поле чертежа, затем зафиксировать в нужном месте опять же щелчком ЛК (удерживать кнопку во время перемещения мыши не следует);

·  нажатием на этот раз ПК мыши (или клавиши ESC) вновь вернуться в список элементов открытой библиотеки и таким же образом выбрать все необходимые элементы;

·  завершить (Exit List) работу с библиотекой элементов;

·  снова выбрать команду ENTR и на сей раз – из жёлтого меню – команду WIRE (тем самым подготовив ввод соединительных проводников);

·  выполнить мышью построение необходимых схемных соединений (синие крестики на выводах компонентов должны исчезнуть);

·  выбрать команду NAME и далее (из жёлтого меню) – команду NET;

·  выполнить ввод имён входных (например, A, B, C), выходных (например, F), а если необходимо, то и промежуточных цепей;

·  сохранить схему в файле, для чего воспользоваться командой FILE и далее (из жёлтого меню) - командой SAVE (появится запрос в нижней части экрана);

·  завершить работу с PCCAPS по командам SYS и далее - QUIT.

При первом сохранении из программы PCCAPS по командам FILE – SAVE следует в ответ на запрос “Enter file name:” ввести имя файла вместе с именем своего каталога, то есть не просто F31.SCH, а именно VITYA\F31.SCH. В дальнейшем, при редактировании и внесении изменений в схему, при сохранении достаточно будет нажимать Enter.

После отработки SYS – QUIT мы вернёмся в стартовое меню PCCAPS, откуда и начали работу. Файл со схемой создан и записан, теперь можно выбрать Exit PC-CAPS.

Как только мы сделаем это, управление вернётся в файл F31.BAT, будут выполнены все промежуточные этапы, будет загружен F31.CMD и отработан логическим эмулятором PCLOGS. На экране появится долгожданный результат всей работы – временная диаграмма сигналов. В противном случае, как уже отмечалось выше, придётся искать ошибку в схеме, командных файлах или даже настройках операционной системы.

Для начала работы над новой схемой создавать новые каталоги не следует. Каждая схема (проект) будет представлена в вашем одном-единственном рабочем каталоге пятью файлами с одним именем, но пятью разными расширениями (например, F31.BAT, F31.CMD, F31.SCH, F31.NLT, F31.NET), так что перекрытия проектов не произойдёт. Для следующего проекта вы выберете другое имя, которое будет дано следующим пяти файлам. Создав BAT- и CMD-файлы один раз для первого проекта, вы будете копировать их (с переименованием) для очередных проектов, а затем редактировать их содержимое.

Сделаем ещё одно важное замечание. В библиотеке TTL. SLB существует несколько элементов и узлов цифровых схем, для корректной работы с которыми в рабочем каталоге пользователя необходимо наличие копий вспомогательных файлов с расширением MDL. Изначально эти файлы находятся в каталоге D:\PCAD. Так, если в состав схемы будет включён дешифратор 555ИД4, то в ваш рабочий каталог (VITYA, например) придётся скопировать файл 555id4.MDL, а если будет применён элемент «Исключающее ИЛИ» 555ЛП5, то придётся скопировать файл 155lp5.MDL (именно 155!). Без этих файлов программа PRESIM даже не сможет построить выходной NET-файл. Следует всегда внимательно следить за возможными сообщениями об ошибках после отработки команды PAUSE, перед запуском PCLOGS в BAT-файле.

Напоминаем, что копирование в оболочке FAR осуществляется с одной панели на другую нажатием F5. Будьте внимательны, не уничтожьте файлы MDL в их первоначальном каталоге.

Сведения об использовании команды GEN

Выше мы уже использовали конструкцию вида GEN [0 0] B (S0/2 S1/2). Возможности команды GEN не исчерпываются этим – с её помощью можно задать весьма сложную конфигурацию входного сигнала, а если нужно, то и его постоянный уровень. Параметры S0 и S1 могут встречаться в тексте команды один или более раз, причём в любых сочетаниях и в любом порядке.

Число, заданное в параметрах S0 и S1 через косую черту, означает длительность (продолжительность) периода логического нуля (S0) и единицы (S1), измеряемую в так называемых машинных циклах, или просто циклах. Продолжительность самого цикла задаётся командой CYCLE. Полезно запомнить (в примерах нижеследующих разделов это будет использовано), что при значении CYCLE 5 вся диаграмма на экране (рабочая ширина экрана) составит ровно 50 циклов (следовательно, можно будет применить команду SIM 50), а при значении CYCLE 10 – соответственно вдвое меньше, то есть команда SIM 25 заполнит диаграммой весь экран.

Пусть на какой-либо вход X надо подать постоянный логический ноль на протяжении всего процесса моделирования. Сделаем это путём указания в единственном параметре S0 значения, заведомо большего того, что задано в команде SIM:

GEN [0 0] X (S0/100)

Если понадобится постоянная логическая единица, то, очевидно:

GEN [0 0] X (S1/100)

Пусть на вход Y надо подать короткий, длительностью всего в один цикл, сигнал нуля, а затем – всё остальное время – сигнал единицы, как это делается с инверсными входами начального сброса (начальной установки) цифрового узла:

GEN [0 0] Y (S0/1 S1/100)

Пусть на вход Z надо подать такую комбинацию: ноль на протяжении первых 10 циклов, далее единица в два цикла, далее ноль в три цикла, затем единица в один цикл и далее – постоянный ноль:

GEN [0 0] Z (S0/10 S1/2 S0/3 S1/1 S0/100)

Тема 4. Минимизация (упрощение) логических функций

Представление логической функции в виде СДНФ, рассмотренное выше, не единственно возможное и, как правило, не самое короткое. Чаще всего подобную формулу удаётся упростить или, как принято говорить в алгебре логики, минимизировать. Этот процесс аналогичен упрощению обычных алгебраических выражений. Безусловно, всем студентам физического факультета памятны задачи из школьного курса алгебры под общим названием «Упростить выражение», например:

Мы применили здесь известное тождество квадрата суммы и приведение слагаемых с разными знаками. Что же может предложить нам алгебра логики? Наиболее очевидный способ состоит также в последовательном применении к исходному логическому выражению (СДНФ) различных логических тождеств. Этих тождеств существует довольно много, часть из них аналогична законам обычной (классической) алгебры, другие же весьма специфичны. Автор данного пособия не планирует превращать последнее в учебник математической логики, поэтому ниже будут приведены лишь самые основные тождества, без которых, что называется, нельзя жить. Остальные тождества можно найти в более подробной учебной литературе.

Процесс минимизации состоит в том, что к исходной СДНФ применяются эти и другие подобные тождества до тех пор, пока это возможно. Возьмём, например, ранее рассмотренную функцию (Тема 2) и преобразуем её:

В результате получилась более короткая формула, чем исходная СДНФ, соответственно и логическая схема будет проще. Попробуйте построить её самостоятельно.

Кроме непосредственного применения логических тождеств, существуют и другие методы минимизации. В частности, довольно широко используется наглядное геометрическое представление функции трёх переменных в виде объёмной фигуры – куба. Предполагается, что куб построен с началом системы координат, расположенном в одной из вершин куба. Сами оси координат, на которых отмечены только значения 0 и 1, представляют ни что иное как значения исходных переменных-аргументов A, B, C:

Функция принимает восемь значений – у куба как раз восемь вершин. Каждая вершина изображается либо закрашенным (тёмным) кружком, если соответствующее значение функции равно 1, либо никак не отмечается, если значение равно 0. Соседние вершины, образующие одно ребро, можно склеить, представив это ребро в формуле двучленной конъюнкцией, что равнозначно применению формулы

ABC V ABC = BC · (A V A) = ВС.

Ещё лучше, если найдутся вершины, образующие целую грань – тогда можно склеить все четыре вершины, представив эту грань в итоговой формуле как одну-единственную переменную (либо её инверсию). Лишь вершины, не имеющие соседей, придётся оставить в таком виде, как они и были – в виде трёхчленных конъюнкций.

Существует и модификация этого представления для случая функции четырёх переменных – четырёхмерный гиперкуб, который в данном случае наглядно изображают в виде двух кубов, один из которых «вложен» в другой (находится внутри другого). У такой фигуры 16 вершин, отвечающих 16 значениям функции. Работа с такой фигурой выглядит уже довольно громоздко.

Дальнейшее развитие геометрического представления привело к появлению очень удобного метода диаграмм Вейча, или метода карт Карно, основанного на зрительном анализе развёрток многомерных кубов на плоскости, Карта Карно – это плоская таблица из восьми клеток для функции трёх переменных и из шестнадцати клеток – для функции четырёх переменных. Значения нулей и единиц над столбцами и слева от строк здесь располагаются так, чтобы при переходе от строки к строке и от столбца к столбцу всегда изменялось значение только одного разряда:

В такую таблицу сначала переносят все значения функции из таблицы истинности (все нули и единицы из столбца F), а затем приступают к построению контуров (обводов) единиц, Единицы, стоящие рядом в количестве 2, 4, или 8 и образующие один вертикальный, один горизонтальный отрезок (прямоугольник) либо квадрат, обводят общим контуром. Одна и та же единица может входить в несколько контуров:

Для каждого такого контура выписывают конъюнкцию переменных-аргументов по принципу: переменная, значение которой изменяется (с 0 на 1 или наоборот) внутри контура, НЕ ВХОДИТ в конъюнкцию (слагаемое будущей ДНФ). Сколько было контуров – столько получится и слагаемых (с учётом ни с чем не объединённых единиц). Останется только соединить эти слагаемые знаками «ИЛИ».

Тема 5. Дополнительные сведения о логических функциях

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

Если в заданной таблице истинности число единиц составляет более половины общего числа строк, то сократить работу по минимизации можно за счёт того, что строить не саму функцию, а её инверсию – попросту говоря, добавить ещё один столбец, куда записать 1 в той строке, где был 0 в столбце F и наоборот. Число единиц теперь окажется существенно меньше. Построив схему для инверсной функции, надо не забыть подключить к её выходу инвертор для восстановления первоначального смысла функции.

Может случиться и так, что функция будет задана не для всех наборов исходных переменных-аргументов, которые перечислены в таблице истинности. Пусть в каком-либо календарном устройстве воскресенье кодируется как 000, понедельник – как 001 и так далее до субботы – 110. Больше дней недели нет, комбинация 111 осталась неиспользованной. При правильной работе устройства на вход блока, включающего световое табло «Сегодня мастерская не работает», никогда не будет поступать этот код 111. Для того, кто задаёт таблицу, значение функции на этом наборе безразлично.

Такого рода функции называют недоопределёнными или частично определёнными. В таблице истинности на местах неопределённых значений обычно ставят прочерки. Непосредственно построить СДНФ, а значит, и схему для такой функции нельзя. Функцию сначала надо доопределить – то есть самостоятельно заполнить позиции прочерков нулями либо единицами. Как правило, это делают так, чтобы достичь лучшей минимизации. Удобно это делать непосредственно в карте Карно – сначала перенести туда из таблицы истинности не только все нули и единицы, но и все прочерки, затем заполнить позиции прочерков так, чтобы объединялось возможно большее количество единиц.

В конструкциях цифровых устройств часто находит применение ещё одна базисная функция, которую в настоящее время можно считать стандартной. Она называется «сумма по модулю 2». В случае двух (и только двух!) аргументов эта же функция именуется «Исключающее ИЛИ», «Неравнозначность», NAND. Таблица истинности этой функции была приведена выше (Тема 1). Название связано с тем, что функция в точности совпадает с результатом арифметического сложения двоичных чисел в пределах одного разряда. Отсюда широкое применение этой функции при построении разного рода счётных и суммирующих устройств, а также устройств контроля правильности передачи данных. Ниже приведено условное изображение элемента, реализующего эту функцию, и её представление в базисе И, ИЛИ, НЕ:

Если используемый логический базис дополнить этим элементом, то зачастую удаётся более экономно строить логические устройства для тех функций, которые не минимизируются или плохо минимизируются в базисе И, ИЛИ, НЕ.

Серия интегральных микросхем (ИМС) – это группа ИМС, одинаковых или схожих по используемым технологиям и имеющих одинаковые (совместимые) уровни входных и выходных сигналов, рассчитанные для совместного применения в аппаратуре. Серия, как правило, обозначается номером (например, 155, 555 или 176), а отдельные изделия – логические элементы и более крупные узлы – обозначаются сочетанием букв и цифр, например, 155ИР17 или 176ЛА1.

В библиотеке TTL. SLB размещаются модели элементов серии 555. Это отечественная серия, и её компоненты изначально обозначались русскими буквами. Однако, поскольку в библиотеках PCAD русские обозначения не допускаются, то и все обозначения, находящиеся там, получены транслитерацией (заменой русских букв на английские). Так, элемент 555ЛА3 обозначен как 555LA3, 555ИЕ7 – как 555IE7 и так далее.

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

Важнейшими элементами этого расширенного базиса являются инвертирующие функции (и соответственно элементы) И-НЕ и ИЛИ-НЕ. Любая из этих функций сама обладает полнотой, то есть способностью выражать какие угодно сложные логические функции только через саму себя. Таблицы истинности этих функций были приведены выше (Тема 1). Особенно часто используется сочетание элементов (функций) НЕ и И-НЕ. Есть в серии 555 и ещё более мощные комбинированные элементы, например, 555ЛР11.

Логический элемент И-НЕ обозначается подобно элементу И, а элемент ИЛИ-НЕ – подобно элементу ИЛИ, но с очень важным (!) отличием: на выходе элемента изображается кружок – символ инверсии, как у элемента НЕ. Чтобы грамотно работать в инвертирующих базисах, надо знать логические тождества, известные как правила де Моргана.

Правила де Моргана для случая двух аргументов изображаются следующими формулами:

Формул всего две, запись справа и слева означает (по закону двойного отрицания) по сути одно и то же и приведена здесь лишь для удобства использования.

Элементы И-НЕ более эффективно реализуются интегральной технологией, чем чистые И, а также ИЛИ, поэтому после построения и минимизации логической функции имеет смысл перевести полученную формулу в базис НЕ, И-НЕ и реализовать на ИМС серии 555 именно в таком виде.

Тема 6. Пример реализации функции в инвертирующем базисе

Возьмём за основу всё ту же функцию (Тема 4), получившуюся после минимизации методом Карно, и построим её схему в инвертирующем базисе.

Отметим, что функция после минимизации оказалась не зависящей от переменной В. Эта переменная является в данном случае фиктивным аргументом, то есть не влияет на результат, вырабатываемый функцией. Применяем правила де Моргана таким образом, чтобы перейти от функции ИЛИ к функции И-НЕ, для чего инвертируем каждый из операндов (слагаемых) функции ИЛИ, заменяем ИЛИ на И, после чего инвертируем весь результат.

Теперь, пользуясь другим (справочным) методическим пособием, выберем нужные элементы. С инвертором 555LN1 мы уже знакомы. Ещё нам понадобится два двухвходовых элемента И-НЕ (находим, что это 555LA3) и элемент с той же функцией, но тремя входами (это 555LA4).

Приступаем к построению схемы:

Обратите особое внимание на то, что на выходе каждого элемента присутствует кружок – символ инверсии!

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

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

·  проинвертировать все входные сигналы;

·  все элементы И заменить на ИЛИ;

·  все элементы ИЛИ заменить на И;

·  все инверторы, которые были в схеме, оставить без изменения,

·  на выход схемы подключить инвертор,

то выполняемая схемой функция останется той же самой!

Следовательно, каждая логическая схема может существовать в двух вариантах - основном и двойственном (дуальном). Оба варианта логически абсолютно равноправны, но, скорее всего, окажутся различными по затратам оборудования. Какой вариант выбрать, решает сам разработчик.

Тема 7. Этапы построения логической схемы. Варианты заданий

Этап 1. Построение таблицы истинности. Формализация задания, первоначально поставленного в виде обычных фраз разговорного языка.

Этап 2.Если значения будущей функции заданы не для всех наборов, функцию придётся доопределить. Если прочерков в таблице немного, есть смысл рассмотреть все возможные варианты доопределения, иначе – доопределить нулями, чтобы по крайней мере уменьшить количество слагаемых СДНФ.

Этап 3. Выписать СДНФ прямой или, может быть, инверсной функции. Возможно, в дальнейшей работе будут участвовать несколько вариантов СДНФ.

Этап 4. Минимизировать СДНФ любыми доступными способами.

Этап 5. Реализовать построение схемы в базисе конкретной серии ИМС. Рассмотреть, если необходимо, варианты в неинвертирующем и инвертирующем базисах.

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

Этап 7. Выбрать из нескольких ранее рассмотренных вариантов наилучший в определённом смысле (по оборудованию, стоимости, энергопотреблению).

Задания на разработку логической схемы для функции трёх переменных

A

B

C

Вариант 1

Вариант 2

Вариант 3

Вариант 4

Вариант 5

Вариант 6

0

0

0

0

1

1

1

1

0

0

1

1

0

0

1

1

0

1

0

1

0

1

0

1

0

1

1

0

1

1

0

1

1

1

0

0

0

1

1

1

0

1

0

1

1

1

0

0

1

1

0

1

1

0

1

0

0

0

1

1

0

1

1

1

1

1

1

0

0

0

1

1

Тема 8. Цифровые устройства без памяти

Дешифратор – устройство, преобразующее двоичный код на входах в сигнал на одном (и только одном) из нескольких выходов. Дешифратор называется полным, если он имеет N входов и 2N выходов. Если количество выходов меньше, то дешифратор называют неполным.

На рисунке приведена основная часть схемы (дешифрирующие элементы И) для полного дешифратора со входами A и B и четырьмя выходами, а также таблица истинности для всех выходов и условное графическое изображение дешифратора (DeCoder - DC) в целом. Видно, что единицы в таблице расположены по диагонали. При таком построении схемы (линейный дешифратор) каждый конъюнктор имеет столько входов, какова разрядность входного кода всего устройства в целом.

Дешифратор можно изготовить из отдельных логических элементов, однако существуют (в том числе и в серии 555) готовые ИМС, выполняющие эту функцию.

Задания.

1.  Построить полные схемы дешифраторов «2-4» и «3-8» на логических элементах.

2.  Построить схему дешифратора «2-4», имеющего (кроме входов данных) разрешающий вход E. В случае E=1 дешифратор работает как обычно, при E=0 на всех выходах дешифратора должен установиться неактивный уровень (логический 0).

3.  Исследовать работу готовой ИМС - сдвоенного дешифратора-демультиплексора 555ИД4 согласно указаниям, приведённым ниже. Не забудьте скопировать в ваш рабочий каталог файл 555id4.mdl, как было сказано выше (Тема 3).

Обсудить с преподавателем вопрос о том, почему вход разрешения D одного из дешифраторов выполнен прямым, а другого (вход E) – инверсным. Объяснить, что происходит на диаграмме (при использовании указанных на рисунке входных сигналов) на 10-м, 20-м и 30-м циклах (периодах сигнала B). Изменить CMD-файл так, чтобы на 35-м цикле работы, не изменяя сигналов D и E, одновременно выключить оба дешифратора. Переделать модель так, чтобы ИМС 555ИД4 работала как один дешифратор «3-8», Наконец, обсудить вопрос о том, почему это устройство называется также демультиплексор (после изучения мультиплексоров).

Шифратор – устройство, в определённом смысле противоположное дешифратору. Он имеет 2N входов, N выходов и преобразует сигнал на одном из входов в двоичный код на выходах. Обычно предполагается, что логическая единица может присутствовать ровно на одном из входов. Существуют также устройства, способные выделить и преобразовать в выходной код самую старшую из нескольких единиц, присутствующих во входном наборе. Такой шифратор называют приоритетным. Буквы CD в условном графическом изображении шифратора происходят от слова coder (более правильно: encoder).

Схема обычного шифратора проще схемы дешифратора в том, что первая не содержит входных инверторов, а также элементов И, поскольку нет необходимости выделять определённые сочетания нулей и единиц. Строится шифратор на элементах ИЛИ, в данном случае A = f2 V f3, B = f1 V f3. Интересно отметить, что линия f0 будет вообще никуда не подключена, так как сигналу f0 отвечает комбинация «все нули» на выходах.

Как и в случае дешифратора, существуют готовые ИМС шифраторов (как правило, приоритетных), в частности, 555ИВ1. Как и большинство других микросхем средней степени интеграции, ИМС 555ИВ1 является многофункциональным узлом, имеет вход разрешения EI (для включения в работу следует подать EI=0) и так называемый тракт групповых сигналов, выходы которого здесь рассматривать не будем.

Задания.

1.  Построить схемы шифраторов «4-2» и «8-3» на логических элементах.

2.  Исследовать работу готового шифратора 555ИВ1. Не забудьте скопировать в ваш рабочий каталог файл 555iv1.mdl, как было сказано выше (Тема 3).

Следует иметь в виду, что в микросхеме 555ИВ1 используется соглашение отрицательной логики, то есть уровни всех без исключения сигналов инвертированы: смысловому значению логической единицы соответствует низкий уровень напряжения (задаваемый в GEN при помощи S0), а значению логического нуля – высокий уровень (задаваемый при помощи S1). Если при работе в PCAD обозначить входные выводы как f0, f1 и так далее до f7, вход разрешения обозначить e, а выходы – a0, a1, a2, то можно для начала исследования задать следующие комбинации сигналов:

CYCLE 5

GEN [0 0] f0 (S1/2 S0/2 S1/100)

GEN [0 0] f1 (S1/4 S0/2 S1/100)

GEN [0 0] f2 (S1/6 S0/2 S1/100)

GEN [0 0] f3 (S1/8 S0/2 S1/100)

GEN [0 0] f4 (S1/10 S0/2 S1/100)

GEN [0 0] f5 (S1/100)

GEN [0 0] f6 (S1/100)

GEN [0 0] f7 (S1/100)

GEN [0 0] e (S0/50)

PROBE f0 f1 f2 f3 f4 e a0 a1 a2

DISPLAY 1

SIM 50

Внимательно рассмотреть способ формирования сигналов f0-f4. Далее изменить CMD-файл согласно указаниям преподавателя, например, сформировать f5-f7 аналогичным образом, подать на входы несколько нулей сразу и т. д.

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

Общая схема мультиплексора с четырьмя входами данных (D0-D3), двумя адресными входами (A0-A1) и входом разрешения (E), построенная на основе изученных ранее функциональных узлов, может выглядеть так:

На входы данных D0-D3 поступает какая-либо дискретная информация в виде последовательностей нулей и единиц. На выход Y проходит информация только с одного из входов, а именно того, номер которого в двоичном виде (00, 01, 10, 11) задан на адресных входах A0 и A1. Наличие входа E позволяет в любой момент «запереть» мультиплексор, установив неактивный уровень выхода Y.

На этом же рисунке справа показано условное обозначение мультиплексора, Буквенный код – MX либо MS (мультиплексор-селектор).

Данная схема, хоть и вполне работоспособна, но избыточна. Вспомним, что дешифратор – это группа конъюнкторов. Одни и те же многовходовые конъюнкторы могут работать и в дешифраторе, и выполнять функцию коммутаторов данных, а также функцию разрешающего выходного элемента. Учитывая это, приведённую на рисунке схему можно построить, используя четыре четырёхвходовых элемента И, один четырёхвходовой ИЛИ и два инвертора (в дешифраторе). Преобразовав выходной каскад по формуле де Моргана, можно обойтись только пятью однотипными элементами И-НЕ и двумя инверторами.

Задания.

1.  Построить схему описанного мультиплексора на пяти элементах И-НЕ (555LA1) и двух инверторах (555LN1).

2.  Исследовать работу одного из готовых мультиплексоров серии 555, например, 555КП7. Для этого подать, например, на три младших входа данных три разные последовательности 0 и 1 (с различными периодами повторения) и. переключая мультиплексор по адресным входам, наблюдать состояние выхода.

3.  Построить модель мультиплексированной линии передачи данных, например, от двух источников. На передающем конце использовать один из имеющихся в TTL. SLB мультиплексоров, на приёмном – ИМС 555ИД4 в качестве демультиплексора.

Схемы преобразования произвольных кодов

Пусть задан какой-либо код A и, располагая им, разработчик должен получить код B. Для конкретного примера пусть A и B – двухразрядные коды, соответствие между которыми задано с помощью таблицы.

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

Задание. Построить преобразователь кода согласно таблице, заданной преподавателем. Исследовать возможности первого и второго подходов.

Сумматоры и арифметические устройства

В самом начале (Тема 1) этого пособия было указано, что алгебра логики и двоичная арифметика – совершенно разные математические методы описания дискретной информации, хоть и оперируют внешне схожими объектами (0 и 1). С помощью логических элементов, однако, можно воспроизводить действия над разрядами двоичных чисел, совпадающие с правилами двоичной арифметики. Этот факт, собственно, и лежит в основе построения арифметико-логических устройств компьютеров.

Устройство на логических элементах, которое выполняет арифметическое сложение двух двоичных разрядов, вырабатывает значения суммы и переноса, но само не получает перенос из предыдущего разряда, называется полусумматор. Такая схема имеет, следовательно, два входа и два выхода.

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

Существуют также схемы для увеличения двоичного кода числа на единицу – инкременторы и уменьшения на единицу – декременторв. Схемы этих устройств оставляем для самостоятельного рассмотрения.

Тема 9, Цифровые устройства с памятью

Триггер из двух логических элементов – самое простое устройство, способное запоминать один бит информации, то есть сколь угодно долго находиться в одном из двух возможных состояний. Классические варианты такой схемы строятся либо на элементах ИЛИ-НЕ, либо на элементах И-НЕ и называются RS-триггер (Reset – сброс, Set - установка).

Задание. Смоделировать работу RS-триггера на элементах И-НЕ со следующими параметрами входных сигналов:

GEN [0 0] notS (S0.2 S1/2)

GEN [0 0] notR (S0.4 S1/2)

Обратить внимание на то, как ведёт себя триггер при переходе от комбинации входных сигналовк комбинацииОбсудить с преподавателем понятие «запрещённая комбинация».

Существует множество других, в определённом смысле более совершенных, схем триггеров, например:

Здесь показаны схемы синхронного RS-триггера и так называемого прозрачного D-триггера («прозрачная защёлка»). Описание теоретических аспектов работы этих, как и нижеследующих, устройств здесь приводиться не будет – для этой цели имеется обширная учебная литература.

Задание. Смоделировать работу приведённых схем. На вход С следует подать периодический сигнал (меандр) с периодом повторения 2 цикла. На информационные входы подать сигналы с периодами повторения, существенно большими, чем C, например, 4…6 циклов. Пронаблюдать переключение триггеров по изменению состояний выходов. В случае затруднений посмотрите текст CMD-файла для следующей схемы.

D-триггер этого типа прозрачен для входных сигналов при C=1. Промоделировать этот эффект. Далее рекомендуется добавить к этим схемам цепи (входы) для подачи сигналов асинхронной установки-сброса, как показано в следующем примере, и использовать эти входы до начала действия сигнала C.

Следующее устройство, которое мы будем рассматривать – это двухступенчатый (двухтактный) RS-триггер.

На цепь, помеченную буквой D и содержащую инвертор, сначала не следует обращать внимания. Такой триггер, состоящий из двух ступеней, непрозрачен для входных сигналов ни при C=0, ни при C=1. Здесь предусмотрены входы асинхронной установки в 1 (notSA) и сброса в 0 (notRA) с низким активным уровнем сигнала. Запрещённая комбинация существует и для данного триггера, что будет видно, наряду с другими особенностями поведения, при моделировании:

CYCLE 5

GEN [0 0] notSA (S1/100)

GEN [0 0] notRA (S0/1 S1/100)

GEN [0 0] C (S0/2 S1/2)

GEN [0 0] R (S0/4 S1/4)

GEN [0 0] S (S0/5 S1/6)

PROBE.....

DISPLAY 1

SIM 50

Обратите внимание на то, как формируются сигналы асинхронной установки-сброса. Такой способ приходится использовать очень часто.

Если теперь подключить цепь с буквой D и инвертором (и убрать, разумеется, наименования R и S), то получится двухступенчатый D-триггер. Обязательно промоделируйте и его. Найдите, рассматривая диаграмму, ответ на вопрос, по переднему или по заднему фронту синхросигнала происходит запись информации в триггер.

В арсенале цифровой техники имеется и другой способ построения D-триггера – знаменитая шестиэлементная схема:

Этот триггер иначе реагирует на передний и задний фронт сигнала C по сравнению с предыдущей схемой. Как именно? Найдите ответ на этот вопрос путём моделирования в PCAD. По аналогичной схеме построена готовая ИМС 555ТМ2.

Если выходы двухтактного RS-триггера соединить накрест обратными связями с его входами, получится так называемый JK-триггер, имеющий большое практическое значение:

У такого триггера нет запрещённых комбинаций – при подаче J=K=1 триггер работает как устройство со счётным входом (см. ниже).

Серия 555 содержит набор готовых триггеров, в частности, 555ТМ7 (прозрачный D-триггер), 555ТМ2 (тоже D-триггер, но непрозрачный), 555ТВ9 (JK-триггер). На основе имеющихся триггеров можно построить также T-триггер, или триггер со счётным входом, который изменяет своё состояние на противоположное по приходу очередного импульса. Другими словами, T-триггер делит частоту входных сигналов на два.

Задание. Промоделировать JK-триггер и исследовать имеющиеся готовые ИМС триггеров, Построить и смоделировать T-триггеры по приведённым схемам (лучше в одном проекте), причём обязательно обратить внимание на различие в поведении T-триггера на основе 555ТВ9 и на основе 555ТМ2.

На основе отдельных триггеров можно построить регистры, предназначенные для хранения набора битов (двоичного слова) и, при необходимости, выполнения над этим словом каких-либо операций. Классический параллельный регистр, представляющий собой набор D-триггеров, объединённых цепями управления, не слишком интересен для моделирования и здесь рассмотрен не будет. Приведём вариант схемы сдвигового регистра:

Информация, поступающая в последовательном коде на вход DS (Data Serial), сдвигается вправо всякий раз при подаче сигнала Shift. Конкретные особенности процесса зависят от того, на каких D-триггерах – записывающих информацию по переднему или заднему фронту синхросигнала – построена эта схема.

Счётчик – устройство, предназначенное для пересчёта количества поданных входных сигналов. Строятся такие схемы на T-триггерах и отличаются большим разнообразием. На рисунке приведена схема простого суммирующего (инкрементного) счётчика, подсчитывающего сигналы на входе Inc. Такая схема носит название «счётчик с непосредственной связью».

Счётчик состоит из трёх триггеров и последовательно перебирает восемь (23 = 8) своих состояний, что проявляется в изменении сигналов на выходах d0-d2 от 000 до 111, после чего всё начинается сначала. Вообще, если не принимать специальных мер, то счётчик, состоящий из N триггеров, будет последовательно перебирать 2N различных состояний. Это число называется коэффициентом пересчёта. У данной схемы он равен 8, при четырёх триггерах – 16 и т. д.

Каждый последующий каскад счётчика получает сигнал от предыдущего, Его можно снять с прямого выхода триггера, а можно и с инверсного, как показано в нашем примере. В первом случае получится вычитающий счётчик, во втором – суммирующий. Это утверждение верно, если счётчик построен на триггерах, переключающихся по переднему фронту сигнала. В случае триггеров, переключающихся по заднему фронту, ситуация будет обратной.

Часто необходим счётчик, имеющий коэффициент пересчёта, отличный от 2N. Существует несколько способов построить такую схему. Самый простой (но не всегда лучший) вариант – досрочно сбросить счётчик по цепи R, когда будет обнаружено достижение нужного числа (состояния), В нижеследующем примере сброс происходит всякий раз при достижении состояния 101, то есть схема считает от 0 до 4, начиная сначала при появлении 5. Обратите внимание на то, что элемент «чистое И» здесь работает как «ИЛИ» для нулей.

Задание. Построить счётчик с заданным коэффициентом пересчёта. Возможно использование для этой цели как схем, построенных из отдельных триггеров, так и готовых счётчиков серии 555, дополняемых соответствующими внешними цепями.