TC Moduł 14: Różnice pomiędzy wersjami
Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Nie podano opisu zmian |
m Zastępowanie tekstu – „,...,” na „,\ldots,” |
||
(Nie pokazano 2 wersji utworzonych przez 2 użytkowników) | |||
Linia 35: | Linia 35: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|width="500px" valign="top"|[[Grafika:TC_M14_Slajd5.png|thumb|500px]] | |width="500px" valign="top"|[[Grafika:TC_M14_Slajd5.png|thumb|500px]] | ||
|valign="top"|Obecnie zajmiemy się analitycznym opisem dekompozycji funkcji boolowskich. Do tego celu posłużymy się wprowadzonym w module 5 rachunkiem podziałów. W szczególności wyprowadzimy warunki dekompozycji dla funkcji boolowskich opisanych podziałami <math>P_1, P_2, | |valign="top"|Obecnie zajmiemy się analitycznym opisem dekompozycji funkcji boolowskich. Do tego celu posłużymy się wprowadzonym w module 5 rachunkiem podziałów. W szczególności wyprowadzimy warunki dekompozycji dla funkcji boolowskich opisanych podziałami <math>P_1, P_2,\ldots, P_n, P_f\,</math> określonymi na zbiorze <math>K\,</math> ponumerowanych wektorów odwzorowania <math>F:\, B^n\to \{0,1, -\}^m</math>. | ||
Na początek zajmiemy się poszukiwaniem dekompozycji <math>F = H(U,G(V,W))\,</math>, gdzie: <math>U, V\,</math> są podzbiorami zbioru <math>X = \{x_1, | Na początek zajmiemy się poszukiwaniem dekompozycji <math>F = H(U,G(V,W))\,</math>, gdzie: <math>U, V\,</math> są podzbiorami zbioru <math>X = \{x_1,\ldots, x_n\}</math> argumentów funkcji boolowskiej, a ponadto <math>W\subseteq U\,</math>, | ||
<math>U\cup V\subseteq X</math>, <math>U\cap V =\Phi</math>. Dla podanych założeń obowiązuje twierdzenie: | <math>U\cup V\subseteq X</math>, <math>U\cap V =\Phi</math>. Dla podanych założeń obowiązuje twierdzenie: | ||
Linia 72: | Linia 72: | ||
Iloczynem podziałów <math>P_a\bullet P_b\,</math> nazywamy największy (względem relacji <math>\le\,</math>) podział, który jest nie większy od <math>P_a\,</math> oraz <math>P_b\,</math>. Na przykład | Iloczynem podziałów <math>P_a\bullet P_b\,</math> nazywamy największy (względem relacji <math>\le\,</math>) podział, który jest nie większy od <math>P_a\,</math> oraz <math>P_b\,</math>. Na przykład | ||
<math>\Pi_a=(\overline{1,2,4};\overline{3,5,6})</math> | <math>\Pi_a=(\overline{1,2,4};\overline{3,5,6})</math> | ||
Linia 84: | Linia 85: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|width="500px" valign="top"|[[Grafika:TC_M14_Slajd8.png|thumb|500px]] | |width="500px" valign="top"|[[Grafika:TC_M14_Slajd8.png|thumb|500px]] | ||
|valign="top"|Niech <math>P_a\,</math> i <math>P_b\,</math> są podziałami na <math>S\,</math> oraz <math>P_a\ge P_b\</math>. | |valign="top"|Niech <math>P_a\,</math> i <math>P_b\,</math> są podziałami na <math>S\,</math> oraz <math>P_a\ge P_b\ </math>. | ||
Podział <math>P_a | P_b\,</math> jest podziałem ilorazowym <math>P_a\,</math> i <math>P_b\,</math> , jeżeli jego elementy są blokami <math>P_b\,</math>, a bloki są blokami <math>P_a\,</math>. | Podział <math>P_a | P_b\,</math> jest podziałem ilorazowym <math>P_a\,</math> i <math>P_b\,</math> , jeżeli jego elementy są blokami <math>P_b\,</math>, a bloki są blokami <math>P_a\,</math>. | ||
Linia 216: | Linia 217: | ||
|valign="top"|W celu pełnego przekonania o skuteczności twierdzenia o dekompozycji zajmiemy się dekompozycją zespołu 3 funkcji boolowskich o 5 argumentach, dla których tablica prawdy jest podana na planszy. | |valign="top"|W celu pełnego przekonania o skuteczności twierdzenia o dekompozycji zajmiemy się dekompozycją zespołu 3 funkcji boolowskich o 5 argumentach, dla których tablica prawdy jest podana na planszy. | ||
Oznaczmy jak poprzednio wektory z <math>B^n\,</math> liczbami naturalnymi <math>K = \{1, | Oznaczmy jak poprzednio wektory z <math>B^n\,</math> liczbami naturalnymi <math>K = \{1,\ldots,|B^n|\}</math>, a przez <math>P_F\,</math> podział wyjściowy funkcji <math>F\,</math> skonstruowany w następujący sposób: | ||
:<math>(s,t)\in B_{P_F}\iff F(s)=F(t)\,</math> | :<math>(s,t)\in B_{P_F}\iff F(s)=F(t)\,</math> | ||
Inaczej mówiąc, wektory <math>s\,</math> i <math>t\,</math> należą do jednego bloku <math>B\,</math> podziału <math>P_F\,</math> tylko wtedy, gdy odwzorowanie <math>F\,</math> przyporządkowuje tym wektorom taki sam wektor z <math>\{0,1\}^m\,</math>. Na przykład, dla odwzorowania <math>F\,</math> określonego jak w tablicy na planszy podział <math>P_F\,</math> (zapisany w postaci podziału na zbiorze <math>K = \{1,2, | |||
Inaczej mówiąc, wektory <math>s\,</math> i <math>t\,</math> należą do jednego bloku <math>B\,</math> podziału <math>P_F\,</math> tylko wtedy, gdy odwzorowanie <math>F\,</math> przyporządkowuje tym wektorom taki sam wektor z <math>\{0,1\}^m\,</math>. Na przykład, dla odwzorowania <math>F\,</math> określonego jak w tablicy na planszy podział <math>P_F\,</math> (zapisany w postaci podziału na zbiorze <math>K = \{1,2,\ldots,15\}\,</math> będzie miał postać: | |||
<math>P_F=\{\overline{1,9,14};\overline{5,7,8,13};\overline{2,6,12};\overline{4,11};\overline{3,10,15} \}</math> | <math>P_F=\{\overline{1,9,14};\overline{5,7,8,13};\overline{2,6,12};\overline{4,11};\overline{3,10,15} \}</math> | ||
Linia 244: | Linia 248: | ||
gdzie bloki <math>P_V\,</math> są oznaczone kolejno <math>B_1, B_2, | gdzie bloki <math>P_V\,</math> są oznaczone kolejno <math>B_1, B_2,\ldots, B_8\,</math>. | ||
|} | |} | ||
Linia 261: | Linia 265: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|width="500px" valign="top"|[[Grafika:TC_M14_Slajd26.png|thumb|500px]] | |width="500px" valign="top"|[[Grafika:TC_M14_Slajd26.png|thumb|500px]] | ||
|valign="top"|Przyjmując, że kodowanie bloków <math>\Pi_G\,</math> jest: pierwszy blok – 01, drugi blok – 10, trzeci blok – 00 i uwzględniając, iż kolejnym blokom z podziału <math>P_V\,</math> odpowiadają wektory (zmienne <math>x_1, x_2, x_5\,</math>) odpowiednio: < | |valign="top"|Przyjmując, że kodowanie bloków <math>\Pi_G\,</math> jest: pierwszy blok – 01, drugi blok – 10, trzeci blok – 00 i uwzględniając, iż kolejnym blokom z podziału <math>P_V\,</math> odpowiadają wektory (zmienne <math>x_1, x_2, x_5\,</math>) odpowiednio: <math>B_1 = 000</math>, <math>B_2 = 001</math>, <math>B_3 = 010</math>, <math>B_4 = 011</math>, <math>B_5 = 110</math>, <math>B_6 = 111</math>, <math>B_7 = 101</math> oraz <math>B_8 = 100</math>, wyznaczamy tablicę prawdy funkcji <math>G\,</math>. | ||
|} | |} | ||
Linia 279: | Linia 283: | ||
<math>P_U\cdot \Pi_G=(\overline{1};\overline{7};\overline{8,13};\overline{3,15};\overline{2};\overline{9,14};\overline{4};\overline{5};\overline{10};\overline{6};\overline{11};\overline{12})</math> | <math>P_U\cdot \Pi_G=(\overline{1};\overline{7};\overline{8,13};\overline{3,15};\overline{2};\overline{9,14};\overline{4};\overline{5};\overline{10};\overline{6};\overline{11};\overline{12})</math> | ||
wyznaczamy tablicę prawdy funkcji <math>H\,</math>. | |||
|} | |} | ||
<hr width="100%"> | <hr width="100%"> |
Aktualna wersja na dzień 21:58, 15 wrz 2023
![]() |
Niech i są podziałami na oraz .
Podział jest podziałem ilorazowym i , jeżeli jego elementy są blokami , a bloki są blokami . |
![]() |
Przystępując do obliczenia dekompozycji najpierw należy funkcję opisać podziałami. |
![]() |
Obecnie stajemy przed najważniejszym zadaniem wynikającym z twierdzenia o dekompozycji, a mianowicie przed obliczeniem podziału . |
![]() |
Dla wygody dalszych obliczeń podział zapiszemy w postaci podziału ilorazowego:
|
![]() |
Interpretując twierdzenie o dekompozycji łatwo zauważyć, że podział tworzymy z bloków podziału zgodnie z podziałem ilorazowym . |
![]() |
Podobnie postępujemy dla funkcji , ale tu korzystamy z bloków iloczynu podziałów oraz ich przynależności do podziałów oraz .
|
![]() |
Rysując raz jeszcze schemat blokowy uzyskanej dekompozycji łatwo zauważamy, że funkcję TL27 można zrealizować na 2 komórkach struktury FPGA typu LUT. |
![]() |
Fragment tej tablicy podany jest na planszy. |
![]() |
Podobnie, po obliczeniu iloczynu:
wyznaczamy tablicę prawdy funkcji . |