TC Moduł 11: 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 jednego użytkownika) | |||
Linia 1: | Linia 1: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|width="500px" valign="top"|[[Grafika:TC_M11_Slajd1.png|thumb|500px]] | |width="500px" valign="top"|[[Grafika:TC_M11_Slajd1.png|thumb|500px]] | ||
|valign="top"| | |valign="top"|Układy cyfrowe cz. 2 | ||
|} | |} | ||
Linia 8: | Linia 8: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|width="500px" valign="top"|[[Grafika:TC_M11_Slajd2.png|thumb|500px]] | |width="500px" valign="top"|[[Grafika:TC_M11_Slajd2.png|thumb|500px]] | ||
|valign="top"| | |valign="top"|Sekwencyjne bloki funkcjonalne to przede wszystkim rejestry i liczniki. W tak zwanym rejestrze uniwersalnym, oprócz typowych operacji <math>LOAD\,</math> i <math>HOLD\,</math>, występują mikrooperacje przesuwania w prawo <math>SHR\,</math> (Shift Right) oraz w lewo <math>SHL\,</math> (Shift Left). | ||
Licznik to rejestr specjalnego typu, dodatkowo wyposażony w mikrooperację zwiększania (zliczania w górę <math>Y := Y + 1</math>) lub zmniejszania (zliczania w dół <math>Y := Y - 1</math>) jego zawartości. Mikrooperacje te zapisuje się również jako inkrementację lub dekrementację: | |||
:<math>Y := INC(Y)</math> , | |||
:<math>Y := DEC(Y)</math> , | |||
|} | |} | ||
Linia 15: | Linia 20: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|width="500px" valign="top"|[[Grafika:TC_M11_Slajd3.png|thumb|500px]] | |width="500px" valign="top"|[[Grafika:TC_M11_Slajd3.png|thumb|500px]] | ||
|valign="top"| | |valign="top"|Rejestr to w najprostszym przypadku układ składający się z zespołu przerzutników, z których każdy wykonuje identyczne funkcje. Na rysunku pokazano rejestr zbudowany z czterech przerzutników. Jest on wyposażony w <math>4\,</math> wejścia typu <math>D\,</math>. W rejestrze takim wpisanie (<math>LOAD\,</math>) nowej zawartości jest dokonywane przez wejścia <math>D_i\,</math> synchronicznie z zegarem <math>CLK\,</math>. Inaczej mówiąc, po podaniu na wejścia <math>D_i\,</math> <math>4\,</math>-bitowego słowa i po przyjściu ustalonego zbocza sygnału <math>CLK\,</math> nastąpi zapamiętanie tego słowa w rejestrze, co znaczy, że pojawi się ono na wyjściach <math>Q_i\,</math>. | ||
|} | |} | ||
Linia 22: | Linia 27: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|width="500px" valign="top"|[[Grafika:TC_M11_Slajd4.png|thumb|500px]] | |width="500px" valign="top"|[[Grafika:TC_M11_Slajd4.png|thumb|500px]] | ||
|valign="top"| | |valign="top"|Ważnym w zastosowaniach jest rejestr, w którym wejścia i wyjścia są połączone kaskadowo. Taki rejestr nazywa się rejestrem przesu¬wającym (''shift register''). Pracę rejestru przesuwającego można opisać jak w tablicy na planszy. Pokazano w niej sześć kolejnych stanów rejestru dla kolejnych sześciu impulsów zegarowych, przy założeniu, że pierwotnie rejestr znajdował się w stanie <math>0000\,</math>, a na jego wejście <math>D_1\,</math> podano szeregowo sekwencję bitów <math>010000\,</math>. Z tablicy wynika, że jedynka podana na wejście rejestru (wejście D1 pierwszego przerzutnika) pojawi się na wyjściu przerzutnika <math>Q_4\,</math> po czwartym impulsie zegarowym. | ||
|} | |} | ||
Linia 29: | Linia 34: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|width="500px" valign="top"|[[Grafika:TC_M11_Slajd5.png|thumb|500px]] | |width="500px" valign="top"|[[Grafika:TC_M11_Slajd5.png|thumb|500px]] | ||
|valign="top"| | |valign="top"|Można zbudować układ, w którym czynności wykonywane w rejestrze równoległym (jak na planszy 3) i przesuwającym będą wykonywane w tym samym bloku funkcjonalnym <math>BF\,</math>, a o ich wyborze będzie decydować wartość sygnału na odpowiednim wejściu sterującym. Konstrukcja takiego rejestru jest możliwa jeśli każdy przerzutnik rejestru zostanie dodatkowo wyposażony w multiplekser. | ||
|} | |} | ||
Linia 36: | Linia 41: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|width="500px" valign="top"|[[Grafika:TC_M11_Slajd6.png|thumb|500px]] | |width="500px" valign="top"|[[Grafika:TC_M11_Slajd6.png|thumb|500px]] | ||
|valign="top"| | |valign="top"|Dodając przed wejście każdego przerzutnika multiplekser uzyskuje się rejestr szeregowy z wpisem równoległym. W rejestrze tym sygnał wprowadzony na wejście <math>D\,</math> przerzutnika jest za pośrednictwem multipleksera pobierany bądź to z wejścia równoległego, bądź szeregowego (dla pierwszego ogniwa) lub z wyjścia poprzedzającego przerzutnika. W rezultacie przy sygnale Shift/Load = 0 w układzie jest wykonywana mikrooperacja przesuwania, a przy Shift/Load = 1 jest wykonywany wpis równoległy. | ||
|} | |} | ||
Linia 43: | Linia 48: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|width="500px" valign="top"|[[Grafika:TC_M11_Slajd7.png|thumb|500px]] | |width="500px" valign="top"|[[Grafika:TC_M11_Slajd7.png|thumb|500px]] | ||
|valign="top"| | |valign="top"|Dalsza rozbudowa prowadzi do koncepcji rejestru uniwersalnego. W rejestrze uniwersalnym, oprócz typowych operacji LOAD i HOLD, występują mikrooperacje przesuwania w prawo oraz w lewo: | ||
<math>SHR(x_p,Y)\,</math> – przesunięcie logiczne słowa <math>Y\,</math> w prawo z wpisaniem bitu <math>x_p\,</math> na zwalnianą pozycję; <math>y_{n-1} := x_p,\, y_i := y_{i+1}</math> dla <math>i = n-2 ,\ldots, 0</math>; | |||
<math>SHL(Y,x_l)\,</math> – przesunięcie logiczne słowa <math>Y\,</math> w lewo z wpisaniem bitu <math>x_l\,</math> na zwalnianą pozycję; <math>y_i := y_{i-1}</math> dla <math>i = n-1 ,\ldots, 1,\, y_0 := x_l</math> . | |||
|} | |} | ||
Linia 50: | Linia 60: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|width="500px" valign="top"|[[Grafika:TC_M11_Slajd8.png|thumb|500px]] | |width="500px" valign="top"|[[Grafika:TC_M11_Slajd8.png|thumb|500px]] | ||
|valign="top"| | |valign="top"|Licznik to rejestr specjalnego typu, dodatkowo wyposażony w mikrooperację zliczania. Rysunek na planszy ilustruje pracę licznika o mikrooperacjach: LOAD, HOLD, COUNT. | ||
|} | |} | ||
Linia 57: | Linia 67: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|width="500px" valign="top"|[[Grafika:TC_M11_Slajd9.png|thumb|500px]] | |width="500px" valign="top"|[[Grafika:TC_M11_Slajd9.png|thumb|500px]] | ||
|valign="top"| | |valign="top"|Zaprojektowanie licznika o pojemności <math>N\,</math> (licznik mod <math>N\,</math>), co oznacza zliczanie w cyklu <math>0, 1, ..., N - 1, 0, 1\,</math> itd., jest prostym zadaniem syntezy logicznej. Przykładowa, zakodowana tablica przejść-wyjść licznika mod <math>16\,</math>, zliczającego w górę i wyposażonego w wejście zezwalające <math>E\,</math> jest podana w tablicy na planszy. Bezpośrednio z tej tablicy można uzyskać tablice Karnaugha funkcji wzbudzeń dla przerzutników typu <math>T\,</math>. | ||
|} | |} | ||
Linia 64: | Linia 74: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|width="500px" valign="top"|[[Grafika:TC_M11_Slajd10.png|thumb|500px]] | |width="500px" valign="top"|[[Grafika:TC_M11_Slajd10.png|thumb|500px]] | ||
|valign="top"| | |valign="top"|Łatwo sprawdzić, że obliczonym w ten sposób funkcjom wzbudzeń odpowiada schemat logiczny licznika jak na niniejszej planszy. Rozbudowa tego licznika do układu z wpisywaniem równoległym polega na wykorzystaniu spostrzeżenia, że naturalnym układem do wpisywania jest rejestr zbudowany z przerzutników typu <math>D\,</math>. Przerzutnik typu <math>T\,</math> można zbudować z przerzutnika <math>D\,</math> w sposób pokazany na rysunku. | ||
|} | |} | ||
Linia 71: | Linia 81: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|width="500px" valign="top"|[[Grafika:TC_M11_Slajd11.png|thumb|500px]] | |width="500px" valign="top"|[[Grafika:TC_M11_Slajd11.png|thumb|500px]] | ||
|valign="top"| | |valign="top"|Zastępując każdy przerzutnik <math>T\,</math> licznika z planszy 10 przerzutnikiem typu <math>D\,</math> z bramką <math>EXOR\,</math> uzyskujemy układ, w którym możliwe będzie zrealizowanie dodatkowej mikrooperacji ładowania (<math>LOAD\,</math>). | ||
|} | |} | ||
Linia 78: | Linia 88: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|width="500px" valign="top"|[[Grafika:TC_M11_Slajd12.png|thumb|500px]] | |width="500px" valign="top"|[[Grafika:TC_M11_Slajd12.png|thumb|500px]] | ||
|valign="top"| | |valign="top"|Wprowadzając następnie multipleksery między wyjścia bramek <math>EXOR\,</math> a wejścia <math>D\,</math> uzyskuje się schemat licznika z wpisywaniem równoległym synchronicznym. | ||
|} | |} | ||
Linia 85: | Linia 95: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|width="500px" valign="top"|[[Grafika:TC_M11_Slajd13.png|thumb|500px]] | |width="500px" valign="top"|[[Grafika:TC_M11_Slajd13.png|thumb|500px]] | ||
|valign="top"| | |valign="top"|Pamięci stałe typu ROM (''Read Only Memory'') są układami kombinacyjnymi, w których jest możliwe tylko odczytanie infor¬macji zawartej w strukturze matrycy pamięci. Zapisanie tej informacji odbywa się w procesie technologicznym zwanym programowaniem pamięci. | ||
O pamięci, w której wektor adresowy <math>A\,</math> ma długość <math>n\,</math> a wektor wyjściowy <math>Y\,</math> – długość m mówimy, że ma pojemność <math>N\times m\,</math> bitów (<math>N\,</math> słów <math>m\,</math>-bitowych), przy czym <math>N = 2^n\,</math>. | |||
|} | |} | ||
Linia 92: | Linia 104: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|width="500px" valign="top"|[[Grafika:TC_M11_Slajd14.png|thumb|500px]] | |width="500px" valign="top"|[[Grafika:TC_M11_Slajd14.png|thumb|500px]] | ||
|valign="top"| | |valign="top"|Na rysunku przedstawione jest działanie pamięci typu ROM o 3 wejściach adresowych. Sygnały wyjściowe pamięci odpowiadające poszczególnym adresom wyróżniono kolorami. | ||
|} | |} | ||
Linia 99: | Linia 111: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|width="500px" valign="top"|[[Grafika:TC_M11_Slajd15.png|thumb|500px]] | |width="500px" valign="top"|[[Grafika:TC_M11_Slajd15.png|thumb|500px]] | ||
|valign="top"| | |valign="top"|Układ cyfrowy zbudowany ze specjalizowanych bloków funkcjonalnych, z których każdy wykonuje ustalone mikrooperacje, jest nazywany układem operacyjnym (''UO'') lub wykonawczym. Ponieważ mikrooperacje te zgodnie z zadanym algorytmem przetwarzania – muszą być wykonywane sekwencyjnie – to do tak skonstruowanego układu należy doprowadzić odpowiednią sekwencję sygnałów sterujących. Sekwencja ta jest ciągiem słów binarnych tzw. mikrorozkazów, które wytwarzane są w wyodrębnionym układzie sterującym ''US''. Jednocześnie informacja o stanie przetwarzania sygnałów wejściowych w wyjściowe jest przekazywana zwrotnie do układu sterującego. | ||
|} | |} | ||
Linia 106: | Linia 118: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|width="500px" valign="top"|[[Grafika:TC_M11_Slajd16.png|thumb|500px]] | |width="500px" valign="top"|[[Grafika:TC_M11_Slajd16.png|thumb|500px]] | ||
|valign="top"| | |valign="top"|Schemat blokowy systemu cyfrowego zbudowanego z bloków ''US'' i ''UO'' pokazano na rysunku. Wejściami układu sterującego są sygnały pochodzące z ''UO'' – tzw. sygnały predykatowe <math>X_P\,</math> oraz sygnały zewnętrzne <math>X_Z\,</math>. Sygnały predykatowe określają „stan” przetwarzania słów wejściowych w słowa wyjściowe. Przez „stan” przetwarzania należy rozumieć informację przeznaczoną do ''US'', a określającą np. zakończenie procesu przetwarzania w danym bloku funkcjonalnym lub określony wynik tego procesu. Na przykład, jeżeli wektory <math>A, B\,</math> reprezentują liczby i jeśli blok ''BF'' ma dokonać porównania tych liczb i w zależności od wyniku porównania wykonać operację <math>B - A\,</math> lub <math>A - B\,</math>, to do ''US'' należy doprowadzić binarny sygnał określający jeden z dwóch „stanów”: <math>A\le B\,</math> lub <math>A > B\,</math>. Informacjami dotyczącymi pracy ''US'' są również binarne sygnały zewnętrzne <math>X_Z\,</math> oraz <math>X_Y\,</math> (np. sygnały START, ALARM). | ||
|} | |} | ||
Linia 113: | Linia 125: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|width="500px" valign="top"|[[Grafika:TC_M11_Slajd17.png|thumb|500px]] | |width="500px" valign="top"|[[Grafika:TC_M11_Slajd17.png|thumb|500px]] | ||
|valign="top"| | |valign="top"|Syntezę strukturalną układów cyfrowych omówimy na przykładzie układu do konwersji liczby binarnej na liczbę dziesiętną w kodzie BCD (liczbę dziesiętną z cyframi kodowanymi binarnie). W kodzie BCD (''Binary Coded Decimal'') każda cyfra liczby zapisanej w kodzie dziesiętnym jest przedstawiana czterobitową liczbą binarną. | ||
|} | |} | ||
Linia 120: | Linia 132: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|width="500px" valign="top"|[[Grafika:TC_M11_Slajd18.png|thumb|500px]] | |width="500px" valign="top"|[[Grafika:TC_M11_Slajd18.png|thumb|500px]] | ||
|valign="top"| | |valign="top"|Mówiąc poglądowo naszym zadaniem jest zaprojektowanie układu czyli skonstruowanie go z bloków funkcjonalnych. W celu ograniczenia rozmiarów układu założymy, że przetwarzana liczba binarna może być liczbą 8-bitową, ale mniejszą od 100. | ||
|} | |} | ||
Linia 127: | Linia 139: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|width="500px" valign="top"|[[Grafika:TC_M11_Slajd19.png|thumb|500px]] | |width="500px" valign="top"|[[Grafika:TC_M11_Slajd19.png|thumb|500px]] | ||
|valign="top"| | |valign="top"|Do projektu wykorzystamy algorytm znany pod nazwą „plus 3”. W algorytmie tym liczba przetwarzana binarna jest wprowadzana do 8 bitowego rejestru LB. Liczba w kodzie BCD jest „wytwarzana” w dwóch 4 bitowych rejestrach LDA i LDB. W poszczególnych krokach algorytmu wykonywane są następujące czynności. Sprawdzana jest liczba LDB i jeśli jest ona większa lub równa 5, to zawartość tego rejestru jest zwiększana o 3. W przeciwnym przypadku zawartość LDB nie ulega zmianie. Analogiczne czynności wykonywane są dla rejestru LDA. Po sprawdzeniu zawartość wszystkich rejestrów zostaje przesunięta o 1 bit w lewo. Po 8 sekwencjach sprawdzania i przesuwania w rejestrach LDA (część starsza) i LDB (część młodsza) powstanie liczba w kodzie BCD. | ||
|} | |} | ||
Linia 134: | Linia 146: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|width="500px" valign="top"|[[Grafika:TC_M11_Slajd20.png|thumb|500px]] | |width="500px" valign="top"|[[Grafika:TC_M11_Slajd20.png|thumb|500px]] | ||
|valign="top"| | |valign="top"|Pracę algorytmu „plus 3” ilustrujemy poglądowo na następującej planszy. Rysunek przedstawia zawartości rejestrów LB, LDB oraz LDA w poszczególnych krokach algorytmu. Do rejestru LB została wprowadzona (binarnie) liczba <math>27\,</math>. Zauważmy, że w 6 kroku algorytmu do liczby binarnej <math>0110\,</math> (dziesiętnie <math>6\,</math>) została dodana liczba <math>0011\,</math> (czyli <math>3\,</math>). Po 8 krokach w rejestrach LDA, LDB ustaliły się liczby <math>0010\,</math> oraz <math>0111\,</math>, czyli <math>27\,</math>. | ||
|} | |} | ||
Linia 141: | Linia 153: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|width="500px" valign="top"|[[Grafika:TC_M11_Slajd21.png|thumb|500px]] | |width="500px" valign="top"|[[Grafika:TC_M11_Slajd21.png|thumb|500px]] | ||
|valign="top"| | |valign="top"|Na niniejszej planszy przedstawiamy formalny zapis algorytmu. W poszczególnych klatkach sieci działań zapisujemy odpowiednie czynności (mikrooperacje). Stosujemy do tego celu symboliczne mnemoniki typowych mikrooperacji. Przykładowo: LOAD, SHIFT, DEC. | ||
Zmienne (argumenty) w tym algorytmie to: ''LB'' – 8-bitowa liczba binarna, ''LDA'' – 4-bitowa starsza część badanej liczby, ''LDB'' – 4-bitowa młodsza część badanej liczby, ''LD = (LDA, LDB)'' – złożenie liczb ''LDA'' i ''LDB'', czyli liczba w kodzie BCD (wynik przetwarzania), ''LK'' – zmienna pomocnicza (licznik kroków algorytmu). | |||
|} | |} | ||
Linia 148: | Linia 162: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|width="500px" valign="top"|[[Grafika:TC_M11_Slajd22.png|thumb|500px]] | |width="500px" valign="top"|[[Grafika:TC_M11_Slajd22.png|thumb|500px]] | ||
|valign="top"| | |valign="top"|Na podstawie formalnego zapisu algorytmu tworzymy schemat blokowy układu operacyjnego (wykonawczego). Jest on zbudowany z rejestrów R1, R2, R3 reprezentujących odpowiednio rejestry LB, LDB oraz LDA, multipleksera MUX, sumatora <math>\sum\,</math>, komparatora K, licznika kroków LK i rejestru R4. Potrzeba zastosowania takich bloków wynika bezpośrednio z analizy czynności wykonywanych w klatkach sieci działań opisującej pracę algorytmu. | ||
Binarna liczba ''LB'' jest ładowana do 8-bitowego rejestru przesuwającego. Pośrednie wyniki przetwarzania (liczby ''LDA'' i ''LDB'') są zapamiętywane w dwóch 4-bitowych rejestrach, odpowiednio ''R3'' i ''R2''. Rejestry ''R3'', ''R2'' i ''R1'' połączone są w łańcuch, umożliwiający przesuwanie 16 bitów. Ich pracą sterują 2-bitowe sygnały ''S3'', ''S2'' i ''S1''. W układzie zastosowano 4-bitowy sumator <math>\sum\,</math> i komparator ''K''. Przełączanie pracy układu na badanie młodszych i starszych czterech bitów odbywa się w multiplekserze ''MUX''. Ostateczny wynik przetwarzania (liczba dwucyfrowa LDA,LDB) jest zapisywany w 8-bitowym rejestrze ''R4'', w którym jest on utrzymywany do czasu przetworzenia następnej liczby. | |||
Licznik kroków algorytmu jest zrealizowany w liczniku ''LK'' zliczającym w dół z sygnałem predykatowym, wykrywającym stan licznika równy <math>0...0\,</math>. Współpraca układu operacyjnego z odpowiednim układem sterującym jest realizowana za pomocą sygnałów <math>LK = 0</math> i <math>K\ge 5\,</math>. Sygnałami sterującymi dla układu operacyjnego są sygnały ''S1, S2, S3'' sterujące rejestrami, sygnał ładowania ''LOAD'' dla licznika i rejestru ''R4'', sygnał ''DEC'' dla licznika ''LK'' oraz sygnał ''MUX'' sterujący multiplekserem. | |||
|} | |} | ||
<hr width="100%"> | <hr width="100%"> | ||
Linia 155: | Linia 172: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|width="500px" valign="top"|[[Grafika:TC_M11_Slajd23.png|thumb|500px]] | |width="500px" valign="top"|[[Grafika:TC_M11_Slajd23.png|thumb|500px]] | ||
|valign="top"| | |valign="top"|Tak skonstruowany układ wykonawczy odbiega nieco od pierwotnego schematu z planszy 21. Po starcie (''S'') następuje załadowanie liczby binarnej ''LB'' do rejestru ''R1'' (LOAD1), zerowanie rejestrów ''R2'' i ''R3'' (CLEAR2,3) i załadowanie licznika kroków ''LK''. Dla młodszej czwórki bitów <math>(MUX := 0)</math> następuje porównanie zawartości ''R2'' z liczbą 5. Jeżeli wynik <math>K\ge 5\,</math>, to do rejestru ''R2'' jest zapisywana liczba zwiększona o 3, jeśli nie – to pierwotna liczba. Podobne operacje są wykonywane dla starszej czwórki bitów <math>(MUX := 1)</math>, po czym zawartość rejestrów ''R1'', ''R2'' i ''R3'' jest przesuwana w lewo o jeden bit (SHL). Po ośmiokrotnym wykonaniu powyższych operacji <math>(LK = 0)</math> czterobitowe wektory z rejestrów ''R3'' i ''R2'' są ładowane do rejestru ''R4'' jako liczba w kodzie BCD. | ||
Na tak skonstruowanej sieci działań jednocześnie dokonujemy numeracji stanów wewnętrznych odpowiedniego układu sterującego. Stany wewnętrzne oznaczone <math>A_0\,</math> do <math>A_7\,</math> kojarzymy z klatkami operacyjnymi. Należy zauważyć, że w stanie <math>A_0\,</math> mimo pozornie braku klatki operacyjnej wykonywana jest czynność „mikrooperacji pustej”. | |||
|} | |} | ||
<hr width="100%"> | <hr width="100%"> | ||
Linia 162: | Linia 180: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|width="500px" valign="top"|[[Grafika:TC_M11_Slajd24.png|thumb|500px]] | |width="500px" valign="top"|[[Grafika:TC_M11_Slajd24.png|thumb|500px]] | ||
|valign="top"| | |valign="top"|Na podstawie sieci działań z ponumerowanymi stanami wewnętrznymi układu sterującego przystępujemy do narysowania grafu automatu sterującego. Odpowiedni układ sterujący można zaprojektować jako układ sekwencyjny, który na podstawie sygnałów wejściowych <math>LK = 0</math>, <math>K\ge 5\,</math> oraz S (start) będzie wytwarzał sygnały określające mikrooperacje: LOAD1, CLEAR itp. Dla uproszczenia zapisu można przyjąć, że sygnały wejściowe są oznaczone odpowiednio: S jako <math>x_2\,</math>, <math>K\ge 5\,</math> jako <math>x_1\,</math>, <math>LK = 0</math> jako <math>x_0\,</math>. Przyjmijmy również, że sygnały wyjściowe w poszczególnych klatkach operacyjnych sieci z rysunku są oznaczone <math>Z_0, Z_1, ..., Z_7\,</math>, przy czym <math>Z_0\,</math> jest tak zwanym mikrorozkazem pustym. | ||
|} | |} | ||
Linia 169: | Linia 187: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|width="500px" valign="top"|[[Grafika:TC_M11_Slajd25.png|thumb|500px]] | |width="500px" valign="top"|[[Grafika:TC_M11_Slajd25.png|thumb|500px]] | ||
|valign="top"| | |valign="top"|Odpowiednia tablica przejść wyjść automatu reprezentującego układ sterujący wynika bezpośrednio z uzyskanego grafu. | ||
|} | |} | ||
<hr width="100%"> | <hr width="100%"> |
Aktualna wersja na dzień 21:57, 15 wrz 2023
![]() |
Układy cyfrowe cz. 2 |
![]() |
Licznik to rejestr specjalnego typu, dodatkowo wyposażony w mikrooperację zliczania. Rysunek na planszy ilustruje pracę licznika o mikrooperacjach: LOAD, HOLD, COUNT. |
![]() |
Zastępując każdy przerzutnik licznika z planszy 10 przerzutnikiem typu z bramką uzyskujemy układ, w którym możliwe będzie zrealizowanie dodatkowej mikrooperacji ładowania (). |
![]() |
Wprowadzając następnie multipleksery między wyjścia bramek a wejścia uzyskuje się schemat licznika z wpisywaniem równoległym synchronicznym. |
![]() |
Na rysunku przedstawione jest działanie pamięci typu ROM o 3 wejściach adresowych. Sygnały wyjściowe pamięci odpowiadające poszczególnym adresom wyróżniono kolorami. |
![]() |
Odpowiednia tablica przejść wyjść automatu reprezentującego układ sterujący wynika bezpośrednio z uzyskanego grafu. |