You are on page 1of 55

Podstawy techniki cyfrowej (POCY)

Wykład 3

Układy kombinacyjne
Minimalizacja funkcji boolowskich

dr inż. Andrzej Wielgus


Instytut Mikroelektroniki i Optoelektroniki
WEiTI PW
Podstawy techniki cyfrowej Andrzej Wielgus IMiO
Przykład układu kombinacyjnego
• Specyfikacja funkcji • Tablica prawdy funkcji
y = f(x1, x2, x3)

Jeżeli x1 = 1, to y = x2,
x1 x2 x3 y
jeżeli x1 = 0, to y = x3
0 0 0 0 0
1 0 0 1 1
2 0 1 0 0
x1 3 0 1 1 1
x2 f(x1, x2, x3) y 4 1 0 0 0
x3 5 1 0 1 0
6 1 1 0 1
7 1 1 1 1

Podstawy techniki cyfrowej Andrzej Wielgus IMiO


Przykład układu kombinacyjnego
• Wyrażenie boolowskie w • Wyrażenie boolowskie
postaci kanonicznej sumy w postaci uproszczonej
f = x1x2x3 + x1x2x3 + x1x2x3 + x1x2x3 fred = x1x3 + x1x2

minimalizacja

• Minimalizacja wyrażeń boolowskich umożliwia realizację


funkcji w postaci schematu logicznego z mniejszą liczbą
bramek i mniejszą liczbą wejść do tych bramek
Podstawy techniki cyfrowej Andrzej Wielgus IMiO
Minimalizacja

• Co chcemy minimalizować?
 koszt realizacji układu kombinacyjnego
 pobór mocy
 szybkość działania
• Kryteria minimalizacji i funkcja celu

Podstawy techniki cyfrowej Andrzej Wielgus IMiO


Postać minimalna wyrażenia logicznego

• Poszukujemy wyrażenia logicznego w postaci


sumy iloczynów o minimalnej liczbie implikantów i
minimalnej liczbie literałów
• W realizacji sprzętowej odpowiada to układowi
kombinacyjnemu zbudowanemu z minimalnej
liczby bramek logicznych z minimalną liczbą wejść

Podstawy techniki cyfrowej Andrzej Wielgus IMiO


Minimalizacja dwupoziomowa

• Dwupoziomowe wyrażenie minimalne w postaci


sumy iloczynów
• Metody minimalizacji
 graficzne, np. metoda tablic Karnaugha
 analityczne, np. Quine’a i McCluskeya, ekspansji
 komputerowe, np. metoda Espresso
• Metoda tablic Karnaugha jest jedną z najprostszych
metod minimalizacji
 metoda poglądowa do obliczeń ręcznych
 złożona obliczeniowo dla większych funkcji
 nieprzydatna w praktyce projektowania układów
cyfrowych
Podstawy techniki cyfrowej Andrzej Wielgus IMiO
Tablice Karnaugha
• Tablicę prawdy przekształca się w taki sposób, że mintermy
różniące się na dokładnie jednej zmiennej mają
przyporządkowane sąsiednie pola tablicy

x1 x2 x3 y
0 0 0 0 0
1 0 0 1 1
2 0 1 0 0 x2x3
x1 00 01 11 10
3 0 1 1 1
4 1 0 0 0 0 0 1 1 0
5 1 0 1 0 1 0 0 1 1
6 1 1 0 1
7 1 1 1 1

Podstawy techniki cyfrowej Andrzej Wielgus IMiO


Tablice Karnaugha

x 2x 3
x1 00 01 11 10
0 0 1 1 0
1 0 0 1 1

x1x2x3 + x1x2x3 = x1x3

Podstawy techniki cyfrowej Andrzej Wielgus IMiO


