1 / 43

Struktury układów logicznych

Struktury układów logicznych. f. Omówione do tej pory metody syntezy dotyczą struktur bramkowych…. Gate Array. Standard Cell. Programmable Logic Devices. 1. Struktury układów logicznych. FPGA. Ale w dzisiejszych technologiach układy logiczne to nie tylko bramki!.

kevina
Download Presentation

Struktury układów logicznych

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Struktury układów logicznych f Omówione do tej pory metody syntezy dotyczą struktur bramkowych… Gate Array Standard Cell Programmable Logic Devices 1

  2. Struktury układów logicznych FPGA 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) Logic Cell … a dla tych struktur omówione do tej pory metody syntezy - w szczególności minimalizacja - są nieskuteczne Field Programmable Gate Array Jedyną skuteczną metodą jest… 2

  3. Dekompozycja funkcji boolowskich 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. 3

  4. Dekompozycja… …to rozbicie dużego problemu … na mniejsze komponenty 4

  5. X X U G F P G H Y = F(X) Dekompozycja … W przypadku układów logicznych to „rozbicie” dużego układu na mniejsze bloki, …przy czym nazywamy ten proces dekompozycją funkcjonalną, gdyż realizujemy go na poziomie abstrakcyjnych funkcji boolowskich

  6. 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. 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… 6

  7. Dekompozycja metodą rachunku podziałów X U, V są rozłącznymi podzbiorami X, U W V ale U V niekoniecznie = X G czyli U  V  X H W jest podzbiorem właściwym U WU Y = F(X) Ponadtodopuszczamypowiększenie zbioru argumentów bloku G

  8. U G P G H P F Twierdzenie o dekompozycji … w ujęciu rachunku podziałów Funkcję F: Bn  {0,1}m można zrealizować w strukturze: F = H(U,G(V,W)) wtedy i tylko wtedy, gdy istnieje podział G³PVW taki, że: PU · G£PF

  9. X X U G F P G H Y = H(U,G(V,W)) Y = F(X) PU PVW (PV) Twierdzenie o dekompozycji - interpretacja G³PVW taki, że: PU · G£PF to podziały indukowane przez argumenty zbiorów U, V  W, (V) PF Podział wyjściowy funkcji F G Trzeba obliczyć!!!

  10. Pf = Nie wiemy ile jest wyjść z bloku G x1 x2 x3 x4 x5 G H f Przykład ilustrujący metodę dekompozycji Zgodnie z Tw. dekompozycję liczymy przy zadanych (niestety!) zbiorach U, V: przyjmujemy U = {x1,x2}, V = {x3,x4,x5} Funkcjaf:

  11. Przykład…obliczanie podziałów PU, PV Pf = Pf = PU = U = {x1,x2} V = {x3,x4, x5} PU = PV = Bardzo ważny w dalszych obliczeniach jest… PU |PU·Pf = 11

  12. PU |PU·Pf = PV= 3,9 Przykład…obliczanie ПG Podział G składamy z bloków podziału PV, ale tak aby zapewnić warunki „rozdziału” zapisane w podziale PU |PU·Pf G³PV PU · G£PF G: Sklejanie, małe bloki podziału PV sklejamy w większe bloki G ПG =

  13. Komentarz ПG = Obliczony ΠG jest dwublokowy… x1 x2 x3 x4 x5 Zatem dopiero teraz wiemy ile jest wyjść z bloku G. Tylko jedno wyjście! G H f 13

  14. ПG = Przykład…tworzenie tablicy funkcji g x3 x4 x5 x1 x2 G H f

  15. ПG = Przykład…tworzenie tablicy funkcji h x3 x4 x5 x1 x2 G g H h=f

  16. Przykład (TL27) ilustrujący skuteczność dekompozycji Układy logiczne w zadaniach: Przykład 7.1 .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 od7 argumentów X = {x3, x5, x6, x7, x8, x9, x10} Celem przykładu jest pokazanie, że cały proces dekompozycji (łącznie z obliczeniem tablic prawdy) można wykonać wyłącznie na podziałach Dalej wszystkie obliczenia będą wykonywane na podziałach P3, P5, P6, P7, P8, P9, P10 Są to podziały na zbiorze ponumerowanych wektorów 1,…,25

  17. P3 = P5 = P6 = P7 = P8 = P9 = Specyfikacja funkcji – podziałami P10 = Pf =

  18. V = {x3, x5, x6,x10} U = {x7, x8, x9} x x x x 3 5 6 10 G x x x 7 8 9 H f Ustalenie zbiorów U i V X = {x3, x5, x6, x7, x8, x9, x10} Przyjmujemy arbitralnie… Nie wiemy ile jest wyjść z bloku G

  19. Obliczenie podziałów PU, PV Można je wyznaczyć bezpośrednio z tablicy funkcji, ale tym razem przy zastosowaniu rachunku podziałów: V = {x3, x5, x6,x10} U = {x7, x8, x9} PU=P7•P8•P9 …obliczenia są żmudne, ale proste PV=P3•P5•P6•P10 PU = PV=

  20. Podział ilorazowyPu|Pu•PF PU = Pf = Przy liczeniu podziału ilorazowego po prostu rozdzielamy elementy bloków PU między różne bloki podziału Pf ; (5,9)(12,22) ; (3)(14,18,21) ((1,4)(10) ; (2)(11) Pu|Pu•Pf = (6,7)(15,20,24) ; (8)(13,16,19) ; (17,25) ; (23)) W każdym bloku Pu|Pu• Pf są co najwyżej dwa elementy (nawiasy), zatem liczba bloków podziału ΠG musi być co najmniej dwa.

  21. Pu|Pu · Pf = ((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= Obliczenie ΠG

  22. x x x x 3 5 6 10 G x x x 7 8 9 H f Liczba wyjść bloku G Skoro ΠG jestdwublokowy Liczba wyjść z bloku G = 1 W tym momencie już wiemy na pewno, że założona dekompozycja istnieje

  23. x x x x 3 5 6 10 G x x x 7 8 9 H f Co dalej … Inżynier musi tę funkcję zrealizować: • albo na bramkach • albo na komórkach W obu przypadkach najwygodniejsze do procesu syntezy są tablice prawdy funkcji G i H

  24. PV= x3 x5 x6 x10 g P3 = P5 = P6 = P10 = Funkcja G Wektory (wiersze) tablicy funkcji g są wyznaczane przez bloki PV, a wartości tej funkcji przez bloki ΠG 1 1 1 0 0 1 1 0 1 0 0 0 1 0 0

  25. PUG <PF ( 1,4 ; 10 ; 2 ; 11 ; 3 ; 14,18,21 ...) = x7 x8 x9 g h P7 = P8 = P9 = Funkcja H Wektory (wiersze) tablicy funkcji h są wyznaczane przez bloki PUG, a wartości tej funkcji przez bloki PF 1 0 1 0 0 1 0 1 1 1 0 1 0 1 0 …

  26. Co uzyskaliśmy… Tylko 2 komórki typowej struktury FPGA QUARTUS 23 kom. Uzyskaliśmy wynik dziesięciokrotnie razy lepszy od wyniku systemu Quartus amerykańskiej firmy Altera 26

  27. X V G U Dekompozycja H Y Dekompozycja zespołu funkcji Twierdzenie w ujęciu rachunku podziałów jest ogólne, obliczenia są niezależne od liczby wyjść funkcji F. X F Y = y1, y2,…, ym

  28. Niezależnie od liczby funkcji wszystkie wyjścia opisujemy jednym! podziałem Przykład dekompozycji zespołu funkcji (SUL Przykład 8.4) v v v v v v

  29. x3 x4 x1 x2 x5 g ••• h Przykład…wyznaczanie podziałów PU, PV Szukamy dekompozycji U = {x3,x4} V = {x1,x2,x5} PU  = P3•P4 PV=P1•P2•P5

  30. Przykład…obliczanie G Jak wyznaczyć G ??? Trochę inny zapis

  31. Przykład…kodowanie ΠG W przypadku zespołu funkcji liczba bloków podziału ΠG jest większa. Należy zakodować bloki ΠG Kodowanie jest dowolne 01 10 00 Aktualna teoria nie podaje rozwiązania problemu kodowania Kodowanie jest potrzebne do wyznaczenia tablic prawdy funkcji G i H Blok G ma dwa wyjścia!

  32. 01 10 00 Tablica prawdy G 0 0 0 0 0 0 1 0 0 1 0 1 0 0 1 0 1 1 0 0

  33. 00 01 10 … ( Tablica prawdy H 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 1 0 0 1 0 0 PUG<PF PUG=

  34. x3 x4 x1 x2 x5 g h Co uzyskaliśmy… Funkcje g i h można obliczyć jawnie…z tablic prawdy można uzyskać realizacje na bramkach. Ale dla struktur FPGA wystarczy schemat dekompozycji i tablice prawdy. Proces minimalizacji jest niepotrzebny!!!

  35. Komputerowy algorytm dekompozycji Obliczanie podziału ΠG metodą przenoszenia bloków PV na podstawie podziału ilorazowego PU│PU•ΠG jest trudne do zalgorytmizowania. Algorytm komputerowy musi być zrealizowany wg całkowicie innych zasad.

  36. Komputerowy algorytm dekompozycji W obliczeniach komputerowych korzysta się z pojęcia zgodnych (albo niezgodnych) par bloków podziału PV =( B1,…,Bi,…,Bj,…,BN) Wtedy algorytm obliczania ΠG można sprowadzić do algorytmu obliczania MKZ.

  37. Komputerowy algorytm dekompozycji PV =( B1,…,Bi,…,Bj,…,BN) ij=( B1,…,BiBj,…,BN) Dwa bloki Bi i Bj podziału PV są zgodne, jeśli podział ij uzyskany z PV przez sklejenie Bi oraz Bj w jeden blok i pozostawienie pozostałych bloków bez zmiany spełnia warunek Twierdzenia o dekompozycji: PUij PF. W przeciwnym przypadku Bi oraz Bj są niezgodne.

  38. Przykład (ten sam co poprzednio) B1 B2 B3 B4 B5 B6 B7 B8 U = {x3,x4} oraz V = {x1,x2,x5} Numerujemy bloki PV 12 = 57 = 38

  39. Przykład … Można sprawdzić, że PU12 PF, (B1, B2) jest sprzeczna (B5, B7) jest zgodna PU57 PF Ale do wyznaczenia zgodnych (lub sprzecznych) par (Bi, Bj) niekoniecznie musimy się posługiwać skomplikowaną nierównością PU  ij  PF Wystarczy w tym celu obliczyć iloczyn zbioru Bi Bj z blokami podziałuPU i sprawdzić, czy każdy „niepusty iloczyn” jest zawarty w jakimś bloku PF

  40. Przykład … B1B2 =  PU PF B5B7 = B1 B2 B3 B4 B5 B6 B7 B8  PU (B1,B2) jest sprzeczna (B5, B7) jest zgodna  PF 40

  41. B1 B2 B3 B4 B5 B6 B7 B8 P = ; ; {B2, B3} {B5, B7} {B1,B4, B6, B8} G Przykład c.d. Pary zgodne: (B1,B4), (B1,B6), (B1,B8), (B2,B3), (B2,B4), (B2,B6), (B3,B7), (B3,B8), (B4,B6), (B4,B7), (B4,B8), (B5,B7), (B6,B7), (B6,B8). Doskonale wiemy jak obliczać Maksymalne Klasy Zgodne MKZ Klasy maksymalne: {B1,B4, B6, B8} {B4, B6, B7} {B2, B4, B6} {B3, B8} {B3, B7} {B2, B3} {B5, B7}

  42. Przykład c.d. B1 B2 B3 B4 B5 B6 B7 B8 P = ; ; {B2, B3} {B5, B7} {B1,B4, B6, B8} G Ten sam rezultat co poprzednio 42

  43. Interpretacja na grafie niezgodności Pary sprzeczne Bi, Bj, 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 1, 4, 6, 8  kolor A 8 2 2, 3  kolor B 5, 7 kolor C 7 3 4 6 5 43

More Related