ZAŁĄCZNIK
PODSTAWOWE WIADOMOŚCI TEORETYCZNE
Licznik jest to układ cyfrowy sekwencyjny, służący do zliczania i pamiętania liczby impulsów podawanych na jego wejście zliczające.
Oprócz wejścia dla impulsów zliczanych, licznik ma zazwyczaj wejście ustawiające jego stan początkowy. Ustawienie wszystkich przerzutników, z których jest zbudowany licznik, w stan 0 nazywa się zerowaniem licznika.
Podstawowym elementem liczników jest przerzutnik synchroniczny. Liczniki są budowane w ten sposób, że wyjście przerzutnika Q jest jednocześnie wyjściem licznika. Liczba wyjść licznika jest równa liczbie przerzutników i określana mianem długości licznika.
Określona kombinacja stanów przerzutników, z których zbudowano licznik jest nazywana stanem licznika. Jeżeli licznik zbudowano z n przerzutników, to maksymalna liczba stanów licznika wynosi Nmax = 2n. Rzeczywista liczba stanów licznika musi więc spełniać nierówność N ≤ 2n. Liczba N jest nazywana pojemnością licznika. Na przykład licznik zbudowany z 4 przerzutników może mieć nie więcej niż 16 stanów.
Jeżeli licznik przechodzi przez wszystkie stany cyklicznie (tzn. po przejściu N stanów cykl jest powtarzany), to licznik taki nazywamy licznikiem modulo N (w skrócie mod N). Po podaniu na jego wejście zliczające K impulsów, licznik taki wskaże zliczenie L impulsów, gdzie L = K mod N jest resztą z dzielenia całkowitego liczby K przez N. Jeżeli licznik przechodzi przez wszystkie stany jednokrotnie (i po osiągnięciu ostatniego pozostaje w nim), to taki licznik nazywamy licznikiem do N. Ponowne użycie takiego licznika wymaga wcześniejszego ustawienia go w stan początkowy (wyzerowania). W praktyce mamy do czynienia przeważnie z licznikami zliczającymi w trybie mod N.
Liczniki mogą zwiększać swoją zawartość w miarę doprowadzania kolejnych impulsów na wejście, tzn., że wartość n-bitowego słowa wyjściowego wzrasta zgodnie z zależnością
QN+1=QN+1
O takich licznikach mówi się, że zliczają w przód. Jeżeli zawartość licznika (stan wyjść) zmniejsza się w miarę doprowadzania impulsów wejściowych
QN+1=QN-1
to liczniki takie są nazywane układami zliczającymi wstecz. Istnieją liczniki mogące zliczać zarówno w przód, jak i wstecz, nazywane licznikami rewersyjnymi.
Liczniki są szczególnym rodzajem układów sekwencyjnych synchronicznych. Ta szczególność polega na tym, że przebieg zegarowy jest jednocześnie jedynym sygnałem wejściowym licznika, a zliczane impulsy są impulsami przebiegu synchronizującego pracę przerzutników.
Liczniki budowane z przerzutników bardzo często w taki sposób, że wyjście przerzutnika jest źródłem sygnału zegarowego (wejściowego) dla kolejnego przerzutnika. Liczniki takie są nazywane licznikami szeregowymi lub asynchronicznymi. Druga nazwa może być nieco myląca, wziąwszy pod uwagę fakt, że licznik jest zbudowany z przerzutników synchronicznych. Przy połączeniu szeregowym przerzutników, zmianę stanu przerzutnika następnego powoduje przerzutnik poprzedni. Zliczane impulsy są podawane tylko do jednego przerzutnika. Stąd też nazwa liczniki asynchroniczne - nie wszystkie przerzutniki działają synchronicznie ze zliczanym impulsem.
Liczniki scalone są budowane również jako synchroniczne (równoległe). W liczniku równoległym sygnał zegarowy (będący dla licznika zawsze przebiegiem impulsów zliczanych) jest doprowadzony jednocześnie do wejść synchronizujących wszystkich przerzutników. Pojawienie się kolejnego impulsu zliczanego sprawia, że wszystkie przerzutniki jednocześnie (współbieżnie) przetwarzają informację wejściową i czas ustalania się kolejnego stanu licznika wyznacza przerzutnik o najdłuższym czasie propagacji. Licznik taki jest znacznie szybszy od licznika szeregowego, jednak jego struktura jest bardziej złożona. Liczniki asynchroniczne są prostsze w budowie od liczników synchronicznych, lecz szeregowe działanie przerzutników sprawia, że ustalenie się nowej liczby w liczniku szeregowym następuje po dłuższym czasie niż w liczniku równoległym. Mimo tej wady liczniki szeregowe są często stosowane w układach automatyki, gdzie szybkość działania nie jest parametrem limitującym zastosowanie licznika, a najważniejszą sprawą jest prostota działania i mała liczba elementów z jakich zbudowano licznik.
W wielu licznikach scalonych część przerzutników pracuje synchronicznie (impuls zliczany jest doprowadzony jednocześnie do ich wejść zegarowych), a część asynchronicznie (ich wejścia zegarowe są sterowane z wyjść innych przerzutników). Nazywane są one licznikami asynchroniczno-synchronicznymi lub mniej precyzyjnie licznikami asynchronicznymi.
Najczęściej stosowanymi licznikami są liczniki zliczające mod 10 i mod 16. Liczniki mod 10 nazywane są licznikami dziesiętnymi lub dekadami. Liczniki mod 16 nazywa się licznikami dwójkowymi (binarnymi). Zwraca się uwagę na to nazewnictwo z tego względu, że w obu licznikach liczba zliczonych impulsów jest reprezentowana w zapisie binarnym, a nie tylko (jak sugerowałaby nazwa) w liczniku mod 16.
Obecnie prawie wyłącznie stosuje się liczniki scalone.
Scalone liczniki synchroniczne
Ze względu na pewne niekorzystne właściwości liczników asynchronicznych, częściej wykorzystuje się liczniki synchroniczne. Układy te charakteryzują się jednoczesną pracą wszystkich przerzutników, synchronizowanych impulsami taktującymi doprowadzanymi do zwartych wejść zegarowych. Dlatego są też nazywane licznikami równoległymi. Przerzutniki nie pracują w układach dwójek liczących, zmieniających stan po każdym impulsie zegarowym. Impuls synchronizujący stanowi przyzwolenie na zadziałanie, jednak o tym, jaki stan zostanie przyjęty przez dany przerzutnik, decydują stany logiczne na jego wejściach informacyjnych J, K (lub D) oraz wejściach asynchronicznych. Widać więc, że przerzutniki synchroniczne muszą mieć rozbudowany układ programujący działanie poszczególnych przerzutników, nazywany także układem przeniesienia. W licznikach, będących układami sekwencyjnymi, na stan danego przerzutnika wpływają stany pozostałych przerzutników. Przekazywanie informacji o ich stanie może się odbywać szeregowo - z przerzutnika na przerzutnik i tak pracujący układ jest nazywany licznikiem z przeniesieniem szeregowym. Jeżeli o stanie danego przerzutnika zadecyduje element nadzorujący jednocześnie stany wszystkich przerzutników poprzedzających, to układ działający w ten sposób jest nazwany licznikiem z przeniesieniem równoległym.
Liczniki `160 i `161
Liczniki scalone `160 i `161 są synchronicznymi licznikami jednokierunkowymi zliczającymi w przód, posiadającymi możliwość ustawiania w dowolny stan początkowy. Oba posiadają identyczne wejścia, wyjścia, a także konfigurację wyprowadzeń, dlatego omawiane są wspólnie. Jedyna różnica między nimi jest taka, że licznik `160 jest licznikiem mod_10 (dziesiętnym), liczącym w kodzie BCD, a licznik `161 jest licznikiem mod_16 (binarnym).
Rys. 1. Licznik `160 (`161) - symbol logiczny
Symbol logiczny licznika `160 (`161) przedstawiono na rysunku 1. Oba układy posiadają następujące wejścia:
zliczające CLK (ang. Clock Input) - impulsy doprowadzone do wejścia CLK są dodawane do aktualnej zawartości licznika. Aktywnym (zliczanym) zboczem jest zbocze narastające (dodatnie).
zerujące
(ang. Master Reset) - doprowadzenie stanu niskiego L do tego wejścia powoduje wyzerowanie licznika. Wejście to działa asynchronicznie, tzn. niezależnie od sygnału zliczającego CLK.
równoległe (informacyjne) D, C, B, A - wejścia te umożliwiają wpisanie do licznika w sposób synchroniczny początkowej wartości, od której licznik zacznie zwiększać swój stan (tzn. stan wyjścia Q0 staje się taki jak wejścia A, stan wyjścia Q1 jak wejścia B itd.) po doprowadzeniu do wejścia przepisującego
stanu niskiego L. Sam moment przepisania ma miejsce przy pojawieniu się zbocza narastającego przebiegu zliczanego CLK.
przepisujące (wprowadzające)
(ang. Load Enable) - doprowadzenie do tego wejścia poziomu logicznego 0 powoduje przepisanie informacji z wejść równoległych do licznika. Stan wejść równoległych przy
=0 jest przenoszony na wyjścia licznika po pojawieniu się zbocza narastającego impulsu zliczanego CLK, a więc jest to wejście synchroniczne.
równoległego bramkowania zliczania CEP (ang. Count Enable Parallel) - umożliwia ono zatrzymanie zliczania. Stan niski L na tym wejściu sprawi, iż pomimo kolejnych pojawiających się impulsów na wejściu CLK, stan licznika nie ulegnie zmianie, licznik znajdzie się w stanie pamiętania. Aby licznik zliczał, stan panujący na tym wejściu musi być logiczną jedynką 1.
bramkowania przeniesienia CET (ang. Count Enable Trickle) - stan tego wejścia decyduje o tym czy na wyjściu TC licznika pojawi się impuls zakończenia cyklu oraz czy licznik będzie zliczał. Jeżeli do wejścia doprowadzi się stan logiczny H wówczas licznik będzie zliczał i zostanie wygenerowany impuls zakończenia cyklu, w przeciwnym wypadku (CET=0) praca licznika zostanie wstrzymana pomimo pojawiających się na wejściu CLK impulsów, a licznik znajdzie się w stanie pamiętania.
Wyjściami układów są wyprowadzenia:
Q3, Q2, Q1, Q0 - na końcówkach tych występuje słowo wyjściowe, które opisuje aktualny stan licznika w kodzie BCD dla licznika `160 i w naturalnym kodzie binarnym dla licznika `161. Wyjście Q0 odpowiada najmłodszemu bitowi (LSB), a wyjście Q3 bitowi najstarszemu (MSB).
przeniesienia TC (ang. Terminal Count) - na wyjściu tym pojawia się synchronicznie ze zboczem dodatnim przebiegu zliczanego poziom wysoki w momencie, kiedy licznik osiąga ostatni ze swoich stanów, a więc stan 1001 dla licznika `160 i stan 1111 dla licznika `161. Wyjście to jest ponownie ustawiane w stan 0 po przejściu licznika do stanu 0000. Wyjście to jest przeznaczone do współpracy licznika z kolejnymi układami liczników w celu zwiększenia pojemności przy zliczaniu.
Opisany powyżej sposób pracy liczników `160 (`161) przedstawia również tablica prawdy oraz przykładowe przebiegi czasowe (rysunek 2 i 3).
Tablica prawdy licznika `160 (`161)
Wejścia |
Wyjścia |
Funkcja |
|||||||
|
|
CEP |
CET |
CLK |
Q3 |
Q2 |
Q1 |
Q0 |
|
L |
- |
- |
- |
- |
L |
L |
L |
L |
asynchroniczne zerowanie licznika |
H |
L |
- |
- |
↑ |
D |
C |
B |
A |
synchroniczny wpis do licznika |
H |
H |
- |
L |
↑ |
bez zmian |
brak zliczania (stan pamiętania) |
|||
H |
H |
L |
- |
↑ |
bez zmian |
brak zliczania (stan pamiętania) |
|||
H |
H |
H |
H |
↑ |
zliczanie w przód |
zliczanie |
|||
H |
- |
- |
- |
↓ |
bez zmian |
brak zliczania (oczekiwanie na ↑) |
Rys. 2. Przykładowe przebiegi czasowe dla licznika `160
Rys. 3. Przykładowe przebiegi czasowe dla licznika `161
Liczniki `162 i `163
Liczniki scalone `162 i `163 podobnie jak liczniki `160 i `161 są synchronicznymi licznikami jednokierunkowymi zliczającymi w przód, posiadającymi możliwość ustawiania w dowolny stan początkowy, ta jednak para posiada wejście zerujące synchroniczne. Jedyna różnica między licznikami `162 i `163 jest taka, że licznik `162 jest licznikiem mod_10 (dziesiętnym), liczącym w kodzie BCD, a licznik `163 jest licznikiem mod_16 (binarnym).
Rys. 4. Liczniki `162 (`163) - symbol logiczny
Symbol logiczny licznika `162 (`163) przedstawiono na rysunku 4. Jak widać jest on niemal identyczny z symbolem logicznym licznika `160 (`161), a jedyna różnica dotyczy wspomnianego już wejścia zerującego, które w tym przypadku oznaczone jest symbolem
(ang. Synchronous Reset). Oczywiście wejście to umożliwia wyzerowanie licznika poprzez podanie na nie stanu logicznego 0. Jednak w tym przypadku wyzerowanie licznika nastąpi synchronicznie ze zboczem narastającym sygnału zliczanego CLK, a nie jak to miało miejsce dla licznika `160 (`161) dokładnie w chwili pojawienia się stanu niskiego L na wejściu
.
Przedstawione różnice dotyczące wejścia zerującego wyraźnie uwidocznione zostały w tablicy prawdy licznika oraz na przykładowych przebiegach dla liczników `162 i `163 (rysunek 5 i 6).
Wszystkie pozostałe końcówki układów `162 (`163) posiadają analogiczne funkcje i przeznaczenie jak te opisane przy okazji omawiania liczników `160 i `161.
Tablica prawdy licznika `162 (`163)
Wejścia |
Wyjścia |
Funkcja |
|||||||
|
|
CEP |
CET |
CLK |
Q3 |
Q2 |
Q1 |
Q0 |
|
L |
- |
- |
- |
↑ |
L |
L |
L |
L |
synchroniczne zerowanie licznika |
H |
L |
- |
- |
↑ |
D |
C |
B |
A |
synchroniczny wpis do licznika |
H |
H |
- |
L |
↑ |
bez zmian |
brak zliczania (stan pamiętania) |
|||
H |
H |
L |
- |
↑ |
bez zmian |
brak zliczania (stan pamiętania) |
|||
H |
H |
H |
H |
↑ |
zliczanie w przód |
zliczanie |
|||
H |
- |
- |
- |
↓ |
bez zmian |
brak zliczania (oczekiwanie na ↑) |
Rys. 5. Przykładowe przebiegi czasowe dla licznika `162
Rys. 6. Przykładowe przebiegi czasowe dla licznika `163
Liczniki `190 i `191
Liczniki scalone `190 i `191 są synchronicznymi licznikami rewersyjnymi, posiadającymi możliwość ustawiania w dowolny stan początkowy. Ustawianie to odbywa się w sposób asynchroniczny. Liczniki te nie posiadają typowego wejścia zerującego, operacja zerowania może być jednak wykonana poprzez wpis do licznika wartości 0000 z wykorzystaniem równoległych wejść informacyjnych. Jedyna różnica między nimi jest taka, że licznik `190 jest licznikiem mod_10 (dziesiętnym), liczącym w kodzie BCD, a licznik `191 jest licznikiem mod_16 (binarnym). Symbol logiczny licznika `190 (`191) przedstawia rysunek 7.
Rys. 7. Licznik `190 (`191) - symbol logiczny
Oba układy posiadają następujące wejścia:
zliczające CLK (ang. Clock Input) - impulsy doprowadzone do wejścia CLK są dodawane do aktualnej zawartości licznika jeżeli na wejściu CD panuje stan logiczny 0 lub są odejmowane od aktualnej zawartości licznika, gdy CD=1. Aktywnym (zliczanym) zboczem jest zbocze dodatnie (narastające).
równoległe (informacyjne) D, C, B, A - wejścia te umożliwiają wpisanie do licznika początkowej wartości, od której licznik zacznie zwiększać lub zmniejszać swój stan. Przepisanie stanu wejść na wyjścia licznika (tzn. stan wyjścia Q0 staje się taki jak wejścia A, stan wyjścia Q1 jak wejścia B itd.) następuje bezpośrednio po doprowadzeniu do wejścia przepisującego
stanu niskiego L, ma tu więc miejsce wpisanie asynchroniczne.
przepisujące (wprowadzające)
(ang. Load Enable) - doprowadzenie do tego wejścia poziomu logicznego 0 powoduje bezpośrednie przepisanie informacji z wejść równoległych do licznika i wystawienie ich na odpowiednie wyjścia. Wejście to jest więc wejściem asynchronicznym.
kierunku zliczania CD (ang. Count Down) - stan tego wejścia decyduje o kierunku zliczania. Gdy na wejściu CD jest stan 0, wówczas licznik zlicza w przód, a dla CD=1 układ liczy wstecz.
bramkowania zliczania
(ang. Count Enable) - dla
=0 ma miejsce „przyzwolenie na zliczanie” i impulsy doprowadzone do wejścia CLK są zliczane w przód (dla CD=0) lub wstecz (dla CD=1). Jeżeli wejście bramkujące
=1, to licznik jest w stanie pamiętania, co oznacza, że stan wyjść pomimo obecności sygnału CLK nie zmienia się.
Wyjściami układu są wyprowadzenia:
Q3, Q2, Q1, Q0 - na końcówkach tych występuje słowo wyjściowe, które opisuje aktualny stan licznika w kodzie BCD dla licznika `190 i w naturalnym kodzie binarnym dla licznika `191. Wyjście Q0 odpowiada najmłodszemu bitowi (LSB), a wyjście Q3 bitowi najstarszemu (MSB).
zakończenia cyklu TC (ang. Terminal Count) - na wyjściu tym pojawia się synchronicznie ze zboczem narastającym przebiegu zliczanego poziom wysoki H w momencie, kiedy licznik osiąga ostatni ze swoich stanów, a więc stan 1001 dla licznika `190 i stan 1111 dla licznika `191 i jest ono ponownie ustawiane w stan 0 po przejściu licznika do stanu 0000, sytuacja ta ma miejsce podczas zliczania w przód. Gdy licznik zlicza wstecz pojawienie się stanu 1 na wyjściu TC ma miejsce synchronicznie ze zboczem narastającym przebiegu zliczanego CLK i w momencie osiągnięcia przez licznik stanu 0000, powrót tego wyjścia do stanu logicznego 0 następuje po osiągnięciu przez licznik stanu 1001 dla licznika `190 i stanu 1111 dla licznika `191. Wyjście to jest przeznaczone do współpracy z kolejnymi licznikami w celu zwiększenia pojemności przy zliczaniu.
przeniesienia
(ang. Ripple Clock) - na wyjściu tym pojawia się stan logiczny 0 synchronicznie ze zboczem opadającym przebiegu wyjściowego CLK, gdy licznik znajduje się w stanie 1001 dla licznika'190 i stanie 1111 dla licznika `191 i wyjście to ponownie ustawiane jest w stan logiczny 1 po osiągnięciu przez licznik stanu 0000, opisana sytuacja dotyczy zliczania w przód. Gdy licznik zlicza wstecz pojawienie się stanu logicznego 0 na wyjściu
synchronicznie ze zboczem opadającym przebiegu wejściowego ma miejsce, gdy licznik znajduje się w stanie 0000 i wyjście to ponownie powraca do stanu logicznego 1 po przejściu licznika do stanu 1001 dla licznika `190 i do stanu 1111 dla licznika `191. Wyjście to również jest przeznaczone do współpracy z kolejnymi licznikami w celu zwiększenia pojemności podczas zliczania.
Sposób funkcjonowania licznika `190 (`191) opisuje również tablica prawdy oraz przykładowe przebiegi czasowe przedstawione poniżej na rysunkach 8 i 9.
Tablica prawdy licznika `190 (`191)
Wejścia |
Wyjścia |
Funkcja |
||||||
|
|
CD |
CLK |
Q3 |
Q2 |
Q1 |
Q0 |
|
L |
- |
- |
- |
D |
C |
B |
A |
asynchroniczny wpis do licznika |
H |
L |
L |
↑ |
zliczanie w przód |
zliczanie w przód |
|||
H |
L |
H |
↑ |
zliczanie wstecz |
zliczanie wstecz |
|||
H |
H |
- |
- |
bez zmian |
brak zliczania (stan pamiętania) |
Rys. 8. Przykładowe przebiegi czasowe dla licznika `190
Rys. 9. Przykładowe przebiegi czasowe dla licznika `191
Liczniki `192 i `193
Liczniki scalone `192 i `193 są synchronicznymi licznikami rewersyjnymi, posiadającymi możliwość ustawiania w dowolny stan początkowy. Ustawianie to odbywa się w sposób asynchroniczny. Oba liczniki posiadają identyczne wejścia, wyjścia, a także konfigurację wyprowadzeń. Jedyna różnica między nimi jest taka, że licznik `192 jest licznikiem mod_10 (dziesiętnym), liczącym w kodzie BCD, a licznik `193 jest licznikiem mod_16 (binarnym). Symbol logiczny licznika `192 (`193) przedstawia rysunek 10.
Rys. 10. Licznik `192 (`193) - symbol logiczny
Oba układy posiadają następujące wejścia:
zliczające C+ i C- (ang. Count Up, Count Down) - impulsy doprowadzane do wejścia C+ są dodawane do aktualnej zawartości licznika, a impulsy doprowadzane do wejścia C- są odejmowane od aktualnej zawartości licznika. Aktywnym (zliczanym) zboczem jest zbocze narastające (dodatnie).
zerujące MR (ang. Master Reset) - doprowadzenie poziomu 1 do tego wejścia powoduje wyzerowanie licznika. Wejście działa asynchronicznie, tzn. niezależnie od impulsu zliczanego.
równoległe (informacyjne) D, C, B, A - stan tych wejść jest w sposób asynchroniczny wpisywany do licznika (tzn. stan wyjść QDQCQBQA staje się taki, jak stan wejść DCBA) po doprowadzeniu do wejścia przepisującego
poziomu logicznego 0.
przepisujące (wprowadzające)
(ang. Load Enable) - doprowadzenie do tego wejścia poziomu logicznego 0 powoduje wpisanie informacji z wejść równoległych do licznika. Zmiana stanu wyjść licznika następuje natychmiast po zaistnieniu warunku
=0, a więc w sposób asynchroniczny.
Wyjściami układów są wyprowadzenia:
Q3, Q2, Q1, Q0 - na końcówkach tych występuje słowo wyjściowe, które opisuje aktualny stan licznika w kodzie BCD dla licznika `192 i w naturalnym kodzie binarnym dla licznika `193. Wyjście Q0 odpowiada najmłodszemu bitowi (LSB), a wyjście Q3 bitowi najstarszemu (MSB).
przeniesienia
+ (ang. Terminal Count Up) - na wyjściu tym pojawia się poziom niski synchronicznie ze zboczem ujemnym przebiegu wejściowego, gdy licznik znajdzie się w stanie 1001 dla licznika `192 i stanie 1111 dla licznika `193 i wyjście to ponownie jest ustawiane w stan 1 po przejściu licznika do stanu 0000, w sytuacji gdy licznik pracuje w przód. Wyjście to jest przeznaczone do współpracy z kolejnymi licznikami w celu zwiększenia pojemności przy liczeniu w przód.
pożyczki
- (ang. Terminal Count Down) - na wyjściu tym pojawia się poziom niski synchronicznie ze zboczem ujemnym przebiegu wejściowego, gdy licznik znajdzie się w stanie 0000 i wyjście to ponownie jest ustawiane w stan 1 po przejściu licznika do stanu 1001 dla licznika `192 i stanu 1111 dla licznika `193, w sytuacji, gdy licznik pracuje wstecz. Wyjście to jest przeznaczone do współpracy z kolejnymi licznikami w celu zwiększenia pojemności przy liczeniu w tył.
Poniżej przedstawiono tablicę prawdy oraz przykładowe przebiegi czasowe dla liczników `192 i `193.
Tablica prawdy licznika `192 (`193)
Wejścia |
Wyjścia |
Funkcja |
||||||
MR |
|
C+ |
C- |
Q3 |
Q2 |
Q1 |
Q0 |
|
H |
- |
- |
- |
L |
L |
L |
L |
asynchroniczne zerowanie licznika |
L |
L |
- |
- |
D |
C |
B |
A |
asynchroniczny wpis do licznika |
L |
H |
↑ |
H |
zliczanie w przód |
zliczanie w przód |
|||
L |
H |
H |
↑ |
zliczanie wstecz |
zliczanie wstecz |
Rys. 11. Przykładowe przebiegi czasowe dla licznika `192
Rys. 12. Przykładowe przebiegi czasowe dla licznika `193
Łączenie liczników synchronicznych w układy o zwiększonej pojemności
W celu uzyskania licznika o zwielokrotnionej pojemności można łączyć liczniki scalone.
Liczniki jednokierunkowe '160÷'163, jako liczniki z wpisywaniem synchronicznym, można łączyć tylko równolegle. Dzięki temu powstanie układ złożony z kilku, pracujących synchronicznie, scalonych modułów, z których każdy również jest układem synchronicznym. Niemożność szeregowego łączenia liczników '160÷'163 jest związana z tym, że podczas synchronicznego wpisywania, konieczne jest doprowadzenie impulsu taktującego do wszystkich liczników scalonych (modułów licznika wielobitowego) jednocześnie. Dzięki istnieniu dwóch wejść bramkujących CEP i CET, możliwe jest zrealizowanie liczników z przeniesieniem szeregowym lub równoległym. W układzie z przeniesieniem szeregowym (rys. 13a), wyjście przeniesienia Pn jednego modułu jest połączone z wejściem bramkowania przeniesienia CETn+1 następnego. Wejścia bramkujące pierwszego modułu zawsze są w stanie 1, wiec będzie on zliczał wszystkie impulsy zegarowe. Po osiągnięciu zapełnienia, na jego wyjściu przeniesienia P1, (oraz wejściu CET2 drugiego modułu) pojawi się stan wysoki. Nastąpi to jednak z opóźnieniem równym czasowi propagacji przeniesienia tego modułu. Doprowadzenie następnego impulsu może więc nastąpić dopiero po tym czasie, aby na wejściu CET2 zdążył się ustalić stan 1. Impuls ten, zerujący moduł pierwszy, zostanie zliczony przez moduł drugi. Jednocześnie, po zmianie stanu wyjść modułu pierwszego, zmieni się stan wysoki na niski na wyjściu przeniesienia P1 (i wejścia CET2), co zablokuje zliczanie impulsów taktujących przez moduł drugi. Wadą tego układu jest długi czas propagacji sygnału przeniesienia, przesyłanego szeregowo poprzez kolejne moduły. Zatem układ z szeregową propagacją sygnału przeniesienia ma maksymalną częstotliwość zliczania mniejszą niż pojedynczy układ.
Rys. 13. Wykorzystanie licznika `163 do budowy układów o zwiększonej pojemności: a) licznik równoległy z przeniesieniem szeregowym; b) licznik równoległy z przeniesieniem równoległym
Wejścia równoległego bramkowania zliczania CEP umożliwiają budowę liczników z przeniesieniem równoległym (rys. 13b). W tym układzie wyjście przeniesienia P1, pierwszego modułu jest połączone z wejściami bramkowania CEP pozostałych. Zatem każde zakończenie cyklu zliczania pierwszego modułu jest propagowane do wszystkich kolejnych modułów jednocześnie, z opóźnieniem równym czasowi propagacji przeniesienia tylko jednego, pierwszego licznika. Następny impuls taktujący może być doprowadzony znacznie wcześniej niż w przypadku przeniesienia szeregowego, co zwiększa maksymalną częstotliwość pracy całego układu. Po nadejściu impulsu do wejścia CEP poszczególnych liczników składowych (w chwili zapełnienia się pierwszego modułu), możliwa jest natychmiastowa zmiana stanu każdego z nich. Jednak zmiana ta, czyli zliczenie impulsu taktującego przez dany moduł, może nastąpić tylko wówczas, gdy zakończy zliczanie moduł go poprzedzający. Informacja o stanie licznika poprzedzającego jest doprowadzana z jego wyjścia przeniesienia na wejście bramkowania CET. Ponieważ oba wejścia bramkujące CEP i CET danego modułu realizują iloczyn logiczny, przeto zliczenie impulsu taktującego nastąpi tylko wtedy, kiedy na obu wystąpi stan 1. Oznacza to, że w chwili nadejścia impulsu zegarowego, dany licznik składowy zmieni stan tylko wówczas, gdy impuls ten zapełnił pierwszy moduł (CEP = 1) i gdy w stanie zapełnienia znajduje się moduł poprzedzający go (CET = 1).
Liczniki rewersyjne '192 i '193 są łączone tylko szeregowo, gdyż utworzenie wielobitowego licznika synchronicznego wymagałoby rozbudowania układu o dodatkowe bramki. Dlatego działanie tych układów polega na asynchronicznej pracy poszczególnych modułów licznika, z których każdy - w ramach swoich czterech bitów - zlicza synchronicznie. W celu połączenia kilku modułów w licznik wielobitowy należy wyjście przeniesienia P(+)l pierwszego modułu połączyć w wejściem zegarowym zliczania w przód C(+)2 drugiego. Analogicznie, wyjście pożyczki P(-)1 pierwszego modułu licznika zostanie połączone z wejściem taktującym zliczania w tył C(-)2 drugiego (rys. 14). Zmiana stanu drugiego modułu licznika może nastąpić dopiero po zapełnieniu się pierwszego. Wówczas na wyjściu przeniesienia P(+)1 (oraz wejściu zliczania w przód C(+)2) pojawi się stan 0 i będzie trwał do chwili nadejścia następnego, zerującego impulsu taktującego. Na wejściu C(+)2 powstanie więc impuls, który zostanie zliczony przez moduł drugi. Ponieważ sygnał zegarowy jest doprowadzany tylko do pierwszego licznika składowego, a następne są sterowane sygnałami przeniesień, więc wartości czasu propagacji kolejnych modułów licznika sumują się.
Rys. 14. Wykorzystanie licznika '193 do budowy układów o zwiększonej pojemności
Układ bramek wejściowych pozwala wybrać kierunek zliczania. Stan niski na wejściu CD blokuje bramkę B2 i zliczane impulsy są doprowadzane do wejścia C(+), a na wejściu C(-) występuje stan wysoki. Układ zlicza więc w przód. Dla stanu 1 na wejściu CD bramka B2 przenosi sygnał taktujący na wejście C(-), co skutkuje zliczaniem w tył. Jednocześnie stan wejścia CD, zanegowany przez inwerter, blokuje bramkę B1, na wyjściu której jest 1.
Liczniki rewersyjne '190, '191 można łączyć zarówno szeregowo, jak i równolegle. Łącząc moduły liczników szeregowo (rys. 15a) można tworzyć układ, działający tak samo jak układ z rys. 14.
Sygnał zegarowy jest doprowadzany tylko do wejścia C pierwszego modułu, następne są sterowane sygnałem przeniesienia z wyjścia PRR. O kierunku zliczania decyduje stan wejścia CD. Jest to licznik asynchroniczny, w którym czas propagacji całego układu jest sumą czasów propagacji poszczególnych modułów.
Rys. 15. Wykorzystanie licznika `191 do budowy układów o zwiększonej pojemności; a) licznik szeregowy, b) licznik równoległy z przeniesieniem szeregowym, c) licznik równoległy z przeniesieniem równoległym
W celu otrzymania układu synchronicznego należy połączyć liczniki równolegle (rys. 15b). Wówczas sygnał taktujący będzie doprowadzany do wejść zegarowych wszystkich modułów jednocześnie, a wyjścia przeniesienia będą sterowały wejściami bramkowania zliczania
. Powstanie układ z przeniesieniem szeregowym, działający tak samo jak układ z rys. 13a. Moduł pierwszy będzie zliczał wszystkie impulsy zegarowe (
= 0). Aby impulsy taktujące mogły zostać zliczone przez moduł drugi, na wejściu bramkującym
musi występować stan 0. Nastąpi to po zapełnieniu się modułu pierwszego, gdy na wyjściu przeniesienia PRR pojawi się impuls o polaryzacji ujemnej, jednak z opóźnieniem równym czasowi propagacji sygnału przeniesienia przez licznik. W celu zbudowania układu z przeniesieniem równoległym, należy rozszerzyć układ o dodatkowe bramki (rys. 15c). Wówczas sygnał przeniesienia z wyjścia PR pierwszego modułu zostanie przekazany niemal jednocześnie do pozostałych, co umożliwi skrócenie cyklu przełączania licznika i zwiększenie częstotliwości pracy.
Liczniki modulo N
Liczniki scalone są budowane jako układy o pojemności N=10 (dekady) lub N=16 (liczniki dwójkowe), aby więc zmienić pojemność, należy zrealizować sprzężenie zwrotne - zerujące lub ustawiające licznik.
W scalonych licznikach synchronicznych łatwo można zrealizować licznik modulo N, wykorzystując możliwość wpisania informacji z wejść danych na wyjście lub możliwość wyzerowania licznika. W celu skrócenia cyklu zliczania poprzez wyzerowanie licznika należy rozbudować go o układ kombinacyjny (w najprostszym przypadku o bramkę), wykrywający wystąpienie na wyjściu słowa, które ma być ostatnim w cyklu zliczania. Gdy licznik osiągnie stan końcowy (liczbę N), wówczas zostanie doprowadzony impuls na jego wejście zerujące. Następny impuls taktujący zostanie uznany za pierwszy. Zastosowanie tej metody jest najprostsze w licznikach '162 i '163, które są układami w pełni synchronicznymi. Oznacza to, że przerzutniki tych liczników zmieniają stan jednocześnie, dzięki czemu można zastosować w układzie sprzężenia tylko jedną bramkę (rys. 16).
Rys. 16. Licznik modulo N z synchronicznym zerowaniem
W licznikach asynchronicznych, np. licznikach wielobitowych zbudowanych w wykorzystaniem scalonych liczników synchronicznych, stanowiących moduły tego licznika (rys. 14), taki system zerowania może spowodować błędy. W układzie tym istnieje możliwość niejednoczesnego zerowania przerzutników (modułów) licznika. W dowolnym liczniku modulo N, zerowanym przez układ sprzężenia zwrotnego, na wyjściach przerzutników, które dla liczby N są w stanie 1, powstają impulsy szpilkowe. W liczniku modulo 12, układ liczy do 11, a impuls dwunasty zeruje licznik. Stan wyjść po dwunastym impulsie powinien wynosić Q3Q2Q1Q0=0000, ale zanim to nastąpi, na wyjściach musi pojawić się słowo Q3Q2Q1Q0=1100 (czyli 12). Wystąpienie tego stanu jest natychmiast dekodowane przez bramkę sprzężenia zwrotnego, która zmienia stan swojego wyjścia, dając impuls zerujący licznik. Stany wysokie pojawiają się na wyjściach Q3 i Q2 przez czas będący sumą czasu propagacji bramki sprzężenia zwrotnego oraz czasu propagacji przerzutników od wejść zerujących do wyjścia. Na wyjściach licznika powstają więc impulsy szpilkowe. Po wyzerowaniu któregokolwiek z przerzutników zmienia się stan wyjścia bramki, tzn. zanika impuls zerujący. W przypadku układów asynchronicznych może się zdarzyć, że część przerzutników (modułów) nie zdąży się wyzerować, co spowoduje rozpoczęcie zliczania od pewnej niezerowej liczby. Skutecznym sposobem zapobiegania tego typu błędom jest wydłużenie impulsu zerującego. Należy w tym celu rozbudować układ sprzężenia zwrotnego o przerzutnik bistabilny P (rys. 17). Zbocze narastające impulsu zegarowego ustawia przerzutnik P w stan 0, który jest doprowadzany na wejście zerujące licznika '193, nie wpływając na stan układu. Dopóki na drugim wejściu przerzutnika P będzie stan wysoki, nie zmieni on swojego stanu. Gdy na wyjściu bramki dekodującej B2, połączonym z drugim wejściem przerzutnika, pojawi się stan 0 (zakończenie cyklu zliczania), wówczas przerzutnik zmieni stan na wysoki, zerując licznik. W stanie tym przerzutnik będzie pozostawał do momentu nadejścia następnego impulsu zegarowego.
Rys. 17. Licznik modulo N z asynchronicznym zerowaniem
Licznik o skróconym cyklu zliczania można również zbudować wykorzystując funkcję wpisywania słowa występującego na wejściach A, B, C, D. W celu zbudowania licznika modulo N ze zmianą warunku początkowego, nie trzeba stosować żadnych elementów zewnętrznych. Wystarczy ustawić na wejściach danych (poprzez przyłączenie do masy lub zasilania) słowo o wartości (15-N), gdzie N jest założoną długością cyklu. Stosując np. licznik '193, należy wyjście przeniesienia
połączyć z wejściem wpisującym
. W chwili osiągnięcia stanu zapełnienia (Q3Q2Q1Q0=1111) układ wytworzy impuls na wyjściu przeniesienia, który doprowadzony do wejścia wpisującego ustawi licznik w stan (15-N), występujący na wejściach danych (rys. 18). W przypadku licznika modulo 9, przedstawionego na tym rysunku, na wejściach równoległych należy ustawić liczbę 6. Układ zlicza więc od 6 do 14. Czas trwania impulsu na wyjściu przeniesienia wynosi ok. 30 ns.
Rys. 18. Licznik modulo_N z wykorzystaniem wpisywania do zmiany warunków początkowych
W celu wykorzystania do budowy licznika modulo N funkcji wpisywania, można (tak jak w układach wykorzystujących zerowanie) zastosować układ sprzężenia zwrotnego. Zadaniem tego układu jest wykrycie kombinacji bitów słowa wyjściowego, przy którym powinien być dokonany wpis i doprowadzenie impulsu do wejścia wpisującego. Wówczas na wyjścia licznika zostaną przepisane stany występujące na wejściach informacyjnych. Jeżeli wszystkie wejścia zostaną zwarte z masą, to licznik zostanie wyzerowany (rys. 19).
Rys. 19. Wykorzystanie wejścia wpisującego do zerowania licznika modulo N
W przypadku ustawienia na wejściach informacyjnych niezerowej kombinacji bitów słowa wejściowego, układ będzie liczył od liczby wpisywanej N1=DCBA do liczby N2=Q2Q2Q1Q0 wykrywanej przez kombinacyjny układ logiczny, przy której następuje wpis (rys. 20). Jest to więc układ liczący od N1 do (N2-1). Pojemność licznika wynosi:
P = N2 - N1+1
Rys. 20. Licznik zliczający od N1 do N2
Możliwe jest również wykorzystanie zliczania w tył (rys. 21). Na wejściach danych należy ustawić liczbę równą wymaganej pojemności licznika N = P, a wyjście pożyczki
, połączyć z wejściem wpisywania. Kolejne impulsy taktujące (ich zbocza narastające) będą zmniejszały stan licznika do zera. Po wyzerowaniu licznika, na wyjściu pożyczki i przyłączonym do niego wejściu wpisywania pojawi się impuls o polaryzacji ujemnej, który spowoduje przepisanie liczby N na wyjścia. Następne zbocze narastające rozpocznie zliczanie, zmniejszając zawartość licznika. Wadą układu jest istnienie dwóch stanów (N oraz 0) w ciągu jednego okresu przebiegu taktującego (tego, w którym występuje samoczynne zerowanie i wpis).
Rys. 21. Licznik modulo N z wykorzystaniem zliczania w tył; a) schemat układu, b) przebiegi czasowe
4