TC Moduł 11

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
TC M11 Slajd1.png
Układy cyfrowe cz. 2

TC M11 Slajd2.png
Sekwencyjne bloki funkcjonalne to przede wszystkim rejestry i liczniki. W tak zwanym rejestrze uniwersalnym, oprócz typowych operacji i , występują mikrooperacje przesuwania w prawo (Shift Right) oraz w lewo (Shift Left).

Licznik to rejestr specjalnego typu, dodatkowo wyposażony w mikrooperację zwiększania (zliczania w górę ) lub zmniejszania (zliczania w dół ) jego zawartości. Mikrooperacje te zapisuje się również jako inkrementację lub dekrementację:

,
,

TC M11 Slajd3.png
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 wejścia typu . W rejestrze takim wpisanie () nowej zawartości jest dokonywane przez wejścia synchronicznie z zegarem . Inaczej mówiąc, po podaniu na wejścia -bitowego słowa i po przyjściu ustalonego zbocza sygnału nastąpi zapamiętanie tego słowa w rejestrze, co znaczy, że pojawi się ono na wyjściach .

TC M11 Slajd4.png
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 , a na jego wejście podano szeregowo sekwencję bitów . Z tablicy wynika, że jedynka podana na wejście rejestru (wejście D1 pierwszego przerzutnika) pojawi się na wyjściu przerzutnika po czwartym impulsie zegarowym.

TC M11 Slajd5.png
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 , 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.

TC M11 Slajd6.png
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 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.

TC M11 Slajd7.png
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:

– przesunięcie logiczne słowa w prawo z wpisaniem bitu na zwalnianą pozycję; dla ;

– przesunięcie logiczne słowa w lewo z wpisaniem bitu na zwalnianą pozycję; dla .



TC M11 Slajd8.png
Licznik to rejestr specjalnego typu, dodatkowo wyposażony w mikrooperację zliczania. Rysunek na planszy ilustruje pracę licznika o mikrooperacjach: LOAD, HOLD, COUNT.

TC M11 Slajd9.png
Zaprojektowanie licznika o pojemności (licznik mod ), co oznacza zliczanie w cyklu itd., jest prostym zadaniem syntezy logicznej. Przykładowa, zakodowana tablica przejść-wyjść licznika mod , zliczającego w górę i wyposażonego w wejście zezwalające jest podana w tablicy na planszy. Bezpośrednio z tej tablicy można uzyskać tablice Karnaugha funkcji wzbudzeń dla przerzutników typu .

TC M11 Slajd10.png
Ł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 . Przerzutnik typu można zbudować z przerzutnika w sposób pokazany na rysunku.

TC M11 Slajd11.png
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 ().

TC M11 Slajd12.png
Wprowadzając następnie multipleksery między wyjścia bramek a wejścia uzyskuje się schemat licznika z wpisywaniem równoległym synchronicznym.

TC M11 Slajd13.png
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 ma długość a wektor wyjściowy – długość m mówimy, że ma pojemność bitów ( słów -bitowych), przy czym .


TC M11 Slajd14.png
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.

TC M11 Slajd15.png
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.

TC M11 Slajd16.png
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 oraz sygnały zewnętrzne . 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 reprezentują liczby i jeśli blok BF ma dokonać porównania tych liczb i w zależności od wyniku porównania wykonać operację lub , to do US należy doprowadzić binarny sygnał określający jeden z dwóch „stanów”: lub . Informacjami dotyczącymi pracy US są również binarne sygnały zewnętrzne oraz (np. sygnały START, ALARM).

TC M11 Slajd17.png
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ą.

TC M11 Slajd18.png
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.

TC M11 Slajd19.png
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.

TC M11 Slajd20.png
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 . Zauważmy, że w 6 kroku algorytmu do liczby binarnej (dziesiętnie ) została dodana liczba (czyli ). Po 8 krokach w rejestrach LDA, LDB ustaliły się liczby oraz , czyli .

TC M11 Slajd21.png
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).


TC M11 Slajd22.png
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 , 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 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 . Współpraca układu operacyjnego z odpowiednim układem sterującym jest realizowana za pomocą sygnałów i . 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.


TC M11 Slajd23.png
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 następuje porównanie zawartości R2 z liczbą 5. Jeżeli wynik , 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 , po czym zawartość rejestrów R1, R2 i R3 jest przesuwana w lewo o jeden bit (SHL). Po ośmiokrotnym wykonaniu powyższych operacji 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 do kojarzymy z klatkami operacyjnymi. Należy zauważyć, że w stanie mimo pozornie braku klatki operacyjnej wykonywana jest czynność „mikrooperacji pustej”.


TC M11 Slajd24.png
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 , 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 , jako , jako . Przyjmijmy również, że sygnały wyjściowe w poszczególnych klatkach operacyjnych sieci z rysunku są oznaczone , przy czym jest tak zwanym mikrorozkazem pustym.

TC M11 Slajd25.png
Odpowiednia tablica przejść wyjść automatu reprezentującego układ sterujący wynika bezpośrednio z uzyskanego grafu.