Tablice Karnaugha
• Tablica Karnaugha jest tablicą prostokątną złożoną z 2n pól
(kratek), z których każde reprezentuje jeden minterm funkcji
(pełny iloczyn zmiennych binarnych).
• Wartości zmiennych wejściowych pełnią rolę indeksów
wierszy i kolumn, a odpowiadające im wartości zmiennych
wyjściowych (wartości funkcji: 0, 1, -) są wpisywane w pola
tablicy.
• Mintermy różniące się wartością dokładnie jednej zmiennej
mają przyporządkowane sąsiednie pola tablicy (sąsiadują ze
sobą).
• Sąsiednie mogą być:
 kratki przylegające do siebie
 kratki położone przy przeciwległych krawędziach tablicy
 kratki położone symetrycznie wewnątrz tablicy
Podstawy techniki cyfrowej Andrzej Wielgus IMiO
Zasady konstrukcji tablic Karnaugha
x2 x 2x 3
x1 0 1 x1 00 01 11 10
0 0 0 1 3 2
1 1 4 5 7 6

x3 x 3x 4
x1x2 x 1x 2
0 1 00 01 11 10
00 00 0 1 3 2
01 sąsiednie 01 4 5 7 6
11 kratki 11 12 13 15 14
10 10 8 9 11 10

• Wpisywanie funkcji do tablicy Karnaugha ułatwia opis pól w kodzie NKB


Podstawy techniki cyfrowej Andrzej Wielgus IMiO
Zasady konstrukcji tablic Karnaugha

x 4 x 5x 6

x1x2x3 000 001 011 010 110 111 101 100


000
001
011
010
oś symetrii
110
111
101
100 sąsiednie
kratki
Podstawy techniki cyfrowej Andrzej Wielgus IMiO
Minimalizacja metodą tablic Karnaugha

1)Zapisać funkcję w tablicy Karnaugha.


2)Zakreślić w tablicy jak największe, symetryczne pętle wokół
sąsiadujących pól zawierających tylko 1 lub 1 i „-”
(nieokreśloności).
3)Pokryć wszystkie 1 funkcji minimalną liczbą pętli.
4)Dla każdej pętli wyznaczyć implikant funkcji w postaci
iloczynu zmiennych, prostych lub zanegowanych.
5)Utworzyć minimalne wyrażnie boolowskie danej funkcji w
postaci suma wyznaczonych iloczynów.

Podstawy techniki cyfrowej Andrzej Wielgus IMiO


Zasady zakreślania pętli
• Każda 1 musi być objęta przynajmniej jedną pętlą
• Każda pętla musi obejmować 2k pól tablicy i być
symetryczna w każdym kierunku względem jednej z osi
symetrii tablicy K
• Pętla może przebiegać przez krawędź tablicy
• Każda pętla powinna być jak największa (obejmować jak
najwięcej sąsiednich pól)
• Nieokreśloności mogą być zakreślane razem z 1, jeśli
pozwala to utworzyć większą pętlę

Podstawy techniki cyfrowej Andrzej Wielgus IMiO


Przykłady zakreślania pętli

x2 x 2x 3
x1 0 1 x1 00 01 11 10
0 0
1 1

x3 x3x4
x 1x 2 x 1x 2
0 1 00 01 11 10
00 00
01 01
11 11
10 10

Podstawy techniki cyfrowej Andrzej Wielgus IMiO


Przykłady zakreślania pętli

x 4 x 5x 6

x1x2x3 000 001 011 010 110 111 101 100


000
001
011
010
110
111
101
100

Podstawy techniki cyfrowej Andrzej Wielgus IMiO


Przykłady błędnych pętli

x 4 x 5x 6

x1x2x3 000 001 011 010 110 111 101 100


000
001
011
010 błędna pętla
110 asymetryczna

111
101
100

Podstawy techniki cyfrowej Andrzej Wielgus IMiO


Przypisanie implikantu do pętli

x2x3 x 2x 3
x1 00 01 11 10 x1 00 01 11 10
0 x1 0
1 x1 1

