6. SYNTEZA UKŁADÓW SEKWENCYJNYCH 6.1. CEL ĆWICZENIA Układy sekwencyjne są to układy cyfrowe, których stan jest funkcją nie tylko sygnałów wejściowych, ale również historii układu. Wynika z tego, że struktura dowolnego układu sekwencyjnego musi zawierać przynajmniej jeden elementarny moduł pamiętający, np. przerzutnik. Do najbardziej typowych układów sekwencyjnych należą liczniki i rejestry. Strukturę bardziej złożonych układów można na ogół tak rozdzielić, aby wyodrębnić w nich te dwa typy układów. Celem niniejszego ćwiczenia jest poznanie metod syntezy liczników i rejestrów z wykorzystaniem elementarnych synchronicznych przerzutników scalonych, np. JK, JK-MS lub D wyzwalanych zboczem, oraz standardowych bramek logicznych. Ćwiczenie należy wykonać na zestawie UNILOG-2. 6.2. PODSTAWOWE WIADOMOŚCI TEORETYCZNE 6.2.1. Liczniki synchroniczne W licznikach synchronicznych wejścia zegarowe wszystkich przerzutników wchodzących w skład licznika są połączone razem (równolegle) i wysterowane jednym sygnałem. Wejścia informacyjne przerzutników są wysterowane poprzez układy kombinacyjne tak dobrane, aby licznik zmieniał swoje stany według określonego grafu przejść. Struktura licznika synchronicznego zbudowanego z przerzutników typu D została przedstawiona na rysunku 6.1. W praktyce układy kombinacyjne zazwyczaj ulegają znacznemu uproszczeniu poprzez minimalizację funkcji D 0 - D n-1 (na wejściach bloków, które je realizują, nie muszą występować wszystkie funkcje 0 - n-1 ; w szczególności D 0 - D n-1 mogą być funkcjami stałymi). Projektując układ sekwencyjny należy wyznaczyć tyle funkcji logicznych funkcji wzbudzeń, ile jest wejść informacyjnych we 100
wszystkich przerzutnikach. Wynika z tego, że dla licznika pracującego według określonego grafu przejść (stanów), ale zbudowanego raz na przerzutnikach typu D, a potem ponownie na przerzutnikach JK, liczba minimalizowanych funkcji jest w drugim przypadku dwukrotnie większa. W odniesieniu do przerzutników JK postać tych funkcji jest najczęściej dużo prostsza. Rys. 6.1. Ogólna struktura licznika synchronicznego zbudowanego z przerzutników typu D Podstawą projektowania synchronicznego układu sekwencyjnego jest graf przejść. Jego postać wynika z funkcji, jaką ma pełnić dany układ. Na rysunku 6.2a przedstawiono graf przejść licznika modulo 12, natomiast na rysunku 6.2b graf tego samego układu, ale z uwzględnieniem założenia, że jeśli licznik znajduje się w stanach większych od 11, to przejdzie do stanu 0 i dalej będzie realizował pętlę podstawową. Realizacja projektu licznika według grafu w wersji a (rys.6.2a) będzie prostsza, ponieważ na etapie założeń projektowych nie zostało narzucone zachowanie się licznika, gdy znajdzie się on w którymś ze stanów nie wchodzących w skład pętli podstawowej. Może zaistnieć nawet taka sytuacja, że stany nie wchodzące w skład pętli podstawo- 101
wej utworzą odrębną pętlę niespójną z pętlą podstawową. Układ działający według takiego grafu można projektować jedynie mając pewność, że żaden ze stanów spoza pętli podstawowej nigdy nie zostanie osiągnięty. Można to uzyskać na przykład poprzez zerowanie licznika na początku pracy za pomocą wejść asynchronicznych Reset. Inną metodą jest sprawdzenie, czy zaprojektowany układ samoczynnie, ze stanów nie wchodzących w skład pętli podstawowej, będzie osiągał którykolwiek ze stanów zawartych w pętli. Jeżeli warunek ten nie zostanie spełniony, należy narzucić zachowanie się układu dla każdego ze stanów nie wchodzących w skład pętli podstawowej, stosując do projektowania pełny układ grafu, na przykład jak na rysunku 6.2b. 0 1 2 3 4 5 a) 11 10 9 8 7 6 3 4 5 6 7 8 b) 2 1 0 11 10 9 15 14 13 12 Rys. 6.2. Graf przejść licznika synchronicznego modulo 12: a) bez zerowania stanów przypadkowych, b) z zerowaniem stanów przypadkowych Dalej przedstawiono metodę wyznaczania funkcji wzbudzeń dla poszczególnych wejść. Założono wykorzystanie przerzutników typu D, z czego wynika konieczność wyznaczenia czterech funkcji, tj. D 0 - D 3. W tym celu można przenieść graf do tablicy Karnaugha i posługując się tablicą wzbudzeń przerzutnika typu D (rys. 6.3a) należy okre- 102
ślić tablice Karnaugha dla wszystkich czterech wejść (rys. 6.4). Następnie należy zminimalizować funkcje wejściowe. Tablice Karnaugha dla grafu z rysunku 6.2a zostały przedstawione na rysunku 6.4. a) b) (t) (t+1) D(t) (t) (t+1) J(t) K(t) 0 0 0 0 0 0 X 0 1 1 0 1 1 X 1 0 0 1 0 X 1 1 1 1 1 1 X 0 Rys. 6.3. Tablice wzbudzeń przerzutnika: a) typu D, b) typu JK Rys. 6.4. Tablice Karnaugha funkcji D i dla licznika z rysunku 6.2a 103
Należy zwrócić uwagę na to, że ze stanów 12-15 nie są wyprowadzone strzałki, natomiast w kratkach tablicy im odpowiadających znajdują się symbole X, oznaczające dowolny stan (w literaturze opisuje się go również jako φ). Aby zwiększyć jasność, strzałki narysowano tylko na rysunku 6.4a; zaznaczono je w celach dydaktycznych, gdyż normalnie nie są one rysowane. Schemat połączeń układu realizującego licznik według grafu z rysunku 6.2a przedstawiono na rysunku 6.5. W celu czytelności rysunku nie zaznaczono na nim połączeń wyjść przerzutników z wejściami odpowiednich bramek, ograniczono się jedynie do ich opisu. 0 1 2 3 R D 0 0 R D 1 1 R D 2 2 R D 3 3 CK CK CK CK 0 S S 1 S 2 3 S 2 1 3 1 2 0 3 0 3 2 1 0 2 10 Rys. 6.5. Schemat połączeń licznika synchronicznego realizującego graf z rysunku 6.2a Dla układu opisanego grafem z na rysunku 6.2b tablice Karnaugha będą identyczne, z tym że w wierszu trzecim zamiast X należy 104
wpisać zera. Po minimalizacji otrzymujemy następujące postacie funkcji D 0 - D 3 : D 0 (t)= 0 (t)[ 3 (t)+ 2 (t)] 1( ) 3( ) 1( ) 0( ) 3( ) 1( ) 0( ) 2( ) 1( ) 0( ) 2( ) 1( ) 0( ) 3( t) [ 1( t) 0( t) ] 2 ( t) [ 1( t) 0( t) ] ( t) ( t) t t D t = t t t + t t t + t t t + t t t = = + = [ 3 2 ] 1( ) 0( ) [ ] = + lub D ( t) = ( t) + ( t) ( t) + ( t) ( t) + ( t) [ ][ ][ ] 1 1 0 1 0 3 2 ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) D = t t t + t t t + t t t t 2 3 2 1 3 2 0 3 2 1 0 lub D ( t) = ( t) ( t) + ( t) + ( t) ( t) + ( t) ( t) + ( t) [ [ ][ ][ ] 2 3 2 1 0 2 0 2 1 ( ) = [ ( ) ( ) ( ) ( ) + ( ) ( ) ( ) ( ) ( ) ( ) D t t t t t t t t t t t 3 3 2 1 0 3 2 1 3 2 0 W powyższych równaniach t oznacza czas, niekiedy w literaturze stosuje się oznaczenie n lub wielkość tę się pomija. Ten sam układ zrealizowany na przerzutnikach JK będzie wymagał znacznie prostszych funkcji sterujących wejściami informacyjnymi poszczególnych przerzutników. Synteza licznika synchronicznego z wykorzystaniem przerzutników JK zostanie przedstawiona na przykładzie licznika pracującego według następującego grafu: 0 2 6 8 7 3 Wykorzystujemy tablicę wzbudzeń przerzutnika J-K. (t) (t+1) J(t) K(t) 0 0 0 x 0 1 1 x 1 0 x 1 1 1 x 0 Tablica stanów oraz wzbudzeń dla omawianego układu przyjmuje następującą postać: 105
Stan licz- Chwila t Chwila t+1 Wartości wejść J(t) i K(t) nika 4 3 2 1 4 3 2 1 J 4 K 4 J 3 K 3 J 2 K 2 J 1 K 1 0 0 0 0 0 0 0 1 0 0 x 0 x 1 x 0 x 2 0 0 1 0 0 1 1 0 0 x 1 x x 0 0 x 6 0 1 1 0 1 0 0 0 1 x x 1 x 1 0 x 8 1 0 0 0 0 1 1 1 x 1 1 x 1 x 1 x 7 0 1 1 1 0 0 1 1 0 x x 1 x 0 x 0 3 0 0 1 1 0 1 1 0 0 x 1 x x 0 x 1 Na podstawie tablic stanów i wzbudzeń możemy dokonać minimalizacji funkcji dla wejść J(t) i K(t) poszczególnych przerzutników. Tablice Karnaugha dla poszczególnych wejść JK można przedstawić w następującej postaci: 4 (t) 3 (t) 2 (t) 1 (t) 00 01 11 10 00 0 x 0 0 01 x x 0 1 11 x x x x 10 x x x x J 4 (t) = 1 (t) 3 (t) 4 (t) 3 (t) 2 (t) 1 (t) 00 01 11 10 00 x x x x 01 x x x x 11 x x x x 10 1 x x x K 4 (t) = 1 4 (t) 3 (t) 2 (t) 1 (t) 00 01 11 10 00 0 x 1 1 01 x x x x 11 x x x x 10 1 x x x J 3 (t) = 4 (t) + 2 (t) 4 (t) 3 (t) 2 (t) 1 (t) 00 01 11 10 106
K 3 (t) = 1 00 x x x x 01 x x 1 1 11 x x x x 10 x x x x 4 (t) 3 (t) 2 (t) 1 (t) 00 01 11 10 00 1 x x x 01 x x x x 11 x x x x 10 1 x x x J 2 (t) =1 4 (t) 3 (t) 2 (t) 1 (t) 00 01 11 10 00 0 x 0 0 01 x x 0 1 11 x x x x 10 x x x x K 2 (t) = 1 (t) 3 (t) 4 (t) 3 (t) 2 (t) 1 (t) 00 01 11 10 00 0 x x 0 01 x x x 0 11 x x x x 10 1 x x x J 1 (t) = 4 (t) 2 (t) 1 (t) 4 (t) 3 (t) 00 01 11 10 00 x x 1 x 01 x x 0 x 11 x x x x 10 x x x x K 1 (t)= 3 (t) 107
Schemat logiczny licznika został przedstawiony na rysunku 6.6 (w literaturze czasami wejście zegarowe wyróżnione jest dodatkowo strzałką). 4 3 2 1 J J H J J CP CP CP CP H K H K K K Rys. 6.6. Schemat logiczny licznika synchronicznego pracującego według grafu: 0 2 6 8 7 3 6 8K itd. Podsumowując przedstawioną syntezę, można wymienić następującą kolejność czynności wykonanych przy projektowaniu układów synchronicznych: określić liczbę niezbędnych przerzutników k na podstawie wartości najwyższego stanu N występującego w grafie: k log 2 (N+1), na podstawie grafu przejść i tablic wzbudzeń przerzutnika określić tablicę Karnaugha dla każdego z wejść informacyjnych przerzutników, zminimalizować funkcje, otrzymane funkcje logiczne zrealizować za pomocą bramek logicznych. Gdy układ posiada małą liczbę stanów, a numer najwyższego stanu jest duży, nie opłaca się realizować funkcji układu wprost, tj. korzystać z takiej liczby przerzutników, jaka wynika z podanego powyżej toku postępowania. Stosuje się wówczas tzw. dekodowanie stanów. Polega ono na zastosowaniu w układzie licznika o pojemności równej ilości różnych stanów wraz z odpowiednim konwerterem kodu, który poszczególnym wewnętrznym stanom licznika przyporządkuje zewnętrzne numery stanów pojawiające się na wyjściu układu. Przykładowo na rysunku 6.7a przedstawiono graf układu synchronicznego posiadający dwa stany określone liczbą 0 i 9. Z przytoczonego wcześniej równania wynika, że do realizacji układu potrzebne byłyby cztery przerzutniki. Tymczasem na rysunku 6.7b pokazano prostą realizację tego układu za pomocą tylko jednego przerzutnika. 108
Szybkość pracy liczników synchronicznych jest duża. Częstotliwość graniczną licznika wyznacza czas propagacji jednego przerzutnika powiększony o czas propagacji sygnału przez najdłuższą ścieżkę w układzie kombinacyjnym. a) a) 0 90 b) b) 0 1 2 3 D CK Rys. 6.7. Przykład układu synchronicznego: a) graf układu, b) realizacja grafu za pomocą dekodowania stanów 6.2.2. Liczniki asynchroniczne W licznikach asynchronicznych impulsy zliczane podawane są na jedno lub tylko niektóre z wejść zegarowych przerzutników. W ćwiczeniu analizowane są najprostsze liczniki asynchroniczne, tworzone poprzez kaskadowe połączenie tzw. dwójek liczących, czyli liczników modulo 2. Takie kaskadowo połączone przerzutniki w ilości N tworzą licznik modulo 2 N, liczący do przodu lub do tyłu w zależności od sposobu sprzężenia poszczególnych przerzutników ze sobą. Aby otrzymać licznik liczący do przodu dla przerzutników, których stan zmienia się podczas zbocza narastającego na wejściu zegarowym, należy na wejście zegarowe kolejnej dwójki liczącej podać sygnał z wyjścia poprzedzającego przerzutnika. Dla licznika liczą- 109
cego do tyłu sytuacja będzie odwrotna - obrazuje to rysunek 6.8, który przedstawia dwa liczniki modulo 8: liczący do przodu (rys.6.8a) i liczący do tyłu (rys. 6.8b). a) b) Rys. 6.8. Licznik asynchroniczny modulo 8: a) liczący do przodu (w systemie dodawania), b) liczący do tyłu (w systemie odejmowania) Dla przerzutników, których stan zmienia się podczas zbocza opadającego na wejściu zegarowym (np. przerzutniki typu JK MS), tworzenie liczników liczących w tył i w przód odbywa się według zasady odwrotnej. W przypadku realizacji licznika modulo N, gdzie N jest różne od 2 k, naturalną pętlę licznika asynchronicznego należy skrócić. Do tego celu stosuje się układ kombinacyjny wykrywający stan N, wyjście zaś tego układu podawane jest na wejścia asynchroniczne, zerujące wszystkie przerzutniki (lub tylko te, których wyjścia w stanie N są równe 1). Licznik asynchroniczny zrealizowany w powyższy sposób ma tę wadę, że pojawia się w nim na krótki moment niedozwolony stan N. 110
Ponadto, jeśli czasy propagacji wejść zerujących poszczególnych przerzutników będą się znacznie różnić, licznik może działać nieprawidłowo. Należy stosować wówczas inne metody syntezy, które wykraczają jednak poza zakres niniejszego ćwiczenia. Przykład licznika asynchronicznego modulo 9 ilustruje rysunek 6.9. Układem kombinacyjnym wykrywającym stan 9 jest bramka NAND (można również wyjście bramki NAND połączyć z wejściami RESET wszystkich przerzutników). 6.2.3. Rejestry Rys. 6.9. Schemat licznika asynchronicznego modulo 9 Rejestry są układami służącymi do przechowywania informacji kilkubitowej. Informacja może być do rejestru wprowadzona lub z niego wyprowadzona równolegle albo szeregowo. W tym drugim przypadku mamy do czynienia z tzw. rejestrem przesuwnym, tj. układem, w którym informacja jest przemieszczana w prawo lub w lewo w takt impulsów zegarowych. Do budowy rejestrów najwygodniej jest używać przerzutników typu D, których istota działania polega na zapamiętaniu informacji podanej na wejścia D. Na rysunku 6.10 przedstawiono przykładowe rozwiązania rejestrów. Rysunek 6.10a obrazuje rejestr z wejściami i wejściami równoległymi, a rysunek 6.10b rejestr przesuwny z możliwością równoległego wprowadzania informacji. Przesuwanie informacji odbywa się w takt impulsów zegarowych podawanych na wejście CK1, natomiast wejście CK2 musi być w tym czasie w stanie niskim. W czasie wysokiego stanu na wejściu CK2 następuje przepisanie do rejestru infor- 111
macji z wejść A, B, C, D. Jeżeli wyjście szeregowe rejestru przesuwnego zostanie połączone z jego wejściem szeregowym, wówczas informacja zawarta w rejestrze będzie krążyć w takt impulsów zegarowych. W przypadku, gdy tylko jedno z wyjść rejestru będzie aktywne, to otrzymamy tzw. rozdzielacz, czyli układ, który uruchamia kolejno pewne obwody, każdy na czas trwania cyklu taktującego. a) D A B c D D D D CK CK CK CP CK CK We A We B We C We D b) Wyjścia równoległe A B C D wejście szeregowe D R D R D R R D wyjście szeregowe CK CK CK CK CK1 S S S S CK2 A B C D Wejścia równoległe Rys. 6.10. Rejestr 4-bitowy: a) z równoległym wprowadzeniem i wyprowadzeniem informacji; b)rejestr przesuwny z możliwością równoległego wprowadzenia informacji Rejestr przesuwny z zamkniętą pętlą, np. poprzez układ kombinacyjny, realizujący odpowiednio dobraną funkcję logiczną, tworzy rejestr liczący. Szczególnym przypadkiem rejestru jest licznik pierścieniowy zbudowany z N przerzutników, który zlicza impulsy w kodzie 1 z N; jego pojemność wynosi N. Układ taki pełni jednocześnie rolę rozdzielacza. Aby uniknąć konieczności ustawiania w tym układzie stanu początkowego, realizuje się tzw. liczniki pierścieniowe 112
samokorygujące, które niezależnie od tego, jaki będzie stan przerzutników na początku pracy licznika, samoczynnie dochodzą do cyklu roboczego, w którym krąży w liczniku pojedyncza jedynka lub zero. W celu uzyskania efektu krążenia jedynki należy zastosować w torze sprzężenia zwrotnego licznika funkcję kombinacyjną określoną wzorem: f = o + + + + N 1 2... 2 gdzie N oznacza liczbę przerzutników w liczniku. 6.3. PRZEBIEG ĆWICZENIA 1. Przed przystąpieniem do ćwiczenia należy przygotować w domu projekt licznika synchronicznego pracującego według grafu podanego przez prowadzącego lub według grafu własnego. Zbudować ten zaprojektowany układ i sprawdzić jego działanie. W sprawozdaniu umieścić tablice Karnaugha, schemat ideowy układu (wraz z oznaczeniami wszystkich wejść/wyjść) oraz przebiegi czasowe. 2. Zrealizować licznik asynchroniczny modulo 8 na przerzutnikach D oraz JK. Licznik powinien być wyposażony w dodatkowe wejście sterujące S, zmieniające kierunek zliczania. W sprawozdaniu umieścić schemat układu oraz przebiegi czasowe. 3. Zrealizować licznik asynchroniczny modulo 15. W sprawozdaniu zamieścić schemat układu oraz przebiegi czasowe. 4. Zrealizować na przerzutnikach typu D 6-bitowy rejestr przesuwny z zamkniętą pętlą. Do rejestru wprowadzić za pomocą wejść asynchronicznych jedynkę i zaobserwować krążenie informacji. 5. Zrealizować 4-bitowy licznik pierścieniowy (rozdzielacz): a) z krążącą jedynką, b) z krążącym zerem. Licznik powinien po kilku taktach zegarowych wchodzić we własną pętlę pracy bez względu na stan początkowy. W sprawozdaniu zamieścić schematy logiczne oraz przebiegi czasowe. 113
6.4. ZAGADNIENIA KONTROLNE 1. Czy dysponując dwoma dwuwejściowymi bramkami typu NAND można zrealizować układ sekwencyjny? 2. Omówić sposób projektowania liczników synchronicznych. 3. Uzasadnić od strony praktycznej, dlaczego funkcje sterujące przerzutników JK są prostsze niż funkcje sterujące przerzutnikami typu D, realizującymi ten sam układ. 4. Porównać liczniki synchroniczne i asynchroniczne, ich wady i zalety. 5. Określić częstotliwość graniczną zaprojektowanego w punkcie 6.2.1 licznika (czasy propagacji układów TTL przyjąć z katalogu). 6. Uzasadnić na podstawie analizy kolejnych stanów omówioną w punkcie 6.2.2 metodę sprzęgania przerzutników licznika asynchronicznego w celu otrzymania licznika zliczającego do przodu lub do tyłu. 7. Ile przerzutników należy użyć, aby uzyskać pamięć o pojemności 0,5 kb? 8. Zaprojektować schemat rejestru przesuwnego z przesuwaniem informacji w lewo lub w prawo w zależności od stanu dodatkowego wejścia sterującego S. 9. Zaprojektować układ wykrywający kombinację 0110. 10. Zaprojektować licznik asynchroniczny modulo 99 pracujący w kodzie binarnym. 114
LITERATURA 1. KALISZ J. - Podstawy elektroniki cyfrowej, WKiŁ, Warszawa 1991 2. Laboratorium podstaw techniki cyfrowej, praca zbiorowa pod red. L. Wasilewskiego WSM, Gdynia 1991 3. MAJEWSKI W., Układy logiczne, WN, Warszawa 1993 4. PIEŃKOS J., TURCZYŃSKI J., Układy scalone TTL w systemach cyfrowych. WKiŁ, Warszawa 1986 5. SASAL W., Układy scalone UCA 64 / UCY 74. Parametry i zastosowania, WKiŁ, Warszawa 1985 6. TRACZYK W., Układy cyfrowe. Podstawy teoretyczne i metody syntezy, WNT, Warszawa 1986 115
7. LICZNIKI I REJESTRY SCALONE 7.1. CEL ĆWICZENIA Celem ćwiczenia jest zapoznanie się z podstawowymi rodzajami liczników i rejestrów scalonych. Ćwiczący powinien zaznajomić się z budową najczęściej stosowanych liczników i rejestrów, ich podstawowymi parametrami, rodzajami wejść i wyjść. W ćwiczeniu wykorzystuje się modułowy zestaw elementów logicznych UNILOG-2. 7.2. PODSTAWOWE WIADOMOŚCI TEORETYCZNE 7.2.1. Scalone liczniki MSI Liczniki służą do zliczania lub podziału częstotliwości sygnału wejściowego. Są to układy sekwencyjne, których graf tworzy zamkniętą pętlę stanów. Zależnie od sposobu podawania impulsów na wejścia zegarowe przerzutników tworzących licznik rozróżniamy liczniki: synchroniczne, gdy wejścia zegarowe wszystkich przerzutników połączone są równolegle, asynchroniczne, gdy impulsy zliczane nie są podawane jednocześnie na wszystkie wejścia zegarowe; w skrajnym przypadku impulsy zliczane mogą być podawane tylko na wejście zegarowe przerzutnika, który reprezentuje najmniej znaczący bit kodu licznika. W technice TTL produkowane są przede wszystkim 4-bitowe liczniki binarne. Do najczęściej stosowanych należą liczniki średniej skali integracji (ang. Medium Scale Integration), np. UCY 7490, UCY 7492, UCY 7493, UCY 74190, UCY 74192, UCY 74193. Określenie średniej skali integracji związane jest z układami scalonymi zawierającymi od kilkunastu do 100 podstawowych bramek. 116
7.2.1.1. Licznik UCY 7490 Licznik UCY 7490 składa się z czterech przerzutników, które zostały połączone tak, że tworzą licznik modulo 2 oraz licznik modulo 5. Licznik ma bramkowe wejścia; dwa z nich R0(1), R0(2) służą do ustawiania licznika w stan zerowy, natomiast dzięki pozostałym R9(1) i R9(2) ustawia się licznik w stan będący dwójkowym przedstawieniem liczby 9. Schemat logiczny licznika UCY 7490 pokazano na rysunku 7.1. Rys. 7.1. Scalony licznik asynchroniczny UCY 7490 - schemat logiczny Licznik UCY 7490 może pracować w kodzie BCD (o wagach 8, 4, 2, 1). Aby uzyskać tego rodzaju pracę, należy połączyć na zewnątrz układu wyjście A z wejściem B WE, natomiast impulsy zliczane należy podać na wejście A WE. Wejścia R0(1), R0(2), R9(1), R9(2), jeśli nie są wykorzystywane do ustawiania licznika, należy połączyć z masą. Przebiegi sygnałów w tym układzie przedstawiono na rysunku 7.2. Licznik UCY 7490 może również zliczać impulsy w kodzie o wagach 5, 4, 2, 1. Pracę w tym kodzie uzyskuje się poprzez podanie impulsów zegarowych na wejście B WE, przy zewnętrznym połączeniu D z A WE. 117
Przebiegi czasowe licznika pracującego w kodzie 5421 pokazano na rysunku 7.3 CP (1) A (2) B (4) C (8) D 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 Rys. 7.2. Przebiegi czasowe licznika UCY 7490 pracującego w kodzie 8421 CP (1) B (2) C (4) D (5) A 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 Rys. 7.3. Przebiegi czasowe licznika UCY 7490 pracującego w kodzie 5421 7.2.1.2. Licznik UCY 7492 Licznik UCY 7492 zawiera cztery przerzutniki JK Master-Slave połączone w taki sposób, że jeden tworzy licznik modulo 2, a pozostałe trzy tworzą licznik modulo 6. Oba liczniki mogą pracować niezależnie lub mogą być połączone tworząc licznik modulo 12. Wszystkie przerzutniki licznika mają wspólne zerowanie, które zrealizowane jest za pomocą dwuwejściowej bramki NAND. Schemat logiczny licznika UCY 7492 przedstawiono na rysunku 7.4. 118
Rys. 7.4. Scalony licznik asynchroniczny UCY 7492 - schemat logiczny 7.2.1.3. Licznik UCY 7493 Licznik UCY 7493 (schemat logiczny - rys.7.5) zawiera cztery przerzutniki JK-MS, które zostały połączone w ten sposób, że jeden z nich tworzy licznik modulo 2, natomiast trzy pozostałe tworzą licznik modulo 8. Przerzutniki te mogą również pracować jako licznik modulo 16. W tym celu należy na wejście A WE podać impulsy zegarowe oraz połączyć zewnętrznie A z B WE. Układ UCY 7493 posiada również bramkowe wejście zerujące R = R01 () R02 ( ). Przebiegi czasowe licznika modulo 16 wykorzystującego układ UCY 7493 pokazano na rysunku 7.6. Liczniki asynchroniczne UCY 7490, UCY 7492, UCY 7493 mogą pracować jako liczniki o skróconym cyklu w stosunku do pojemności maksymalnej. Skrócenie cyklu pracy uzyskuje się poprzez dekodowanie stanu przerzutników, odpowiadającego wymaganej pojemności stanu licznika, i wykorzystywanie wytworzonego w ten sposób 119
sygnału do zerowania licznika. Przykładowe schematy liczników o skróconej pojemności przedstawiono na rysunkach 7.7, 7.8 i 7.9. Rys. 7.5. Scalony licznik asynchroniczny UCY 7493 schemat logiczny CP (1) A (2) B (4) C (8) D 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 Rys. 7.6. Przebiegi czasowe licznika modulo 16 zbudowanego z wykorzystaniem układu UCY 7493 120
Rys. 7.7. Licznik modulo 10 zbudowany z wykorzystaniem układu UCY 7493 Rys. 7.8. Licznik modulo 11 zbudowany z wykorzystaniem układu UCY 7493 Rys. 7.9. Licznik modulo 8 zbudowany z licznika UCY 7490 Liczniki UCY 7490, UCY 7492 i UCY 7493 można łączyć ze sobą tworząc liczniki o większej pojemności. Schemat licznika o pojemności 926 (modulo 926), pracującego w kodzie BCD (8421), został przedstawiony na rysunku 7.10. 121
0 10 1 10 2 10 B WE A B C D 7490 A B C D B WE 7490 7490 B WE A B C D impulsy zliczane A WE R0(1) R0(2) R9(1) R9(2) A WE R0(1) R0(2) R9(1) R9(2) A WE R0(1) R0(2) R9(1) R9(2) 7.2.1.4. Licznik UCY 74193 Rys. 7.10. Licznik modulo 926 Układ UCY 74193 jest dwójkowym licznikiem rewersyjnym, który składa się z czterech przerzutników, w związku z czym maksymalna jego pojemność wynosi 16. Licznik UCY 74193 posiada następujące wejścia/wyjścia: wejścia równoległe A, B, C, D do wprowadzania informacji, wejście WR sterujące równoległym wpisywaniem informacji (LO- AD), wejście C + dla impulsów zegarowych, gdy licznik zlicza w systemie dodawania (COUNT UP), wejście C - dla impulsów zegarowych, gdy licznik zlicza w systemie odejmowania (COUNT DOWN), wejście zerujące przerzutniki R (RESET), wyjścia równoległe A, B, C, D, wyjście przeniesienia P + (CARRY), wyjście pożyczki P - (BORROW). Do podstawowych parametrów dynamicznych układu UCY 74193 zaliczamy czasy propagacji poszczególnych sygnałów. Zmiana stanu wyjść pod wpływem sygnału podanego na wejście zerujące R następuje po czasie t phl = 40 ns (wymagany minimalny czas trwania impulsu na wyjściu R wynosi 20 ns). Zmiany stanu wyjść pod wpływem zmiany stanu wejścia wpisującego WR występują po czasie t phl = 40 lub 35 ns (minimalny czas trwania impulsu na wejściu WR 122
wynosi również 20 ns). Zmiany stanu wyjść pod wpływem wejść zegarowych C +, C - obserwuje się po czasie t phl = 47 lub 38 ns. Działanie układu UCY 74193 zostało opisane w tabeli 7.1. Tabela 7.1 Rodzaje pracy licznika UCY 74193 C+ C WR Funkcje układu 0 impulsy 1 0 1 impulsy 0 1 1 wprowadzenie równoległe informacji zliczanie do przodu (w systemie dodawania) zliczanie do tyłu (w systemie odejmowania) Licznik UCY 74193 można również wykorzystać do budowy liczników o pojemności mniejszej niż 16. W tym celu należy np. ustawić wszystkie przerzutniki w stan początkowy 0000 i przygotować licznik do pracy w systemie dodawania (impulsy zliczane podajemy na wejście C + ). Następnie należy zdekodować liczbę N określającą pojemność (współczynnik podziału); stan ten powinien wyzerować licznik. Po wyzerowaniu licznika cykl pracy powtarza się, na wyjściu licznika uzyskuje się liczby z zakresu od 0 do N-1, które przedstawione są w kodzie binarnym naturalnym. Jest to tym samym dzielnik częstotliwości o współczynniku podziału N. Na rysunku 7.11 przedstawiono zrealizowany tą metodą licznik modulo 12. impulsy zliczane,,1" A B C D C+ 74193 C- WR A B C D R P+ f f N = 12 ustawienie stanu początkowego 0000 20ns Rys. 7.11. Układ UCY 74193 jako licznik modulo 12 Inna metoda uzyskania współczynnika podziału częstotliwości wynoszącego 16-N polega na wprowadzeniu równoległym na wejścia A, B, C, D liczby N przedstawionej w kodzie binarnym naturalnym. 123
Liczba ta jest wpisywana do licznika za pomocą impulsów przeniesienia P +, które pojawiają się z częstotliwością f/(16-n). Na wyjściu licznika uzyskuje się liczby przedstawione w kodzie binarnym naturalnym z zakresu od N do 15 (pojemność licznika wynosi 16-N). Rysunek 7.12 pokazuje licznik modulo 10 wyróżniający stany od 6 do 15. Dzielnik częstotliwości f/n można również uzyskać z licznika zliczającego do tyłu. W tym celu na wejścia równoległe A, B, C, D należy podać liczbę N-1, która wpisywana jest do licznika za pomocą impulsów P. Na tym wyjściu impulsy pojawiają się z częstotliwością f/n. Na rysunku 7.13 przedstawiono przykładowo licznik modulo 13. impulsy zliczane f,,1" A B C D C+ 74193 C- WR A B C D R P+ f 16-N = f 10 0 1 1 0 20ns(min) Rys. 7.12. Układ UCY 74193 jako licznik modulo 10 impulsy zliczane f,,1" C+ A B C D 74193 C- WR A B C D R P- f f = N 13 zerowanie 0 0 1 1 20ns(min) Rys. 7.13. Układ UCY 74193 jako licznik modulo 13 zliczający do tyłu 124
Licznik UCY 74193 można łączyć kaskadowo, uzyskuje się w ten sposób zwiększenie pojemności. Przykładowe rozwiązania liczników zliczających modulo 58 i modulo 45 pokazano na rysunkach 7.14 i 7.15. 2 0 2 1 2 2 2 3 2 4 2 5 2 6 2 7 f 58 impulsy zliczane,,1" A B C D C+ P+ 74193 C- R,,1" C+ A B C D 74193 C- R Rys. 7.14. Licznik modulo 58 2 0 2 1 2 2 2 3 2 4 2 5 2 6 2 7 impulsy zliczane f,,1" C+ A B C D A B C D C+ 74193 P+ 74193 C- C- WR A B C D R WR A B C D R,,1" P+ f 45 1 1 0 1 1 1 1 0 Rys. 7.15. Licznik modulo 45 7.2.1.5. Układ UCY 74192 Układ UCY 74192 zawiera rewersyjny licznik synchroniczny modulo 10 liczący w kodzie BCD (8421). Dekada UCY 74192 ma następujące wejścia/wyjścia: wejścia równoległe A, B, C, D, wejście C + dla impulsów zegarowych, gdy licznik zlicza do przodu, wejście C dla impulsów zegarowych, gdy licznik zlicza do tyłu, wejście zerujące R, 125
wejście równoległe sterujące wpisywaniem równoległym informacji WR, wyjścia równoległe A, B, C, D, wyjście przeniesienia P +, wyjście pożyczki P. Działanie układu UCY 74192 można opisać za pomocą tabeli 7.2. Rodzaje pracy licznika UCY 74192 Tabela 7.2 C + C WR Funkcje układu 0 impulsy 1 0 1 impulsy 0 1 1 wprowadzenie równoległe informacji zliczanie do przodu zliczanie do tyłu Czasy propagacji sygnałów z wejść R, WR, C +, C - na wyjścia układu UCY 74192 są takie same jak dla układu UCY 74193. W przypadku kaskadowego łączenia liczników sygnały przeniesienia P + i pożyczki P - przechodzące przez bramki podlegają opóźnieniu, w związku z czym czasy propagacji wynoszą odpowiednio: dla P + - t plh = 26 ns, t phl = 24 ns, dla P - - t plh = 24 ns, t phl = 24 ns. 7.2.1.6. Licznik UCY 74191 Układ UCY 74191 zawiera dwójkowy rewersyjny licznik synchroniczny modulo 16 zbudowany z przerzutników JK. Licznik UCY 74191 ma następujące wejścia/wyjścia: wejścia równoległe A, B, C, D, wejście zegarowe CP (oznaczone również jako C), wejście D/U (DOWN/UP), które umożliwia zmianę kierunku liczenia; przy stanie 0 na tym wejściu następuje zliczanie do przodu, natomiast przy stanie 1 zliczanie do tyłu, przy czym zmiana stanu na wejściu D/U może nastąpić wówczas, gdy na wejściu CP jest stan logiczny 1, 126
wejście G (ENABLE), służące do kontroli liczenia; zliczanie impulsów zegarowych następuje wówczas, gdy G ma stan logiczny 0, wejście WR (LOAD), które steruje wpisywaniem równoległym informacji; wprowadzanie informacji z wejść A, B, C, D na wyjścia licznika A, B, C, D następuje wówczas, gdy WR = 0, wyjścia równoległe licznika A, B, C, D, wyjście M (MAX/MIN OUTPUT), na którym pojawia się dodatni impuls o szerokości równej jednemu okresowi zegarowemu w momencie, gdy licznik przepełnia się lub nie dopełnia, wyjście RC (RIPPLE CLOCK), na którym pojawia się ujemny impuls, gdy licznik przepełnia się lub nie dopełnia oraz gdy na wejściu zegarowym jest stan logiczny 0. Układ UCY 74191 umożliwia tworzenie liczników o pojemności mniejszej od 16 (metoda skracania cyklu pracy jest podobna do metod omawianych dla licznika UCY 74193). Istnieje również możliwość tworzenia liczników wielobitowych, asynchronicznych, synchronicznych z przeniesieniami szeregowymi oraz równoległymi. Przykład konstrukcji licznika asynchronicznego o pojemności 256 przedstawiono na rysunku 7.16. f we impulsy zliczane CP D/U WR 74191 R C G CP D/U WR 74191 R C G f wy,,1" praca stop do przodu tryb pracy (liczenia) do tyłu Rys. 7.16. Licznik asynchroniczny modulo 256 Zagadnienia związane z układem UCY 74191 można również odnieść do synchronicznego licznika dziesiętnego UCY 74190, który posiada jedynie inny segment logiczny oraz inny kod na wyjściach. Liczniki UCY 74160 i UCY 74162 są asynchronicznymi dekadami pracującymi w kodzie BCD (8421). Licznik UCY 74160 ma zerowanie asynchroniczne, a licznik UCY 74162 synchroniczne. 127
Natomiast układy UCY 74161 i UCY 74163 są 4-bitowymi synchronicznymi licznikami dwójkowymi zliczającymi do przodu. Licznik UCY 74161 posiada zerowanie asynchroniczne, a UCY 74163 synchroniczne. Omawiane liczniki mają następujące wejścia/wyjścia: wejścia równoległe A, B, C, D, wyjścia równoległe A, B, C, D, wejście zerujące R, wejście zegarowe CP, wejście T bramkujące przeniesienie, wejście P bramkujące zliczanie, wyjście przeniesienia Y. 7.2.2. Scalone rejestry MSI Rejestry służą do przechowywania informacji kilkubitowej. W zależności od sposobu wprowadzania i wyprowadzania informacji rejestry dzielimy na: szeregowe, umożliwiające szeregowe wprowadzanie i wyprowadzanie informacji, równolegle, umożliwiające równoległe wprowadzanie i wyprowadzanie informacji, szeregowo-równoległe, umożliwiające szeregowe wprowadzanie i równoległe wyprowadzanie informacji, równoległo-szeregowe, umożliwiające równoległe wprowadzanie i szeregowe wyprowadzanie informacji. Rejestry szeregowe stwarzają możliwość przesyłania informacji w prawo albo w lewo (rejestry jednokierunkowe) lub też zarówno w prawo, jak i w lewo (rejestry rewersyjne). 7.2.2.1. Rejestr UCY 7475 Układ UCY 7475 zawiera cztery przerzutniki synchroniczne typu D, przy czym przerzutnik pierwszy z drugim i trzeci z czwartym mają 128
wspólne wejścia zegarowe. Przez zewnętrzne połączenie wszystkich wejść zegarowych uzyskuje się z układu rejestr równoległy. Poprzez dodatkowe zewnętrzne połączenie wyjść kolejnych przerzutników z wejściami D przerzutników następnych otrzymuje się rejestr szeregowy. Schemat logiczny układu UCY 7475 przedstawiono na rysunku 7.17. (2) (16) (3) (15) (10) (6) (7) (9) D D D D Ucc 5 CP CP CP CP GND 12 (13) (4) E1-2 E3-4 (1) (14) (11) (8) Rys. 7.17. Schemat logiczny rejestru UCY 7475 7.2.2.2. Rejestr UCY 7495 Układ UCY 7495 jest rejestrem przesuwającym, zbudowanym z przerzutników RS-MS, umożliwiającym równoległe wprowadzanie informacji. Rejestr ten ma następujące wejścia/wyjścia: wejścia równoległe A, B, C, D, wyjścia równoległe A, B, C, D, wejście szeregowe SI (SERIAL INPUT), służące do szeregowego wprowadzania informacji, wejście sterujące przesuwaniem i wprowadzaniem równoległym informacji do rejestru MC (MODE CONTROL), wejście zegarowe C 1, taktujące przesuwanie informacji w prawo (R SHIFT), wejście zegarowe C 2, służące do równoległego wprowadzania informacji oraz do taktowania przesuwania informacji w lewo (L SHIFT). Układ UCY 7495 może pełnić funkcję rejestru przesuwającego w prawo, w lewo oraz buforu; funkcje te przedstawiono w tabeli 7.3. Przykładem zastosowania rejestru UCY 7495 jest układ zamiany postaci szeregowej informacji na równoległą. Na rysunku 7.18 przedstawiono 4-bitową wersję tego układu. Przesyłanie szeregowe polega 129
na przekazywaniu informacji bit po bicie za pomocą jednego przewodu, natomiast przesyłanie równoległe na jednoczesnym przekazywaniu wszystkich bitów informacji (liczba przewodów jest równa liczbie bitów). Przed rozpoczęciem wprowadzania informacji do układu przedstawionego na rysunku 7.18 należy na wejście ustawienie stanu początkowego podać impuls jedynkowy. Wówczas przerzutnik A układu zostanie ustawiony w stan odpowiadający jedynce logicznej, natomiast wszystkie pozostałe przerzutniki zostaną wyzerowane. Następnie, podając impulsy prostokątne na wejście przesuwanie, wprowadza się do rejestru informację szeregową podawaną na wejście SI rejestru. Po czterech impulsach przesuwających informacja szeregowa zostanie wprowadzona do rejestru, wówczas też przerzutnik JK zostaje ustawiony w stan odpowiadający jedynce logicznej. Poziom wysoki na wyjściu tego przerzutnika sygnalizuje więc zakończenie konwersji. Funkcje Rodzaje pracy rejestru UCY 7495 Połączenia zewnętrzne Warunki Stan wejścia sterującego MC Informacja wejściowa Tabela 7.3 Zegar przesuwanie w prawo 0 SI C 1 wprowadzanie równoległe 1 wejścia C 2 informacji A, B, C, D przesuwanie w lewo D z C C z B B z A 1 wejście D C 2 130
zakończenie konwersji 2 0 2 1 2 2 2 3 E 5V J S informacja wprowadzona szeregowo A B C D SI 7495 MC C 1 C 2 A B C D CP K 7476 R przesuwanie 5V ustawianie stanu początkowego Rys. 7.18. Układ do zmiany postaci szeregowej informacji na równoległą 7.3. PRZEBIEG ĆWICZENIA 1. Zapoznać się z budową i zasadą działania układu UCY 7490. Połączyć układ tak, aby pracował w kodzie 8421 i 5421. Narysować przebiegi czasowe. Określić dokładnie rolę wejść R0(1), R0(2), R9(1), R9(2). 2. Zapoznać się z budową i zasadą działania układu UCY 7492. Narysować przebiegi czasowe licznika modulo 12. Uwaga w programie EWB 5.12 oraz Multisim 2001 układ UCY 7492 został źle zaprojektowany 3. Zapoznać się z budową i zasadą działania układu UCY 7493. Na podstawie tego układu zbudować licznik modulo 16, 10, 13. Narysować przebiegi czasowe. 4. Zapoznać się z budową i zasadą działania układów UCY 74193, UCY 74192, UCY 74191. Określić rolę wszystkich wejść oraz wyjść. Wykorzystując te układy zbudować licznik modulo N zliczający do przodu oraz do tyłu (liczbę N poda prowadzący zajęcia lub należy ją określić samodzielnie). Narysować przebiegi czasowe. 131
5. Zbudować licznik zliczający od N 1 do N 2 (liczby N 1, N 2 poda prowadzący zajęcia lub należy ją określić samodzielnie). 6. Zapoznać się z budową i zasadą działania układów UCY 7475, UCY 7495. 7. Sprawdzić działanie układu konwersji informacji szeregowej na równoległą dla liczb 0000, 1111, 1100, 0011, 0101, 1010. Wyjaśnić szczegółowo działanie układu. Przedstawić wykresy czasowe. 8. Zbudować układ służący do zmiany czterobitowej informacji równoległej na szeregową (projekt wraz z oznaczeniami końcówek należy przygotować w domu przed przystąpieniem do ćwiczenia). Wyjaśnić szczegółowo działanie układu. Przedstawić wykresy czasowe. Sprawozdanie powinno zawierać: a) krótkie omówienie przebiegu ćwiczenia laboratoryjnego (opis badanych układów, schematy zaprojektowanych liczników oraz rejestrów, przebiegi czasowe, wnioski). b) przykłady zastosowania liczników scalonych oraz rejestrów, c) opracowanie zagadnień podanych przez prowadzącego. 7.4. ZAGADNIENIA KONTROLNE 1. Omówić krótko budowę i zasadę działania rejestrów UCY 74164, UCY 74165, UCY 74194, UCY 74198, UCY 74174. 2. Podać przykłady zastosowań liczników. 3. Podać przykład rozwiązania układu wprowadzania informacji ze wspólnej szyny do rejestrów równoległych (omówić działanie układu, narysować przebiegi czasowe). 4. Zaprojektować licznik pierścieniowy z krążącym stanem zero. 5. Przedstawić i omówić licznik pierścieniowy z możliwością eliminowania błędnych stanów układu. 6. Zaprojektować licznik modulo N zliczający w kodzie Johnsona. 132
7. Omówić rejestry liniowe. 8. Zaprojektować układ generujący ciąg binarny (wykorzystać rejestr przesuwający): a) -101011001000111- b) -100010011010111- c) -011101100101000-9. Omówić rejestry liniowe jako dzielniki częstotliwości. 10. Omówić rejestry liczące. 11. Omówić liczniki programowalne. 12. Zaprojektować generator określonej liczby impulsów prostokątnych. 13. Zbudować licznik, na którego wyjściach uzyskuje się liczby: 0 1 2 3... 14 15 14 13... 0 1 2...itd. 14. Podać przykłady wykorzystania liczników UCY 74160, UCY 74161, UCY 74162 i UCY 74163. 133
LITERATURA 1. KALISZ J., Podstawy elektroniki cyfrowej, WKiŁ, Warszawa 1991 2. MAJEWSKI W., Układy logiczne, WN, Warszawa 1993 3. PIEŃKOS J., TURCZYŃSKI J., Układy scalone TTL w systemach cyfrowych, WKiŁ, Warszawa 1986 4. SASAL W., Układy scalone UCA 64 / UCY 74. Parametry i zastosowania, WKiŁ, Warszawa 1985 5. TRACZYK W., Układy cyfrowe. Podstawy teoretyczne i metody syntezy, WNT, Warszawa 1986 134