ZPT 1 Dekompozycja nierozłączna Pojęcie r - przydatności Dekompozycja zrównoważona Dekompozycja równoległa
ZPT V U G H Y W Funkcję F: B n {0,1} m można zrealizować w strukturze: F = H(U,G(V,W)) wtedy i tylko wtedy, gdy istnieje podział G P V W taki, że: P U · G P F. Twierdzenie o dekompozycji jest ogólne i uwzględnia przypadek tzw. dekompozycji nierozłącznej Dekompozycja nierozłączna 2
ZPT U, V rozłączne podzbiory X V U G H Y Wtedy dobrym wyjściem może być dołożenie do G dodatkowych argumentów ze zbioru W W U V U G H Y W Dekompozycja nierozłączna 3 jest ważna… nie zawsze istnieje! …gdyż dekompozycja rozłączna
ZPT Rachunek podziałów umożliwia wyznaczenie zbioru W !!! Ale jak wyznaczyć zbiór W Nowy problem V U G H Y W 4
ZPT Przykład dekompozycji nierozłącznej Najpierw dekompozycja rozłączna dla U = {x 1,x 2,x 3 }, V = {x 4,x 5 } x1x1 x2x2 x3x3 x4x4 x5x5 y1y1 y2y2 y3y P F = G H x 1 x 2 x 3 x4x4 y 1 y 2 y 3 x 5 5
ZPT Przykład Dla U = {x 1,x 2,x 3 }, V = {x 4,x 5 }, x1x1 x2x2 x3x3 x4x4 x5x5 y1y1 y2y2 y3y P F = P U |P U P F = P V = PU =PU = 6
ZPT Obliczamy П G P U |P U P F = P V = 3,7,9 Fatalnie dekompozycja rozłączna nie istnieje, bo obliczony п G nie spełnia warunku dekompozycji G H x 1 x 2 x 3 x4x4 y 1 y 2 y 3 x 5 ПG:ПG: 7
ZPT Przykład... G H x 1 x 2 x 3 x 4 x 5 coś z U y 1 y 2 y 3 Ale nie załamujmy się może istnieje dekompozycja nierozłączna Ale jak wyznaczyć zbiór W ??? 8
ZPT Spróbujmy... P U |P U P F = P V = 3 | 9 7 | 9 x 1, x 2 x2x2 3, 7 | 9 x1x1 x2x2 x3x3 x4x4 x5x5 y1y1 y2y2 y3y Przyjrzyjmy się dokładniej obliczanemu п G 9 Czyli zmienna x 2 rozdziela wektory 3, 7 od 9
ZPT Przykład... x2x2 G H x 1 x 2 x 3 x 4 x 5 y 1 y 2 y 3 Ale to jest nowa sytuacja: Nowy zbiór V, czyli V’ P V’ = PV P2PV P2 P V = P V’ = Schemat dekompozycji należy zmodyfikować 10
ZPT Przykład... Ale ten podział jest drobniejszy, może teraz będzie szansa na znalezienie dobrego п G …spełnia warunek twierdzenia P U G P F Udało się Jak zwykle obliczamy Π G. Sposób postępowania jest taki sam…czyli P U |P U P F = P V’ = 11
ZPT Przykład... G H x 1 x 2 x 3 x 4 x 5 y 1 y 2 y 3 Dalej standardowo; Wyznaczamy tablice prawdy funkcji G i H G H x 1 x 2 x 3 x 4 x 5 y 1 y 2 y 3 x2x2 12
ZPT V U G H Y W Nie znamy odpowiedzi na pytanie dla jakich U, V istnieje dekompozycja Główny mankament dekompozycji R-przydatność ułatwia wyznaczenie dobrych zbiorów U, dla których istnieje dekompozycja Pozwala oszacować – zapisane w formie podziałów - argumenty zbioru U pod względem „jakości” dekompozycji 13 Jest to istotne o tyle, że Tw. o dekompozycji wyznacza dekompozycję dla ustalonych U i V Pojęcie r - przydatności
ZPT Oznaczenia: - liczba elementów w największym bloku ilorazu podziałów. = log 2 a zaokrąglenie w górę do najbliższej całkowitej jest najmniejszą liczbą bitów potrzebnych do zakodowania 14 Pojęcie r - przydatności = log 2 3 = 2 log 2 5 = 3
ZPT Pojęcie r - przydatności… Zbiór podziałów {P 1,...,P k } jest r-przydatny względem P, gdzie: r = k + (P 1...P k | P P 1...P k ) 15 W dekompozycji przyjmujemy P = P F
ZPT x 1 x 2 x 3 x 4 x 5 y 1 y 2 y Przykład (Synteza logiczna, przykład 6.3, str. 140) 16 Przykład ten był liczony na wykładzie W07
ZPT Przykładzik Obliczmy r dla P 1 = oraz P = P F = Mamy tu: P F P 1 = P 1 | P F P 1 = (P 1 | P P 1 ) = 5, Bo 5 nawiasów (P 1 | P P 1 ) = log 2 5 = 3 czyli r = = 4 17
ZPT Interpretacja r-przydatności 18 U = …… Y G … W U V = Jeżeli zbiór { } jest r-przydatny (k < r) względem P F, to istnieje dekompozycja F = H(U,G(V,W)), w której blok H ma dokładnie r wejść oraz W U
ZPT Interpretacja r-przydatności 19 V U G H Y W W U Jeżeli zbiór { } jest r-przydatny (k < r) względem P F, to istnieje dekompozycja F = H(U,G(V,W)), w której blok H ma dokładnie r wejść oraz W U Nawet w najgorszym przypadku jest to rozkład dużego układu na dwa mniejsze
ZPT Twierdzenie o r - przydatności Jeśli {P 1,...,P k } jest r-przydatny (k < r) względem P, to istnieje zbiór podziałów {P k+1,...,P r }, dla których: P 1...P k P k+1...P r P natomiast nie istnieje {P’ k+1,...,P’ r-1 } taki, że: P 1...P k P’ k+1...P’ r-1 P Inaczej mówiąc, warunkiem koniecznym i wystarczającym na to, aby: P 1...P k P k+1...P m P jest m-przydatność zbioru {P 1,...,P k } względem P. 20
ZPT Wracamy do przykładu (ze skryptu Synteza logiczna) x1x2x3x4x5x1x2x3x4x5 y1y2y3y1y2y P 1 = P 2 = P 3 = P 4 = P 5 = P F = r = 4 r = 3 r = 4 21 Jak policzymy r-przydatności dla każdego P i
ZPT Przykład … P 3, P 4, są 3-przydatne względem P F x 1 x 2 x 4 x 5 g x3x3 h x 1 x 2 x 3 x 5 g x4x4 h 22
ZPT Przykład… P 3 P 4 = czyli r{P 3, P 4 } = 2 + Szukajmy czegoś lepszego log 2 3 = 4 Obliczmy r-przydatność dla zbioru {P 3, P 4 } 23
ZPT Przykład … Skoro {P 3, P 4 } jest 4-przydatny, to przyjmując x 3, x 4 jako wejścia bezpośrednie x 1 x 2 x 5 g x 3 x 4 h do pełnej realizacji funkcji potrzebne są jeszcze dwa wejścia. Z poprzedniego wykładu wiemy, że taka dekompozycja istnieje 24
ZPT Przykład – inna dekompozycja tej samej funkcji Ale może uda nam się znaleźć zbiór { P i, P j, P k }, który byłby 4-przydatny. G H x i x j x k x m x n y 1 y 2 y 3 Bardzo ciekawy schemat, 4 wejścia jak poprzednio, ale prostsza G – zaledwie dwu-wejściowa, czyli jakaś prosta bramka 25 Duże znaczenie praktyczne takiej realizacji
ZPT Pożyteczne fakty Można wykazać, że jeśli P = {P 1,...,P k } jest m-przydatny względem P F, to każdy podzbiór z P jest m’-przydatny, gdzie m’ m. Tym samym warunkiem koniecznym na to, aby P = {P 1,...,P k } był m-przydatny względem P F, jest r- przydatność podzbiorów z P taka, że dla każdego P’ zawartego w P, r(P’) m. 26
ZPT Przykład… inna dekompozycja r-przydatności par {P i, P j } dla przykładu z planszy 21 a) {P 1, P 3, P 4 } 4-przydatnymi trójkami mogą być tylko: b) {P 2, P 3, P 4 } c) {P 3, P 4, P 5 } 27 {P 1, P 3 } {P 1, P 4 } {P 2, P 3 } {P 2, P 4 } {P 3, P 4 } {P 3, P 5 } {P 4, P 5 } 4-przydatne pary: Niestety to są trójki podejrzane o 4- przydatność, należy zweryfikować, które są 4-przydatne Pozostałe są 5-przydatne!
ZPT Przykład… inna dekompozycja W tym celu liczymy odpowiednie iloczyny podziałów P 1P 3P 4 = P 2P 3P 4 = P 3P 4P 5 = {P 1, P 3, P 4 } oraz {P 3, P 4, P 5 }.czyli wyłącznie są 4-przydatne r{P 1, P 3, P 4 } = 3 + log 2 2 = 4 28
ZPT Przykład … inna dekompozycja G H x 1 x 3 x 4 x 2 x 5 y 1 y 2 y 3 Skoro {P 1, P 3, P 4 } oraz {P 3, P 4, P 5 } są 4-przydatne to mogą istnieć dekompozycje: G H x 3 x 4 x 5 x 1 x 2 y 1 y 2 y 3 29
ZPT Przykład … inna dekompozycja P U = P 1 P 3 P 4 = P U |P F = G H x 1 x 3 x 4 x 2 x 5 y 1 y 2 y 3 Czy potrafimy bezpośrednio z podziału P V obliczyć funkcję G G H x 1 x 3 x 4 x 2 x 5 y 1 y 2 y 3 G = x 2 x 5 30
ZPT Przykład 6.7 „Synteza logiczna” Dla funkcji F z tab. 1a istnieje dekompozycja: F = H(x 4, x 5, x 6, G 1 (x 1, x 2, x 3 )) Funkcja G 1 jest podana w Tab.1b. x1x1 x2x2 x3x3 x4x4 x5x5 x6x6 y1y1 y2y Tab. 1a x1x1 x2x2 x3x3 g1g Tab. 1b Należy obliczyć dekompozycję szeregową zapewniającą realizację tej funkcji na minimalnej liczbie komórek logicznych o wymiarach 3/1 (3 wejścia, 1 wyjście). 31
ZPT Założonej dekompozycji funkcji F = H(x 4, x 5, x 6, G 1 (x 1, x 2, x 3 )) odpowiada schemat blokowy jak na rysunku. x1x1 x2x2 x3x3 x4x4 x5x5 x6x6 y1y1 y2y Tab. 1a G1G1 H y 1 y 2 G2G2 x 4 x 5 x 6 x 1 x 2 x 3 32 Przykład 6.7 „Synteza logiczna”
ZPT x1x1 x2x2 x3x3 x4x4 x5x5 x6x6 y1y1 y2y x1x1 x2x2 x3x3 g1g Tab. 1a Tab. 1b Dla tej dekompozycji funkcja G 1 może być opisana następującym podziałem: Przykład 6.7 „Synteza logiczna”
ZPT 34 y 1 y 2 H G2G2 x 4 x 5 x 6 g1g1 G1G1 x 1 x 2 x 3 Mając policzoną dekompozycję z G 1 możemy liczyć kolejną dekompozycję przy założeniu, że g 1 jest wejściem niezależnym (pierwotnym). Uzyskamy dekompozycję z dodatkowym blokiem G, ozn. G 2. G1G1 H y 1 y 2 G2G2 x 4 x 5 x 6 x 1 x 2 x 3 g1g1 Oczywiście trzeba sprawdzić, czy taka dekompozycja istnieje. U = {g 1 }, V = {x 4,x 5,x 6 } Przykład 6.7 „Synteza logiczna”
ZPT Dla U = {g 1 } r = 3 G1G1 H y 1 y 2 G2G2 x 4 x 5 x 6 x 1 x 2 x 3 Łatwo sprawdzić, że taka dekompozycja istnieje R-przydatność P(g 1 ): Do realizacji potrzebnych jest 5 komórek 3/1 35 g1g1 Przykład 6.7 „Synteza logiczna”
ZPT U = {g 1, x 4 } r = 4 U = {g 1, x 5 } r = 4 Ale może jest jeszcze lepsze rozwiązanie? 36 x j x 1 x 2 x 3 G1G1 H y 1 y 2 g1g1 x j x 1 x 2 x 3 G1G1 H y 1 y 2 G2G2 P U = P(g 1 ) ∙ P(x 4 ) Przykład 6.7 „Synteza logiczna”
ZPT U = {g 1, x 6 } r = 3 G1G1 H y 1 y 2 G2G2 x 4 x 5 x k x 6 x 1 x 2 x 3 37 To nas zadowala P U = P(g 1 ) ∙ P(x 6 ) P(x 6 ) = Przykład 6.7 „Synteza logiczna”
ZPT U = {g 1, x 6 } W = {x 2 } x1x1 x2x2 x3x3 x4x4 x5x5 x6x6 y1y1 y2y Należy wyznaczyć zmienną (zmienne) x k 38 V = {x 4, x 5 } Nie można rozdzielić (5,6) od (9) Przykład 6.7 „Synteza logiczna”
ZPT łatwo wyznaczyć Π G : G1G1 H y 1 y 2 G2G2 x 2 x 4 x 5 x 6 x 1 x 2 x 3 ΠGΠG Do realizacji potrzebne są 4 komórki 3/1 Poprzednio było 5 39 Dla nowego V’ = {x 4, x 5, x 2 } spełniający warunek P U Π G’ ≤ P F SUKCES Przykład 6.7 „Synteza logiczna”
ZPT 40 Komentarz: algorytmy dekompozycji Równoległa Skuteczność dekompozycji funkcjonalnej (szeregowej) maleje ze wzrostem liczby wyjść zespołu funkcji Szeregowa Y U V X G H Zapobiec tej sytuacji można stosując tzw. dekompozycję…
ZPT 41 Dekompozycja równoległa… X Y F Y = Y g Y h XhXh H XgXg YgYg G X YhYh 41 Rozłączne podzbiory wyjść… Do rozwiązania tego problemu można zastosować redukcję argumentów
ZPT 42 y 1 : {x 1, x 2, x 6 } y 2 : {x 3, x 4 } y 3 : {x 1, x 2, x 4, x 5, x 8 } {x 1, x 2, x 4, x 6, x 8 } y 4 : {x 1, x 2, x 3, x 4, x 7 } y 5 : {x 1, x 2, x 4 } y 6 : {x 1, x 2, x 6, x 8 } Dekompozycja równoległa - przykład 42
ZPT 43 y 1 : {x 1, x 2, x 6 } y 2 : {x 3, x 4 } y 3 : {x 1, x 2, x 4, x 5, x 8 } {x 1, x 2, x 4, x 6, x 8 } y 4 : {x 1, x 2, x 3, x 4, x 7 } y 5 : {x 1, x 2, x 4 } y 6 : {x 1, x 2, x 6, x 8 } X g = {x 1, x 2, x 4, x 6, x 8 }X h = {x 1, x 2, x 3, x 4, x 7 } G = {y 1, y 3, y 6 }H= {y 2, y 4,y 5 } Dekompozycja równoległa - przykład 43
ZPT x 1 x 2 x 3 x 4 x 5 x 6 x 7 x 8 HG y 1 y 3 y 6 y 2 y 4 y 5 01 – y6y6 y3y3 y1y1 x9x9 x6x6 x4x4 x2x2 x1x1 – y5y5 y4y4 y2y2 x7x7 x4x4 x3x3 x2x2 x1x1 Dekompozycja równoległa - przykład 44
ZPT Dekompozycja zrównoważona BD wykorzystuje naprzemiennie dekompozycję szeregową i dekompozycję równoległą F X Y Y G H X X1X1 X2X2 HG X Y1Y1 Y2Y2 X3X3 X4X4 Dekompozycja szeregowa Dekompozycja równoległa 45
ZPT Przykład – prosty układ kombinacyjny.type fr.i 10.o 2.p e x0x2x3x9x0x2x3x9 CL y0y1y0y1 STRATEGIE: a) najpierw dekompozycja szeregowa b) najpierw dekompozycja równoległa 46
ZPT Dekompozycja funkcji F STRATEGIA: najpierw dekompozycja szeregowa LC y0y0 x 8 x 9 x 1 x 3 x 4 x 6 2LCs x 0 x 2 x 5 x 7 Dekompozycja szeregowa Dekompozycja równoległa 2LCs LC y1y1 Łącznie: 7 komórek Dekompozycja szeregowa 47
ZPT Dekompozycja funkcji F STRATEGIA: najpierw dekompozycja równoległa LC y1y1 x 0 x 1 x 2 x 3 x 4 x 5 x 6 x 7 x 8 x 9 LC y0y0 Łącznie : 4 komórki 48
ZPT Dekompozycja funkcji F w systemie Quartus QuartusII library IEEE; use IEEE.STD_LOGIC_1164.all; entity bul is port(i : in std_logic_vector(1 to 10); port(i : in std_logic_vector(1 to 10); o : out std_logic_vector(1 to 2)); o : out std_logic_vector(1 to 2)); end bul; architecture arch1 of bul is begin PLA: process(i) begin begin case i is case i is when " " => o o <= "00"; when " " => o o <= "00"; when " " => o o <= "10"; when " " => o o <= "10"; when " " => o o <= "01"; when " " => o o <= "01"; when " " => o o <= "00"; when " " => o o <= "01"; when " " => o o <= "01"; when " " => o o <= "01"; when " " => o o <= "10"; when " " => o o <= "00"; when " " => o o <= "00"; when " " => o o <= "01"; when " " => o o <= "00"; when " " => o o <= "11"; when " " => o o <= "11"; when " " => o o <= "10"; when " " => o o <= "10"; when " " => o o <= "01"; when " " => o o <= "00"; when " " => o o <= "11"; when " " => o o <= "00"; when " " => o o <= "10"; when " " => o o <= "11"; when others => o o <= "XX"; end case; end case; end process; end process;end; komórek