1 / 38

Struktury układów logicznych

Gate Array. Standard Cell. f. Programmable Logic Devices. Struktury układów logicznych. FPGA. Struktury układów logicznych. Ale w dzisiejszych technologiach układy logiczne to nie tylko bramki!. Coraz większego znaczenia nabierają technologie, w których podstawowym elementem

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. Gate Array Standard Cell f Programmable Logic Devices Struktury układów logicznych

  2. FPGA Struktury układów logicznych 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

  3. Dekompozycja funkcji boolowskich Dekompozycja funkcjonalna 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 nie są jeszcze wbudowane do systemów komercyjnych.

  4. Dekompozycja funkcjonalna Skuteczność dekompozycji 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ę funkcji boolowskich omówimy w dwóch ujęciach: a) metoda klasyczna (znana od dawna...) b) metoda nowoczesna (dostosowana do złożoności dzisiejszych technologii)

  5. A B x1x2x3 x4x5 000 001  00 0 1 01 1 0    Metoda klasyczna ... 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 B oraz o wierszach etykietowanych wartościami zmiennych funkcji f ze zbioru A Elementami macierzy M są wartości, jakie przyjmuje funkcja f na wektorach złożonych z odpowiednich etykiet i-tego wierszai j-tej kolumny.

  6. B x1x2x3 x4x5 000 001 010 100 110 101 011 111 00 1 1 1 1 0 0 0 0 A 01 0 1 1 1 0 0 0 0 10 0 0 0 0 0 0 0 0 11 0 0 0 0 1 1 1 0 Krotność kolumn Liczbę istotnie różnych kolumn tej macierzy ze względu na ich zawartość nazywamy ich krotnością i oznaczamy symbolem (A|B). Krotność kolumn = 4

  7. Klasyczne twierdzenie o dekompozycji Niech będzie dana funkcja boolowska f oraz podział zbioru zmiennych wejściowych funkcji fna dwa rozłączne zbiory A i B, to wówczas: f(A,B) = h(g1(B),.., gj(B),A) (A|B)  2j. B (bound set), A (free set)

  8. B x1x2x3 x4x5 000 001 010 100 110 101 011 111 x1 x2 x3 g1 g2 00 1 1 1 1 0 0 0 0 0 0 0 0 0 A 01 0 1 1 1 0 0 0 0 0 0 1 0 1 10 0 0 0 0 0 0 0 0 0 1 0 0 1 g1g2 x4x5 00 01 10 11 11 0 0 0 0 1 1 1 0 1 0 0 0 1 0 0 1 1 0 0 1 1 0 1 0 0 1 0 1 0 0 1 0 1 1 0 1 0 0 0 0 0 0 1 1 1 0 1 1 0 0 1 0 1 1 1 1 1 Przykład Istnieje dekompozycja ! f = h(x4, x5, g1(x1, x2, x3), g2(x1, x2, x3))

  9. x4 x5 x1 x2 x3 x1 x2 x3 x4 x5 Praktyczne znaczenie dekompozycji.. ..dla struktur FPGA

  10. cde a b 000 001 010 011 100 101 110 111 a b c d e 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 Przykład trochę trudniejszy Istnieje dekompozycja ! f = h(a,b,g1(c,d,e), g2(c,d,e))

  11. Jak obliczać dekompozycję Relacja zgodności kolumn

  12. 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.

  13. Relacja zgodności kolumn Kolumny zgodne można „sklejać” {K1,K4,K7} {K5,K6}

  14. Obliczanie dekompozycji... Wyznaczyć relację zgodności kolumn, czyli wypisać wszystkie pary 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.

  15. cde a b 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 Przykład - obliczanie klas zgodności Pary sprzeczne: 0,1 0,2 0,5 0,7 1,2 1,7 2,32,4 2,6 3,5 3,7 4,7 5,6 6,7 K0, K1 sprzeczna K0, K2 sprzeczna K0, K3 zgodna K0, K4 zgodna

  16. Komentarz: formalnie obliczamy pokrycie.. Ostatecznie: 0,3,4,6 1,5 2,7 Kolumny powtarzające się usuwamy Przykład – obliczanie klas zgodności Stosując algorytm MKZ obliczamy rodzinę Maksymalnych Klas Zgodnych kolumn: Wybieramy: 0,3,4,6 0,3,4,6 1,3,4,6 1,4,5 1,4,5 2,5,7 2,5,7

  17. Sklejanie kolumn – funkcja h {K0,K3,K4,K6} {K1,K5} {K2,K7} Kodowanie? Może być dowolne

  18. c d e g1 g2 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 1 1 0 0 0 0 0 1 0 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 Kodowanie kolumn – funkcja g

  19. c d e g1 g2 0 0 0 0 0 0 1 1 0 0 a b c d e 1 0 0 0 0 g1g2 ab 00 01 11 10 1 1 0 0 0 00 1 0 0 - 01 1 1 - - 0 0 1 0 1 10 0 0 1 - 11 0 1 - - 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 Co uzyskaliśmy Opis funkcji g i h tablicami prawdy wystarczy dla realizacji w strukturach FPGA Ale funkcje g i h można obliczyć jawnie… czyli po procesie dekompozycji można je minimalizować

  20. a b c d e …strukturę na bramkach uzyskując w rezultacie …

  21. Przykład – funkcje g1 i g2 c d e g1 g2 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 1 1 0 0 0 0 0 1 0 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 21

  22. Przykład – funkcja h Uwaga: Przestawiliśmy wiersze 22

  23. Przykład – realizacja a b c d e G g1 g2 H h = f

  24. x7 x3 x5 x8 x6 x9 x7 x3 x8 x5 x9 x6 x10 x10 f f 1 0 1 1 1 1 0 0 1 1 1 1 0 1 0 0 0 1 0 1 0 1 0 0 1 0 1 0 1 0 0 0 1 1 1 0 0 1 0 0 0 0 1 1 1 1 0 0 1 0 1 1 1 0 1 0 1 1 0 1 0 1 1 0 0 0 1 0 0 1 1 0 0 0 1 0 0 1 1 0 0 1 1 0 0 1 0 0 0 0 1 0 1 1 0 0 0 1 1 1 1 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 B A 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 0 0 0 1 0 1 0 0 1 0 1 0 0 1 0 0 1 0 1 1 1 1 0 1 1 0 0 1 1 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 1 1 1 1 0 0 1 1 1 0 0 1 1 1 1 1 1 0 1 1 1 0 0 0 1 1 0 0 0 1 1 0 1 0 0 0 1 0 1 1 1 1 0 1 0 0 0 1 1 1 0 0 1 1 0 1 1 1 1 0 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 1 0 1 1 0 1 0 1 1 0 1 0 0 1 1 1 1 1 1 1 1 0 0 1 1 1 0 0 1 1 1 1 1 0 0 1 1 1 0 0 1 1 1 0 0 0 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 0 0 1 1 0 1 0 1 1 1 0 0 0 1 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

  25. 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 – – – – x3 x5 x6 x10 001 0 – 0 – – – 1 – – – – 1 – – – 010 – – – – – – – – 0 – – – – – x7x8x9 011 – 0 – – 1 – – 1 – – – 0 – – – 1 100 – – – – – 1 – – – – – – 1 – – 101 – – – – – – – – – – – – 0 0 1 110 – – – – – – – – – – – – – – 1 111 – – 1 – – – – – 1 – – – – – 1 Tablica dekompozycji dla funkcji TL27

  26. 0 1 000 1 0 001 0 1 010 0 011 1 0 100 – 1 101 1 0 110 1 – 111 1 – Tablica dekompozycji dla funkcji TL27 H G g x7x8x9 1

  27. Praktyczny wynik dekompozycji funkcji 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 Tylko 2 komórki

  28. QUARTUS Zagadka Na ilu komórkach zrealizuje tę funkcję amerykański system QUARTUS? 25 kom. (FLEX) lub 27 kom. (Stratix)!!!

  29. Jak usprawnić obliczanie MKZ? W metodzie dekompozycji jednym z najważniejszych algorytmów jest algorytm obliczania maksymalnych klas zgodności W celu sprawniejszego obliczania MKZ wprowadzimy metodę wg par zgodnych: • metodę bezpośrednią • b) metodę iteracyjną

  30. Metoda bezpośrednia Pary zgodne: a, bb, ca, c {a, b, c} a, b, ca, b, db, c, da, c, d {a, b, c, d} i.t.d.

  31. Przykład – obliczanie klas zgodności 0,30,40,61,31,41,51,62,52,73,43,64,54,65,7 Maksymalne klasy zgodności: 0,3,4 0,3,6 0,4,6 0,3,4,6 1,3,4 1,3,6 1,3,4,6 1,4,5 1,4,6 2,5,7 3,4,6 1,4,5 2,5,7

  32. 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}

  33. Przykład Rj = { ei | i < j oraz (ei,ej)  E}  0,30,40,61,31,41,51,62,52,73,43,64,54,65,7 R0 = E: R1 =   R2 = 0,1 R3 = 0,1,3 R4 = 1,2,4 R5 = 0,1,3,4 R6 = 0,2,5 R7 =

  34. Przykład {0}  R0 = R1 =  {0} {1} {0,3} {1,3} {2}  R2 = {0} {1} {2} {2} {0,3,4} {1,3,4} {0,1} R3 = {4,5} {1,4,5} {2,5} {0,3,4} {1,3,4} {0,1,3} R4 = {1,4,6} {0,3,4,6} {1,3,4,6} {1,4,5} {2,5} {1,2,4} R5 = {1,4,5} {2,5,7} {0,3,4,6} {1,3,4,6} {5,7} {0,1,3,4} R6 = {0,2,5} R7 = Rodzina MKZ

  35. (1,8) (2,4) (2,8) (3,7) (4,5) Warto umiejętnie dobierać metodę... Pary zgodne: (1,2), (1,3), (1,4), (1,5), (1,6), (1,7), (2,3),(2,5), (2,6), (2,7), (3,4), (3,5), (3,6), (3,8), (4,6), (4,7), (4,8), (5,6), (5,7),(5,8), (6,7), (6,8),(7,8), Pary sprzeczne: Wybór metody jest oczywisty!

  36. Pary niezgodne: (ki, kj) (ki, ks) (kl, kr) k1 ks k2 kr ki kj kp kl Graf niezgodności: W poszukiwaniu innych metod… W obliczaniu kolumn, które można „skleić” znajdują zastosowanie algorytmy kolorowania grafu. Wierzchołki grafu reprezentują kolumny tablicy dekompozycji. Niezgodne pary kolumn łączy się krawędziami.

  37. Przykład… Pary sprzeczne: Pary zgodne: 0,30,40,61,31,41,51,62,52,73,43,64,54,65,7 0,1 0,2 0,5 0,7 1,2 1,7 2,32,4 2,6 3,5 3,7 4,7 5,6 6,7

  38. 0 7 1 6 2 3 5 4 Graf niezgodności (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) i jego kolorowanie

More Related