Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
OpublikowałKlaudia Zalewska Został zmieniony 9 lat temu
1
ZPT f Gate ArrayStandard Cell Programmable Logic Devices PAL, PLA 1 Omówione do tej pory metody syntezy dotyczą struktur bramkowych… Dekompozycja funkcji boolowskich
2
ZPT Struktura PLA 2
3
ZPT Struktura PAL 3
4
ZPT Realizacja PLA y1y1 y2y2 a b c d c a b d y1y1 y2y2 4
5
ZPT Realizacja PAL y1y1 y2y2 a b c d 5
6
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 )
7
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
8
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
9
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.
10
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
11
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
12
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ć!!!
13
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 1000000 2010110 3001010 4011110 5001100 6010011 7001001 8011101 9101011 10110011 11100011
14
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 1000000 2010110 3001010 4011110 5001100 6010011 7001001 8011101 9101011 10110011 11100011 P U = V = {x 3,x 4, x 5 }
15
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
16
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…
17
ZPT 17 Przykład…tworzenie tablicy funkcji g x1x1 x2x2 x3x3 x4x4 x5x5 f 1000000 2010110 3001010 4011110 5001100 6010011 7001001 8011101 9101011 10110011 11100011 x3x3 x4x4 x5x5 g 10000 20111 31010 41111 51100 60010 71001 81100 91010 100010 110010 x3x3 x4x4 x5x5 g 0000 0111 1010 1111 1100 0010 1001 П G = g 0 1 0 1 0 0 1 0 0 0 0 f G H x 1 x 2 x3x3 x 5 x4x4
18
ZPT 18 x1x1 x2x2 x3x3 x4x4 x5x5 f 1000000 2010110 3001010 4011110 5001100 6010011 7001001 8011101 9101011 10110011 11100011 x1x1 x2x2 gh 10000 20110 30000 40110 50000 60101 70011 80101 91001 101101 111001 x1x1 x2x2 gh 0000 0011 0101 0110 1001 1101 П G = g 0 1 0 1 0 0 1 0 0 0 0 Przykład…tworzenie tablicy funkcji h h=f G H x 1 x 2 x3x3 x 5 x4x4 g
19
ZPT 19 Przykład (TL27) ilustrujący skuteczność dekompozycji.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 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
20
ZPT 20 Specyfikacja funkcji – podziałami P 3 = P 5 = P 6 = P f = P 7 = P 8 = P 9 = P 10 =
21
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
22
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 }
23
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.
24
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,2420 1316 21 G:G:
25
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
26
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
27
ZPT 27 Funkcja G x 3 x 5 x 6 x 10 g PV=PV= 1 1 1 0 0 1 0 1 0 0 1 0 0 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
28
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 1 0 0 1 0 1 11 0 1 0 … 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
29
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.
30
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
31
ZPT 31 x 1 x 2 x 3 x 4 x 5 y 1 y 2 y 3 1 0 0 0 0 0 0 0 0 2 0 0 0 1 1 0 1 0 3 0 0 0 1 0 1 0 0 4 0 1 1 0 0 0 1 1 5 0 1 1 0 1 0 0 1 6 0 1 1 1 0 0 1 0 7 0 1 0 0 0 0 0 1 8 1 1 0 0 0 0 0 1 9 1 1 0 1 0 0 0 0 10 1 1 1 0 0 1 0 0 11 1 1 1 1 1 0 1 1 12 1 1 1 1 0 0 1 0 13 1 0 0 0 1 0 0 1 14 1 0 0 1 1 0 0 0 15 1 0 0 1 0 1 0 0 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)
32
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
33
ZPT 33 Przykład…obliczanie G (2)(9,14)(3,15) Jak wyznaczyć G ??? Trochę inny zapis
34
ZPT 34 Przykład…kodowanie Π G Należy zakodować bloki Π G 01 1000 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!
35
ZPT 35 Tablica prawdy G x 1 x 2 x 5 g 1 g 2... 011000 0 0 0 0 0 1 0 1 0 0 0 1 0 1 1 0
36
ZPT 36 Tablica prawdy H x 3 x 4 g 1 g 2 y 1 y 2 y 3... P U G = 0110 00 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 1 … ( P U G < P F
37
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!!!
38
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.
39
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 )
40
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.
41
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
42
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
43
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
44
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 }
45
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 }
46
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) 1 2 3 4 5 8 7 6 Graf niezgodności z minimalną liczbą chromatyczną 1, 4, 6, 8 kolor A 2, 3 kolor B 5, 7 kolor C
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.