x2 x2
• Pętli odpowiada implikant funkcji
x2x3
w postaci iloczynu tylko tych
x1
zmiennych, które występują w 00 01 11 10
opisie pól objętych pętlą tylko w 0
jednej postaci: prostej lub 1
zanegowanej
x3 x3 x3

Podstawy techniki cyfrowej Andrzej Wielgus IMiO


Przypisanie implikantu do pętli - przykład

• Funkcja f(x1, x2, x3) = Σ(1, 3, 6, 7)

x 2x 3
x1 00 01 11 10
0 0 1 1 0
1 0 0 1 1

fmin = x1x3 + x1x2

Podstawy techniki cyfrowej Andrzej Wielgus IMiO


Przykład
• Funkcja f(a,b,c,d,e) = Σ[4, 5, 10, 11, 15, 18, 20, 24, 26, 30,
31, (9, 12, 14, 16, 19, 21, 25)]

cde

ab
000 001 011 010 110 111 101 100
00 0 0 0 0 0 0 1 1
01 0 - 1 1 - 1 0 -
11 1 - 0 1 1 1 0 0
10 - 0 - 1 0 0 - 1

fmin = abd + bcd + bcd + ace

Podstawy techniki cyfrowej Andrzej Wielgus IMiO


Implikanty funkcji

• Implikant to iloczyn literałów, który ma taką cechę,


że funkcja przyjmuje wartość 1, gdy implikant
przyjmuje wartość 1
• Implikant c1 pokrywa implikant c2 (c2  c1), jeśli c2
zawiera wszystkie literały implikantu c1.
• Implikant funkcji jest prosty, jeżeli nie jest
pokrywany przez żaden inny implikant tej funkcji.
Jeśli usuniemy z niego dowolny literał, to
przestanie być implikantem (czyli będzie pokrywał
również 0 funkcji)

Podstawy techniki cyfrowej Andrzej Wielgus IMiO


Implikanty w tablicy Karnaugha

cde minterm
abcde
ab
000 001 011 010 110 111 101 100
00 0 0 0 0 0 0 1 1
implikant
01 0 - 1 1 - 1 0 -
11 1 - 0 1 1 1 0 0
bcde

10 - 0 - 1 0 0 - 1

implikant prosty
bcd

Podstawy techniki cyfrowej Andrzej Wielgus IMiO


Implikanty w tablicy Karnaugha

po usunięciu literału b
cde cd - nie jest implikantem !

ab
000 001 011 010 110 111 101 100
00 0 0 0 0 0 0 1 1 po usunięciu literału c
bd - nie jest implikantem !
01 0 - 1 1 - 1 0 -
11 1 - 0 1 1 1 0 0
10 - 0 - 1 0 0 - 1

implikant prosty
bcd

Podstawy techniki cyfrowej Andrzej Wielgus IMiO


Wyrażenie w postaci iloczynu sum POS

• Funkcja f(x1, x2, x3) = Σ(1, 3, 6, 7)

x 2x 3
x1 00 01 11 10
0 0 1 1 0
1 0 0 1 1

fmin = (x1 + x2) (x1 + x3)

Podstawy techniki cyfrowej Andrzej Wielgus IMiO


Minimalizacja układów wielowyjściowych

• Wielowyjściowe układy kombinacyjne realizują


zespoły funkcji boolowskich
• Minimalna postać wyrażenia logicznego każdej z
funkcji oddzielnie nie zapewnia minimalnej
realizacji zespołu funkcji

Podstawy techniki cyfrowej Andrzej Wielgus IMiO


Przykład 2 – minimalizacja oddzielnych funkcji

• Zminimalizować i zrealizować zespół funkcji:


y1 = Σ(2, 3, 5, 7, 8, 9, 10, 11, 13, 15)
y2 = Σ(2, 3, 5, 6, 7, 10, 11, 14, 15)
y3 = Σ(6, 7, 8, 9, 13, 14, 15)
cd cd cd
ab 00 01 11 10 ab 00 01 11 10 ab 00 01 11 10
00 0 0 1 1 00 0 0 1 1 00 0 0 0 0
01 0 1 1 0 01 0 1 1 1 01 0 0 1 1
11 0 1 1 0 11 0 0 1 1 11 0 1 1 1
10 1 1 1 1 10 0 0 1 1 10 1 1 0 0

