PDF - 573 kB - Tadeusz Łuba
Transkrypt
PDF - 573 kB - Tadeusz Łuba
Metoda klasyczna (wg książki Sasao) ... to metoda tablicowa, graficzna, której podstawowe operacje wykonywane są na tzw. tablicy dekompozycji Tablicą dekompozycji funkcji f nazywamy macierz dwuwymiarową o kolumnach etykietowanych wartościami zmiennych funkcji f ze zbioru V oraz o wierszach etykietowanych wartościami zmiennych funkcji f ze zbioru U V abc de I T P Tadeusz Łuba W ZCB ZPT U 000 001 00 0 1 01 1 0 • • • X V ••• G U Elementami macierzy M są wartości, jakie przyjmuje funkcja f na wektorach złożonych z odpowiednich etykiet i-tego wiersza i j-tej kolumny. H Y 1 Jak obliczać dekompozycję? Relacja zgodności kolumn Kolumny {kr, ks} są zgodne, jeśli nie istnieje wiersz i, dla którego elementy Kir, Kis są określone i różne, tzn. odpowiednio: 0, 1 albo 1, 0. I T P Tadeusz Łuba W K1 K2 K3 K4 K5 K6 K7 1 - 0 1 - 0 1 - - - - 1 1 - - 0 1 0 0 - 0 0 1 - - - - 0 ZCB ZPT 2 Relacja zgodności kolumn K1 K2 K3 K4 K5 K6 K7 1 - 0 1 - 0 1 - - - - 1 1 - - 0 1 0 0 - 0 0 1 - - - - 0 Kolumny zgodne można „sklejać” {K1,K4,K7} I T P Tadeusz Łuba W ZCB 1 0 - 1 0 0 0 - {K5,K6} ZPT 3 Obliczanie dekompozycji... Wyznaczyć relację zgodności kolumn, czyli wypisać wszystkie pary zgodne albo sprzeczne). Wyznaczyć rodzinę maksymalnych zbiorów kolumn zgodnych maksymalnych klas zgodnych – MKZ). Z rodziny tej wyselekcjonować minimalną podrodzinę (w sensie liczności) rozłącznych zbiorów zgodnych pokrywającą zbiór K wszystkich kolumn tablicy dekompozycji. I T P Tadeusz Łuba W ZCB ZPT 4 Przykład cde 000 001 010 011 100 101 110 111 1 – 0 1 – 0 1 0 01 – – – – 1 1 – – 10 – 0 1 0 0 – 0 1 11 0 1 – – – – – – K0 K1 K2 K3 K4 K5 K6 K7 ab 00 a b c d e Istnieje dekompozycja ! g I T P Tadeusz Łuba W h f = h(a,b,g1(c,d,e),g2(c,d,e)) ZCB ZPT 5 Przykład - obliczanie klas zgodności Pary zgodne: cde 000 001 010 011 100 101 110 111 1 – 0 1 – 0 1 0 01 – – – – 1 1 – – 10 – 0 1 0 0 – 0 1 11 0 1 – – – – – – K0 K1 K2 K3 K4 K5 K6 K7 ab 00 K0, K1 sprzeczna 0,3 0,4 0,6 1,3 1,4 1,5 1,6 2,5 2,7 3,4 3,6 K0, K2 sprzeczna I T P Tadeusz Łuba W ZCB ZPT K0, K3 zgodna K0, K4 zgodna 4,5 4,6 5,7 6 Klasy zgodności… 0,3 0,4 0,6 1,3 1,4 1,5 1,6 …policzymy najprostszą metodą bezpośrednią 0,3,4 0,3,6 0,4,6 1,3,4 1,3,6 2,5 2,7 3,4 3,6 I T P Tadeusz Łuba W ZCB ZPT 4,5 4,6 Maksymalne klasy zgodności: 0,3,4,6 1,4,5 1,3,4,6 1,4,6 1,4,5 2,5,7 2,5,7 3,4,6 5,7 7 Przykład c.d. Z rodziny MKZ wybieramy minimalną liczbę klas (lub podklas) pokrywającą zbiór wszystkich kolumn. 0,3,4,6 Ostatecznie: Wybieramy: 1,3,4,6 1,4,5 2,5,7 0,3,4,6 0,3,4,6 1,4,5 1,5 2,5,7 2,7 Kolumny powtarzające się usuwamy I T P Tadeusz Łuba W Komentarz: formalnie obliczamy pokrycie.. U KZ = K KZ ∈RKZ S ZCB ZPT 8 Sklejanie kolumn – funkcja h cde 000 001 010 011 100 101 110 111 00 1 - 0 1 - 0 1 0 01 - - - - 1 1 - - 10 - 0 1 0 0 - 0 1 11 0 1 - - - - - - K0 K1 K2 K3 K4 K5 K6 K7 ab {K0,K3,K4,K6} {K1,K5} {K2,K7} g 1g 2 00 01 11 10 00 1 0 0 - I T P Tadeusz Łuba W 01 1 1 - - 10 0 0 1 - ZCB 11 0 1 - - Tablica H ZPT ab Kodowanie? Może być dowolne 9 Kodowanie kolumn – funkcja g cde 000 001 010 011 100 101 110 111 00 1 - 0 1 - 0 1 0 01 - - - - 1 1 - - 10 - 0 1 0 0 - 0 1 11 0 1 - - - - - - K0 K1 K2 K3 K4 K5 K6 K7 ab H I T P Tadeusz Łuba W ZCB ZPT g 1g 2 00 01 11 10 00 1 0 0 - 01 1 1 - - 10 0 0 1 - 11 0 1 - - ab G c 0 0 1 1 0 1 0 1 d 0 1 0 1 0 0 1 1 e 0 1 0 0 1 1 0 1 g1 0 0 0 0 0 0 1 1 g2 0 0 0 0 1 1 1 1 10 Co uzyskaliśmy a b c d g h e c 0 0 1 1 d 0 1 0 1 e 0 1 0 0 g1 0 0 0 0 g2 0 0 0 0 0 1 0 1 0 0 1 1 1 1 0 1 0 0 1 1 1 1 1 1 g1g2 ab 00 01 11 10 00 1 0 0 - 01 1 1 - - 10 0 0 1 - 11 0 1 - - Opis funkcji g i h tablicami prawdy wystarczy dla realizacji w strukturach FPGA I T P Tadeusz Łuba W ZCB ZPT Ale funkcje g i h można obliczyć jawnie… czyli po procesie dekompozycji można je minimalizować 11 uzyskując w rezultacie … a b c d e g h …strukturę na bramkach I T P Tadeusz Łuba W ZCB ZPT 12 Wracamy do przykładu… a b c d g h e c 0 0 1 1 d 0 1 0 1 e 0 1 0 0 g1 0 0 0 0 g2 0 0 0 0 0 1 0 1 0 0 1 1 1 1 0 1 0 0 1 1 1 1 1 1 g1g2 ab 00 01 11 10 00 1 0 0 - 01 1 1 - - 10 0 0 1 - 11 0 1 - - Opis funkcji g i h tablicami prawdy wystarczy dla realizacji w strukturach FPGA I T P Tadeusz Łuba W ZCB ZPT Ale funkcje g i h można obliczyć jawnie… czyli po procesie dekompozycji można je minimalizować 13 Przykład – funkcje g1 i g2 c 0 0 1 1 0 1 0 1 d 0 1 0 1 0 0 1 1 e 0 1 0 0 1 1 0 1 g1 0 0 0 0 0 0 1 1 g2 0 0 0 0 1 1 1 1 e 0 1 00 0 0 01 1 11 10 cd e 0 1 00 0 1 0 01 1 0 0 1 11 0 1 0 0 10 0 1 g = cd e + cde 1 cd g = cd e + ce + d e 2 I T P Tadeusz Łuba W ZCB ZPT 14 Przykład – funkcja h g1g2 00 01 11 10 ab 00 1 0 0 - 01 1 1 - - 11 0 1 - - 10 0 0 1 - Uwaga: Przestawiliśmy wiersze h = a g2 + bg2 + ag1 I T P Tadeusz Łuba W ZCB ZPT 15 Realizacja – struktura wielopoziomowa a b c d e c d e c d e c c d e e d e G g1 a I T P Tadeusz Łuba W ZCB g2 g2 b g2 a g1 H h=f ZPT 16 Realizacja funkcji f na bramkach Po dekompozycji: g = cd e + cde 1 g = cd e + ce + d e 2 f = h = a g2 + bg2 + ag1 Bez dekompozycji: I T P Tadeusz Łuba W f = ab!c!de + !abc!d + a!b!cd!e + a!bcde + !a!b!c!d!e + !a!bcd!e + !a!b!cde ZCB ZPT 17 Przykład bardziej skomplikowany - TL27 I T P Tadeusz Łuba W ZCB ZPT .type fr .i 10 .o 1 .p 25 0010111010 1010010100 0100011110 1011101011 1100010011 0100010110 1110100110 0100110000 0101000010 0111111011 0000010100 1101110011 0100100000 0100011111 0010000110 1111010001 1111101001 1111111111 0010000000 1101100111 0010001111 1111100010 1010111101 0110000110 0100111000 .e 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 x3 x5 x6 x7 x8 x9 x10 f 1 1 0 1 0 0 1 0 0 1 0 0 0 0 1 1 1 1 1 0 1 1 1 0 1 0 0 1 0 0 1 1 0 1 0 1 1 0 0 0 1 1 0 1 0 1 1 1 1 1 1 0 1 1 0 1 0 1 1 1 0 1 0 1 0 1 0 0 0 0 1 1 1 0 1 1 0 0 0 0 0 1 0 0 0 1 0 0 1 1 0 0 1 0 1 1 0 1 1 0 0 1 1 0 0 0 1 0 0 1 1 0 0 1 0 1 1 0 1 0 1 0 1 1 1 1 1 0 1 1 0 1 0 1 1 0 0 1 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 0 0 0 0 1 0 1 0 1 0 1 1 1 0 1 1 0 1 0 x7 1 0 1 1 0 0 0 0 0 1 0 0 0 1 0 0 1 1 0 0 1 0 1 1 x8 0 1 1 0 0 1 1 0 0 0 1 0 0 1 1 0 0 1 0 1 1 0 1 0 U x9 1 0 1 1 1 1 1 0 1 1 0 1 0 1 1 0 0 1 0 1 1 1 0 0 x3 x5 1 1 1 0 0 0 1 1 0 0 0 0 1 1 0 1 0 0 1 1 0 0 0 1 0 1 0 0 1 0 1 0 1 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 x6 1 1 1 0 1 1 0 1 0 1 1 1 0 1 0 1 0 1 0 0 0 0 1 1 x10 0 0 0 1 1 0 0 0 0 1 0 1 0 1 0 1 1 1 0 1 1 0 1 0 f 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 V 18 Tablica dekompozycji dla funkcji TL27 U = {x , x , x } 7 8 9 X3 X3 V = {x , x , x , x } 3 5 6 10 0 0 0 0 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 000 – – – 1 – 0 – 1 – – 1 – – – – 001 0 – 0 – – – 1 – – – – 1 – – – 010 – 1 – – – – – – – 0 – – – – – 011 – 0 – – 1 – – 1 – – – 0 – – – 100 – – – – – 1 – – – – – – 1 – – 101 – – – – – – – – – – – – 0 0 1 110 – – – – – – – – – – – – – – 1 111 – – 1 – – – – – 1 – – – – – 1 x6 x10 x7x8x9 I T P Tadeusz Łuba W ZCB ZPT 19 Tablica dekompozycji dla funkcji TL27 V = {x , x , x , x } 3 5 6 10 U = {x , x , x } 7 8 9 X3 X5 0 0 0 0 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 000 – – – 1 – 0 – 1 – – 1 – – – – 001 0 – 0 – – – 1 – – – – 1 – – – 010 – 1 – – – – – – – 0 – – – – – 011 – 0 – – 1 – – 1 – – – 0 – – – 100 – – – – – 1 – – – – – – 1 – – 101 – – – – – – – – – – – – 0 0 1 110 – – – – – – – – – – – – – – 1 111 – – 1 – – – – – 1 – – – – – 1 x6 x10 x7x8x9 I T P Tadeusz Łuba W ZCB ZPT 20 Praktyczny wynik dekompozycji funkcji TL27 H g x7x8x9 I T P Tadeusz Łuba W ZCB ZPT 0 G 1 000 1 0 001 0 1 010 0 1 011 1 0 100 – 1 101 1 0 110 1 – 111 1 – c e x6 x10 G 0 0 0 0 0 0 0 1 0 1 0 0 1 1 0 0 1 0 0 0 0 1 0 1 0 0 1 1 0 1 0 1 1 1 1 1 0 0 0 0 • • • 1 1 • • • 1 1 x3 x5 x6 x10 G x7 x8 x 9 H f Tylko 2 komórki 0 System QUARTUS realizuje TL27 na: 7 x 4 we komórek 3 x 3 we komórek Duża skuteczność procedur dekompozycji!!! 21 Algorytm dekompozycji (TD oznacza Tablicę dekompozycji) 1) Dla ustalonych zbiorów U, V skonstruować TD, 2) Obliczyć pary sprzeczne kolumn TD, 3) Skonstruować graf, którego wierzchołki reprezentują kolumny TD, a krawędzie reprezentują pary sprzeczne tych kolumn, 4) Obliczyć kolorowanie grafu, I T P Tadeusz Łuba W ZCB ZPT 5) Skleić (połączyć) kolumny TD reprezentowane wierzchołkami grafu o tym samym kolorze, 5) Uzyskana w procesie „sklejania” tablica jest tablicą funkcji H oraz umożliwia obliczenie funkcji G. 22 Przykład z planszy 19 Pary zgodne: cde 000 001 010 011 100 101 110 111 1 – 0 1 – 0 1 0 01 – – – – 1 1 – – 10 – 0 1 0 0 – 0 1 11 0 1 – – – – – – K0 K1 K2 K3 K4 K5 K6 K7 ab 00 K0, K1 sprzeczna K0, K2 sprzeczna I T P Tadeusz Łuba W ZCB K0, K3 zgodna 0,3 0,4 0,6 1,3 1,4 1,5 1,6 2,5 2,7 3,4 3,6 4,5 4,6 5,7 sprzeczne: 0,1 0,2 0,5 0,7 1,2 1,7 2,3 2,4 2,6 3,5 3,7 4,7 5,6 6,7 K0, K4 zgodna ZPT 23 Algorytm dekompozycji… to algorytm kolorowania grafu Pary sprzeczne vi, vj, gdzie i,j: (0,1), (0,2), (0,5), (0,7), (1,2), (1,7), (2,3), (2,4), (2,6), (3,5), (3,7), (4,7), (5,6), (6,7) Graf niezgodności z minimalną liczbą chromatyczną 0 7 0, 3, 4, 6 − kolor A 1 2, 7 − kolor B 6 I T P Tadeusz Łuba W ZCB 2 1, 5− − kolor C 3 5 ZPT 4 24 Jak dekomponować zespoły funkcji Przykład 1 2 3 4 5 6 7 8 9 10 I T P Tadeusz Łuba W ZCB ZPT a 0 0 1 1 0 1 0 0 1 1 b 0 0 0 0 1 0 1 1 1 1 c 0 0 0 1 0 1 0 1 1 1 d 0 1 1 1 0 1 0 0 0 1 e 0 0 0 0 0 1 1 1 1 1 y1 y2 y3 0 1 0 0 1 1 1 0 0 1 1 1 0 1 1 1 1 0 1 0 0 1 1 1 1 1 0 1 0 1 Przy ustalonych U, V tworzymy tablicę dekompozycji U = {a, e} V = {b, c, d} Zapisujemy wektory wyjściowe w postaci liczb dziesiętnych a 0 0 1 1 0 1 0 0 1 1 1 2 3 4 5 6 7 8 9 10 b 0 0 0 0 1 0 1 1 1 1 c 0 0 0 1 0 1 0 1 1 1 bcd ae 000 001 00 2 3 d 0 1 1 1 0 1 0 0 0 1 011 11 f 2 3 4 7 3 6 4 7 6 5 100 110 4 4 111 3 01 10 e 0 0 0 0 0 1 1 1 1 1 7 7 6 6 5 25 Przykład c.d. Pary sprzeczne: bcd ae 000 v1 001 v2 00 2 3 011 v3 11 4 4 110 v5 111 v6 3 01 10 100 v4 7 7 6 6 5 (v1, v2), (v1, v4), (v2, v3), (v3, v6), (v4, v5), (v5, v6) E = {(v1, v2), (v1, v4), (v2, v3), (v3, v6), (v4, v5), (v5, v6)} Metodą transformacji CNF na DNF obliczamy maksymalne zbiory niezależne (v1 + v2)(v1 + v4)(v3 + v2)(v3 + v6)(v5 + v4)(v5 + v6) = (v1 + v2v4)(v1 + v4)(v3 + v2v6)(v5 + v4v6) = I T P Tadeusz Łuba W ZCB ZPT v1v3v5 + v1v2v5v6 + v2v3v4v5 + v2v4v5v6 + {v2,v4,v6} {v3,v4} {v1,v6} {v2,v5} v1v3v4v6 + v1v2v4v6 + v2v3v4v6 + v2v4v6 {v1,v3,v5} 26 Przykład c.d. {v1,v3,v5} Rozłączne zbiory niezależne reprezentują kolumny, które należy skleić {v2,v4,v6} bcd ae 000 v1 001 v2 00 2 3 011 v3 11 4 4 110 v5 111 v6 a e 3 01 10 100 v4 G 7 g 7 6 b c d 6 H 5 f Tablica funkcji H g ae I T P Tadeusz Łuba W ZCB ZPT 0 1 Tablica funkcji G b c d g 0 0 0 0 0 1 1 0 00 2 3 01 7 4 1 1 0 0 10 7 4 0 0 1 1 11 6 5 1 0 0 1 1 1 1 1 27 Mniej ważne metody syntezy… np. faktoryzacja wyrażeń boolowskich – metoda istotna w strukturach bramkowych w technologiach GA lub S.C.) Faktoryzacja przekształca dwupoziomowe wyrażenie boolowskie w wielopoziomowe, przez wprowadzenie podfunkcji węzłów) pośrednich. f = ac + ad + bc + bd + e I T P Tadeusz Łuba W ZCB ZPT a c a d b c b d e f Faktoryzacja a dekompozycja f = ac + ad + bc + bd + e, f = (a + b) (c + d) + e g=a+b h=c+d a c a d b c b d e I T P Tadeusz Łuba W ZCB ZPT a b f g h f c d e Struktura dwupoziomowa Struktura wielopoziomowa Pierwotne 5 bramek, 9 literałów, operacja faktoryzacji redukuje do 4 bramek i 7 literałów. Algorytm MKZ wg par zgodnych E – relacja zgodności (ei,ej) ∈ E Rj = { ei | i < j oraz (ei,ej) ∈ E} RKZk RKZk+1 KZ ∈ RKZk a) Rk+1 = φ, RKZk+1 jest powiększana o klasę KZ = {k+1} b) KZ ∩ Rk+1 = φ, KZ bez zmian c) KZ ∩ Rk+1 ≠ φ, KZ’ = KZ ∩ Rk+1∪ {k+1} I T P Tadeusz Łuba W ZCB ZPT 30 Przykład Rj = { ei | i < j oraz ei,ej) ∈ E} E: I T P Tadeusz Łuba W ZCB 0,3 0,4 0,6 1,3 1,4 1,5 1,6 2,5 2,7 3,4 3,6 4,5 4,6 5,7 R0 = φ R1 = φ R2 = φ R3 = 0,1 R4 = 0,1,3 R5 = 1,2,4 R6 = 0,1,3,4 R7 = 2,5 ZPT 31 Przykład R0 = φ {0} R1 = φ {0} {1} R2 = φ {0} {1} {2} R3 = {0,1} {0,3} {1,3} {2} R4 = {0,1,3} {0,3,4} {1,3,4} {2} R5 = {1,2,4} {4,5} {1,4,5} {2,5} {0,3,4} {1,3,4} R6 = {0,1,3,4} {1,4,6} {2,5} {0,3,4,6} {1,3,4,6} {1,4,5} I T P Tadeusz Łuba W ZCB ZPT R7 = {2,5} {2,5,7} {0,3,4,6} {1,3,4,6} {5,7} {1,4,5} Rodzina MKZ 32