ZPT f Gate ArrayStandard Cell Programmable Logic Devices PAL, PLA 1 Omówione do tej pory metody syntezy dotyczą struktur bramkowych… Dekompozycja funkcji boolowskich
ZPT Struktura PLA 2
ZPT Struktura PAL 3
ZPT Realizacja PLA y1y1 y2y2 a b c d c a b d y1y1 y2y2 4
ZPT Realizacja PAL y1y1 y2y2 a b c d 5
ZPT Struktury FPGA Field Programmable Gate Array Ale w dzisiejszych technologiach układy logiczne to nie tylko bramki! Coraz większego znaczenia nabierają technologie, w których podstawowym elementem konstrukcyjnym są komórki logiczne Logic Cell 6 Komórka logiczna realizuje każdą funkcję boolowską zmiennych doprowadzonych do jej wejść x1x2x3x4x1x2x3x4 CLBLC f(x 1, x 2, x 3, x 4 )
ZPT Dekompozycja jest metodą znan ą od dawna, ale jej intensywny rozwój dokonuje się od niedawna. Sytuacja jest podobna do rozwoju nowoczesnych metod minimalizacji, który to rozwój zapoczątkowany został pojawieniem się układów scalonych z milionami bramek logicznych. Jedyną różnicą jest fakt, że technologie struktur komórkowych pojawiły się znacznie później i metody ich syntezy nie są jeszcze wbudowane do systemów komercyjnych. 7 Dekompozycja funkcji boolowskich A dla takich struktur omówione do tej pory metody syntezy – w szczególności minimalizacja – są nieskuteczne
ZPT 8 F Y = F(X) X U G H G X W przypadku układów logicznych to „rozbicie” dużego układu na mniejsze bloki, Dekompozycja … …przy czym nazywamy ten proces dekompozycją funkcjonalną, gdyż realizujemy go na poziomie abstrakcyjnych funkcji boolowskich
ZPT Dekompozycję funkcjonalną od razu omówimy w ujęciu nowoczesnym - dostosowanym do złożoności dzisiejszych technologii. Metodę klasyczną omówimy szkicowo, koncentrując się na jej mankamentach… 9 Dekompozycja funkcjonalna Skuteczność dekompozycji funkcjonalnej jest tak ogromna, że mimo jej braku w narzędziach komercyjnych należy się z tymi metodami zapoznać i stosować w praktyce projektowania układów cyfrowych za pośrednictwem narzędzi uniwersyteckich.
ZPT 10 V U G H Y = F(X) W czyli U V X Dekompozycja metodą rachunku podziałów X Ponadto dopuszczamy powiększenie zbioru argumentów bloku G U, V są rozłącznymi podzbiorami X, ale U V niekoniecznie = X W jest podzbiorem właściwym U W U
ZPT 11 … w ujęciu rachunku podziałów Funkcję F: B n {0,1} m można zrealizować w strukturze: F = H(U,G(V,W)) Twierdzenie o dekompozycji U G H G P F wtedy i tylko wtedy, gdy istnieje podział G PVW G PVW taki, że: P U · G P F
ZPT 12 Twierdzenie o dekompozycji - interpretacja G P V W taki, że: P U · G P F F Y = F(X) X Y = H(U,G(V,W)) U G H G X G G PUPU PVWPVW (PV)(PV) PFPF to podziały indukowane przez argumenty zbiorów U, V W, (V) Podział wyjściowy funkcji F Trzeba obliczyć!!!
ZPT 13 Przykład ilustrujący metodę dekompozycji Zgodnie z Tw. dekompozycję liczymy przy zadanych (niestety!) zbiorach U, V: przyjmujemy U = {x 1,x 2 }, V = {x 3,x 4,x 5 } P f = Funkcja f: G H x 1 x 2 x3x3 f x 5 x4x4 Nie wiemy ile jest wyjść z bloku G x1x1 x2x2 x3x3 x4x4 x5x5 f
ZPT 14 Przykład…obliczanie podziałów P U, P V P f = P U |P U · P f = P U = P V = U = {x 1,x 2 } Bardzo ważny w dalszych obliczeniach jest… P f = x1x1 x2x2 x3x3 x4x4 x5x5 f P U = V = {x 3,x 4, x 5 }
ZPT 15 Przykład…obliczanie П G 3,9 П G = PV =PV = P U |P U ·P f = G P V P U · G P F Podział G składamy z bloków podziału P V, ale tak aby zapewnić warunki „rozdziału” zapisane w podziale P U |P U ·P f G:G: Sklejanie, małe bloki podziału P V sklejamy w większe bloki G
ZPT 16 Komentarz H x 1 x 2 x3x3 f x 5 x4x4 П G = G Zatem dopiero teraz wiemy ile jest wyjść z bloku G. Tylko jedno wyjście! Obliczony Π G jest dwublokowy…
ZPT 17 Przykład…tworzenie tablicy funkcji g x1x1 x2x2 x3x3 x4x4 x5x5 f x3x3 x4x4 x5x5 g x3x3 x4x4 x5x5 g П G = g f G H x 1 x 2 x3x3 x 5 x4x4
ZPT 18 x1x1 x2x2 x3x3 x4x4 x5x5 f x1x1 x2x2 gh x1x1 x2x2 gh П G = g Przykład…tworzenie tablicy funkcji h h=f G H x 1 x 2 x3x3 x 5 x4x4 g
ZPT 19 Przykład (TL27) ilustrujący skuteczność dekompozycji.type fr.i 10.o 1.p e Można wykazać, że funkcja ta jest zależna od 7 argumentów X = {x 3, x 5, x 6, x 7, x 8, x 9, x 10 } Przykład 6.2, str. 137 Synteza logiczna Dalej wszystkie obliczenia będą wykonywane na podziałach P 3, P 5, P 6, P 7, P 8, P 9, P 10 Celem przykładu jest pokazanie, że cały proces dekompozycji (łącznie z obliczeniem tablic prawdy) można wykonać wyłącznie na podziałach Są to podziały na zbiorze ponumerowanych wektorów 1,…,25
ZPT 20 Specyfikacja funkcji – podziałami P 3 = P 5 = P 6 = P f = P 7 = P 8 = P 9 = P 10 =
ZPT 21 Ustalenie zbiorów U i V X = {x 3, x 5, x 6, x 7, x 8, x 9, x 10 } U = {x 7, x 8, x 9 } V = {x 3, x 5, x 6, x 10 } f G H x 7 x 8 x 9 x 3 x 5 x 6 x 10 Przyjmujemy arbitralnie… Nie wiemy ile jest wyjść z bloku G
ZPT 22 Obliczenie podziałów P U, P V PV=PV= P U = P U =P 7P 8P 9 P V =P 3P 5P 6P 10 Można je wyznaczyć bezpośrednio z tablicy funkcji, ale tym razem przy zastosowaniu rachunku podziałów: …obliczenia są żmudne, ale proste U = {x 7, x 8, x 9 } V = {x 3, x 5, x 6, x 10 }
ZPT 23 ((1,4)(10) P U = P f = Podział ilorazowy P u |P u P F ; (2)(11) (6,7)(15,20,24) ; (8)(13,16,19) ; (17,25) ; (23)) ; (3)(14,18,21) ; (5,9)(12,22) P u |P u P f = Przy liczeniu podziału ilorazowego po prostu rozdzielamy elementy bloków P U między różne bloki podziału P f W każdym bloku P u |P u P f są co najwyżej dwa elementy (nawiasy), zatem liczba bloków podziału Π G musi być co najmniej dwa.
ZPT 24 Obliczenie Π G P u |P u · P f = ((1,4)(10) ; (2)(11) ; (3)(14,18,21) ; (5,9)(12,22) ; (6,7)(15,20,24) ; (8)(13,16,19) ; (17,25) ; (23)) PV=PV= 4,17110,18,23 3,6,1125,14 127,22 8,25 915,19, G:G:
ZPT 25 Liczba wyjść bloku G Liczba wyjść z bloku G = 1 Skoro Π G jest dwublokowy f G H x 7 x 8 x 9 x 3 x 5 x 6 x 10 W tym momencie już wiemy na pewno, że założona dekompozycja istnieje
ZPT 26 Co dalej … W obu przypadkach najwygodniejsze do procesu syntezy są tablice prawdy funkcji G i H f G H x 7 x 8 x 9 x 3 x 5 x 6 x 10 Inżynier musi tę funkcję zrealizować: albo na bramkach albo na komórkach
ZPT 27 Funkcja G x 3 x 5 x 6 x 10 g PV=PV= P 3 = P 5 = P 6 = P 10 = Wektory (wiersze) tablicy funkcji g są wyznaczane przez bloki P V, a wartości tej funkcji przez bloki Π G
ZPT 28 Funkcja H x 7 x 8 x 9 g h...) 14,18,21; 3 ; 11; 2 ; 10 ; 1,4( PU GPU G < P F … P 7 = P 8 = P 9 = Wektory (wiersze) tablicy funkcji h są wyznaczane przez bloki P U G, a wartości tej funkcji przez bloki P F
ZPT 29 Co uzyskaliśmy… Tylko 2 komórki typowej struktury FPGA QUARTUS Uzyskaliśmy wynik dziesięciokrotnie razy lepszy od wyniku systemu Quartus amerykańskiej firmy Altera 23 kom.
ZPT 30 Dekompozycja zespołu funkcji X F X G H Y U V Y = y 1, y 2,…, y m Twierdzenie w ujęciu rachunku podziałów jest ogólne, obliczenia są niezależne od liczby wyjść funkcji F. Dekompozycja
ZPT 31 x 1 x 2 x 3 x 4 x 5 y 1 y 2 y Przykład dekompozycji zespołu funkcji Niezależnie od liczby funkcji wszystkie wyjścia opisujemy jednym! podziałem v v v v v v (Przykład 6.11, str. 140: Synteza logiczna)
ZPT 32 Przykład…wyznaczanie podziałów P U, P V U = {x 3,x 4 } V = {x 1,x 2,x 5 } P U = P 3 P 4 P V =P 1 P 2 P 5 x 3 x 4 x 1 x 2 x 5 g h Szukamy dekompozycji
ZPT 33 Przykład…obliczanie G (2)(9,14)(3,15) Jak wyznaczyć G ??? Trochę inny zapis
ZPT 34 Przykład…kodowanie Π G Należy zakodować bloki Π G Kodowanie jest dowolne Aktualna teoria nie podaje rozwiązania problemu kodowania W przypadku zespołu funkcji liczba bloków podziału Π G jest większa. Kodowanie jest potrzebne do wyznaczenia tablic prawdy funkcji G i H Blok G ma dwa wyjścia!
ZPT 35 Tablica prawdy G x 1 x 2 x 5 g 1 g
ZPT 36 Tablica prawdy H x 3 x 4 g 1 g 2 y 1 y 2 y 3... P U G = … ( P U G < P F
ZPT 37 Co uzyskaliśmy… Ale dla struktur FPGA wystarczy schemat dekompozycji i tablice prawdy. Funkcje g i h można obliczyć jawnie…z tablic prawdy można uzyskać realizacje na bramkach. x 3 x 4 x 1 x 2 x 5 g h Proces minimalizacji jest niepotrzebny!!!
ZPT 38 Obliczanie podziału Π G metodą przenoszenia bloków P V na podstawie podziału ilorazowego P U │P U Π G jest trudne do zalgorytmizowania. Komputerowy algorytm dekompozycji Algorytm komputerowy musi być zrealizowany wg całkowicie innych zasad.
ZPT 39 W obliczeniach komputerowych korzysta się z pojęcia zgodnych (albo niezgodnych) par bloków podziału Wtedy algorytm obliczania Π G można sprowadzić do algorytmu obliczania MKZ lub do algorytmu kolorowania grafu. Komputerowy algorytm dekompozycji P V =( B 1,…,B i,…,B j,…,B N )
ZPT 40 Komputerowy algorytm dekompozycji Dwa bloki B i i B j podziału P V są zgodne, jeśli podział ij uzyskany z P V przez sklejenie B i oraz B j w jeden blok i pozostawienie pozostałych bloków bez zmiany W przeciwnym przypadku B i oraz B j są niezgodne. P V =( B 1,…,B i,…,B j,…,B N ) ij =( B 1,…,B i B j,…,B N ) spełnia warunek Twierdzenia o dekompozycji: P U ij P F.
ZPT 41 Przykład (ten sam co poprzednio) B 1 B 2 B 3 B 4 B5B5 B6B6 B7B7 B8B8 57 = 12 = U = {x 3,x 4 } oraz V = {x 1,x 2,x 5 } Numerujemy bloki P V
ZPT 42 Przykład … Ale do wyznaczenia zgodnych (lub sprzecznych) par (B i, B j ) niekoniecznie musimy się posługiwać skomplikowaną nierównością P U ij P F Można sprawdzić, że P U 12 P F, P U 57 P F (B 1, B 2 ) jest sprzeczna (B 5, B 7 ) jest zgodna Wystarczy w tym celu obliczyć iloczyn zbioru B i B j z blokami podziału P U i sprawdzić, czy każdy „niepusty iloczyn” jest zawarty w jakimś bloku P F
ZPT 43 Przykład … B 1 B 2 B 3 B 4 B5B5 B6B6 B7B7 B8B8 (B 1,B 2 ) jest sprzeczna B 1 B 2 = PU PU PFPF B 5 B 7 = PU PU P F (B 5, B 7 ) jest zgodna
ZPT 44 Przykład c.d. Pary zgodne: (B 1,B 4 ), (B 1,B 6 ), (B 1,B 8 ), (B 2,B 3 ), (B 2,B 4 ), (B 2,B 6 ), (B 3,B 7 ), (B 3, B 8 ), (B 4,B 6 ), (B 4,B 7 ), (B 4,B 8 ), (B 5,B 7 ), (B 6,B 7 ), (B 6,B 8 ). Doskonale wiemy jak obliczać Maksymalne Klasy Zgodne MKZ B 1 B 2 B 3 B 4 B5B5 B6B6 B7B7 B8B8 G ; {B 1,B 4, B 6, B 8 } ; {B 2, B 3 } {B 5, B 7 } Klasy maksymalne: {B 1,B 4, B 6, B 8 } {B 4, B 6, B 7 } {B 2, B 4, B 6 } {B 3, B 7 } {B 3, B 8 } {B 2, B 3 } {B 5, B 7 }
ZPT 45 Przykład c.d. B 1 B 2 B 3 B 4 B5B5 B6B6 B7B7 B8B8 Ten sam rezultat co poprzednio G ; {B 1,B 4, B 6, B 8 } ; {B 2, B 3 } {B 5, B 7 }
ZPT 46 Interpretacja na grafie niezgodności Pary sprzeczne B i, B j, gdzie i,j: (1,2), (1,3), (1,5), (1,7), (2,5), (2,7), (2,8), (3,4), (3,5), (3,6), (4,5), (5,6), (5,8), (7,8) Graf niezgodności z minimalną liczbą chromatyczną 1, 4, 6, 8 kolor A 2, 3 kolor B 5, 7 kolor C