y 1 = a b̄ + b d + b̄ c y 2 = c+ ā b d y 3 = b c + a c̄ d + a b̄ c̄
• Realizacja: 7 bramek AND i 3 bramki OR
Podstawy techniki cyfrowej Andrzej Wielgus IMiO
Przykład 2 – minimalizacja zespołu funkcji
• Poszukujemy implikantów wspólnych dla dwóch lub trzech
funkcji. Mogą nie być implikantami prostymi.
cd cd cd
ab 00 01 11 10 ab 00 01 11 10 ab 00 01 11 10
00 0 0 1 1 00 0 0 1 1 00 0 0 0 0
01 0 1 1 0 01 0 1 1 1 01 0 0 1 1
11 0 1 1 0 11 0 0 1 1 11 0 1 1 1
10 1 1 1 1 10 0 0 1 1 10 1 1 0 0

y 1 = a b̄ c̄ + a b d + ā b d + b̄ c y 3 = b c + a b d + a b̄ c̄

y 2 = b c+ ā b d+ b̄ c
• Realizacja: 5 bramek AND i 3 bramki OR

Podstawy techniki cyfrowej Andrzej Wielgus IMiO


Przykład 2 – schemat logiczny

y 1 = a b̄ c̄ + a b d + ā b d + b̄ c y 1 = a b̄ c̄ + a b d + ā b d + b̄ c
y 2 = b c+ ā b d+ b̄ c y 2 = c+ ā b d
y 3 = b c + a b d + a b̄ c̄ y 3 = b c + a b d + a b̄ c̄

a a
b b
y1 y1
c c
d d

y2 y2

y3 y3

Podstawy techniki cyfrowej Andrzej Wielgus IMiO


Minimalizacja dwupoziomowa

• Pokryciem funkcji logicznej nazywamy zbiór


implikantów pokrywających wszystkie 1-ki funkcji

• Pokrycie funkcji jest minimalne, jeżeli nie istnieje


pokrycie zawierające mniejszą liczbę implikantów oraz
nie istnieje pokrycie zawierające taką samą liczbę
implikantów, ale mniejszą liczbę literałów

• Każde minimalne pokrycie funkcji logicznej zawiera


wyłącznie implikanty proste.

Podstawy techniki cyfrowej Andrzej Wielgus IMiO


Metody minimalizacji dwupoziomowej

• Minimalizacja dokładna
 znajduje wszystkie możliwe minimalne pokrycia funkcji

• Minimalizacja heurystyczna (przybliżona)


 znajduje przybliżone pokrycie początkowe
 iteracyjnie poprawia początkowe pokrycie
 stosuje heurystyczne reguły poprawiania pokrycia

Podstawy techniki cyfrowej Andrzej Wielgus IMiO


Minimalizacja dokładna

• Klasyczne algorytmy dokładnej minimalizacji obejmują


dwa zasadnicze etapy:
 wyznaczenie zbioru implikantów prostych funkcji
boolowskiej
 wyznaczenie minimalnego pokrycia funkcji przez
podzbiór implikantów prostych

• W ogólnym przypadku, obydwa te problemy są bardzo


złożone obliczeniowo
• Metoda Quine’a i McCluskeya
• Metoda ekspansji

Podstawy techniki cyfrowej Andrzej Wielgus IMiO


Minimalizacja heurystyczna

• Metody heurystyczne
 nie poszukują zbioru wszystkich implikantów prostych
 znajdują tylko tyle implikantów, żeby policzyć jedno
pokrycie funkcji
 iteracyjnie poprawiają znalezione pokrycie

