
- •Содержание
- •Введение
- •1. Функции алгебры логики и их свойства
- •1.1. Функции одной переменной
- •1.2. Функции двух переменных
- •1.4. Обратные и инверсные логические функции
- •1.4.1. Обратные функции
- •Прямое соответствие (рис. 2,а)
- •Обратное соответствие (рис. 2,б)
- •1.4.2. Инверсные функции
- •1.5. Приоритеты операций
- •1.6. Законы и тождества булевой алгебры
- •1.7. Вопросы для самоконтроля
- •2. Формы задания логических функций
- •2.1. Словесная форма
- •2.2. Табличная форма
- •2.3. Задание формулой
- •2.3.1. Совершенная дизъюнктивная нормальная форма
- •Выводы:
- •Правила составления сднф
- •2.3.2. Совершенная конъюнктивная нормальная форма
- •Правила составления скнф
- •2.3.3. Дизъюнктивные и конъюнктивные нормальные формы
- •2.3.4. Минтермы, макстермы и их свойства
- •2.4. Другие формы задания логических функций
- •2.5. Вопросы для самоконтроля
- •3. Функционально полные системы функций
- •Штрих Шеффера
- •Стрелка Пирса
- •Импликация и «0»
- •3.1. Теорема Поста–Яблонского
- •3.1.1. Определение минимального базиса
- •3.1.2. Функции, не сохраняющие 0 и 1
- •3.1.3. Двойственная функция
- •3.1.4. Монотонная функция
- •3.3. Вопросы для самоконтроля
- •4. Минимизация логических функций
- •4.1. Расчетный метод
- •4.1.1. Склеивание
- •4.1.2. Поглощение
- •4.1.3. Развертывание
- •4.2. Карты Карно
- •4.3. Минимизация систем логических уравнений
- •4.4. Частично определенная логическая функция
- •4.5. Вопросы для самоконтроля
- •5. Синтез и анализ логических схем
- •5.1. Схемы на переключателях, диодах и транзисторах
- •5.2. Схемы на логических элементах
- •5.2.1. Реализация функции на элементах и, или, не
- •5.2.2. Реализация функции на элементах и–не
- •5.2.3. Реализация функции на элементах или–не
- •5.3. Анализ схем
- •5.4. Оценка качества схем
- •5.5. Вопросы для самоконтроля
- •6. Булева производная
- •6.1. Контроль работоспособности логических схем
- •6.2. Построение тестов методом булевой производной
- •6.2.1. Свойства булевой производной
- •6.3. Вопросы для самоконтроля
- •7. Примеры преобразований логических функций
- •7.1. Представление логических функций в системе и, или, не
- •7.2. Построение таблиц истинности
- •7.3. Преобразование кнф в днф и днф в кнф Преобразование кнф в днф
- •Преобразование днф в кнф
- •7.4. Доказательства равенства логических функций
- •7.5. Разложение логических функций по переменным
- •7.5.1. Последовательное разложение по всем переменным Разложение по п. 1.6.13 (1)
- •Разложение по п. 1.6.13 (2)
- •7.5.2. Параллельное разложение по всем переменным разложение по п. 1.6.13 (1)
- •Разложение по п. 1.6.13 (2)
- •8. Домашняя работа
- •8.1. Задание
- •8.2. Выполнение
- •Проверить двумя способами эквивалентность формул
- •С помощью эквивалентных преобразований привести формулу к днф, кнф, сднф, скнф, получить полином Жегалкина.
- •С помощью карт Карно найти все минимальные днф функции трех переменных ƒ(X,y,z).
- •С помощью карт Карно найти все минимальные днф и кнф булевой функции четырех переменных , заданной вектором своих значений.
- •Является ли полной система функций? Образует ли она минимальный базис?
- •9. Список литературы
- •Введение в булеву алгебру
- •Гоу впо “Московский государственный университет приборостроения и информатики”
- •107996, Москва, ул. Стромынка, 20
4.3. Минимизация систем логических уравнений
Логическая схема с m выходами описывается системой m логических уравнений. (Для каждого выхода – свое уравнение.)
Простейший подход к минимизации таких систем уравнений – минимизация каждого уравнения системы в отдельности, но получаемый результат будет далеко не лучшим. Существует несколько, достаточно общих, способов минимизации систем логических уравнений. В основе всех этих способов лежит идея использования одной функции или ее части для получения других функций. Например, пусть заданы функции:
Вполне очевидно, что для минимизации можно использовать соотношения:
что значительно сократит объем необходимого оборудования при реализации.
Удобным и наглядным для минимизации систем логических уравнений является способ с использованием карт Карно.
Применение этого способа покажем на примере.
Пусть даны три функции:
Составим для этих функций карты Карно (табл. 25).
При сравнении карт легко видеть, что функции имеют четыре общих единицы (эти единицы отмечены звездочкой), которые можно выразить некоторой функцией
.
Таблица 25 |
||||||||||||||||||
f1 |
|
|
f2 |
|
|
f3 |
||||||||||||
x3\x2x1 |
00 |
01 |
11 |
10 |
|
|
x3\x2x1 |
00 |
01 |
11 |
10 |
|
|
x3\x2x1 |
00 |
01 |
11 |
10 |
0 |
0 |
1 |
0 |
1 |
|
|
0 |
1 |
0 |
0 |
1* |
|
|
0 |
1 |
1 |
0 |
1* |
1 |
1* |
1* |
0 |
1* |
|
|
1 |
1* |
1* |
1 |
1* |
|
|
1 |
1* |
1* |
0 |
1* |
С учетом этого выражения функции f1, f2, f3 можно представить следующим образом
4.4. Частично определенная логическая функция
В табл. 26 приведен пример частично определенной логической функции y, с помощью которой сделана попытка закодировать рабочие дни недели информационно–расчетного центра с учетом видов работы.
Прием посетителей производится по понедельникам, вторникам, четвергам и субботам. В среду и пятницу проводится работа с организациями. Воскресенье – выходной день.
Таблица 26 |
|||||||||
|
№ |
c |
b |
a |
y |
y0 |
y1 |
y2 |
y3 |
|
0 |
0 |
0 |
0 |
* |
0 |
0 |
1 |
1 |
Пн |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
Вт |
2 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
Ср |
3 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
Чт |
4 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
Пт |
5 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
Сб |
6 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
Вс |
7 |
1 |
1 |
1 |
* |
0 |
1 |
0 |
1 |
Два набора входных переменных 000 и 111 не используются, т.е. они никогда не будут подаваться на устройство кодирования, поэтому функция y на наборах 0 и 7 может принимать любые значения. В графах y0, y1, y2, y3 табл. 26 показаны все четыре возможных варианта значений этой функции.
Для определения наиболее простого варианта кодирования дней недели проведем минимизацию функций y0, y1, y2, y3 с помощью карт Карно (см. табл. 27, где звездочкой отмечены доопределенные значения функции).
В результате получаем
,
,
,
.
Как видим, y2 оказалась самой простой функцией.
Таблица 27 |
|||||||||||||||||||||||||||||||
y0
|
y1
|
||||||||||||||||||||||||||||||
y2
|
y3
|
Другой пример частично определенной функции дает логический узел ЭВМ – шифратор, таблица истинности которого приведена в табл. 28.
Таблица 28
Входы СD |
Выходы CD |
||||
y0 |
y1 |
y2 |
y3 |
a |
b |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
Шифратор
(полный) имеет в общем случае 2n
входов и n выходов и
выполняет преобразование единичных
сигналов на отдельных входах в двоичные
наборы на выходах. При 2n
входах возможно
входных
наборов, а используется только 2n
набора, поэтому функции на выходах
шифратора являются частично определенными.
Например, при n = 2,
когда число входов равно 4 (входы yi),
выходные функции a и
b определены только
на четырех наборах из 16 возможных.
Формулы для выходных функций a и b определяются по картам Карно, показанным в табл. 29 и табл. 30.
В картах Карно не используемые наборы помечены символом *, а в выделенных прямоугольниках символы * заменяются 1.
Таблица 29
a |
||||
y0y1\y2y3 |
00 |
01 |
11 |
10 |
00 |
* |
1 |
1* |
0 |
01 |
1 |
1* |
1* |
1* |
11 |
1* |
1* |
1* |
1* |
10 |
0 |
1* |
1* |
* |
Таблица 30
b |
||||
y0y1\y2y3 |
00 |
01 |
11 |
10 |
00 |
* |
1 |
1* |
1 |
01 |
0 |
1* |
1* |
1* |
11 |
* |
1* |
1* |
1* |
10 |
0 |
1* |
1* |
1* |
Рекомендация: Если имеем дело с частично определенной функцией, то на наборах, на которых функция не определена, можно ставить либо «0», либо «1», и выбирать вариант, при котором функция получается самой простой. Причем заключение о лучшем варианте, как правило, можно сделать непосредственно по картам функций, не составляя выражений для функций.