Dekompozycja metodą rachunku podziałów c.d. Dekompozycja nierozłączna Pojęcie r - przydatności 1
Dekompozycja nierozłączna Twierdzenie o dekompozycji jest ogólne i uwzględnia przypadek tzw. dekompozycji nierozłącznej V U G H Y 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 ³ PVW taki, że: PU · G £ PF. 2
Dekompozycja nierozłączna jest ważna… Wtedy dobrym wyjściem może być dołożenie do G dodatkowych argumentów ze zbioru W V U G H Y W U V U G H Y W U, V rozłączne podzbiory X …dekompozycja rozłączna nie zawsze istnieje! 3
Rachunek podziałów umożliwia Nowy problem V U G H Y W Ale jak wyznaczyć zbiór W Rachunek podziałów umożliwia wyznaczenie zbioru W !!! 4
Przykład dekompozycji nierozłącznej Najpierw dekompozycja rozłączna dla U = {x1,x2,x3}, V = {x4,x5} x1 x2 x3 x4 x5 y1 y2 y3 1 2 3 4 5 6 7 8 9 10 G H x1 x2 x3 x4 y1 y2 y3 x5 PF = 5
Przykład Dla U = {x1,x2,x3}, V = {x4,x5}, PF = PU = PV = PU |PU•PF = 2 3 4 5 6 7 8 9 10 PF = PU = PV = PU |PU•PF = 6
G H Obliczamy ПG PU |PU•PF = PV = Obliczamy ПG: 3,7,9 Fatalnie dekompozycja rozłączna nie istnieje, bo obliczony пG nie spełnia warunku dekompozycji G H x1 x2 x3 x4 y1 y2 y3 x5 PU |PU•PF = PV = Obliczamy ПG: 3,7,9 7
G H Przykład... Ale nie załamujmy się może istnieje dekompozycja nierozłączna G H x1 x2 x3 x4 x5 coś z U y1 y2 y3 Ale jak wyznaczyć zbiór W ??? 8
Przyjrzyjmy się dokładniej obliczanemu пG Spróbujmy ... x1 x2 x3 x4 x5 y1 y2 y3 1 2 3 4 5 6 7 8 9 10 PU |PU•PF = PV = Przyjrzyjmy się dokładniej obliczanemu пG 3, 7 | 9 3 | 9 7 | 9 x1, x2 x2 Czyli zmienna x2 rozdziela wektory 3, 7 od 9 9
G H Przykład... Schemat dekompozycji należy zmodyfikować x2 PV’ = x1 x2 x3 x4 x5 y1 y2 y3 Schemat dekompozycji należy zmodyfikować Ale to jest nowa sytuacja: Nowy zbiór V, czyli V’ PV’ = PV P2 PV = PV’ = 10
I spełnia warunek twierdzenia PU G PF Przykład... Jak zwykle obliczamy ΠG. Sposób postępowania jest taki sam…czyli Ale ten podział jest drobniejszy, może teraz będzie szansa na znalezienie dobrego пG PU |PU•PF = PV’ = I spełnia warunek twierdzenia PU G PF Udało się 11
G H G H Przykład... Dalej standardowo; Wyznaczamy tablice prawdy funkcji G i H G H x1 x2 x3 x4 x5 y1 y2 y3 x1 x2 x3 x4 x5 x2 G H y1 y2 y3 12
Pojęcie r-przydatności Główny mankament dekompozycji U Główny mankament dekompozycji W V Nie znamy odpowiedzi na pytanie dla jakich U, V istnieje dekompozycja G Jest to istotne o tyle, że Tw. o dekompozycji wyznacza dekompozycję dla ustalonych U i V H Y Pozwala oszacować – zapisane w formie podziałów - argumenty zbioru U pod względem „jakości” dekompozycji R-przydatność ułatwia wyznaczenie dobrych zbiorów U, dla których istnieje dekompozycja 13
Pojęcie r - przydatności Oznaczenia: g - liczba elementów w największym bloku ilorazu podziałów. G = log2g a zaokrąglenie w górę do najbliższej całkowitej g = 3 G praktycznie jest liczbą bitów potrzebnych do zakodowania g = log23 = 2 log25 = 3 14
Pojęcie r - przydatności… Zbiór podziałów {P1,...,Pk} jest r-przydatny względem P, gdzie: r = k + (P1...Pk | P P1...Pk) W dekompozycji przyjmujemy P = PF 15
Przykład (SUL Tabl. 8.3, UL w zad. przykład 7.3) x1 x2 x3 x4 x5 y1 y2 y3 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 7 0 1 0 0 0 8 1 1 0 0 0 9 1 1 0 1 0 10 1 1 1 0 0 11 1 1 1 1 1 12 1 1 1 1 0 13 1 0 0 0 1 14 1 0 0 1 1 15 1 0 0 1 0 Przykład ten był liczony na wykładzie W07 16
Przykładzik Obliczmy r dla oraz Mamy tu: log25 = 3 P = PF = Mamy tu: PF P1 = P1 | PF P1 = g(P1 | P P1) = 5, Bo 5 nawiasów G(P1 | P P1) = log25 = 3 czyli r = 1 + 3 = 4 17
Interpretacja r-przydatności Jeśli {P1,...,Pk} jest r-przydatny (k < r) względem PF i jeśli istnieje dekompozycja to blok H ma dokładnie r wejść G H X1 ... Xk Xr+1 … Xn Xk+1 Xr … Y 18
Przykładzik… Skoro P1 (z przykładziku) jest 4-przydatny to możemy się spodziewać tylko takiej dekompozycji: x1 x2 x3 x4 x5 g h w której liczba wejść do bloku h jest dokładnie 4!!! 19
Przykładzik… Natomiast gdyby P1 był 3-przydatny, to moglibyśmy się spodziewać dekompozycji z trzema! tylko wejściami do h x1 x2 x3 x4 x5 g h 20
Twierdzenia o r - przydatności Jeśli {P1,...,Pk } jest r-przydatny (k < r) względem P, to istnieje zbiór podziałów {Pk+1,...,Pr}, dla których: P1...Pk Pk+1,...,Pr P natomiast nie istnieje {P’k+1,...,P’r-1} taki, że: P1...Pk P’k+1,...,P’r-1 P Inaczej mówiąc, warunkiem koniecznym i wystarczającym na to, aby: P1...Pk Pk+1,...,Pm P jest m-przydatność zbioru {P1,...,Pk} względem P. 21
Wracamy do przykładu (z książki SUL) Jak policzymy r-przydatności dla każdego Pi P1 = r = 4 r = 3 x1 x2 x3 x4 x5 y1 y2 y3 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 1 1 0 0 0 1 1 0 1 0 1 1 1 0 0 1 0 0 0 1 1 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 1 1 1 0 1 0 0 0 1 1 0 0 1 1 1 0 0 1 0 0 0 0 0 1 0 1 0 0 0 1 1 0 0 1 P2 = P3 = P4 = P5 = PF = 22
P3, P4, są 3-przydatne względem PF Przykład … P3, P4, są 3-przydatne względem PF x1 x2 x4 x5 g x3 h x1 x2 x3 x5 g x4 h 23
Szukajmy czegoś lepszego Przykład… Szukajmy czegoś lepszego Obliczmy r-przydatność dla zbioru {P3, P4} P3 P4 = log23 = 4 czyli r{P3, P4} = 2 + 24
Przykład … Skoro {P3, P4} jest 4-przydatny, to przyjmując x3, x4 jako wejścia x3 x4 x1 x2 x5 do pełnej realizacji funkcji potrzebne są jeszcze dwa wejścia. g h Z poprzedniego wykładu wiemy, że taka dekompozycja istnieje 25
Przykład – inna dekompozycja tej samej funkcji Ale może uda nam się znaleźć zbiór { Pi, Pj, Pk}, który byłby 4-przydatny. Bardzo ciekawy schemat, 4 wejścia jak poprzednio, ale prostsza G – zaledwie dwu-wejściowa, czyli jakaś prosta bramka G H xi xj xk xm xn y1 y2 y3 26
Pożyteczne fakty Można wykazać, że jeśli P = {P1,...,Pk } jest m-przydatny względem PF, to każdy podzbiór z P jest m’-przydatny, gdzie m’ m. Tym samym warunkiem koniecznym na to, aby P = {P1,...,Pk} był m-przydatny względem PF, jest r-przydatność podzbiorów z P taka, że dla każdego P’ zawartego w P, r(P’) m. 27
Przykład… inna dekompozycja r-przydatności par {Pi, Pj} dla przykładu z planszy 22 {P1, P3} {P1, P4} {P2, P3} {P2, P4} {P3, P4} {P3, P5} {P4, P5} 4-przydatne pary: 4-przydatnymi trójkami mogą być tylko: a) {P1, P3, P4} b) {P2, P3, P4} Pozostałe są 5-przydatne! c) {P3, P4, P5} Niestety to są trójki podejrzane o 4-przydatność, należy zweryfikować, które są 4-przydatne 28
Przykład… inna dekompozycja W tym celu liczymy odpowiednie iloczyny podziałów P1•P3•P4 = P2•P3•P4 = P2•P3•P4 = P3•P4•P5 = {P1, P3, P4} oraz {P3, P4, P5}. czyli wyłącznie są 4-przydatne r{P1, P3, P4} = 3 + log22 = 4 29
Przykład … inna dekompozycja Skoro {P1, P3, P4} oraz {P3, P4, P5} są 4-przydatne to mogą istnieć dekompozycje: G H x3 x4 x5 x1 x2 y1 y2 y3 G H x1 x3 x4 x2 x5 y1 y2 y3 30
Przykład … inna dekompozycja PU = P1P3P4 = PU |PF = x1 x3 x4 x1 x3 x4 x2 x5 x2 x5 G G H H y1 y2 y3 y1 y2 y3 Czy potrafimy bezpośrednio z podziału PV obliczyć funkcję G G = x2 x5 31
Ciekawy przykład Dla funkcji F z tab. 1a istnieje dekompozycja: F = H(x4, x5, x6, G1 (x1, x2, x3)) Funkcja G1 jest podana w Tab.1b. x1 x2 x3 x4 x5 x6 y1 y2 1 2 3 4 5 6 7 8 9 Tab. 1a Tab. 1b x1 x2 x3 g1 1 2 3 4 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). 32
Ciekawy przykład… Założonej dekompozycji funkcji F = H(x4, x5, x6, G1 (x1, x2, x3)) odpowiada schemat blokowy jak na rysunku. Tab. 1a x1 x2 x3 x4 x5 x6 y1 y2 1 2 3 4 5 6 7 8 9 G1 H y1 y2 G2 x4 x5 x6 x1 x2 x3 33
Ciekawy przykład… Dla tej dekompozycji funkcja G1 może być opisana następującym podziałem: Tab. 1a x1 x2 x3 x4 x5 x6 y1 y2 1 2 3 4 5 6 7 8 9 Tab. 1b x1 x2 x3 g1 1 2 3 4 1 1 1 1 34
G1 G2 H G2 G1 H Ciekawy przykład… x1 x2 x3 x4 x5 x6 Dekompozycję można stosować wielokrotnie. G2 g1 Mając policzoną dekompozycję z G1 możemy liczyć kolejną dekompozycję przy założeniu, że g1 jest wejściem niezależnym (pierwotnym). H y1 y2 Uzyskalibyśmy dekompozycję z dodatkowym blokiem G, ozn. G2. G1 H y1 y2 G2 x4 x5 x6 x1 x2 x3 g1 Oczywiście trzeba sprawdzić, czy taka dekompozycja istnieje. 35
Do realizacji potrzebnych Ciekawy przykład… Łatwo sprawdzić, że taka dekompozycja istnieje Dla U = {g1} G1 H y1 y2 G2 x4 x5 x6 x1 x2 x3 R-przydatność P(g1): g1 Do realizacji potrzebnych jest 5 komórek 3/1 r = 3 36
G1 H G2 G1 H Ciekawy przykład… U = {g1, x4} r = 4 U = {g1, x5} r = 4 Ale może jest jeszcze lepsze rozwiązanie? xj x1 x2 x3 G1 H y1 y2 g1 U = {g1, x4} r = 4 xj x1 x2 x3 G1 H y1 y2 G2 U = {g1, x5} r = 4 37
G2 G1 H Ciekawy przykład… U = {g1, x6} r = 3 To nas zadawala y1 y2 G2 x4 x5 xj x6 x1 x2 x3 38
Ciekawy przykład… W = {x2} U = {g1, x6} Należy wyznaczyć zmienną (zmienne) xj x1 x2 x3 x4 x5 x6 y1 y2 1 2 3 4 5 6 7 8 9 W = {x2} 39
Do realizacji potrzebne są Ciekawy przykład… Dla nowego łatwo wyznaczyć ΠG’: spełniający warunek PU ΠG’ ≤ PF. G1 H y1 y2 G2 x2 x4 x5 x6 x1 x2 x3 ΠG Do realizacji potrzebne są 4 komórki 3/1 Poprzednio było 5 40
Komentarz: algorytmy dekompozycji Skuteczność dekompozycji funkcjonalnej (szeregowej) maleje ze wzrostem liczby wyjść zespołu funkcji Zapobiec tej sytuacji można stosując tzw. dekompozycję… Szeregowa Y U V X G H Równoległa 41
Do rozwiązania tego problemu Dekompozycja równoległa… Xh H Xg Yg G X Yh X Y F Y = Yg Yh Rozłączne podzbiory wyjść… Do rozwiązania tego problemu można zastosować redukcję argumentów 42
Dekompozycja równoległa - przykład y1: {x1, x2, x6} 1 – 11 10 9 8 7 6 5 4 3 2 y6 y5 y4 y3 y2 y1 x8 x7 x6 x5 x4 x3 x2 x1 y2: {x3, x4} y3: {x1, x2, x4, x5, x8} {x1, x2, x4, x6, x8} y4: {x1, x2, x3, x4, x7} y5: {x1, x2, x4} y6: {x1, x2, x6, x8} 43
Dekompozycja równoległa - przykład y1: {x1, x2, x6} y2: {x3, x4} y3: {x1, x2, x4, x5, x8} {x1, x2, x4, x6, x8} y4: {x1, x2, x3, x4, x7} y5: {x1, x2, x4} y6: {x1, x2, x6, x8} G = {y1, y3, y6 } H= {y2, y4,y5} Xg = {x1, x2, x4, x6, x8} Xh = {x1, x2, x3, x4, x7} 44
Dekompozycja równoległa - przykład 1 – 9 8 7 6 5 4 3 2 y6 y3 y1 x9 x6 x4 x2 x1 – 1 7 6 5 4 3 2 y5 y4 y2 x7 x4 x3 x2 x1 x1 x2 x3 x4 x5 x6 x7 x8 H G y1 y3 y6 y2 y4 y5 45
Dekompozycja zrównoważona F X Y BD wykorzystuje naprzemiennie dekompozycję szeregową i dekompozycję równoległą H G X Y1 Y2 X3 X4 Y G H X X1 X2 Dekompozycja szeregowa Dekompozycja równoległa 46
Przykład – prosty układ kombinacyjny .type fr .i 10 .o 2 .p 25 0101000000 00 1110100100 00 0010110000 01 0101001000 01 1110101101 10 0100010101 10 1100010001 00 0011101110 10 0001001110 10 0110000110 10 1110110010 01 0111100000 00 0100011011 00 0010111010 10 0110001110 00 0110110111 11 0001001011 11 1110001110 01 0011001011 01 0010011010 10 1010110010 00 0100110101 11 0001111010 00 1101100100 01 1001110111 11 .e x0 x2 x3 x9 y0 y1 CL STRATEGIE: a) najpierw dekompozycja szeregowa b) najpierw dekompozycja równoległa 47
Dekompozycja funkcji F STRATEGIA: najpierw dekompozycja szeregowa Dekompozycja szeregowa LC x8 x9 x1 x3 x4 x6 2LCs x0 x2 x5 x7 LC y0 2LCs LC y1 Dekompozycja równoległa Dekompozycja szeregowa Łącznie: 7 komórek 48
Dekompozycja funkcji F STRATEGIA: najpierw dekompozycja równoległa x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 LC y0 LC y1 Łącznie : 4 komórki 49
Dekompozycja funkcji F w systemie Quartus library IEEE; use IEEE.STD_LOGIC_1164.all; entity bul is port(i : in std_logic_vector(1 to 10); o : out std_logic_vector(1 to 2)); end bul; architecture arch1 of bul is begin PLA: process(i) case i is when "0101000000" => o <= "00"; when "1110100100" => o <= "00"; when "0010110000" => o <= "10"; when "0101001000" => o <= "10"; when "1110101101" => o <= "01"; when "0100010101" => o <= "01"; when "1100010001" => o <= "00"; when "0011101110" => o <= "01"; when "0001001110" => o <= "01"; when "0110000110" => o <= "01"; when "1110110010" => o <= "10"; when "0111100000" => o <= "00"; when "0100011011" => o <= "00"; when "0010111010" => o <= "01"; when "0110001110" => o <= "00"; when "0110110111" => o <= "11"; when "0001001011" => o <= "11"; when "1110001110" => o <= "10"; when "0011001011" => o <= "10"; when "0010011010" => o <= "01"; when "1010110010" => o <= "00"; when "0100110101" => o <= "11"; when "0001111010" => o <= "00"; when "1101100100" => o <= "10"; when "1001110111" => o <= "11"; when others => o <= "XX"; end case; end process; end; QuartusII 28 komórek 50