• Metoda Espresso
 zbiór procedur logicznych
 jedną z nich jest ekspansja

Podstawy techniki cyfrowej Andrzej Wielgus IMiO


Metoda ekspansji

• Metoda minimalizacji dokładnej


• Etapy minimalizacji:
 generacja zbioru wszystkich implikantów prostych
funkcji boolowskiej
 selekcja implikantów w celu wyznaczenia minimalnego
pokrycia funkcji przez podzbiór implikantów prostych

• Pojęcie kostki
• Ekspansja (powiększanie) kostek

Podstawy techniki cyfrowej Andrzej Wielgus IMiO


Kostka

• Kostka to ciąg elementów ze zbioru {0, 1, *}, gdzie *


oznacza wartość nieokreśloną (reprezentuje 0 lub 1)
• Kostką k nazywamy n-krotkę (ang. n-tuple) o
składowych 0, 1, *, stanowiącą element zbioru {0, 1, *}n.
• Kostka reprezentuje zbiór wektorów binarnych, np.:

{ }
10 001
10 011
k=(1∗0∗1)=
11 001
11 011

• Kostka reprezentuje zatem niepełny iloczyn literałów:

k=(1∗0∗1)=x 1 x¯3 x 5
Podstawy techniki cyfrowej Andrzej Wielgus IMiO
Reprezentacja funkcji

• W metodzie ekspansji funkcja boolowska f(X)


reprezentowana jest w postaci zbioru włączenia F
i zbioru wyłączenia R
• Zbiór wektorów (kostek), dla których f = 1, tworzy zbiór F
• Zbiór wektorów (kostek), dla których f = 0, tworzy zbiór R

Podstawy techniki cyfrowej Andrzej Wielgus IMiO


Przykład 1 - reprezentacja funkcji

• Zbiory F i R funkcji f(x1, x2, x3, x4)

[ ]
x1 x2 x3 x4 f 00 0 1
01 1 0
0 0 0 0 1 1
F=
11 0 0
1 0 1 1 0 1 11 0 1
2 1 1 0 0 1
3 1 1 0 1 1
4 0 0 1 0 0

[ ]
5 0 1 0 1 0
0010
6 1 0 0 0 0 R= 0 1 0 1
1000

Podstawy techniki cyfrowej Andrzej Wielgus IMiO


Kostki funkcji boolowskiej

• Każdy implikant funkcji jest kostką


• Nie każda kostka jest implikantem funkcji, ponieważ
jedna kostka może reprezentować wektory ze zbioru
włączenia i ze zbioru wyłączenia

[ ]
00 0 1
01 1 0 (∗ 1 ∗ 0 ) to jest implikant funkcji
F=
11 0 0
11 0 1
(∗ 1 ∗ 1 ) to nie jest implikant funkcji

[ ]
0010
R= 0 1 0 1
1000

Podstawy techniki cyfrowej Andrzej Wielgus IMiO


Ekspansja kostki

• Ekspansja jest procesem działającym na


wektorach (kostkach) zbiorów F i R, a jej celem
jest uzyskanie dla danej kostki k  F możliwie
dużej kostki k’ (tzn. z możliwie dużą liczbą pozycji
o wartości *) i nie pokrywającej żadnego wektora
zbioru R.
• Celem ekspansji jest maksymalne powiększenie
kostki k w taki sposób, aby obejmowała tylko 1 i –
funkcji. Ograniczeniem powiększania są 0 funkcji.

Podstawy techniki cyfrowej Andrzej Wielgus IMiO


Interpretacja ekspansji kostki
w tablicy Karnaugha

cde kostka k
k = (01111)
ab
000 001 011 010 110 111 101 100 m = abcde
00 0 0 0 0 0 0 1 1
01 0 - 1 1 - 1 0 -
11 1 - 0 1 1 1 0 0
10 - 0 - 1 0 0 - 1

ekspansja kostki k
k’ = (*111*)
I = bcd

