- •Основы компьютерной арифметики и логики
- •Предисловие
- •Глава 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
Минимизация систем булевых функций
При создании комбинационных систем в ряде случаев приходится иметь дело не с одной переключательной функцией, а с несколькими, т.е. с системой переключательных функций. При этом минимизация булевых функций такой системы по отдельности далеко не всегда приводит к наиболее оптимальной форме, поскольку при таком подходе не учитываются общие члены и возможная их совместная минимизация.
При минимизации схем применяется модифицированный метод Квайна-Мак-Класки. В данном случае постоянно учитывается принадлежность кубов и импликант к определенной функции, с этой целью делаются необходимые пометки. Рассмотрим метод на примере.
Пример 5.27. Пусть задана система из трех булевых функций от трех переменных.
.
Запишем комплекс для всей системы в одном массиве, при этом отметим номера функций, к которым принадлежит тот или иной 0-куб.
0 0 0 1 2 3
0 0 1 1
0 1 0 1 2
0 1 1 1 2 3
1 0 1 2 3
1 1 0 2
1 1 1 1 2 3
Найдем комплекс , при этом будем отмечать принадлежность импликанты к соответствующей функции. Множество соответствующих функций для импликанты находится как пересечение множеств функций, соответствующих кубам, образующих импликанту. Если импликанта поглощает куб, куб отметим “ ”.
Здесь, например 0-кубы 001(1) и 101(2,3) образуют импликанту х01() с пустым множеством соответствующих функций, поэтому импликанта не вносится в результирующий комплекс.
0 0 х 1
0 х 0 1 2
х 0 0 3
0 1 х 1 2
х 1 0 2
1 0 х 3
х 1 1 1 2 3
1 х 1 2 3
1 1 х 2
0 0 0 1 2 3
0 х 0 1 2
х 0 0 3
Покрытие
1 0 х 3
х 1 1 1 2 3
1 х 1 2 3
0 х х 1
х 1 х 2
Построим таблицу покрытий, с учетом принадлежности 0-кубов к соответствующим функциям (табл. 5.5).
Таблица 5.5
|
|
000 |
001 |
010 |
011 |
100 |
101 |
110 |
111 |
||||||||
1 |
2 |
3 |
1 |
1 |
2 |
1 |
2 |
3 |
3 |
2 |
3 |
2 |
1 |
2 |
3 |
||
|
000 1 2 3 |
1 |
1 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0x0 1 2 |
1 |
1 |
|
|
1 |
1 |
|
|
|
|
|
|
|
|
|
|
|
x00 3 |
|
|
1 |
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
01x 1 2 |
|
|
|
|
1 |
1 |
1 |
1 |
|
|
|
|
|
|
|
|
|
10x 3 |
|
|
|
|
|
|
|
|
|
1 |
|
1 |
|
|
|
|
|
x11 1 2 3 |
|
|
|
|
|
|
1 |
1 |
1 |
|
|
|
|
1 |
1 |
1 |
|
1x1 2 3 |
|
|
|
|
|
|
|
|
|
|
1 |
1 |
|
|
1 |
1 |
|
0xx 1 |
1 |
|
|
1 |
1 |
|
1 |
|
|
|
|
|
|
|
|
|
|
x1x 2 |
|
|
|
|
|
1 |
|
1 |
|
|
|
|
1 |
|
1 |
|
|
|
+ |
|
|
+ |
+ |
+ |
+ |
+ |
+ |
|
+ |
+ |
+ |
+ |
+ |
+ |
|
|
|
+ |
+ |
|
|
|
|
|
|
+ |
|
|
|
|
|
|
Здесь подчеркнуты единственные единицы в столбцах, соответствующие существенным импликантам, которые обязательно включаются в минимальное покрытие. Пометим существенные импликанты знаком “”, а столбцы, покрываемые данными импликантами, пометим “+” в первой строке под таблицей.
Далее выберем импликанты х00(3) и 0х0(1,2), покрывающие всю остальную часть таблицы, пометим их знаком “”, а столбцы, покрываемые данной импликантой, пометим “+” во второй строке под таблицей. Таким образом:
0 х 0 1 2
х 1 1 1 2 3
1 х 1 2 3
0 х х 1
х 1 х 2
Отсюда запишем покрытия для каждой функции в отдельности:
;
;
.
Выполнив поглощения в каждой группе, запишем минимальные покрытия:
;
;
.
Запишем выражения в виде сокращенной ДНФ:
;
;
Вопросы для самоконтроля
Различными способами минимизировать булеву функцию от четырех аргументов, описывающую работу порогового элемента с порогом: а)T=2, б)Т=3. Пороговый элемент срабатывает (устанавливается в истинное значение), если число истинных значений аргументов больше или равно значению порога.
Минимизировать систему двух булевых функций от трех переменных, описывающую работу секции сумматора (входные переменные: разряд первого операнда (ai), разряд второго операнда (bi), перенос из предыдущей секции (pi-1); функции: разряд суммы (si), перенос в следующую секцию (pi)).
Минимизировать систему четырех булевых функций от четырех переменных дешифратора, осуществляющего перевод из двоичного кода в D-код (8421).