- •Основы прикладной теории цифровых автоматов
- •Основы прикладной теории цифровЫх автоматов
- •Оглавление
- •Предисловие
- •Глава 1. Информационные основы цифровых автоматов
- •1.1. Информация и общие принципы ее преобразования
- •1.2. Обмен информацией между различными информационными устройствами
- •1.3. Аппаратные средства хранения и обработки информации
- •1.4. Общие понятия о цифровом автомате и алгоритме
- •Глава 2. Представление числовой информации в цифровом автомате
- •2.1. Системы счисления и понятие кода
- •2.2. Выбор системы счисления
- •2.3. Формальные правила двоичной арифметики
- •2.4. Перевод числа из одной позиционной системы счисления в другую
- •Глава 3. Формы представления чисел в цифровых автоматах
- •3.1. Форма представления двоичных чисел с фиксированной запятой
- •3.2. Представление отрицательных чисел в формате с фиксированной запятой
- •3.3. Форма представление чисел с плавающей запятой
- •3.4. Перевод чисел из формата с фиксированной запятой в формат с плавающей запятой и обратно
- •3.5. Погрешности представления чисел
- •20 [A]ф 2n - 1 для целых чисел
- •Глава 4. Арифметические действия с двоичными числами
- •4.1. Сложение двоичных чисел
- •4.1.1. Алгебраическое сложение чисел, представленных в форме с фиксированной запятой
- •4.1.2. Переполнение разрядной сетки
- •4.1.3. Модифицированный прямой, обратный и дополнительный код
- •4.1.4. Алгебраическое сложение чисел, представленных в форме с плавающей запятой
- •4.2. Умножение двоичных чисел
- •4.2.1. Методы умножения двоичных чисел
- •4.2.2. Умножение чисел, представленных в форме с фиксированной запятой
- •4.2.3. Умножение чисел, представленных в форме с плавающей запятой
- •4.2.4. Ускорение операции умножения
- •4.3. Деление двоичных чисел
- •4.3.1. Деление двоичных чисел, представленных в форме с фиксированной запятой.
- •4.3.2. Деление двоичных чисел, представленных в форме с плавающей запятой.
- •4.4. Оценка точности выполнения арифметических операций
- •4.4.1. Погрешность округления
- •Глава 5. Выполнение операций над десятичными числами
- •5.1. Представление десятичных чисел в д-кодах
- •5.2. Формальные правила поразрядного сложения в д-кодах
- •5.3. Представление отрицательных чисел в д-кодах
- •5.4. Выполнение операций сложения и вычитания в д-кодах
- •5.5. Умножение чисел в д-кодах
- •5.6. Деление чисел в д-кодах
- •5.7. Перевод чисел из д-кода в двоичный и из двоичного в д-код
- •Глава 6 контроль работы цифрового автомата
- •6.1. Основные понятия теории кодирования
- •6.2. Кодирование по методу четности-нечетности
- •6.3. Коды Хеминга
- •6.4. Контроль по модулю
- •6.5. Контроль арифметических операций
- •Глава 7. Основы алгебры логики
- •7.1. Основные понятия алгебры логики
- •7.2. Свойства элементарных функций алгебры логики
- •7.3. Аналитическое представление функций алгебры логики
- •7.4. Совершенные нормальные формы
- •7.5. Системы функций алгебры логики
- •7.6. Числовое и геометрическое представление логических функций
- •Глава 8. Упрощение и минимизация логических функций
- •8.1. Задача минимизации
- •8.2. Метод Квайна и импликантные матрицы
- •8.3. Метод Карно (диаграммы Вейча)
- •Глава 9. Методы анализа и синтеза логических электронных схем
- •9.1. Логические операторы электронных схем или цепей
- •9.1.1. Задачи анализа и синтеза электронных схем
- •9.2. Синтез логических схем с одним выходом
- •9.3. Электронные схемы с несколькими выходами
- •9.4. Временные булевы функции и последовательностные автоматы
- •Глава 10. Введение в теорию автоматов и структурный синтез цифровых автоматов
- •10.1. Основные понятия и определения
- •10.2. Методы структурного синтеза и языки описания цифровых автоматов
- •10.3. Элементарный автомат (триггерный элемент)
- •10.4. Синтез цифрового автомата с памятью
- •Глава 11 алгоритмы реализации арифметических действий в цифровых автоматах
- •11.1. Общие принципы разработки алгоритмов
- •11.2. Алгоритмы реализации арифметических действий с операндами, представленными в форме с фиксированной запятой
- •11.2.1.Сложение и вычитание
- •11.2.2. Умножение
- •11.2.3. Деление
- •11.3 Алгоритмы реализации арифметических действий с операндами, представленными в форме с плавающей запятой
- •11.3.1. Сложение и вычитание
- •11.3.2. Умножение
- •11.3.3. Деление
- •11.4. Блок-схемы регистра накапливающего сумматора
- •11.4.1. Для работы с обратным кодом
- •11.4.2. Для работы с дополнительным кодом
- •11.5. Алгоритм извлечения квадратного корня операнда с плавающей запятой
- •Определения основных понятий и терминов
- •Литература
7.4. Совершенные нормальные формы
Нормальные конъюнктивная и дизъюнктивная формы не дают однозначного представления функции. Такое представление получается только при совершенных нормальных формах (СНФ). СНФ называют также стандартной или же канонической нормальной формой.
Совершенная нормальная форма отличается от нормальной формы тем, что всегда содержит термы только максимального ранга и дает однозначное представление функции.
Любая ФАЛ, кроме абсолютно истинной функции, может быть представлена в единственной совершенной конъюнктивной нормальной форме (СКНФ или СНКФ) или в единственной совершенной дизъюнктивной нормальной форме (СДНФ или СНДФ).
Следовательно, СНКФ - это стандартное или каноническое произведение макстермов максимального ранга данной функции, а СНДФ - стандартная или каноническая сумма минтермов максимального ранга данной функции.
СНДФ функции находят следующим образом:
выписывается ряд произведений, т.е. минтермов, всех аргументов и соединяют их знаками дизъюнкции; количество произведений должно равняться числу наборов, на которых заданная функция равна единице. В каждом минтерме над аргументом, значение которого в данном наборе равнялось нулю, ставится знак отрицания.
СНКФ функции формируют следующим образом:
формируется произведение дизъюнкций, т.е. макстермов, всех аргументов с количеством сомножителей, равным числу наборов, на которых заданная функция обращается в ноль. В каждом макстерме над аргументом, равным единице в данном наборе, ставится знак отрицания.
Пример: представить в СНДФ функцию, заданную таблично.
x1 x2 x3 f x1 x2 x3 f
0 0 0 0 1 0 0 1
0 0 1 0 1 0 1 0
0 1 0 0 1 1 0 1
0 1 1 1 1 1 1 0
Р е ш е н и е. В качестве минтермов, как и в предыдущих примерах, отбираются строки со значениями аргументов, на которых функция равна единице. В результате получаем СНДФ данной функции:
f(x1, x2, x3) =x1x2x3 + x1x2x3 + x1x2x3.
Способ преобразования НФ в СНФ.
Произвольная НДФ переводится в СНДФ следующим образом.
Пусть fндф = F1 - некоторый минтерм функции, представленной в НДФ. Тогда этот минтерм преобразуется следующим образом:
fсндф = F1xi F1xi =F1(xi +xi),
где xi - переменная, которая не входит в данный минтерм F1.
Если максимальный ранг для функции равен r, а минимальный ранг
j-того минтерма равен k, то предыдущее преобразование необходимо применить к j-му минтерму (r - k) раз.
Пример. Логическую функцию, заданную в НДФ:
f(x1, x2, x3, x4) = x1x2 x2x3x4 x1x3x4 x1x2x3x4
F1 F2 F3 F4
преобразовать в СНДФ.
Р е ш е н и е. Так как терм F4, как мы видим, имеет максимальный ранг и в него входят все переменные функции, то воспользуемся приемом преобразования fснф = F1xi F1xi = F1(xi +xi) поочередно к остальным трем термам:
F1 = x1x2(x3 x3) = x1x2x3 x1x2x3.
Оба члена полученного выражения умножим на (x4 x4).
В результате получим:
F1 = x1x2x3x4 x1x2x3x4 x1x2x3x4 x1x2x3x4.
Аналогично,
F2 = x2x3x4(x1 x1) = x1x2x3x4 x1x2x3x4.
F3 =x1x3x4(x2 x2) =x1x2x3x4 x1x2x3x4.
После приведения подобных членов определяем СНДФ данной функции:
f(x1, x2, x3, x4) = x1 x2x3 x4 x1x2 x3 x4 x1x2 x3x4 x1x2x3 x4 x1x2x3 x4 x1x2x3x4 x1 x2x3 x4 x1 x2 x3 x4.
Произвольная НКФ переводится в СНКФ путем следующего преоб-разования. Пусть макстерм fНКФ = H1. Тогда
fснкф = H1 xixi = (H1 xi)(H1 xi).
Пример. Преобразовать в СНКФ логическую функцию:
f(x1, x2, x3) = (x1 x2)(x2 x3)(x1 x2 x3)
H1 H2 H3
Р е ш е н и е. Применяем вышеупомянутое правило преобразований поочередно к макстермам H1 и H2, так как макстерм H3, как мы видим, имеет максимальный ранг:
H1 = (x1 x2) x3x3 = (x1 x2 x3)(x1 x2 x3)+
H2 = (x2 x3) x1x1 = (x1 x2 x3)(x1 x2 x3)\
После упрощений СНКФ функции примет окончательный вид:
f(x1, x2, x3) = (x1 x2 x3)(x1 x2 x3)(x1 x2 x3)
Наконец, приведем СНКФ и СНДФ для элементарных логических функций двух аргументов:
Т а б л и ц а 7.5.
Функция Обозначение функции СНДФ функции СНКФ функции
f0 0 yt bvttn (xy)(xy)(xy)(xy)
f1 xy xy (xy)( xy)(x y)
f2 x y x y (xy)(xy)(xy)
f3 x xyxy (xy)(xy)
f4 xy x y (xy)(xy)(xy)
f5 y xyxy (xy)(xy)
f6 xy xy xy (xy)(xy)
f7 xy xy xy xy xy
f8 xy xy (xy)(xy)(xy)
f9 xy xy xy (xy)(xy)
f10 y xy xy (xy)(xy)
f11 yx xy xy xy xy
f12 x xy xy (xy)(xy)
f13 xy xy xy xy xy
f14 x / y xyxyxy xy
f15 1 xyxyxyxy yt bvttn