Podstawy techniki cyfrowej Andrzej Wielgus IMiO


Przykład 1 - ekspansja kostki w tablicy
Karnaugha

x 3x 4 kostka k
k = (0110)
x 1x 2 00 01 11 10 m = x1x2x3x4
00 - 1 - 0
01 - 0 - 1 ekspansja kostki k
11 1 1 - - k’ = (*1*0)
10 0 - - - I = x2x4

ekspansja kostki k
k’ = (*11*)
I = x2x3

Podstawy techniki cyfrowej Andrzej Wielgus IMiO


Macierz blokująca B

• Macierz blokująca B(k, R) dla danej kostki k  F


powstaje z macierzy R przez zanegowanie tych
kolumn R, których pozycje są wyznaczone przez
pozycje jedynek w kostce k  F

Podstawy techniki cyfrowej Andrzej Wielgus IMiO


Przykład 1 – macierz blokująca

[ ]
00 0 1 k1

[ ]
01 1 0 k2 0010
F= R= 0 1 0 1
11 0 0 k3
11 0 1 k4 1000

• Wybieramy kostkę k1

k 1=(0 0 0 1)

[ ]
• Wyznaczamy macierz blokującą 0011
B1(k1, R) B1 = 0 1 0 0
 w macierzy R negujemy 4-tą kolumnę 1001
 pozostałe kolumny przepisujemy bez zmian

Podstawy techniki cyfrowej Andrzej Wielgus IMiO


Pokrycie kolumnowe

• Pokryciem kolumnowym macierzy B jest zbiór


kolumn L taki, że dla każdego wiersza i istnieje
kolumna jL, która w wierszu i ma jedynkę
• Zbiór L jest minimalnym pokryciem kolumnowym
macierzy B, jeśli nie istnieje zbiór L’ (tworzący
pokrycie) taki, że L’  L

Podstawy techniki cyfrowej Andrzej Wielgus IMiO


Przykład 1 – pokrycie kolumnowe macierzy

• Kolumny macierzy oznaczamy symbolami L1, L2, …


• Wybieramy zbiór kolumn taki, żeby w każdym wierszu
wystąpiła co najmniej jedna 1
L1 L2 L3 L4 L1 L2 L3 L4

[ ] [ ]
0011 0011
B1 = 0 1 0 0 B1 = 0 1 0 0
1001 1001

pokrycie inne pokrycie


kolumnowe kolumnowe
L={L2 , L4 } L={L1 , L 2 , L3 }

Podstawy techniki cyfrowej Andrzej Wielgus IMiO


Wyznaczanie ekspansji kostki

• Pokrycie kolumnowe macierzy blokującej B(k, R)


pozwala wyznaczyć ekspansję kostki k oznaczaną
k+(L, k) w sposób następujący:
 wszystkie składowe kostki k należące do L nie ulegają
zmianie
 składowe nie należące do L przyjmują wartość *
• Ekspansja k+(L, k) kostki k jest implikantem funkcji
• Ekspansja k+(L, k) jest implikantem prostym, jeśli L
jest minimalnym pokryciem kolumnowym macierzy
blokującej B(k, R)

Podstawy techniki cyfrowej Andrzej Wielgus IMiO


