- •Основы компьютерной арифметики и логики
- •Предисловие
- •Глава 4, подготовленная доцентом о.П. Шафеевой, посвящена вопросам разработки алгоритмических моделей выполнения арифметических операций и моделирования на пэвм спроектированных алгоритмов.
- •Основы двоичной компьютерной арифметики
- •1.1. Позиционные системы счисления
- •Десятичная позиционная система счисления
- •Двоичная позиционная система счисления
- •1.1.3. Восьмеричная позиционная система счисления
- •1.1.4. Шестнадцатеричная позиционная система счисления
- •Сложение Вычитание
- •Перевод чисел из одной позиционной системы счисления в другую
- •1.2.1. Перевод целых чисел
- •1.2.2. Перевод правильных дробей
- •1.2.3. Перевод неправильных дробей из одной системы счисления в другую
- •1.2.4. Частный случай перевода чисел из одной системы счисления в другую
- •1.2.5. Перевод чисел из одной системы счисления в другую с использованием промежуточной двоично-десятичной системы
- •1.3. Представление чисел с фиксированной запятой (точкой)
- •1.4. Представление чисел с плавающей запятой (точкой)
- •1.5. Коды двоичных чисел
- •1.5.1. Прямой код
- •1.5.2. Обратный код
- •1.5.3. Модифицированный обратный код
- •1.5.4. Дополнительный код
- •2.1.1. Алгебраическое сложение чисел в дополнительном коде
- •2.1.2. Алгебраическое сложение чисел в обратном коде
- •2.1.3. Переполнение разрядной сетки при сложении чисел
- •2.2. Сложение (вычитание) двоичных чисел с плавающей запятой
- •2.2.1. Метод ускоренного сложения двоичных чисел с запоминанием переносов
- •2.3. Умножение двоичных чисел с фиксированной запятой
- •2.4. Машинные технологии выполнения операции умножения двоичных чисел с фиксированной запятой
- •2.5. Умножение двоичных чисел с плавающей запятой
- •2.6. Методы ускоренного выполнения операции умножения двоичных чисел
- •2.6.1. Метод пропуска такта суммирования
- •2.6.2. Метод анализа сомножителей
- •2.6.3. Метод расшифровки и одновременного умножения на два разряда множителя
- •2.6.4. Метод ускоренного умножения Мак-Сорли
- •2.6.5. Метод ускоренного умножения Лемана
- •2.6.6. Метод умножения с расшифровкой пар разрядов множителя и запоминанием переносов
- •2.7. Деление двоичных чисел с фиксированной запятой
- •2.8. Деление двоичных чисел с плавающей запятой
- •3. Основы десятичной компьютерной арифметики
- •3.1. Машинное кодирование десятичных чисел
- •3.2. Выполнение арифметических операций с десятичными числами
- •3.2.1. Сложение десятичных чисел в эвм
- •3.2.2. Умножение десятичных чисел в эвм
- •3.2.3. Ускорение умножения в -кодах
- •Деление десятичных чисел в эвм
- •4.2. Моделирование алгоритма сложения двоичных чисел
- •Различные случаи ненормализованных мантисс
- •4.3. Проектирование алгоритма умножения чисел
- •4.5. Проектирование алгоритма деления чисел
- •4.7. Разработка алгоритма вычисления квадратного корня
- •Определение 1. Пусть и произвольные множества. Соответствием называется тройка множеств
- •Свойства отношений
- •Эквивалентность
- •Толерантность
- •Отношения порядка
- •Самодвойственные функции
- •Монотонные функции
- •Линейные функции
- •Функции, сохраняющие константу
- •5.2.7. Минимизация булевых функций
- •Метод Блейка
- •Метод Квайна-Мак-Класки
- •Минимизация с использованием карт Карно
- •Дана функция четырех переменных (рис. 5.13):
- •Минимизация не полностью определенных булевых функций
- •Минимизация систем булевых функций
- •5.3. Методика синтеза комбинационных схем на логических элементах
- •5.3.1. Логические элементы
- •5.3.2. Общий алгоритм построения комбинационных схем
- •5.3.3. Синтез кс в классическом базисе
- •5.3.4. Синтез кс в базисах «и-не», «или-не»
- •5.3.5. Реализация кс в базисе Жегалкина
- •5.3.6. Синтез составных кс
- •Заключение
- •Библиографический список к главам 1, 2, 3, 4
- •Библиографический список к главе 5
Минимизация не полностью определенных булевых функций
Определение 28. Не полностью определеной булевой функцией будем называть булеву функцию, значения которой не заданы для некоторых наборов аргументов.
Пусть булева функция не определена на наборах аргументов, данной функции можно поставить в соответствие булевых функций. Полностью определенная булева функция считается эквивалентной функции в том случае, если ее значения совпадают со значениями , где определена.
Введем в рассмотрение две функции и . на тех наборах, где не определена; , где не определена. Для использования метода Квайна-Мак-Класки для минимизации не полностью определенных функций докажем теорему.
Теорема 10. Минимальная ДНФ не полностью определенной булевой функции совпадает с дизъюнкцией самых коротких импликант , которые совместно покрывают все 0-кубы функции и ни одна из которых (импликант) не является избыточной.
Доказательство: Рассмотрим какую-либо эквивалентную функцию . Очевидно, что для любой функции , т.е. любая импликанта функции будет всегда поглощать импликанты функции либо совпадать с ней. Из этого следует, что импликанты функции будут являться более короткими по длине. Так же очевидно, что из всех эквивалентных булевых функций имеем наименьшее количество 0-кубов, т.е. . Таким образом, используя для нахождения покрывающих импликант и покрывая 0-кубы из , мы найдем минимальное покрытие для функции .
Теорема доказана.
Не полностью определенная булева функция задается двумя множествами: множеством истинных значений и множеством неопределенных значений . Рассмотрим пример минимизации не полностью определенной функции методом Квайна-Мак-Класки.
Пример 5.25.
0 0 0 1 0 0 0 0
0
1 0 0 0 1 0 0 1
1 1 1 0
1 1 1 1
Отсюда
0 0 0 0 0
1 0 0 0 1
2 0 0 1 0
4 1 0 0 0
5 1 0 0 1
6 1 1 1 0
7 1 1 1 1
1 0 0 0 х 0 – 1
3 0 х 0 0 0 – 3
5 х 0 0 1 1 – 5
6 1 0 0 х 4 – 5
7 1 1 1 х 6 – 7
0 0 х 0
1 1 1 х
х 0 0 х
Таблица 5.4
-
0 0 0 1
0 0 1 0
1 0 0 0
1 1 1 0
1 1 1 1
0 0 х 0
1
0 х 0 0
1 1 1 х
1
1
х 0 0 х
1
1
В данном случае вторая строка, соответствующая импликанте 0х00, вычерчивается, остальные импликанты существенные, таким образом:
0 0 х 0
1 1 1 х .
х 0 0 х
.
Карты Карно являются удобным средством минимизации булевых функций также для не полностью определенных функций.
Неопределенные значения наносятся на карту Карно и помечаются знаком, отличным от «0» и «1», например «–». Ячейки, соответствующие неопределенным значениям, могут быть использованы для создания групп смежных единиц (или нулей), при этом необходимо покрыть только истинные значения (или только ложные при нахождении минимальной формы по нулям). Ячейки, соответствующие неопределенным значениям, могут и не включаться в группы. Другими словами, с ячейками, помеченными «– », можно поступать как нам удобно, если удобно – включаем в группу, если нет – не включаем.
Пример 5.26. Не полностью определенная функция четырех переменных задана на карте Карно (рис. 5.17), произвести ее минимизацию.
х2
-
1
х1
1
1
-
1
1
х3
-
-
-
1
1
1
-
х4
Рис. 5.17. Минимизация не полностью определенной функции
по карте Карно
.
В данном случае одно неопределенное значение не входит ни в одну из групп. Данная функция не зависит от x4.