
- •Содержание
- •Тема 1. Логические функции. Булевский базис
- •Тема 2. Построение и моделирование логических схем
- •Тема 3. Методика работы в системе pcad
- •Тема 4. Минимизация (упрощение) логических функций
- •Тема 5. Дополнительные сведения о логических функциях
- •Тема 6. Пример реализации функции в инвертирующем базисе
- •Тема 7. Этапы построения логической схемы. Варианты заданий
- •Тема 8. Цифровые устройства без памяти
- •Тема 9, Цифровые устройства с памятью
Государственное образовательное учреждение
высшего профессионального образования
ИРКУТСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ФИЗИЧЕСКИЙ ФАКУЛЬТЕТ
КАФЕДРА РАДИОЭЛЕКТРОНИКИ
Коршунов Алексей Дмитриевич
Моделирование цифровых устройств в системе 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 |
Рассмотренный булевский базис (набор функций) И, ИЛИ, НЕ обладает свойством полноты – это означает, что с помощью только этих функций можно выразить любую функцию алгебры логики, сколь бы сложной она ни была (отметим, что существуют и другие базисы с этим же свойством). Соответственно, при помощи одних только конъюнкторов, дизъюнкторов и инверторов можно (в принципе) построить логическую схему любого цифрового устройства, работа которого описывается в терминах алгебры логики!
Отметим, что приведённые выше обозначения логических элементов относятся к так называемой европейской системе. В отечественном школьном курсе информатики (Угринович Н.Д. и др.) используется другая символика, а именно:
Студенты, не занимавшиеся ранее цифровой электроникой, скорее всего, знакомы именно с этими обозначениями, оставшимися в памяти после школы. В инженерной литературе они практически не применяются. Существует также и американская система обозначений элементов, рассматривать которую здесь не будем.