Przykład 1 – obliczanie ekspansji kostki
• Znalezione pokrycie kolumnowe L
L={L2 , L4 }
wskazuje, które składowe kostki
k1 nie zmieniają się
• Pozostałe składowe kostki
zamieniamy na wartość * k 1=( 0 0 0 1 )
• Obliczona ekspansja k+(L, k1)
reprezentuje implikant funkcji
• Implikant I jest prosty, jeśli k +1 (L
( L , k 1 )=(∗
)=( 0 ∗ 1 )
pokrycie L jest minimalne

I =x2 x 4

Podstawy techniki cyfrowej Andrzej Wielgus IMiO


Minimalne pokrycia kolumnowe macierzy

• W jaki sposób można wyznaczyć wszystkie minimalne


pokrycia kolumnowe macierzy?
• Algorytm
 dla każdego wiersza wyznaczyć zbiór kolumn
zawierających 1 w danym wierszu
 zapisać zbiory kolumn w postaci iloczynu sum
 przekształcić otrzymane wyrażenie do minimalnej
postaci sumy iloczynów
 składniki iloczynowe reprezentują minimalne pokrycia
kolumnowe funkcji

Podstawy techniki cyfrowej Andrzej Wielgus IMiO


Przykład 1 – ekspansja kostki k1

• Obliczamy macierz blokującą B1

[ ]
0 0 1 1 {L3 , L4 }
k 1=(0 0 0 1) B1 = 0 1 0 0 {L2 }
1 0 0 1 {L1 , L4 }

• Obliczamy minimalne pokrycia kolumnowe B1


L2 (L3 + L 4 )( L1 + L 4 )=L2 (L 4 + L1 L3 )=L2 L 4 + L1 L2 L3

L1={L 2 , L 4 } L2 ={L1 , L2 , L3 }
• Wyznaczamy ekspansje kostki k1 i implikanty proste
k +1 (L1 , k 1 )=( ∗ 0 ∗ 1 ) I =x2 x 4

k +1 (L 2 , k 1 )=( 0 0 0 ∗ ) I =x1 x 2 x3
Podstawy techniki cyfrowej Andrzej Wielgus IMiO
Przykład 1 – ekspansja kostki k2

• Obliczamy macierz blokującą B2

[ ] [ ]
0010 0100 L2
k 2=(0 1 1 0) R= 0 1 0 1 B 2 = 0 0 1 1 L3 , L 4
1000 1 1 1 0 L1 , L2 , L3

• Obliczamy minimalne pokrycia kolumnowe B1


L2 (L3 + L 4 )( L1 + L2 + L3 )=L2 L3 + L2 L 4

L1={L 2 , L3 } L2 ={L2 , L 4 }
• Wyznaczamy ekspansje kostki k2 i implikanty proste
k +2 ( L1 , k 2 )=( ∗ 1 1 ∗ ) I =x 2 x 3
k +2 ( L2 , k 2 )=( ∗ 1 ∗ 0 ) I =x 2 x 4
Podstawy techniki cyfrowej Andrzej Wielgus IMiO
Przykład 1 – ekspansja kostki k3

• Obliczamy macierz blokującą B3

[ ] [ ]
0010 1110 L1 , L2 , L3
k 3=(1 1 0 0) R= 0 1 0 1 B3 = 1 0 0 1 L1 , L4
1000 0100 L2

• Obliczamy minimalne pokrycia kolumnowe B3


L2 ( L1 + L4 )=L1 L2 + L2 L4
L1={L1 , L2 } L2={L2 , L4 }

• Wyznaczamy ekspansje kostki k3 i implikanty proste


k +3 ( L1 , k 3 )=( 1 1 ∗∗ ) I =x 1 x 2
k +3 ( L 2 , k 3 )=( ∗ 1 ∗ 0 ) I =x 2 x 4
Podstawy techniki cyfrowej Andrzej Wielgus IMiO
Przykład 1 – ekspansja kostki k4

• Obliczamy macierz blokującą B4

[ ] [ ]
0010 1111 L1 , L2 , L3 , L4
k 4 =(1 1 0 1) R= 0 1 0 1 B 4= 1 0 0 0 L1 ,
1000 0101 L2 , L4

• Obliczamy minimalne pokrycia kolumnowe B4


L1 ( L2 + L4 )=L1 L2 + L1 L4
L1={L1 , L2 } L2={L1 , L4 }
• Wyznaczamy ekspansje kostki k4 i implikanty proste
k +4 ( L1 , k 4 )=( 1 1 ∗∗ ) I =x 1 x 2
k +4 ( L 2 , k 4 )=( 1 ∗∗ 1 ) I =x 1 x 4
Podstawy techniki cyfrowej Andrzej Wielgus IMiO
Przykład 1 – zbiór implikantów prostych

• Ze zbioru wyznaczonych implikantów usuwamy


powtarzające się, porządkujemy i numerujemy

I 1=x 2 x 4

I 2= x 1 x 2 x 3

I 3 =x 2 x 3

I 4 =x 2 x 4

I 5 =x1 x 2

I 6 =x 1 x 4

Podstawy techniki cyfrowej Andrzej Wielgus IMiO


Selekcja implikantów prostych

• Ekspansja kostek umożliwia obliczenie zbioru


wszystkich implikantów prostych funkcji
• Zbiór ten jest zazwyczaj nadmiarowy – zawiera zbyt
dużo implikantów
• Selekcja najlepszych implikantów umożliwia
znalezienie minimalnego pokrycia funkcji, czyli
minimalnej postaci wyrażenia boolowskiego
• Rozwiązanie problemu pokrycia

Podstawy techniki cyfrowej Andrzej Wielgus IMiO


Rozwiązanie problemu pokrycia

• Relacja pokrycia dla kostek


 Kostka K pokrywa kostkę C (C  K), jeśli ki = ci lub ki = *
np. ( 1101 )  ( 1*0* )
( 1*01 )  ( 1*0* )
• Tablica implikantów
 wiersze reprezentują kostki pierwotnej funkcji
 kolumny reprezentują implikanty proste funkcji
 jeżeli ki  Ij (implikant Ij pokrywa kostkę ki),
to w polu (i, j) tablicy wpisuje się 1
• Minimalne pokrycie kolumnowe tablicy implikantów
reprezentuje minimalne pokrycie funkcji

Podstawy techniki cyfrowej Andrzej Wielgus IMiO


Przykład 1 – tablica implikantów funkcji

I 1=x 2 x 4 ⊇k 1

I 2= x1 x 2 x3 ⊇k 1 I1 I2 I3 I4 I5 I6
k1 1 1
I 3 =x 2 x 3 ⊇k 2
k2 1 1
I 4 =x 2 x 4 ⊇k 2 k 3 k3 1 1
I 5 =x1 x 2 ⊇k 3 k 4 k4 1 1

I 6 =x 1 x 4 ⊇k 4

( I 1 + I 2 )(I 3 + I 4 )( I 4 + I 5 )(I 5 + I 6 )=( I 1 I 3 + I 1 I 4 + I 2 I 3 + I 2 I 4 )( I 5 + I 4 I 6 )=


I 1 I 3 I 5 + I 1 I 4 I 5+ I 1 I 4 I 6+ I 2 I 3 I 5 + I 2 I 4 I 5 + I 2 I 4 I 6

Podstawy techniki cyfrowej Andrzej Wielgus IMiO


Przykład 1 – minimalne pokrycia funkcji

• Dla funkcja f(x1, x2, x3, x4) znaleziono 6 rozwiązań


minimalnych

I 1=x 2 x 4 I 2= x 1 x 2 x 3 I 3= x 2 x 3 I 4= x 2 x 4 I 5 =x1 x 2 I 6 =x 1 x 4

f min =I 1 + I 3 + I 5 f min =x 2 x 4 + x2 x 3 + x1 x 2
f min=I 1 + I 4 + I 5 f min =x 2 x 4 + x2 x 4 + x1 x 2
f min =I 1 + I 4 + I 6 f min =x 2 x 4 + x2 x 4 + x1 x 4
f min =I 2 + I 3 + I 5 f min =x1 x 2 x3 + x 2 x 3 + x1 x 2
f min=I 2 + I 4 + I 5 f min =x 1 x2 x 3 + x 2 x 4 + x 1 x2
f min =I 2 + I 4 + I 6 f min =x 1 x2 x 3 + x 2 x 4 + x 1 x 4

Podstawy techniki cyfrowej Andrzej Wielgus IMiO

You might also like