Лобанов Владимир Иванович, вед научн сотрудник фгуп «цнии «Комета», к т. н., e mail : lobanov V i @ mail ru

Вид материалаДокументы

Содержание


1.5. Минимизация недоопределённых булевых функций
Подобный материал:
1   2   3   4   5   6   7

1.5. Минимизация недоопределённых булевых функций



Функция от n переменных называется недоопределённой, если она задана не на всех 2n наборах. Задача минимизации такой функции заключается в оптимальном доопределении значений функции на незаданных наборах, которое позволило бы покрыть рабочие наборы минимальным количеством прямоугольников Карно, каждый из которых имел бы максимальную площадь.


Задача 1.5.1.

Найти минимальную форму функции y от 4-х аргументов, заданную десятичными рабочими (РН) и запрещёнными (ЗН) наборами:

РН(4): 1, 2, 9;

ЗН(4): 7, 13.

Решение.

Функция задана только на 5 наборах (число в скобках указывает количество переменных). Добавим к трём рабочим наборам ещё пять, а именно : 0000, 0011, 1000, 1011, 1010. Все оставшиеся наборы доопределим как запрещённые. В результате такого доопределения получим прямоугольник Карно, состоящий из 8 элементарных квадратов Карно. Этому прямоугольнику соответствует функция:

y = х3’



Задание 2.


2-1. Построить по заданной таблице истинности 2/(2-10) преобразователь для делителя частоты на 24, работающего в коде 16-8-4-2-1. Этот преобразователь использовался на заре цифровой схемотехники в радиолюбительских электронных часах.

x4 x3 x2 x1 x0

y5 y4

y3 y2 y1 y0

x4 x3 x2 x1 x0

y5 y4

y3 y2 y1 y0

0 0 0 0 0

0 0

0 0 0 0

0 1 1 0 0

0 1

0 0 1 0

0 0 0 0 1

0 0

0 0 0 1

0 1 1 0 1

0 1

0 0 1 1

0 0 0 1 0

0 0

0 0 1 0

0 1 1 1 0

0 1

0 1 0 0

0 0 0 1 1

0 0

0 0 1 1

0 1 1 1 1

0 1

0 1 0 1

0 0 1 0 0

0 0

0 1 0 0

1 0 0 0 0

0 1

0 1 1 0

0 0 1 0 1

0 0

0 1 0 1

1 0 0 0 1

0 1

0 1 1 1

0 0 1 1 0

0 0

0 1 1 0

1 0 0 1 0

0 1

1 0 0 0

0 0 1 1 1

0 0

0 1 1 1

1 0 0 1 1

0 1

1 0 0 1

0 1 0 0 0

0 0

1 0 0 0

1 0 1 0 0

1 0

0 0 0 0

0 1 0 0 1

0 0

1 0 0 1

1 0 1 0 1

1 0

0 0 0 1

0 1 0 1 0

0 1

0 0 0 0

1 0 1 1 0

1 0

0 0 1 0

0 1 0 1 1

0 1

0 0 0 1

1 0 1 1 1

1 0

0 0 1 1



2-2. Построить 4-входовой сумматор для суммирования одноразрядных двоичных чисел по заданной таблице истинности.

x4x3x2x1

y2y1y0

x4x3x2x1

y2y1y0

0 0 0 0

0 0 0

1 0 0 0

0 0 1

0 0 0 1

0 0 1

1 0 0 1

0 1 0

0 0 1 0

0 0 1

1 0 1 0

0 1 0

0 0 1 1

0 1 0

1 0 1 1

0 1 1

0 1 0 0

0 0 1

1 1 0 0

0 1 0

0 1 0 1

0 1 0

1 1 0 1

0 1 1

0 1 1 0

0 1 0

1 1 1 0

0 1 1

0 1 1 1

0 1 1

1 1 1 1

1 0 0


1.6. Практикум по синтезу и минимизации логических функций.

Задача 1.2.

Полностью определённая булева функция от 4-х переменных задана десятичными рабочими наборами: РН(4) = 5, 6, 7, 8, 9, 10, 11.Число в скобках указывает количество переменных. Найти минимальную форму этой функции.

Решение.

Так как функция является полностью определённой, то запрещёнными наборами ЗН(4) являются наборы 0 - 4, 12 - 15. Исходя из этой информации, составляем таблицу истинности и осуществляем минимизацию по карте Карно.


Таблица 4.


РН(4)

x4 x3 x2 x1

f

5

0 1 0 1

1

6

0 1 1 0

1

7

0 1 1 1

1

8

1 0 0 0

1

9

1 0 0 1

1

10

1 0 1 0

1

11

1 0 1 1

1




ЗН(4)

x4 x3 x2 x1

f

0

0 0 0 0

0

1

0 0 0 1

0

2

0 0 1 0

0

3

0 0 1 1

0

4

0 1 0 0

0

12

1 1 0 0

0

13

1 1 0 1

0

14

1 1 1 0

0

15

1 1 1 1

0


По карте Карно получаем результат: f = x4x3’ + x4’x3(x1 + x2)




Задача 1.3.

Найти минимальную форму функции y, представленной на рисунке.

Решение.

Функция задана только на 7 наборах. Добавим к пяти рабочим наборам ещё три, а именно : 0000, 1000, 1011. Все оставшиеся наборы доопределим как запрещённые. В результате такого доопределения получим прямоугольник Карно, состоящий из 8 элементарных квадратов Карно. Этому прямоугольнику соответствует функция: y = x3





Задача 1.4.

Построить преобразователь двоичного кода в двоично-десятичный в соответствии с таблицей.

x4x3x2x1

y5y4y3y2y1

x4x3x2x1

y5y4y3y2y1

0 0 0 0

0 0 0 0 0

0 1 1 0

0 0 1 1 0

0 0 0 1

0 0 0 0 1

0 1 1 1

0 0 1 1 1

0 0 1 0

0 0 0 1 0

1 0 0 0

0 1 0 0 0

0 0 1 1

0 0 0 1 1

1 0 0 1

0 1 0 0 1

0 1 0 0

0 0 1 0 0

1 0 1 0

1 0 0 0 0

0 1 0 1

0 0 1 0 1

1 0 1 1

1 0 0 0 1


Решение.

Для каждой функции yi заполняем карту Карно, производим доопределение и осуществляем минимизацию. Весь процесс отражён на рисунке.

В результате минимизации получаем систему функций:

y1 = x1 y2 = x4’x2 y3 = x3 y4 = x4x2’ y5 = x4x2



Задача 1.5.

Построить один разряд многоразрядного сумматора, заданного таблицей истинности. Здесь ai и вi - значения i-ых разрядов слагаемых а и в , Pi и Si - значения переноса и суммы на выходе i-го разряда, Pi-1 - значение переноса на выходе предыдущего разряда.


ai вi Pi-1

Pi

Si

0 0 0

0

0

0 0 1

0

1

0 1 0

0

1

0 1 1

1

0

1 0 0

0

1

1 0 1

1

0

1 1 0

1

0

1 1 1

1

1


Решение.

Имеем систему полностью определённых булевых функций. Производим раздельную минимизацию каждой функции (см. рисунок).



Из карт Карно после минимизации получаем следующие результаты.

Si = ai’вi’Pi-1 + ai’вiPi-1’ + aiвi’Pi-1’ + aiвiPi-1

Pi = вiPi-1 + aiPi-1 + aiвi