Professional Documents
Culture Documents
Wykład 3
Układy kombinacyjne
Minimalizacja funkcji boolowskich
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
minimalizacja
• Co chcemy minimalizować?
koszt realizacji układu kombinacyjnego
pobór mocy
szybkość działania
• Kryteria minimalizacji i funkcja celu
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
x 2x 3
x1 00 01 11 10
0 0 1 1 0
1 0 0 1 1
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
x 4 x 5x 6
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
x 4 x 5x 6
x 4 x 5x 6
111
101
100
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
x 2x 3
x1 00 01 11 10
0 0 1 1 0
1 0 0 1 1
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
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
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
x 2x 3
x1 00 01 11 10
0 0 1 1 0
1 0 0 1 1
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
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
• Minimalizacja dokładna
znajduje wszystkie możliwe minimalne pokrycia funkcji
• 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
• Pojęcie kostki
• Ekspansja (powiększanie) kostek
{ }
10 001
10 011
k=(1∗0∗1)=
11 001
11 011
k=(1∗0∗1)=x 1 x¯3 x 5
Podstawy techniki cyfrowej Andrzej Wielgus IMiO
Reprezentacja funkcji
[ ]
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
[ ]
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
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
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
[ ]
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
[ ] [ ]
0011 0011
B1 = 0 1 0 0 B1 = 0 1 0 0
1001 1001
I =x2 x 4
[ ]
0 0 1 1 {L3 , L4 }
k 1=(0 0 0 1) B1 = 0 1 0 0 {L2 }
1 0 0 1 {L1 , L4 }
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
[ ] [ ]
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
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
[ ] [ ]
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
[ ] [ ]
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
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
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=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