Омский летно-технический колледж гражданской авиации имени А.В.Ляпидевского – филиал федерального государственного бюджетного образовательного учреждения высшего образования «Ульяновский институт гражданской авиации имени Главного маршала авиации Б.П. Бугаева » (ОЛТК ГА - филиал ФГБОУ ВО УИ ГА ) ЗАЧЕТНАЯ РАБОТА по дисциплине «Вычислительная техника»: «Проектирование комбинационного автомата по заданной таблице истинности» Для курсантов обучающихся по специальности 11.02.06 - Техническая эксплуатация транспортного радиоэлектронного оборудования Омск - 2019 Текст задания: 1. Исходные данные 1.1. Таблица истинности комбинационного автомата (табл.1) 1.2. Элементный базис (табл.2) 1.3. Элементная база – двухвходовые элементы серии К1533. Выбор варианта задания осуществляется по фамилии и имени студента следующим образом: 1.4. Буквы русского алфавита кодируются числами от 1 до 33 1.5. Числовые коды первых четырёх не одинаковых букв фамилии (и имени, если числа букв недостаточно) используются для кодирования четырёх выходных функций таблицы 1, при этом функция истинна на комбинациях, равных значению произведения каждого из четырёх полученных кодов на 1, 2, 5 и 7 соответственно, взятому по модулю 33. 1.6. Выбор элементного базиса выполняется по первой цифре кода имени из таблицы 2. 2. Содержание проекта. 2.1. Формирование таблицы истинности 2.2. Составление системы уравнений в СДНФ. 2.3. Минимизация системы уравнений 2.4. Разработка принципиальной электрической схемы комбинационного автомата в базисе, указанном в таблице 2. 2.5. Временной анализ схемы с указанием задержки каждого из выходных сигналов (поиск критического пути). 2.6. Построение временных диаграмм для выходных сигналов при полном переборе состояний входных сигналов согласно таблице 1. 3. Содержание отчёта 3.1. Задание, сформулированное путём кодирования фамилии и имени. 3.2. Таблица истинности (4 функции, 0-33 строки). 3.3. Система уравнений в СДНФ. 3.4. Минимизированная система уравнений логических функций. 3.5. Система уравнений логических функций в заданном базисе. 3.6. Принципиальная электрическая схема с указанием критического пути и времени задержки сигнала на этом пути. 3.7. Временные диаграммы работы комбинационного автомата. 4. Таблица 1. № 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 2 X 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X 3 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 X 2 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 X 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 X 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 Y3 Y2 Y1 Y0 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 5. Таблица 2. № п/п 1 2 3 4 5 6 7 8 9 Базовые функции и, или, не и-не или-не искл.или, единица и, или, не и-не или-не искл.или, единица и, или, не Вариант решения №1: Цифровые устройства (автоматы) служат для обработки информации, представленной цифровыми кодами. На вход цифрового автомата (ЦА) (рис. 1) подается множество двоичных переменных Х (элементы множества X1; X2; ... ; Хр); а с выхода снимается множество двоичных переменных Y (элементы множества Y1; Y2; ... ; Ys). Автомат реализует некоторый оператор преобразования входных переменных в выходные: Y=(X) X X1 Xi Xр ЦА У1 Уi Уs У Рисунок 1 В комбинационных автоматах значения выходных переменных в каждый момент автоматного времени Yt однозначно определяются значениями входных переменных Xt в тот же момент времени: Yt = (Xt) 3 Определение "комбинационный" говорит о том, что значения выходных переменных ЦА определяются комбинациями (различными наборами) входных переменных. Задача логического проектирования (синтеза) ЦА, реализующего требуемый оператор связи входных и выходных переменных, состоит в определении оптимальной структуры автомата при заданном перечне логических элементов (заданной элементной базы). Научной основой этапа структурного синтеза является аппарат алгебры логики (булевой алгебры), который позволяет перейти к заданию оператора в виде формул, а затем упростить последние в соответствии с потребностями определения структуры ЦА. Фамилия, Имя: Быков Дима. Кодируем числами от 1 до 33 буквы русского алфавита: 1 а 12 к 2 б 13 л 3 в 14 м 4 г 15 н 5 д 16 о 6 е 17 п 7 ё 18 р 8 ж 19 с 9 з 20 т 10 и 21 у 11 й 22 ф 23 24 25 26 27 28 29 30 31 32 33 х ц ч ш щ ь ы ъ э ю я Из этого множества нас интересуют коды четырёх букв: б, ы, к, о. Число Х по модулю Y есть остаток от деления X на Y: XY = X mod Y = X – Y*(X\Y), где \ целочисленное деление. Согласно п. 1.5 текста задания составляем следующую таблицу: Буква Код б 2 б 2 б 2 б 2 ы 29 ы 29 ы 29 ы 29 к 12 к 12 к 12 к 12 о 16 о 16 о 16 о 16 Коэффициент 1 2 5 7 1 2 5 7 1 2 5 7 1 2 5 7 Произведение 2 4 10 14 29 58 145 203 12 24 60 84 16 32 80 112 Произведение по модулю 33 Y0 = 2 Y0 = 4 Y0 = 10 Y0 = 14 Y1 = 29 Y1 = 25 Y1 = 13 Y1 = 5 Y2 = 12 Y2 = 24 Y2 = 27 Y2 = 18 Y3 = 16 Y3 = 32 Y3 = 14 Y3 = 13 Четвёрки чисел в последней колонке, соответствующие буквам, будут указывать на те номера строк в таблице истинности, в которых выходные функции Y0 – Y3 нашего автомата будут равны единице. Во всех остальных строках выходные функции равны нулю. Исходя из полученных значений в последней колонке заполним таблицу истинности: 4 № 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 X5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 X4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 X3 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 X2 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 X1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 X0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 Y3 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 Y2 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 Y1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 Y0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Итак, мы получили таблицу истинности, которая является исчерпывающим описанием всех значений функций Y0 – Y3 в зависимости от значений аргументов X0 – X5. Наша задача – построить электронное устройство, которое на данном этапе выглядит для нас как чёрный ящик с шестью входами и четырьмя выходами: X0 X1 X2 X3 X4 X5 Y0 Y1 Y2 Y3 Входы могут принимать значения логического нуля или единицы, выходы – тоже. Таблица истинности перебирает все варианты значений Х и сопоставляет им определённое значение выхода Y. Аналитический способ задания функции алгебры логики основывается на использовании базовых логических операций И, ИЛИ, НЕ, определяемых аксиомами булевой алгебры. Если функция алгебры логики задана по значениям истинности, то есть по единицам, то говорят, что аналитическое выражение записано в совершенной дизъюнктивной нормальной форме (СДНФ). Нормальной эта форма называется потому, что все члены выражения имеют вид элементарных произведений. Дизъюнктивной 5 эта форма называется потому, что все они соединены знаком дизъюнкции, а совершенной потому, что все члены формулы имеют высший ранг (содержат все аргументы), являясь конституентами единицы. Для того, чтобы получить аналитическое выражение для ФАЛ, заданной таблицей истинности, в СДНФ, нужно записать логическую сумму конституент единицы для тех наборов входных переменных, на которых ФАЛ принимает единичное значение, причем, переменная берется без знака инверсии, если ее значение в наборе равно 1 и с инверсией, если ее значение в наборе равно 0. Если ФАЛ задана по значениям ложности, то говорят, что аналитическое выражение записано в совершенной конъюнктивной нормальной форме (СКНФ). Нормальной эта форма называется потому, что члены выражения имеют вид элементарных сумм. Конъюнктивной эта форма называется потому, что все члены формулы соединены знаком конъюнкции, а совершенной потому, что все члены формулы имеют высший ранг r = n , являясь конституентами нуля. Для того, чтобы получить аналитическое выражение для ФАЛ, заданной таблицей истинности, в СКНФ, нужно записать логическое произведение конституент нуля для тех наборов входных переменных, на которых ФАЛ принимает нулевое значение, причем, переменная берется со знаком инверсии, если ее значение в наборе равно 1 и без знака инверсии, если ее значение в наборе равно 0. Таким образом, мы можем объяснить, почему нам удобнее будет работать с СДНФ, а не с СКНФ. У нас получится всего 4 конституенты единицы в случае СДНФ (так как у нас каждая функция принимает), и 32 – 4 = 28 конституент в случае СКНФ. Булева функция Z f1 ( х n 1; х n 2 ;...; x0 ) называется импликантой булевой функции Y f 2 ( х n 1; х n 2 ;...; x0 ) , если на любом наборе значений переменных хn 1; хn 2 ;...; x0 , на котором значение функции Z равно 1, значение функции Y также равно 1. Для того, чтобы получить аналитическое выражение для функции алгебры логики, заданной таблицей истинности, в СДНФ, нужно записать логическую сумму конституент единицы для тех наборов входных переменных, на которых функции алгебры логики принимает единичное значение, причем, переменная берется без знака инверсии, если ее значение в наборе равно 1 и с инверсией, если ее значение в наборе равно 0. Воспользуемся булевой алгеброй для представления аналитической зависимости Y0-3 (X0,X1,X2,X3,X4,X5): 1. Согласно таблице истинности Y0(0,0,0,0,0,0) = 0, … Y0(0,0,0,0,1,0) = 1, … Y0(0,0,0,1,0,0) = 1, … и т.д. Примем, что аналитическая зависимость Y0-3 (X0,X1,X2,X3,X4,X5) описывает получение только значений функции, равных логической единице, а в остальных случаях она будет равна нулю. 2. Каждую совокупность единичных значений функции и аргументов можно представить с помощью набора аргументов и логических операций «И» и «НЕ», например, Y0(0,0,0,0,1,0) = X 0 , X 1 , X 2 , X 3 , X 4 , X 5 . Y0 в таком случае будет всегда равен нулю при любых значениях входных сигналов X0 – X5 кроме 0,1,0,0,0,0, что нам и требуется. 3. Каждая функция Y0 – Y3 имеет по 4 совокупности аргументов, при которых она принимает значение «1». Если мы воспользуемся логической функцией «ИЛИ», то сможем полностью описать все четыре случая, когда функция принимает значение «1». Получается система из четырёх уравнений с четырьмя конституентами. Y0 X 0 X 1 X 2 X 3 X 4 X 5 X 0 X 1 X 2 X 3 X 4 X 5 X 0 X 1 X 2 X 3 X 4 X 5 X 0 X 1 X 2 X 3 X 4 X 5 Y1 X 0 X 1 X 2 X 3 X 4 X 5 X 0 X 1 X 2 X 3 X 4 X 5 X 0 X 1 X 2 X 3 X 4 X 5 X 0 X 1 X 2 X 3 X 4 X 5 Y2 X 0 X 1 X 2 X 3 X 4 X 5 X 0 X 1 X 2 X 3 X 4 X 5 X 0 X 1 X 2 X 3 X 4 X 5 X 0 X 1 X 2 X 3 X 4 X 5 Y3 X 0 X 1 X 2 X 3 X 4 X 5 X 0 X 1 X 2 X 3 X 4 X 5 X 0 X 1 X 2 X 3 X 4 X 5 X 0 X 1 X 2 X 3 X 4 X 5 Следующая задача – минимизация системы уравнений. Упрощение формул двоичных функций преследует цель получения такого вида формулы, при которой построенный в соответствии с ней автомат отличался бы минимальным расходом логических схем на его изготовление. 6 В общем случае минимизация ФАЛ, заданной в СДНФ, требует выполнения процедур следующих трех этапов: 1 этап - переход от СДНФ к сокращенной ДНФ (СокрДНФ). СокрДНФ - это форма ФАЛ, членами которой являются изолированные (несклеивающиеся) элементарные произведения. Этот этап основан на выполнении всех возможных склеиваний друг с другом сначала конституент единицы, а затем произведений меньшего ранга (импликант). Отметим, что существуют ФАЛ, у которых СДНФ совпадает с СокрДНФ. 2 этап - переход от СокрДНФ к тупиковой ДНФ (ТДНФ). ТДНФ - это форма ФАЛ, членами которой являются импликанты, среди которых нет ни одной лишней. Лишней импликантой называется член ФАЛ, удаление которого из выражения не изменяет ФАЛ. Отметим, что возможны случаи, когда в СокрДНФ нет лишних импликант. Иногда из одной СокрДНФ можно получить несколько различных ТДНФ. Термин “тупиковая” говорит о том, что дальнейшая минимизация в рамках нормальных форм уже невозможна. Способ выявления лишних импликант заключается в следующем. На значение истинности функции влияет только та импликанта, которая сама равна 1. Любая импликанта принимает значение 1 только на одном наборе своих аргументов. Но если именно на этом наборе сумма остальных импликант также обращается в 1, то рассматриваемая импликанта не влияет на значение истинности функции даже в этом единственном случае, то есть является лишней. 3 этап - переход от ТДНФ к минимальной форме. Этот этап основывается на использовании групповых инверсий и скобочных форм, не является систематическим и во многом определяется опытом разработчика. В настоящее время наиболее детально разработаны методы решения канонической задачи минимизации формул, которая заключается в отыскании дизъюнктивной формы функции, содержащей минимальное число вхождений аргументов (минимальное число букв). Такие формы функций принято называть оптимальными или минимальными дизъюнктивными нормальными формами. Минтермом называют функцию, которая принимает единичное значение при одном из всех возможных наборов аргументов (нулевое - при всех прочих наборах). Понятие минтерм образовано из двух слов "минимальный термин" и говорит о том, что элементарное произведение всегда принимает минимальное значение ("0"), если один из терминов (сомножителей) принимает минимальное значение ("0"). Существует большое число приемов и методов минимизации ФАЛ: 1) расчетный метод (метод непосредственных преобразований), 2) расчетно-табличный метод (метод Квайна-Мак-Класки), 3) табличный метод (метод диаграмм Вейча, карт Карно), 4) метод Петрика (развитие метода Квайна-Мак-Класки), 5) метод неопределенных коэффициентов, 6) метод Рота (алгоритм извлечения), 7) метод гиперкубов, 8) метод функциональной декомпозиции и т.д. В работе мы рассмотрим метод минимизации формул, предложенный Вейчем и усовершенствованный Карно. Карта Карно является специальной формой таблицы истинности ФАЛ, позволяющей не только задать ФАЛ, но и выполнить первый и второй этапы минимизации Карты Карно представляют собой прямоугольные таблицы, разделенные горизонтальными и вертикальными линиями на ячейки (клетки). Общее число ячеек совпадает с числом минтермов рассматриваемого числа аргументов. Каждая ячейка соответствует значению одного минтерма. Причем размещение последних осуществляется таким образом, что два смежных минтерма находились в соседних ячейках. Смежными принято называть минтермы, отличающиеся формой вложения в них лишь одного аргумента (в один минтерм аргумент входит в прямой форме, в другой - в инверсной). Например, смежными являются минтермы X 0 , X 1 , X 2 , X 3 , X 4 , X 5 и X 0 , X 1 , X 2 , X 3 , X 4 , X 5 . (различие в 7 аргументе X1). Соседними считаются ячейки, имеющие общие стороны, а также расположенные на краях одних и тех же строк и столбцов карты. Такой порядок размещения минтермов обеспечивается следующим образом. Все аргументы разбиваются на две группы, например X0X1X2 и X3X4X5. Пусть на6ором аргументов одной группы (X0X1X2) соответствуют различные строки таблицы; наборам другой (X3X4X5) - различные столбцы. Наборы аргументов каждой из групп, стоящие в соседних строках и столбцах, должны быть смежными. Для определенности крайний правый столбец и нижнюю строку обозначают наборами с нулевым значением всех аргументов. Порядок чередования значений аргументов при переходе от одной строки (или столбца) к другой оказывается при этом одинаковым, он соответствует перестановке цифр в циклическом коде двоичных чисел (коде Грея), а именно: 000, 001, 011, 010, 110, 111, 101, 100. Набор аргументов, соответствующий определенной ячейке таблицы, составляют из наборов групп X0X1X2 и X3X4X5, обозначающих строку или столбец, на пересечении которых лежит рассматриваемая ячейка, где в каждую ячейку внесены обозначения наборов и соответствующих им минтермов. Несмотря на то, что карты Карно изображаются на плоскости, с точки зрения обеспечения соседства их клеток карты нужно считать трехмерными объектами, так как клетки, расположенные на концах одних и тех же строк и столбцов, также являются соседними. Так карту для трех переменных следует рассматривать как цилиндр со склеенными правым и левым краями. Карту Карно для четырех переменных нужно считать склеенной не только по правому и левому краям, но и по верхнему и нижнему. Таким образом, карта Карно для четырех переменных должна рассматриваться как поверхность тора. Y0 X 0 X 1 X 2 X 3 X 4 X 5 X 0 X 1 X 2 X 3 X 4 X 5 X 0 X 1 X 2 X 3 X 4 X 5 X 0 X 1 X 2 X 3 X 4 X 5 X3X4X5 0X1X2 000 001 011 010 110 111 101 100 000 001 011 010 110 111 101 100 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 Первый шаг упрощения функции табличным методом состоит в записи значений минтермов в соответствующие ячейки карты. Ячейки, которым соответствуют единичные значения минтермов заполняются единицами; нулевое значение минтермов не обозначают. В заполненной карте наглядно отражаются смежные минтермы: им соответствуют единицы, расположенные в соседних ячейках. Далее производят склейку смежных минтермов на основе тождества алгебры логики: ab ab a Процесс минимизации с помощью карт Карно базируется на использовании операции склеивания и основан на следующих положениях: 1. На картах Карно необходимо выделить монолитные области единичных клеток, образующих строку, столбец, прямоугольник или квадрат и содержащие одну, две, четыре, восемь и т. д. клеток. Эти выделенные области (или контуры покрытия) будут соответствовать импликантам. Очевидно, что одна изолированная 1-я клетка будет соответствовать конституенте единицы. Две смежные клетки будут соответствовать импликанте, ранг которой r = n - 1, четыре смежные клетки будут соответствовать импликанте, ранг которой r = n - 2 и т.д. 2. Переменные, от которых импликанта не зависит, входят в соответствующий выделенный контур как в виде х i , так и в виде х i , а остальные переменные только либо в виде х i , либо в виде х i . 3. На основании закона тавтологии любая 1-я клетка может быть включена в любое число различных контуров. 8 4. Для получения минимальных ТДНФ в карте Карно не должно быть лишних покрытий, то есть каждую 1-ю клетку достаточно использовать хотя бы один раз. 5. Существуют эквивалентные покрытия для получения различных минимальных ТДНФ. 6. Существуют функции, для которых СДНФ совпадает с минимальной ТДНФ (в этом случае на карте Карно все 1-е клетки изолированные). 7. Если в карте Карно нет ни одной 1, то ФАЛ эквивалентна константе 0; если нет ни одного 0, то ФАЛ эквивалентна константе 1; если единицы занимают половину клеток карты Карно и представляют из себя монолитный массив в виде строки, столбца, прямоугольника или квадрата, то соответствующая импликанта состоит из одной переменной со знаком или без знака инверсии. На рисунке выше выполнена карта Карно для Y0. Видно, что в склеивании участвуют два минтерма (конституенты). В паре соседних клеток (помечены чёрным выделением) меняется тот разряд, который ответственен за переменную X2 (третья и четвёртая конституенты). По ним и производится склеивание. Результат склеивания 2-х конституент, лежащих в соседних клетках есть импликанта, полученная записью произведения всех переменных, кроме той, что менялась в конституентах, то есть в импликанте у нас будет отсутствовать X1: Y0 X 0 X 1 X 2 X 3 X 4 X 5 X 0 X 1 X 2 X 3 X 4 X 5 X 0 X 1 X 2 X 3 X 4 X 5 X 0 X 1 X 2 X 3 X 4 X 5 X 0 X1 X 2 X 3 X 4 X 5 X 0 X1 X 2 X 3 X 4 X 5 X 0 X1 X 3 X 4 X 5 В этой операции существует один нюанс: если какая-то конституента участвует в более чем одном контуре, то алгебраическое объяснение склеивания заключается в правиле тавтологии, по которому мы имеем право повторения конституенты нужное количество раз для участия её в нескольких склеиваниях. Таким образом, мы сократили функцию на одну конституенту. В выражении Y0 осталось 2 конституенты и одна импликанта. Проверять наличие лишних импликант не требуется, так как, вообще говоря, это очевидно (нет общих покрытий, т.е. единица заносилась в одну и ту же клетку только один раз и выбрано минимальное число контуров), да и в данном случае у нас всего одна импликанта. Применяя правило выноса за скобки, ещё упростим наше уравнение, приведя его в минимальную тупиковую форму: Y0 X 0 X 1 X 2 X 3 X 4 X 5 X 0 X 1 X 2 X 3 X 4 X 5 X 0 X 1 X 3 X 4 X 5 X 0 X 4 X 5 ( X1 X 2 X 3 X1 X 2 X 3 X1 X 3 ) X 0 X 4 X 5 ( X 3 ( X1 X 2 X1 X 2 ) X1 X 3 ) Теперь разберём Y1: Y1 X 0 X 1 X 2 X 3 X 4 X 5 X 0 X 1 X 2 X 3 X 4 X 5 X 0 X 1 X 2 X 3 X 4 X 5 X 0 X 1 X 2 X 3 X 4 X 5 Карта Карно: X3X4X5 X0X1X2 000 001 011 010 110 111 101 100 9 000 001 011 010 110 111 101 100 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 Выделены 2 контура, следовательно, в склеивании участвуют все конституенты. Получаем 2 импликанты: Y1 X 0 X 1 X 3 X 4 X 5 X 0 X 1 X 2 X 4 X 5 Применяя правило выноса за скобки, ещё упростим наше уравнение, приведя его в минимальную тупиковую форму: Y1 X 0 X 1 X 3 X 4 X 5 X 0 X 1 X 2 X 4 X 5 X 0 X1 X 5 ( X 3 X 4 X 2 X 4 ) Теперь разберём Y2: Y2 X 0 X 1 X 2 X 3 X 4 X 5 X 0 X 1 X 2 X 3 X 4 X 5 X 0 X 1 X 2 X 3 X 4 X 5 X 0 X 1 X 2 X 3 X 4 X 5 Карта Карно: X3X4X5 000 001 011 010 110 111 101 100 X0X1X2 000 0 0 0 0 0 0 0 1 001 0 0 0 0 0 0 0 1 011 0 0 0 0 0 0 0 0 010 0 0 0 0 0 0 0 1 110 0 0 0 0 0 0 0 1 111 0 0 0 0 0 0 0 0 101 0 0 0 0 0 0 0 0 100 0 0 0 0 0 0 0 0 Соседних клеток нет, контуров нет, склеивания нет. СДНФ является тупиковой. Минимальная СДНФ: Y2 X 0 X 1 X 2 X 3 X 4 X 5 X 0 X 1 X 2 X 3 X 4 X 5 X 0 X 1 X 2 X 3 X 4 X 5 X 0 X 1 X 2 X 3 X 4 X 5 X 5 ( X 0 X1 X 2 X 3 X 4 X 0 X1 X 2 X 3 X 4 X 0 X1 X 2 X 3 X 4 X 0 X1 X 2 X 3 X 4 ) X 5 ( X 0 X 1 X 2 X 3 X 4 X 2 X 4 ( X 0 ( X 1 X 3 X 1 X 3 ) X 0 X 1 X 3 )) И, наконец, Y3: Y3 X 0 X 1 X 2 X 3 X 4 X 5 X 0 X 1 X 2 X 3 X 4 X 5 X 0 X 1 X 2 X 3 X 4 X 5 X 0 X 1 X 2 X 3 X 4 X 5 Карта Карно: X3X4X5 X0X1X2 000 001 011 010 110 111 101 100 10 000 001 011 010 110 111 101 100 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 Соседних клеток нет, контуров нет, склеивания нет. СДНФ является тупиковой. Минимальная СДНФ: Заметим, что расположение единичных клеток на карте Карно подсказывает нам наиболее выгодный вариант применения скобочных упрощений: Y3 X 0 X 1 X 2 X 3 X 4 X 5 X 0 X 1 X 2 X 3 X 4 X 5 X 0 X 1 X 2 X 3 X 4 X 5 X 0 X 1 X 2 X 3 X 4 X 5 X 3 X 4 X 5 ( X 0 X1 X 2 X 0 X1 X 2 ) X 0 X1 X 2 ( X 3 X 4 X 5 X 3 X 4 X 5 ) X 3 X 4 X 5 ( X 2 ( X 0 X 1 X 0 X 1 )) X 0 X 1 X 2 ( X 3 ( X 4 X 5 X 4 X 5 )) Итак, мы получили минимизированную систему 4-х уравнений: Y0 X 0 X 4 X 5 ( X 3 ( X 1 X 2 X 1 X 2 ) X 1 X 3 ) Y1 X 0 X 1 X 5 ( X 3 X 4 X 2 X 4 ) Y2 X 5 ( X 0 X 1 X 2 X 3 X 4 X 2 X 4 ( X 0 ( X 1 X 3 X 1 X 3 ) X 0 X 1 X 3 )) Y3 X 3 X 4 X 5 ( X 0 X 1 X 2 X 0 X 1 X 2 ) X 0 X 1 X 2 ( X 3 X 4 X 5 X 3 X 4 X 5 ) X 3 X 4 X 5 ( X 2 ( X 0 X 1 X 0 X 1 )) X 0 X 1 X 2 ( X 3 ( X 4 X 5 X 4 X 5 )) Теперь, согласно п.1.6. из текста задания мы должны перевести систему в базис, который выбирается из таблицы базисов (таблица 2) по коду первой буквы имени. Код буквы «Д» = 5, значит, базис И, ИЛИ, НЕ. Полученная система уравнений уже находится в этом базисе, поэтому, выберем базис И, НЕ. Вспомним закон де-Моргана (закон двойственности): a b a b a b a b Из этого закона следуют тождества: a b a b a b a b Использование этих тождеств помогает перейти к базису И-НЕ и ИЛИ-НЕ. Перейдём, используя эти формулы, к базису И-НЕ: Y0 X 0 X 4 X 5 ( X 3 ( X 1 X 2 X 1 X 2 ) X 1 X 3 ) Y1 X 0 X 1 X 5 X 3 X 4 X 2 X 4 Y2 X 5 X 0 X 1 X 2 X 3 X 4 X 2 X 4 X 0 X 1 X 3 X 1 X 3 X 0 X 1 X 3 Y3 X 3 X 4 X 5 X 2 X 0 X 1 X 0 X 1 X 0 X 1 X 2 X 3 X 4 X 5 X 4 X 5 В нашем распоряжении следующие двухвходовые элементы серии К1533: 1533ЛА3 1533ЛА8 1533ЛА9 1533ЛА12 1533ЛА13 1533ЛЕ1 КР1533ЛЕ1 1533ЛИ1 КР1533ЛИ1 11 Четыре 2И-НЕ Четыре 2И-НЕ с открытым коллектором (элементы контроля) Четыре 2И-НЕ с открытым коллектором Четыре буферных 2И-НЕ с высокой нагрузочной способностью Четыре буферных 2И-НЕ с открытым коллектором и высокой нагрузочной способностью Четыре 2ИЛИ-НЕ Четыре 2ИЛИ-НЕ Четыре 2И Четыре 2И КР1533ЛИ2 КР1533ЛЛ1 1533ЛН1 1533ЛН2 Четыре 2И с открытым коллектором Четыре 2ИЛИ Шесть НЕ Шесть НЕ с открытым коллектором При построении и анализе схемы комбинационного автомата проще всего пользоваться средствами автоматизированной разработки схем. Одним из наиболее удобным средством является Electronic Workbench от фирмы Interactive Image Technologies Ltd. В данной работе будет использоваться версия 4.0 этой программы. Сначала построим общую шину нашего комбинационного автомата с цепью питания. Хорошим способом проверки схемы будет подсоединение на входы ключей, которые мы можем замыкать и размыкать определёнными клавишами и лампочек-индикаторов, сигнализирующих о наличии единичного сигнала на входе. Подсоединив лампочки на выходе, мы можем совершенно точно проверить правильность нашей схемы и уравнений. Как видно на рисунке, с помощью инверторов, мы вывели на общую шину как сами входы, так и инвертированные входы. Обратившись к таблице микросхем, мы заметим, что шесть инверторов содержится у нас в микросхеме К1533ЛН1. Аналог на западе этой микросхемы – 7405. Её и содержит в своей элементной базе Electronic WorkBench. Элементная база позволяет нам свободно использовать следующие логические элементы: В данном варианте базис И-НЕ, поэтому мы можем использовать только последний элемент. Данный элемент содержат следующие микросхемы: 1533ЛА3 Четыре 2И-НЕ 1533ЛА8 Четыре 2И-НЕ с открытым коллектором (элементы контроля) 1533ЛА9 Четыре 2И-НЕ с открытым коллектором 1533ЛА12 Четыре буферных 2И-НЕ с высокой нагрузочной способностью 1533ЛА13 Четыре буферных 2И-НЕ с открытым коллектором и высокой нагрузочной способностью Наиболее распространена и доступна первая микросхема (аналог 7400 на Западе). Она содержит четыре двухвходовых элемента И-НЕ. Учитывая использование только этой микросхемы, построим реализацию Y0. 12 В итоге получается следующая схема для Y0. Обратите внимание, как с помощью элемента И-НЕ реализована операция И: И-НЕ-НЕ. На рисунке видна фаза проверки одного из сочетаний Х0 – Х5. Выполним схемы для остальных Y. Взглянем ещё раз на систему: Y0 X 0 X 4 X 5 ( X 3 ( X 1 X 2 X 1 X 2 ) X 1 X 3 ) Y1 X 0 X 1 X 5 X 3 X 4 X 2 X 4 Y2 X 5 X 0 X 1 X 2 X 3 X 4 X 2 X 4 X 0 X 1 X 3 X 1 X 3 X 0 X 1 X 3 Y3 X 3 X 4 X 5 X 2 X 0 X 1 X 0 X 1 X 0 X 1 X 2 X 3 X 4 X 5 X 4 X 5 Выпишем все одиночные аргументы и одиночные инверсии аргументов, участвовавшие в уравнениях, учитывая все повторения: 13 X0 X4 X5 X 0 X1 X 5 X 0 X1 X 2 X 3 X 4 X2 X4 X3 X4 X5 X2 X 0 X1 X 2 X 3 Заменив X 4 X 5 на a, а X 2 X 3 - на b, получим небольшое сокращение схемы: X0 a X 0 X1 X 5 X 0 X1 b X 4 X2 X4 a b X 0 X1 X 2 X 3 Схема сократилась на 4 элемента И-НЕ и всего в ней 65 элементов. Конечный результат: 14 Вариант решения №2: Фамилия, Имя: Кудрякова Ирина. Кодируем числами от 1 до 33 буквы русского алфавита: 1 А 12 к 2 Б 13 л 3 В 14 м 4 Г 15 н 5 Д 16 о 6 Е 17 п 7 Ё 18 р 8 Ж 19 с 9 З 20 т 10 И 21 у 11 Й 22 ф х ц ч ш щ ь ы ъ э ю я 23 24 25 26 27 28 29 30 31 32 33 Из этого множества нас интересуют коды четырёх букв: к, у, д, р. Число Х по модулю Y есть остаток от деления X на Y: XY = X mod Y = X – Y*(X\Y), где \ целочисленное деление. Согласно п. 1.5 текста задания составляем следующую таблицу: Буква Код к 12 к 12 к 12 к 12 у 21 у 21 у 21 у 21 д 5 д 5 д 5 д 5 р 18 р 18 р 18 р 18 Коэффициент 1 2 5 7 1 2 5 7 1 2 5 7 1 2 5 7 Произведение 12 24 60 84 21 42 105 147 5 10 25 35 18 36 90 112 Произведение по модулю 33 Y0 = 12 Y0 = 24 Y0 = 27 Y0 = 18 Y1 = 21 Y1 = 9 Y1 = 6 Y1 = 15 Y2 = 5 Y2 = 10 Y2 = 25 Y2 = 2 Y3 = 18 Y3 = 3 Y3 = 24 Y3 = 27 Четвёрки чисел в последней колонке, соответствующие буквам, будут указывать на те номера строк в таблице истинности, в которых выходные функции Y0 – Y3 нашего автомата будут равны единице. Во всех остальных строках выходные функции равны нулю. Исходя из полученных значений в последней колонке заполним таблицу истинности: № 0 1 2 3 4 5 6 15 X5 0 0 0 0 0 0 0 X4 0 0 0 0 0 0 0 X3 0 0 0 0 0 0 0 X2 0 0 0 0 1 1 1 X1 0 0 1 1 0 0 1 X0 0 1 0 1 0 1 0 Y3 0 0 0 1 0 0 0 Y2 0 0 1 0 0 1 0 Y1 0 0 0 0 0 0 1 Y0 0 0 0 0 0 0 0 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 Итак, мы получили таблицу истинности, которая является исчерпывающим описанием всех значений функций Y0 – Y3 в зависимости от значений аргументов X0 – X5. Y0 X 0 X 1 X 2 X 3 X 4 X 5 X 0 X 1 X 2 X 3 X 4 X 5 X 0 X 1 X 2 X 3 X 4 X 5 X 0 X 1 X 2 X 3 X 4 X 5 Y1 X 0 X 1 X 2 X 3 X 4 X 5 X 0 X 1 X 2 X 3 X 4 X 5 X 0 X 1 X 2 X 3 X 4 X 5 X 0 X 1 X 2 X 3 X 4 X 5 Y2 X 0 X 1 X 2 X 3 X 4 X 5 X 0 X 1 X 2 X 3 X 4 X 5 X 0 X 1 X 2 X 3 X 4 X 5 X 0 X 1 X 2 X 3 X 4 X 5 Y3 X 0 X 1 X 2 X 3 X 4 X 5 X 0 X 1 X 2 X 3 X 4 X 5 X 0 X 1 X 2 X 3 X 4 X 5 X 0 X 1 X 2 X 3 X 4 X 5 Упростим ФАЛ методом карт Карно: Y0 X 0 X 1 X 2 X 3 X 4 X 5 X 0 X 1 X 2 X 3 X 4 X 5 X 0 X 1 X 2 X 3 X 4 X 5 X 0 X 1 X 2 X 3 X 4 X 5 X3X4X5 000 001 011 010 110 111 101 100 X0X1X2 000 0 0 0 0 1 0 0 0 001 0 0 0 0 0 0 0 1 011 0 0 0 0 0 0 0 0 010 0 0 0 1 0 0 0 0 110 0 0 0 0 1 0 0 0 111 0 0 0 0 0 0 0 0 101 0 0 0 0 0 0 0 0 100 0 0 0 0 0 0 0 0 Карта Карно не содержит смежных клеток => в Y0 нет сливающихся конституент. 16 Y0 X 0 X 1 X 2 X 3 X 4 X 5 X 0 X 1 X 2 X 3 X 4 X 5 X 0 X 1 X 2 X 3 X 4 X 5 X 0 X 1 X 2 X 3 X 4 X 5 X 5 (X 0 X1X 2 X 3 X 4 X 0 X1 X 2 X 3 X 4 X 0 X1 X 2 X 3 X 4 X 0 X1 X 2 X 3 X 4 ) X 5 ( X 0 X 1 X 3 ( X 2 X 4 X 2 X 4 ) X 1 X 2 X 4 ( X 0 X 3 X 0 X 3 )) Теперь разберём Y1: Y1 X 0 X 1 X 2 X 3 X 4 X 5 X 0 X 1 X 2 X 3 X 4 X 5 X 0 X 1 X 2 X 3 X 4 X 5 X 0 X 1 X 2 X 3 X 4 X 5 Карта Карно: X3X4X5 X0X1X2 000 001 011 010 110 111 101 100 000 001 011 010 110 111 101 100 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 Y1 X 0 X 1 X 2 X 3 X 4 X 5 X 0 X 1 X 2 X 3 X 4 X 5 X 0 X 1 X 2 X 3 X 4 X 5 X 0 X 1 X 2 X 3 X 4 X 5 X 5 (X 0 X1X 2 X 3 X 4 X 0 X1 X 2 X 3 X 4 X 0 X1X 2 X 3 X 4 X 0 X1X 2 X 3 X 4 ) X 5 (X 0 X1X 2 X 3 X 4 X 0 X1 X 2 X 3 X 4 X 0 X1X 2 X 3 X 4 X 0 X1X 2 X 3 X 4 ) X 5 ( X 1 X 2 X 4 ( X 0 X 3 X 0 X 3 ) X 0 X 1 ( X 2 X 3 X 4 X 2 X 3 X 4 )) Теперь разберём Y2: Y2 X 0 X 1 X 2 X 3 X 4 X 5 X 0 X 1 X 2 X 3 X 4 X 5 X 0 X 1 X 2 X 3 X 4 X 5 X 0 X 1 X 2 X 3 X 4 X 5 Карта Карно: X3X4X5 000 001 011 010 110 111 101 100 X0X1X2 000 0 0 0 0 0 0 0 0 001 0 0 0 0 0 0 0 0 011 0 0 0 0 0 0 0 0 010 0 0 0 0 0 0 1 1 110 0 0 0 0 0 0 0 0 111 0 0 0 0 0 0 0 0 101 0 0 0 0 0 0 0 1 100 0 0 0 0 0 0 0 1 Есть смежные клетки. Несмотря на то, что они расположены далеко друг от друга, примем во внимание тот факт, что карта Карно является замкнутой, то есть клетки, расположенные на 17 противоположных сторонах карты также являются смежными. Первая и третья конституенты сливаются по переменной X3 в сосиську: Y2 X 0 X 1 X 2 X 3 X 4 X 5 X 0 X 1 X 2 X 3 X 4 X 5 X 0 X 1 X 2 X 3 X 4 X 5 X 0 X 1 X 2 X 3 X 4 X 5 X 0 X1 X 2 X 4 X 5 X 0 X1X 2 X 3 X 4 X 5 X 0 X1 X 2 X 3 X 4 X 5 Минимальная СДНФ: Y2 X 0 X 1 X 2 X 4 X 5 X 0 X 1 X 2 X 3 X 4 X 5 X 0 X 1 X 2 X 3 X 4 X 5 X 5 ( X 0 X 1 X 2 X 4 X 0 X 1 ( X 2 X 3 X 4 X 2 X 3 X 4 )) И, наконец, Y3: Y3 X 0 X 1 X 2 X 3 X 4 X 5 X 0 X 1 X 2 X 3 X 4 X 5 X 0 X 1 X 2 X 3 X 4 X 5 X 0 X 1 X 2 X 3 X 4 X 5 Карта Карно: X3X4X5 000 001 011 010 110 111 101 100 X0X1X2 000 0 0 0 0 0 0 0 1 001 0 0 0 0 0 0 0 0 011 0 0 0 0 0 0 0 0 010 0 0 0 0 0 0 0 1 110 0 0 0 0 0 0 1 1 111 0 0 0 0 0 0 0 0 101 0 0 0 0 0 0 0 0 100 0 0 0 0 0 0 0 0 Соседних клеток нет, контуров нет, склеивания нет. СДНФ является тупиковой. Минимальная СДНФ: Y3 X 0 X 1 X 2 X 3 X 4 X 5 X 0 X 1 X 2 X 3 X 4 X 5 X 0 X 1 X 2 X 3 X 4 X 5 X 0 X 1 X 2 X 3 X 4 X 5 X 5 X 2 ( X 0 X 1 ( X 3 X 4 X 3 X 4 ) X 0 X 4 ( X 1 X 3 X 1 X 3 )) Итак, мы получили минимизированную систему 4-х уравнений: Y0 X 5 ( X 0 X 1 X 3 ( X 2 X 4 X 2 X 4 ) X 1 X 2 X 4 ( X 0 X 3 X 0 X 3 )) Y1 X 5 ( X 1 X 2 X 4 ( X 0 X 3 X 0 X 3 ) X 0 X 1 ( X 2 X 3 X 4 X 2 X 3 X 4 )) Y2 X 5 ( X 0 X 1 X 2 X 4 X 0 X 1 ( X 2 X 3 X 4 X 2 X 3 X 4 )) Y3 X 5 X 2 ( X 0 X 1 ( X 3 X 4 X 3 X 4 ) X 0 X 4 ( X 1 X 3 X 1 X 3 )) Теперь, согласно п.1.6. из текста задания мы должны перевести систему в базис, который выбирается из таблицы базисов (таблица 2) по коду первой буквы имени. Код буквы «И» = 10, значит, базис И, ИЛИ, НЕ. Полученная система уравнений уже находится в этом базисе, поэтому преобразования базиса не нужны. В нашем распоряжении следующие двухвходовые элементы серии К1533: 18 1533ЛА3 1533ЛА8 1533ЛА9 1533ЛА12 1533ЛА13 1533ЛЕ1 КР1533ЛЕ1 1533ЛИ1 КР1533ЛИ1 КР1533ЛИ2 КР1533ЛЛ1 1533ЛН1 1533ЛН2 Четыре 2И-НЕ Четыре 2И-НЕ с открытым коллектором (элементы контроля) Четыре 2И-НЕ с открытым коллектором Четыре буферных 2И-НЕ с высокой нагрузочной способностью Четыре буферных 2И-НЕ с открытым коллектором и высокой нагрузочной способностью Четыре 2ИЛИ-НЕ Четыре 2ИЛИ-НЕ Четыре 2И Четыре 2И Четыре 2И с открытым коллектором Четыре 2ИЛИ Шесть НЕ Шесть НЕ с открытым коллектором Сначала построим общую шину нашего комбинационного автомата с цепью питания. Хорошим способом проверки схемы будет подсоединение на входы ключей, которые мы можем замыкать и размыкать определёнными клавишами и лампочек-индикаторов, сигнализирующих о наличии единичного сигнала на входе. Подсоединив лампочки на выходе, мы можем совершенно точно проверить правильность нашей схемы и уравнений. Как видно на рисунке, с помощью инверторов, мы вывели на общую шину, как сами входы, так и инвертированные входы. Обратившись к таблице микросхем, мы заметим, что шесть инверторов содержится у нас в микросхеме К1533ЛН1. Аналог на западе этой микросхемы – 7405. Её и содержит в своей элементной базе Electronic WorkBench. Элементная база позволяет нам свободно использовать следующие логические элементы: В данном варианте базис позволяет использовать любой из данных элементов. 19 20