КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Практикум по синтезу и минимизации логических функций
Карта Карно на 8 переменных с прямоугольниками Карно. Алгоритм проверки достоверности прямоугольника Карно(принцип симметрии)
Этот алгоритм необходимо применить дважды: относительно горизонтальных и относительно вертикальных осей симметрии. Задача 1 Приёмная комиссия в составе трех членов комиссии и одного председателя решает судьбу абитуриента большинством голосов. В случае равного распределения голосов большинство определяется той группой, в которой оказался председатель приемной комиссии. Построить автомат, обеспечивающий определение большинства голосов. Решение Пусть f - функция большинства голосов. f = 1, если большинство членов комиссии проголосовало за приём абитуриента, и f = 0 в противном случае. Обозначим через x4 голос председателя комиссии. x4 = 1, если председатель комиссии проголосовал за приём абитуриента. x3, x2, x1 - голоса членов приёмной комиссии. С учётом вышеуказанных допущений условие задачи можно однозначно представить в виде таблицы истинности. Заполнение таблицы осуществляем с учётом того, что функция f является полностью определённой, т.е. она определена на всех возможных наборах переменных x1 - x4. Для n входных переменных существует N = 2n наборов переменных. В нашем Задачае N = 24 = 16 наборов. Записывать эти наборы можно в любом порядке, но лучше в порядке возрастания двоичного кода.
Примечание. Здесь и далее под набором будем понимать конъюнкцию всех входных переменных. Существует множество научных определений для набора(конституента,терм,импликанта,минтерм и т.д.),но они только вносят путаницу. Все наборы, на которых функция принимает значение 1, будем называть единичными, или рабочими. Наборы, на которых функция принимает значение 0, будем называть нулевыми, или запрещенными. Для того, чтобы по таблице истинности найти функцию f, достаточно выписать все единичные наборы и соединить их знаком дизъюнкции. Таким образом, f = x4'x3x2x1 + x4x3'x2'x1 + x4x3'x2x1' + x4x3'x2x1 + + x4x3x2'x1' + x4x3x2'x1 + x4x3x2x1' + x4x3x2x1Полученная форма функции называется совершенной дизъюнктивной нормальной формой (СДНФ), так как каждое логическое слагаемое представляет собой конъюнкцию всех аргументов. Очевидно, применяя основные законы булевой алгебры, мы могли бы аналитически уменьшить сложность полученного выражения. Но это наихудший способ минимизации булевых функций. Покажем это на предыдущем Задачае. Представим полученную функцию в виде логической суммы цифровых рабочих наборов: f = 0111+1001+1010+1011+1100+1101+1110+1111 = = (0111+1111)+(1001+1011)+(1010+1011)+(1100+1101)+(1110+1111) = = -111+10-1+101-+110-+111- = -111+10-1+(101-+111-)+(110-+111-) = = -111+10-1+1-1-+11-- = x3x2x1+ x4x3'x1+ x4x2+ x4x3.Как мы потом увидим, результат минимизации должен быть компактнее. Но при аналитической минимизации придётся ввести неочевидную группировку: (1101+1111). После длинных и неочевидных группировок удалось, наконец, получить правильное решение. При числе аргументов более 4-х аналитический метод минимизации не рационален. Применим карту Карно для решения задачи 1. На рисунке даны два варианта решения. f = x4x1 + x4x2 + x4x3 + x3x2x1 f' = x4'x1' + x4'x2' + x4'x3' + x3'x2'x1'Эти выражения представляют собой Задача дизъюнктивной нормальной формы (ДНФ). В некоторых случаях приведение результата минимизации к скобочной форме позволяет уменьшить количество ИС, необходимые для реализации булевой функции. Скобочная форма для f имеет вид: f = x4(x1 + x2 + x3) + x3x2x1Карта Карно для решения задачи 1. Задача 2 Полностью определённая булева функция от 4-х переменных задана десятичными рабочими наборами: РН(4) = 5, 6, 7, 8, 9, 10, 11.Число в скобках указывает количество переменных. Найти минимальную форму этой функции. Решение Так как функция является полностью определённой, то запрещёнными наборами ЗН(4) являются наборы 0 - 4, 12 - 15. Исходя из этой информации, составляем таблицу истинности и осуществляем минимизацию по карте Карно. Таблица 4
По карте Карно получаем результат: f = x4x3' + x4'x3(x1 + x2)Решение задачи 2 Задание 1.1 Найти минимальную форму полностью определённых булевых функций, заданных 10-чными рабочим наборами:
Задача 3 Найти минимальную форму функции y, представленной на рисунке. Решение Функция задана только на 5 наборах. Добавим к трём рабочим наборам ещё пять, а именно: 0000, 0011, 1000, 1011, 1010. Все оставшиеся наборы доопределим как запрещённые. В результате такого доопределения получим прямоугольник Карно, состоящий из 8 элементарных квадратов Карно. Этому прямоугольнику соответствует функция: y = b'Решение задачи 3 Задача 4 Построить преобразователь двоичного кода, получаемого на выходе делителя частоты на 12, в двоично-десятичный код. Условие задачи отражено в таблице. Делитель работает в коде 8-4-2-1.
Решение Для каждой функции yi заполняем карту Карно, производим доопределение и осуществляем минимизацию. Весь процесс отражён на рисунке. В результате минимизации получаем систему функций: y1 = x1 y2 = x4'x2 y3 = x3y4 = x4x2'y5 = x4x2Карты Карно к задаче 4. Задача 5 Построить один разряд многоразрядного сумматора. Решение Пусть ai и вi - значения i-ых разрядов слагаемых а и в, Pi и Si - значения переноса и суммы на выходе i-го разряда, Pi-1 - значение переноса на выходе предыдущего разряда, тогда работу сумматора можно описать с помощью таблицы истинности.
Имеем систему полностью определённых булевых функций. Производим раздельную минимизацию (см. рисунок). Si = ai'вi'Pi-1 + ai'вiPi-1' + aiвi'Pi-1' + aiвiPi-1 = = Pi-1(ai~вi) + Pi-1'(aiÅ вi) = Pi = вiPi-1 + aiPi-1 + aiвiРешение задачи 5 Для реализации лучше Pi = aiвi + Pi-1(ai~вi)', так как может быть использован общий для Si и Pi сомножитель (аi~вi)'. Схема сумматора представлена на рисунке. Здесь же дано условное обозначение одноразрядного сумматора, где А и В - одноразрядные слагаемые, P0 и P1 - входной и выходной переносы, S1 - сумма. На этом же рисунке изображён двухразрядный сумматор, выполненный на микросхеме 133ИМ2. Здесь А1, В1, А2, В2 - соответственно значения первых и вторых разрядов слагаемых А и В; S1 и S2 - 1-ый и 2-ой разряды суммы; P0 - входной перенос для первого разряда, P2' - выходной перенос. Схемы сумматоров. Задание 1.2
Дата добавления: 2015-05-08; Просмотров: 645; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |