PDF - 267 kB - Tadeusz Łuba

Transkrypt

PDF - 267 kB - Tadeusz Łuba
Minimalizacja funkcji boolowskich
Zagadnienie intensywnych prac badawczych od
początku lat pięćdziesiątych 20 wieku.
Ogromny wzrost zainteresowania minimalizacją f.b.
powstał ponownie w latach 80.
Przyczyna: możliwość realizacji układów logicznych w
strukturach scalonych o złożoności milionów bramek
logicznych.
I
T
P
Tadeusz
W
Łuba
ASIC
ZCB
ZPT
1
Minimalizacja funkcji boolowskich
W ciągu kilkudziesięciu lat powstało wiele metod…
Graficzne
Analityczne
Komputerowe
Najprostszą metodą minimalizacji
jest metoda tablic Karnaugha
Mimo swoich niedoskonałości metoda K. jest często wykładaną
metodą minimalizacji funkcji boolowskich.
Paradoksalnie to co jest jej wadą – prostota – jest jednocześnie
jej zaletą, gdyż można szybko ją „opanować” i stosować w
obliczeniach ręcznych…
I
T
P
Tadeusz
W
Łuba
ZCB
Należy jednak pamiętać, że w praktyce
projektowania inżynierskiego metoda tablic K.
jest absolutnie nieprzydatna.
ZPT
2
Tablice Karnaugha
Tablica K. jest prostokątem złożonym z 2n kratek, z których
każda reprezentuje jeden pełny iloczyn (minterm) zmiennych
binarnych.
W kratki wpisuje się wartości funkcji.
x3
x1x2
00
01
11
10
I
T
P
Tadeusz
W
Łuba
ZCB
ZPT
0
1
-
0
1
1
1
0
0
0
W tablicy K. różniącym się tylko o
negację pełnym iloczynom
przyporządkowane są leżące obok siebie
pola tablicy (sąsiednie kratki). Ułatwia to
skorzystanie z faktu, że dla dowolnego A:
x1 x2 x3 + x1 x2 x3 = x1 x2
A x + Ax = A
Dla uzyskania efektu
sąsiedztwa współrzędne
pól opisuje się kodem
Gray’a
3
Kod Gray’a
0
1
I
T
P
Tadeusz
W
Łuba
ZCB
00
01
11
10
000
001
011
010
110
111
101
100
0000
0001
0011
0010
0110
0111
0101
0100
1100
1101
1111
1110
1010
1011
1001
1000
ZPT
4
Przykładzik wprowadzający do metody
I
T
P
Tadeusz
W
Łuba
ZCB
x1 x2 x3
f
0
0
0
0
0
1
0
0
1
1
2
0
1
0
0
3
0
1
1
1
4
1
0
0
0
5
1
0
1
1
1) Wpisanie funkcji do tablicy
2) Zakreślanie pętelek
Z pętelkami kojarzymy iloczyn zmiennych (prostych lub
zanegowanych)
x3
0
1
6
1
1
0
1
x 1x 2
7
1
1
1
1
00
0
1
01
0
1
11
1
0
1
1
10
f = x 1x 2 + x 3
ZPT
5
Wpisywanie funkcji ułatwia…
…opis kratek tablic Karnaugha wg NKB
x3
x1x2
0
1
00
0
1
01
2
3
11
6
7
10
4
5
ZCB
11
0
0
1
3
2
1
4
5
7
6
0
1
00
0
1
x 1x 2
11
10
A D = L(A NKB ) = ∑ a j 2 j
10
j=0
x3
x3x4
00 01
x1x2
I
T
P
Tadeusz
W
Łuba
n−
−1
1
x2x3
00 01
x1
00
0
1
3
2
01
0
1
01
4
5
7
6
11
11
12 13
15
14
10
1
0
1
1
10
8
11
10
9
x1 x2 x3
f
0
0
0
0
0
1
0
0
1
1
2
0
1
0
0
3
0
1
1
1
4
1
0
0
0
5
1
0
1
1
6
1
1
0
1
7
1
1
1
1
ZPT
6
Zakreślanie pętelek i tworzenie iloczynów
x3
x1x2
I
T
P
Tadeusz
W
Łuba
ZCB
ZPT
0
1
00
0
0
01
1
0
11
1
1
10
1
0
x1
x3
x2
0
1
0
0
0
0
0
1
1
0
1
1
1
1
1
0
1
0
x1
x3
x2
0
0
0
0
0
x1
x3
x2
0
0
0
0
0
0
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
x1
x1
f = x 2 x 3 + x 1x 2 + x 1x 3
x1
x3
x2
0
1
0
0
0
0
0
1
1
0
1
1
1
1
1
0
1
0
x3
x3
1
x2
x2
x2
7
Algorytm minimalizacji
1) Zapisujemy funkcję do tablicy K.
2) Zakreślamy pętelki.
a) Pętelki zakreślamy wokół grup sąsiadujących kratek
zawierających 1-ki albo 1-ki i „–” (kreski).
b) Liczba kratek objętych pętelka musi wynosić: 1, 2, 4, …,2k.
c) Staramy się objąć pętelką jak największą liczbę kratek.
3) Pętelki zakreślamy tak długo, aż każda 1-ka będzie objęta co
najmniej jedną pętelką, pamiętając o tym aby pokryć wszystkie
1-ki możliwie minimalną liczbą pętelek.
I
T
P
Tadeusz
W
Łuba
ZCB
ZPT
4) Z każdą pętelką kojarzymy iloczyn zmiennych prostych lub
zanegowanych. Suma tych iloczynów, to minimalne wyrażenie
boolowskie danej funkcji.
8
Przykłady prawidłowych pętelek…
x3
x1x2
0
1
x2x3
00 01
x1
11
10
0
00
1
01
11
x4x5
00 01
x1x2x3
10
11
10
000
x3x4
00 01
x1x2
I
T
P
Tadeusz
W
Łuba
ZCB
ZPT
001
11
10
011
00
010
01
110
11
111
10
101
100
9
Przykładzik dla funkcji zupełnej
I
T
P
Tadeusz
W
Łuba
ZCB
ZPT
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
abcd
f
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
1
0
1
0
0
1
0
0
1
1
1
1
1
1
1
1
cd
ab
00
cd
ab
00
01
11
10
00
0
1
3
2
01
4
5
7
6
11
12
13
15
14
10
8
9
11
10
01
11
10
00
01
11
10
1
0
1
1
0
1
1
1
0
0
1
1
1
0
1
1
f = a + b d + b cd
f = Σ(0, 2, 5, 8, 9, 10, 11, 12, 13, 14, 15)
10
Przykład – funkcja niezupełna
f = Σ[0, 5, 6, 7, 10, (2, 3, 11, 12)]
x3x4
00 01
x1x2
I
T
P
Tadeusz
W
Łuba
ZCB
ZPT
f=
11
10
00
1
0
–
–
01
0
1
1
1
11
–
0
0
0
10
0
0
–
1
x3x4
00 01
x1x2
11
10
00
0
1
3
2
01
4
5
7
6
11
12 13
15
14
10
8
11
10
9
Czy to ma znaczenie?
x1x 3 + x 2 x 3 +x1x 2 x 4 +x1x 2 x 4
f = x x x x +x x x x +x x x x +x x x x +x x x x
1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4
11
Różne wyniki
f = Σ[0, 2, 3, 4, 5, 7)]
c
ab
00
01
11
10
1
1
0
1
1
0
1
1
1
= ab + a c + bc
c
ab
00
01
11
10
0
1
1
0
1
1
0
1
1
1
f
ZCB
f
I
T
P
Tadeusz
W
Łuba
0
= ab + bc + ac
ZPT
12
Implikant funkcji boolowskiej
Celem minimalizacji jest reprezentacja funkcji w postaci sumy
iloczynów
…dlatego taki najkrótszy iloczyn nazywa się implikantem
vivjvk + vpvqvrvs +… (v oznacza afirmację albo negację zmiennej x)
z najmniejszą liczbą składników oraz najmniejszą łączną liczbą
literałów, co zapewnia realizację…
z najmniejszą liczbą bramek AND
f
I
T
P
Tadeusz
W
Łuba
…czyli najmniejszą liczbą połączeń
(ścieżek metalizowanych)
ZCB
ZPT
i najmniejszą liczbą wejść do tych bramek
13
Implikant funkcji boolowskiej
Implikant
Implikant danej funkcji f jest to iloczyn
literałów (zmiennych prostych i zanegowanych)
taki, że odpowiadający mu zbiór wektorów
binarnych nie zawiera wektora „zerowego”
funkcji.
Prosty implikant jest to implikant, który
zmniejszony o dowolny literał przestaje
być implikantem.
I
T
P
Tadeusz
W
Łuba
ZCB
ZPT
14
Przykład z planszy 11
f = Σ[0, 5, 6, 7, 10, (2, 3, 11, 12)]
xx x
1
2
10 1010
jest implikantem,
bo zbiór wektorów: 11 1011
3
x3x4
00 01
x1x2
I
T
P
Tadeusz
W
Łuba
11
10
00
1
0
–
–
01
0
1
1
1
11
–
0
0
0
10
0
0
–
1
x3x4
x1x2
00
01
11
10
00
0
1
3
2
01
4
5
7
6
11
12
13
15
14
10
8
9
11
10
nie zawiera żadnego wektora (mintermu),
dla którego wartość funkcji jest 0
Ale nie jest to implikant prosty, gdyż można
usunąć x1 uzyskując:
x 2x 3
f = x 1x 3 + x 2 x 3 + x 1x 2 x 4 + x 1x 2 x 4
ZCB
ZPT
15
Implikant funkcji boolowskiej - interpretacja
W interpretacji tablic Karnaugha implikant odpowiada
prawidłowo zakreślonej grupie jedynek (i kresek). Natomiast
implikant prosty odpowiada grupie jedynek (i kresek), której
nie można powiększyć.
x3x4
00 01
x1x2
I
T
P
Tadeusz
W
Łuba
Implikant
11
10
00
1
0
–
–
01
0
1
1
1
11
–
0
0
0
10
0
0
–
1
x1x 3 x 4
Prosty
implikant
x1x 3
To nie jest
Implikant!
ZCB
ZPT
16

Podobne dokumenty