Podręcznik
2. Dekompozycja funkcjonalna metodą rachunku podziałów
2.4. Dekompozycja nierozłączna
Zauważmy, że r-przydatność k-elementowego zbioru U nie oznacza, że istnieje dekompozycja:
F = H((U,G(V))
w której funkcja G ma r – k wyjść. Sytuacja ta oznacza tylko, że istnieje dekompozycja z funkcją G o argumentach V È W gdzie WÍ U.
Oczywiście w najlepszym przypadku W jest zbiorem pustym, a w najgorszym W = U i wtedy dekompozycja taka nie ma sensu. Można się jednak spodziewać, że sytuacja najlepsza i najgorsza są najmniej prawdopodobne.
Z powyższego wynika, że w praktyce często stajemy przed problemem wyznaczania dekompozycji nierozłącznej. Podstawowym problemem w obliczaniu dekompozycji nierozłącznej jest wyznaczenie zbioru W o możliwie minimalnej liczności. Wybór argumentów do zbioru W jest przeprowadzany na podstawie analizy podziału PV. Otóż, w przypadku, gdy nie istnieje dekompozycja rozłączna, nie istnieje również ΠG ³ PV spełniający nierówność PV ∙ΠG ≤ PF.
Jest zrozumiałe, że powiększenie zbioru V o argumenty z W Í U prowadzi w konsekwencji do utworzenia „drobniejszego” Π’G ³ P’V (gdzie P’V jest zbiorem indukowanym argumentami V’ = V È W). Drobniejszy Π’G może zapewnić spełnienie warunku:
P ∙ ΠG’ £ PF
Sposób postępowania przy wyznaczaniu W wyjaśnimy na przykładzie.
Dla funkcji podanej w tabl. 3.16 poszukujemy dekompozycji, w której
Tablica 3.16
|
|
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 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
|
4 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
|
5 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
1 |
|
6 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
|
7 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
|
8 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
|
9 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
|
10 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
Wyznaczamy kolejno:
Podział PG konstruujemy w sposób pokazany na rys. 3.10. Niestety nie można spełnić warunków rozdziału z podziału ilorazowego: elementy 8 i 9 są w jednym bloku podziału PG .
Rys. 3.10. Konstrukcja podziału ΠG
Warunki te byłyby spełnione, gdybyśmy przenieśli element 9 do pierwszego bloku (strzałka na rys. 3.9). Byłoby to jednak możliwe, gdyby elementy 3, 7 były oddzielone od elementu 9. Z tablicy 3.17 wynika, że wektory 3 i 9 różnią się na pozycjach x1 oraz x2, natomiast wektory 7 i 9 różnią się na pozycji x2. Zatem zmienna x2 wystarczy do oddzielenia 3, 7 od 9. Stąd wniosek, że W = {<i>x</i><sub>2</sub>}, czyli istnieje dekompozycja nierozłączna. Jej wyznaczenie nie nastręcza trudności, gdyż dla nowego PV’ obliczenie odpowiedniego PG jest już możliwe:
PV’ = PV • P2
Pojęcie r-przydatności i dekompozycja nierozłączna ułatwiają znajdowanie najlepszych dekompozycji.
Dla funkcji z tablicy 3.17 podziały P1, P2, P5 są 3-przydatne, a P3, P4 – 4-przydatne. Należy obliczyć wszystkie dekompozycje szeregowe z najmniejsza liczbą wejść do bloku H oraz najmniejszą liczbą wejść i wyjść bloku G.
Uwaga: wystarczy obliczyć odpowiednie podziały ΠG spełniające warunek wystarczający dekompozycji.
Tablica 3.17
|
|
x1 |
x2 |
x3 |
x4 |
x5 |
Y |
|
1 |
0 |
0 |
0 |
0 |
0 |
D |
|
2 |
0 |
0 |
0 |
0 |
1 |
A |
|
3 |
0 |
0 |
0 |
1 |
0 |
C |
|
4 |
1 |
0 |
0 |
1 |
0 |
D |
|
5 |
1 |
0 |
0 |
1 |
1 |
B |
|
6 |
0 |
0 |
0 |
1 |
1 |
B |
|
7 |
0 |
0 |
1 |
0 |
0 |
D |
|
8 |
1 |
0 |
1 |
0 |
1 |
B |
|
9 |
0 |
0 |
1 |
0 |
1 |
A |
|
10 |
0 |
1 |
1 |
0 |
0 |
C |
|
11 |
1 |
1 |
1 |
0 |
0 |
E |
|
12 |
1 |
1 |
1 |
0 |
1 |
A |
W rozwiązaniu podać też schematy blokowe obliczonych dekompozycji, w szczególności wejścia i wyjścia bloków G i H.
Rozwiązanie:
![]() |
|
![]() |
r = 3 |
![]() |
r = 4 |
![]() |
r = 3 |
Dla U = {<i>x</i><sub>1</sub>, <i>x</i><sub>5</sub>} (rys. 3.11)
Rys. 3.11. Dekompozycja funkcji z przykładu 3.6
Tworzenie podziału PG:
Wektory 4, 5 trzeba oddzielić od 3, 6. Stąd dekompozycja nierozłączna z x1, czyli V’ = x1 x2 x3 x4
Tablice bloków G i H przedstawiono odpowiednio w tab. 3.18. i tab. 3.19.
Tablica 3.18
|
|
x1x2x3x4 |
g |
|
1,2 |
0 0 0 0 |
0 |
|
3,6 |
0 0 0 1 |
1 |
|
4,5 |
1 0 0 1 |
0 |
|
7,9 |
0 0 1 0 |
0 |
|
8 |
1 0 1 0 |
0 |
|
10 |
0 1 1 0 |
1 |
|
11,12 |
1 1 1 0 |
1 |
Tablica 3.19
|
|
x1x5g’ |
Y |
|
1,7 |
0 0 0 |
D |
|
2,9 |
0 1 0 |
A |
|
3,10 |
0 0 1 |
C |
|
4 |
1 0 0 |
D |
|
5,8 |
1 1 0 |
B |
|
6 |
0 1 1 |
B |
|
11 |
1 0 1 |
E |
|
12 |
1 1 1 |
A |
Dla U = {<i>x</i><sub>2</sub>, <i>x</i><sub>5</sub>} (rys. 3.12):
Podział PG można utworzyć następująco:
Aby zlikwidować konflikt wektor 5 należy oddzielić od wektora 4. Stąd dodatkowo x5, czyli V’ = {<i>x</i><sub>1</sub>, <i>x</i><sub>3</sub>, <i>x</i><sub>4</sub>, <i>x</i><sub>5</sub>}
Tablice bloków H i G’ podano odpowiednio w tab. 3.20 i tab. 3.21.
Tablica 3.20
|
|
x1x3x4x5 |
g |
|
1 |
0 0 0 0 |
0 |
|
2 |
0 0 0 1 |
0 |
|
3 |
0 0 1 0 |
1 |
|
4 |
1 0 1 0 |
0 |
|
5 |
1 0 1 1 |
1 |
|
6 |
0 0 1 1 |
1 |
|
7,10 |
0 1 0 0 |
0 |
|
9 |
0 1 0 1 |
0 |
|
8,12 |
1 1 0 1 |
1 |
|
11 |
1 1 0 0 |
1 |
Tablica 3.21
|
|
x2x5g’ |
Y |
|
1,7 |
0 0 0 |
D |
|
2,9 |
0 1 0 |
A |
|
3,10 |
0 0 1 |
C |
|
4 |
1 0 0 |
D |
|
5,8 |
1 1 0 |
B |
|
6 |
0 1 1 |
B |
|
11 |
1 0 1 |
E |
|
12 |
1 1 1 |
A |
Dekompozycja nierozłączna, mimo iż zwiększa liczbę wejść do komponentu G, może w rezultacie prowadzić do uzyskania realizacji z mniejszą liczbą komórek logicznych. Sytuację taką omawiamy w poniższym przykładzie.
Dla funkcji F z tab. 3.22a istnieje dekompozycja:
F = H(x4, x5, x6, G1 (x1, x2, x3))
dla której funkcja G1 jest podana w tablicy 3.22b.
|
a) |
|
|
|
|
|
|
|
|
|
b) |
|
|
|
|
|||||||||||||||
|
|
x1 |
x2 |
x3 |
x4 |
x5 |
x6 |
y1 |
y2 |
|
|
x1 |
x2 |
x3 |
g1 |
|
||||||||||||||
|
1 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
|
1 |
1 |
1 |
0 |
0 |
|
||||||||||||||
|
2 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
|
2 |
0 |
0 |
1 |
0 |
|
||||||||||||||
|
3 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
1 |
|
3 |
1 |
0 |
1 |
1 |
|
||||||||||||||
|
4 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
|
4 |
1 |
0 |
0 |
1 |
|
||||||||||||||
|
5 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
0 |
|
|
|
|
|
|
|
||||||||||||||
|
6 |
1 |
1 |
0 |
1 |
0 |
0 |
1 |
0 |
|
|
|
|
|
|
|
||||||||||||||
|
7 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
|
|
|
|
|
|
|
||||||||||||||
|
8 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
|
|
|
|
|
|
|
||||||||||||||
|
9 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
|
|
|
|
|
|
|
||||||||||||||
Ponieważ
. jest 3-przydatny, możemy wyznaczyć:
który zapewnia realizację funkcji F = H(G2(x4, x5, x6), G1(x1, x2, x3)) w strukturze przedstawionej na rys. 3.13.
Rys. 3.13.Schemat dekompozycji funkcji
Przy założeniu, że dysponujemy strukturami z komórkami o wymiarach 3/1, do realizacji tej funkcji jest potrzebnych 5 komórek.
Postaramy się znaleźć dekompozycję prowadzącą do oszczędniejszej realizacji. W tym celu obliczymy r-przydatność dla podziałów reprezentujących pary zmiennych: (g1, x4), (g1, x5), (g1, x6).
|
U = {<i>g</i><sub>1</sub>,<i>x</i><sub>4</sub>} |
|
| r = 4 | |
|
U = {<i>g</i><sub>1</sub>,<i>x</i><sub>5</sub>} |
|
| r = 4 | |
|
U = {<i>g</i><sub>1</sub>,<i>x</i><sub>6</sub>} |
|
| r = 3 |
Zatem tylko dla U = {<i>g</i><sub>1</sub>,<i>x</i><sub>6</sub>} istnieje dekompozycja o strukturze, jak na rys. 3.13, której realizacja wymaga tylko czterech komórek typu 3/1. Obliczenia uzasadniające taką dekompozycję są podane poniżej.
Najpierw wyznaczamy podział PV:
Do wyznaczenia PG dwa pierwsze bloki podziału PV przeznaczamy do pierwszego bloku podziału PG, natomiast trzeci blok PV przeznaczamy do drugiego bloku PG (rys. 3.14).
Rys. 3.14. Konstrukcja podziału ΠG
Ale tak utworzony PG jest sprzeczny z warunkami narzuconymi przez podział ilorazowy PU | PF, z którego wynika, że mintermy o numerach (5,6) oraz (9) muszą należeć do różnych bloków PG. Aby tak było, należy element 6 (rys. 3.14) „przenieść” do drugiego bloku. Będzie to możliwe, gdy mintermy 1,4 będą „oddzielone” od mintermu 6. Z tab. 3.22a wynika, że mintermy 1 i 6 różnią się na pozycji x2, natomiast 4 i 6 różnią się na pozycjach x2 i x3. Zatem W = {<i>x</i><sub>2</sub>}, czyli V’ = {<i>x</i><sub>2</sub>,<i>x</i><sub>4</sub>, <i>x</i><sub>5</sub>}. Na podstawie nowego PV’ = PV × P(x2):
łatwo wyznaczyć PG’:
spełniający warunek PU × PG’ ≤ PF, co uzasadnia schemat blokowy dekompozycji pokazany na rys. 3.13.




































