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 X G H Y U V 1 01 00 001 000 abc de 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. Tadeusz Łuba ZCB
Relacja zgodności kolumn 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. K1 K2 K3 K4 K5 K6 K7 1 - Tadeusz Łuba ZCB
Relacja zgodności kolumn 1 - Kolumny zgodne można „sklejać” {K1,K4,K7} 1 - 1 - {K5,K6} Tadeusz Łuba ZCB
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. Tadeusz Łuba ZCB
Istnieje dekompozycja ! Przykład cde a b 000 001 010 011 100 101 110 111 00 1 – 01 10 11 K0 K1 K2 K3 K4 K5 K6 K7 c d e a b Istnieje dekompozycja ! f = h(a,b,g1(c,d,e),g2(c,d,e)) Tadeusz Łuba ZCB
Przykład - obliczanie klas zgodności Pary zgodne: 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 cde a b 000 001 010 011 100 101 110 111 00 1 – 01 10 11 K0 K1 K2 K3 K4 K5 K6 K7 K0, K1 sprzeczna K0, K2 sprzeczna Tadeusz Łuba ZCB K0, K3 zgodna K0, K4 zgodna
Klasy zgodności… …policzymy najprostszą metodą bezpośrednią 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 0,3,4 0,3,6 Maksymalne klasy zgodności: 0,4,6 1,3,4 1,3,6 0,3,4,6 1,4,5 1,4,6 2,5,7 3,4,6 1,3,4,6 1,4,5 2,5,7 Tadeusz Łuba ZCB
Przykład c.d. Z rodziny MKZ wybieramy minimalną liczbę klas (lub podklas) pokrywającą zbiór wszystkich kolumn. Wybieramy: 1,5 0,3,4,6 2,7 Ostatecznie: 0,3,4,6 1,3,4,6 0,3,4,6 1,4,5 2,5,7 1,4,5 Kolumny powtarzające się usuwamy Komentarz: formalnie obliczamy pokrycie.. 2,5,7 Tadeusz Łuba ZCB
Sklejanie kolumn – funkcja h cde ab 000 001 010 011 100 101 110 111 00 1 - 01 10 11 K0 K1 K2 K3 K4 K5 K6 K7 {K0,K3,K4,K6} {K1,K5} {K2,K7} g1g2 ab 00 01 11 10 1 - Tablica H Kodowanie? Może być dowolne Tadeusz Łuba ZCB
Kodowanie kolumn – funkcja g cde ab 000 001 010 011 100 101 110 111 00 1 - 01 10 11 K0 K1 K2 K3 K4 K5 K6 K7 c d e g1 g2 1 G H g1g2 ab 00 01 11 10 1 - Tadeusz Łuba ZCB
Co uzyskaliśmy c d e a b c d e g1 g2 1 - 10 1 11 01 00 g1g2 ab Opis funkcji g i h tablicami prawdy wystarczy dla realizacji w strukturach FPGA Tadeusz Łuba ZCB Ale funkcje g i h można obliczyć jawnie… czyli po procesie dekompozycji można je minimalizować
uzyskując w rezultacie … …strukturę na bramkach c d e a b Tadeusz Łuba ZCB
Wracamy do przykładu… c d e a b c d e g1 g2 1 - 10 1 11 01 00 g1g2 ab Opis funkcji g i h tablicami prawdy wystarczy dla realizacji w strukturach FPGA Tadeusz Łuba ZCB Ale funkcje g i h można obliczyć jawnie… czyli po procesie dekompozycji można je minimalizować
Przykład – funkcje g1 i g2 c d e g1 g2 1 e cd 1 00 01 11 10 e cd 1 00 1 e cd 1 00 01 11 10 e cd 1 00 01 11 10 Tadeusz Łuba ZCB 14
Przestawiliśmy wiersze Przykład – funkcja h Uwaga: Przestawiliśmy wiersze g1g2 ab 00 01 11 10 1 - Tadeusz Łuba ZCB 15
Realizacja – struktura wielopoziomowa a b c d e G g1 g2 H Tadeusz Łuba ZCB h = f
Realizacja funkcji f na bramkach Po dekompozycji: Bez dekompozycji: f = ab!c!de + !abc!d + a!b!cd!e + a!bcde + !a!b!c!d!e + !a!bcd!e + !a!b!cde Tadeusz Łuba ZCB
Przykład bardziej skomplikowany - TL27 .type fr .i 10 .o 1 .p 25 0010111010 0 1010010100 0 0100011110 0 1011101011 0 1100010011 0 0100010110 0 1110100110 0 0100110000 0 0101000010 0 0111111011 1 0000010100 1 1101110011 1 0100100000 1 0100011111 1 0010000110 1 1111010001 1 1111101001 1 1111111111 1 0010000000 1 1101100111 1 0010001111 1 1111100010 1 1010111101 1 0110000110 1 0100111000 1 .e x3 x5 x6 x7 x8 x9 x10 f 1 x7 x8 x9 x3 x5 x6 x10 f 1 Tadeusz Łuba ZCB U V
Tablica dekompozycji dla funkcji TL27 U = {x7, x8, x9} V = {x3, x5, x6, x10} X3 x6 x10 1 x7x8x9 000 – – – 1 – – 1 – – 1 – – – – 001 – – – – 1 – – – – 1 – – – 010 – 1 – – – – – – – – – – – – 011 – – – 1 – – 1 – – – – – – 100 – – – – – 1 – – – – – – 1 – – 101 – – – – – – – – – – – – 1 Tadeusz Łuba ZCB 110 – – – – – – – – – – – – – – 1 111 – – 1 – – – – – 1 – – – – – 1 19
Tablica dekompozycji dla funkcji TL27 U = {x7, x8, x9} V = {x3, x5, x6, x10} 1 000 – 001 010 011 100 101 110 111 X3 X5 x6 x10 x7x8x9 Tadeusz Łuba ZCB
Praktyczny wynik dekompozycji funkcji TL27 H G 000 1 001 010 011 100 – 101 110 111 x7x8x9 g c e x6 x10 G 1 Tylko 2 komórki 7 x 4 we komórek 3 x 3 we komórek System QUARTUS realizuje TL27 na: Tadeusz Łuba ZCB Duża skuteczność procedur dekompozycji!!!
Algorytm dekompozycji (TD oznacza Tablicę dekompozycji) 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, 5) Skleić (połączyć) kolumny TD reprezentowane wierzchołkami grafu o tym samym kolorze, Tadeusz Łuba ZCB 5) Uzyskana w procesie „sklejania” tablica jest tablicą funkcji H oraz umożliwia obliczenie funkcji G.
Przykład z planszy 19 Pary zgodne: sprzeczne: cde a b 000 001 010 011 100 101 110 111 00 1 – 01 10 11 K0 K1 K2 K3 K4 K5 K6 K7 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 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, K1 sprzeczna K0, K2 sprzeczna Tadeusz Łuba ZCB K0, K3 zgodna K0, K4 zgodna
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ą 2 1 3 7 6 5 4 0, 3, 4, 6 kolor A 2, 7 kolor B 1, 5 kolor C Tadeusz Łuba ZCB
Jak dekomponować zespoły funkcji Przykład Zapisujemy wektory wyjściowe w postaci liczb dziesiętnych a b c d e y1 y2 y3 1 2 3 4 5 6 7 8 9 10 a b c d e f 1 2 3 4 7 5 6 8 9 10 Przy ustalonych U, V tworzymy tablicę dekompozycji bcd ae 000 001 011 100 110 111 00 2 3 01 4 7 10 11 6 5 Tadeusz Łuba ZCB U = {a, e} V = {b, c, d}
Przykład c.d. {v2,v4,v6} {v3,v4} {v1,v6} {v2,v5} {v1,v3,v5} (v1, v2), Pary sprzeczne: bcd ae 000 v1 001 v2 011 v3 100 v4 110 v5 111 v6 00 2 3 01 4 7 10 11 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 {v2,v4,v6} (v1 + v2)(v1 + v4)(v3 + v2)(v3 + v6)(v5 + v4)(v5 + v6) = {v3,v4} (v1 + v2v4)(v1 + v4)(v3 + v2v6)(v5 + v4v6) = {v1,v6} Tadeusz Łuba ZCB v1v3v5 + v1v2v5v6 + v2v3v4v5 + v2v4v5v6 + {v2,v5} v1v3v4v6 + v1v2v4v6 + v2v3v4v6 + v2v4v6 {v1,v3,v5}
Przykład c.d. G H {v1,v3,v5} {v2,v4,v6} b c d Rozłączne zbiory niezależne reprezentują kolumny, które należy skleić {v2,v4,v6} bcd ae 000 v1 001 v2 011 v3 100 v4 110 v5 111 v6 00 2 3 01 4 7 10 11 6 5 b c d g G H a e f Tablica funkcji G Tablica funkcji H b c d g 1 g ae 1 00 2 3 01 7 4 10 11 6 5 Tadeusz Łuba ZCB
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 a c a d b c f Tadeusz Łuba ZCB b d e
Faktoryzacja a dekompozycja f = ac + ad + bc + bd + e, f = (a + b) (c + d) + e g = a + b h = c + d a c a b g h a d f b c f c d b d e e Struktura dwupoziomowa Struktura wielopoziomowa Tadeusz Łuba ZCB 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} Tadeusz Łuba ZCB
Rj = { ei | i < j oraz ei,ej) E} Przykład Rj = { ei | i < j oraz ei,ej) E} E: 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 Tadeusz Łuba ZCB R6 = 0,1,3,4 R7 = 2,5
Przykład R0 = R1 = R2 = R3 = R4 = R5 = {0,1} {0,1,3} {1,2,4} R6 = {0,1,3,4} R7 = {2,5} {0} {0} {1} {0} {1} {2} {0,3} {1,3} {2} {0,3,4} {1,3,4} {2} {4,5} {1,4,5} {2,5} {0,3,4} {1,3,4} {1,4,6} {2,5} {0,3,4,6} {1,3,4,6} {1,4,5} {1,4,5} {2,5,7} {0,3,4,6} {1,3,4,6} {5,7} Tadeusz Łuba ZCB Rodzina MKZ