
- •Часть 2
- •8.091501–«Компьютерные системы и сети» и
- •7.091503–«Специализированные компьютерные системы»
- •Содержание
- •Введение
- •1 Основные понятия и определения алгебры логики и цифрового конечного автомата
- •1.1 Основные определения алгебры логики
- •1.2 Конечный автомат
- •1.3 Основные логические операции
- •1.3.1 Операция отрицания
- •1.3.2 Операция логического умножения
- •1.3.3 Операция логического сложения
- •1.3.4 Операция эквиваленция
- •1.3.5 Операция импликация
- •1.3.6 Сумма по модулю 2
- •1.3.7 Штрих Шеффера
- •1.3.8 Стрелка Пирса
- •2 Зависимость состава функций от числа переменных
- •2.1 Состав функций при отсутствии входных переменных
- •2 .2 Функции одной переменной
- •2.3 Функции двух переменных
- •2.4 Действительные и фиктивные функции
- •2.5 Определение общего числа функций
- •3 Суперпозиция функций
- •3.1 Методы суперпозиции
- •3.2 Выражение одних элементарных функций через другие
- •4 Свойства законов и правила алгебры логики
- •4.1 Свойства операций конъюнкции, дизъюнкции и отрицания
- •4.2 Свойства суммы по модулю 2, импликации, функции Шеффера и Пирса
- •5.1.1 Представление лф в совершенной дизъюнктивной нормальной форме
- •5.1.2 Дизъюнктивная нормальная форма лф
- •5.1.3 Представление лф в совершенной конъюнктивной нормальной форме
- •5.2 Основные свойства и алгоритм получения сднф, скнф
- •5.2.1 Общие свойства сднф
- •5.2.2 Алгоритм записи сднф
- •5.2.3 Свойства скнф
- •5.2.4 Алгоритм записи скнф
- •5.3 Способы преобразования днф и кнф в сднф и скнф
- •6 Полные системы функций
- •6.1 Функционально полные базисы
- •6.2 Теорема Поста
- •7 Методы минимизации функций алгебры логики
- •7.1 Аналитический метод минимизации фл
- •7.2 Числовое и геометрическое представление фл
- •7.3 Минимизация фл с помощью комплекса кубов
- •7.3.1 Построение комплекса кубов и его минимального покрытия
- •7.3.2 Цена покрытия кубов
- •7.4 Метод неопределенных коэффициентов
- •8 Метод квайна-мак-класки
- •9 Метод минимизации фл с помощью карт карно
- •9.1 Правила минимизации по картам Карно
- •9.1.1 Соседние клетки
- •9.1.2 Правило объединения соседних клеток
- •9.1.3 Определение простых импликант
- •9 .2 Не полностью определенные логические функции в картах Карно
- •10 Анализ и структурный синтез цифровых автоматов
- •10.1 Задачи анализа и синтеза
- •10.2 Синтез элементов логических схем
- •10.3 Особенности схем логических элементов
- •10.3.1 Базовый логический элемент
- •10.3.2 Элемент с открытым коллектором
- •10.3.3 Элементы и - или – не и расширители
- •10.3.4 Трисабильные элементы
- •10.4 Временные параметры логических микросхем
- •10.5 Переходные процессы в логических схемах микросхем
- •11 Комбинационные схемы
- •11.1 Построение преобразователя кодов
- •11.2 Сумматоры
- •11.3 Временные логические функции
- •12 Способы задания цифровых конечных автоматов
- •12.1 Математические модели ца
- •12.2 Табличный способ задания ца
- •12.3 Задание цифрового автомата графом
- •12.4 Минимизация абстрактных автоматов
- •13 Методы структурного синтеза автоматов
- •13.1 Канонический метод синтеза автомата
- •13.1.1 Пример синтеза ца каноническим методом
- •13.2 Структурный синтез ца по методу графа автомата
- •13.3 Метод синтеза ца по граф–схеме алгоритма
- •13.4 Синтез автомата с жесткой логикой управления
- •13.4.1 Принцип работы микропрограммного автомата с жесткой логикой управления
- •13.4.2 Проектирование микропрограммного автомата с жесткой логикой управления
- •14 Язык задания поведения цу - vhdl и синтезатор leonardo
- •15 Программируемые логические матрицы
- •16 Схемы основных логических устройств
- •16.1 Элементы памяти последовательностных логических схем
- •16.1.1 Триггер
- •16.1.1.1 Асинхронный rs - триггер
- •16.1.1.2 Синхронный rs - триггер
- •16.1.2 Универсальный jk-триггер
- •16.2 Регистры
- •16.2.1 Параллельные и последовательные регистры
- •16.2.2 Реверсивный регистр сдвига
- •Список литературы
7.3.2 Цена покрытия кубов
Для оценки степени минимальности булевых функций вводится понятие цены покрытия функции.
Цена покрытия r-куба, соответствующего терму функции n переменных, определяется как разность (n – r) и соответствует количеству букв в минимизированном терме.
Например. 3-куб 11Х0ХХ имеет цену 6 – 3 = 3. Этому кубу соответствует терм x1x2 , содержащий три буквы.
Применяют два способа вычисления цены покрытия.
Цена СA покрытия - есть сумма цен всех термов входящих в покрытие:
CA = Σp(n – r),
где p - число термов в покрытии.
Цена СB покрытия - есть цена СA, увеличенная на число термов р в покрытии:
CB = CA + p.
Например, покрытие C =
имеет цену:
CA=(n–r1)+(n–r2)+(n–r3)=2+2+4=8; CB=8+3=11.
Покрытие имеющее минимальную цену СA называется минимальным покрытием комплекса. ДНФ определенная по минимальному покрытию, называется минимальной ДНФ (МДНФ).
7.4 Метод неопределенных коэффициентов
Рассматриваемый метод применим для минимизации функций алгебры логики от любого числа аргументов. Однако, для простоты изложения примем n=3.
В общем случае, любую ФЛ можно представить
в виде универсальной ДНФ с неопределенными
коэффициентами вида, например,
.
Верхний индекс отражает значения
переменных в терме, нижний – индексы
переменных, входящих в терм. По коэффициенту
можно записать сам терм. Например,
=x1
x3.
Каждому коэффициенту можно присвоить
значение 0 или 1, получая, таким
образом, необходимый терм ДНФ.
Запишем ДНФ в общем, универсальном виде.
f(x1,x2,x3)=
x1+
+
x2+
+
x3+
+
+
x1x2+
x1
+
x2+
+
x1x3+
x1
+
+
x3+
+
x2x3+
x2
+
x3+
+
+
x1x2x3+
x1x2
+
x1
x3+
x1
+
x2x3+
+
x2
+
x3+
(7.2)
Здесь представлены все возможные конъюнктивные члены, которые могут входить в нормальную дизъюнктивную форму представления функции f(x1,x2,x3).
Коэффициенты k с различными индексами являются неопределенными и их значение {0,1} подбираются так, чтобы получающаяся после этого НДФ соответствовала заданной ЛФ и была минимальной.
Критерием минимальности является минимальное количество букв в записи НДФ.
Если теперь задавать всевозможные наборы значений аргументов <x1,x2,x3> и приравнивать полученное после этого выражение (отбрасывая из 7.2 нулевые конъюнкции) значению функции на выбранных наборах, то получим систему уравнений для определения коэффициентов k.
Тогда, из 7.2 получим уравнения 7.3:
1=f0(0,0,0)=
+
+
+
+
+
+
0=f1(0,0,1)= + + + + + +
0=f2(0,1,0)= + + + + + +
0=f3(0,1,1)= + + + + + +
1=f4(1,0,0)= + + + + + + (7.3)
1=f5(1,0,1)= + + + + + +
1=f6(1,1,0)=
+
+
+
+
+
+
1=f7(1,1,1)= + + + + + +
При этом, учитываем следующие свойства:
х = 0; и x1+ x2+…+ хn=1, если любое xi=l, а также,
x1 + x2 + … + хn = 0, если x1=x2=…=хn=0.
Аналогичные таблицы (без левой части, где записаны значения конкретной функции) можно иметь заранее для любого количества переменных и использовать их при минимизации конкретных функций методом анализа их значений на определенных наборах переменных.
Если fi = 0 на соответствующем наборе переменных, то все коэффициенты, входящие в данное уравнение, равны 0.
Поэтому, вычеркивают все коэффициенты, входящие в функции fi=0. Затем надо вычеркнуть в оставшихся равенствах fi=1 все коэффициенты, которые встречались ранее в fi=0, т.к. они уже получили значение 0. Оставшиеся коэффициенты и определяют конъюнкции наименьшего ранга в каждом из уравнений.
Можно сформулировать следующий алгоритм нахождения минимальных ДНФ по методу неопределенных коэффициентов.
Выбрать очередное уравнение, в котором fi=0. Приравнять все коэффициенты этой строки к 0.
Если нулевых уравнений fi нет, то перейти к п.З.
Просмотреть уравнения, где fi=1, и вычеркнуть из них коэффициенты, встречающиеся ранее в уравнениях fi=0.
Переписать уравнения, с не вычеркнутыми коэффициентами.
Выбрать очередное уравнение fi=1 и вычеркнуть максимально возможное количество коэффициентов так, чтобы ранг оставшихся термов был минимальным.
Записать минимальное уравнение.
Конец.
Метод неопределенных коэффициентов наиболее подходит к ДНФ и непригоден к КНФ. Для большого числа n эффективность падает из-за большого числа функций.
Возьмем, для примера, значения функций системы уравнений 7.3.
f(x)= (0,4,5,6,7)=x1x2x3+x1x2 +x1 x+x1 + .
Находим в системе уравнений 7.3 функции, равные 0. Из нулевых функций определяем нулевые коэффициенты:
= = = = = = = = =
= = = = = = =0
П
+
+
+
= 1
+
+
+
= 1
+
+
+
= 1
+
+
+
+
= 1
+
= 1
Приравняем к нулю в каждом уравнении все коэффициенты, кроме тех, которые отвечают конъюнкциям, содержащим наименьшее число переменных.
= = = = = = = = =0
Вычеркнем их. Это упрощение правомерно, потому что для равенства уравнения достаточно чтобы хоть один его терм был равен единице. Получаем систему:
Отсюда, после склеивания одинаковых уравнений, находим МДНФ заданной функции
f(x1,x2,x3)= (7,6,5,4,0)=x1+ .
Метод неопределенных коэффициентов удобен в применении, если иметь копии таблиц для различного числа переменных. Метод эффективен при применении компьтерных систем.