POLITECHNIKA POZNAŃSKA INSTYTUT ELEKTROTECHNIKI I ELEKTRONIKI PRZEMYSŁOWEJZakład Energoelektroniki i Sterowania |
Laboratorium Elektroniki Analogowej i Cyfrowej Temat ćwiczenia: Ćw.11 „Układy sekwencyjne – przerzutniki i liczniki” |
Studia stacjonarne I stopnia |
Uwagi :
|
1. Cel ćwiczenia
Poznanie podstawowych cyfrowych układów sekwencyjnych, jakimi są przerzutniki oraz liczniki.
2. Wyniki pomiarów – tabele prawdy dla badanych układów cyfrowych
(„0” oznacza stan niski, a „1” stan wysoki)
Przerzutnik RS (zbudowany z dwóch bramek NAND)
R | S | Qn |
$$\overset{\overline{}}{\mathbf{Q}_{\mathbf{n}}}$$ |
---|---|---|---|
0 | 0 | 0 | 0 |
0 | 1 | 0 | 1 |
1 | 0 | 1 | 0 |
1 | 1 | Qn − 1 |
$$\overset{\overline{}}{\mathbf{Q}_{\mathbf{n - 1}}}$$ |
Wnioski:
Czerwone stany sygnałów oznaczają stan zabroniony – dla danych stanów sygnałów na wejściach R i S zarówno wyjście Q jak i zanegowane Q przyjmują ten sam stan, co nie powinno nastąpić, gdyż dwa wzajemnie sprzeczne stany nie mogą być jednocześnie ze sobą zgodne. Jest to poważna wada tych przerzutników – powoduje to błędy logiczne w ich działaniu.
Przerzutnik ten działa tak, iż gdy tylko jedno z wejść R lub S ma stan wysoki, wówczas na wyjściu Q sygnał ma stan wejścia R, natomiast na zanegowanym wyjściu Q – stan wejścia S. W przypadku stanów wysokich na obu wejściach, na wyjściu zapamiętany jest stan poprzedni.
Przerzutnik RS synchroniczny (zbudowany z dwóch bramek NAND)
CLK | R | S | Qn |
$$\overset{\overline{}}{\mathbf{Q}_{\mathbf{n}}}$$ |
---|---|---|---|---|
0 | X | X | Qn − 1 |
$$\overset{\overline{}}{Q_{n - 1}}$$ |
1 | 0 | 0 | Qn − 1 |
$$\overset{\overline{}}{Q_{n - 1}}$$ |
1 | 0 | 1 | 1 | 0 |
1 | 1 | 0 | 0 | 1 |
1 | 1 | 1 | 0 | 0 |
Wnioski:
Czerwone stany sygnałów oznaczają stan zabroniony – dla danych stanów sygnałów na wejściach R i S oraz CLK, zarówno wyjście Q jak i zanegowane Q przyjmują ten sam stan, co nie powinno nastąpić, gdyż dwa wzajemnie sprzeczne stany nie mogą być jednocześnie ze sobą zgodne. Jest to poważna wada tych przerzutników – powoduje to błędy logiczne w ich działaniu.
Synchroniczny przerzutnik RS działa tak że, przy stanie niskim na wejściu zegarowym, na wyjściu jest zapamiętany poprzedni stan wyjścia, nie ma jednak znaczenia wówczas, jaki stan mają wejścia R i S. Przy wysokim stanie na wejściu zegarowym, dla niskich stanów wejść R i S, wyjścia zapamiętują swoje poprzednie stany. Gdy tylko jedno z wejść R, S ma stan wysoki, przy wysokim stanie wejścia zegarowego, przerzutnik synchroniczny RS działa jak asynchroniczny przerzutnik RS, z tą różnicą że gdy na wejściu R stan jest wysoki wówczas na wyjściu Q stan niski, gdy na wejściu S jest stan wysoki, wówczas na wyjściu Q jest stan wysoki.
Przerzutnik typu D
D | CLK | Qn |
$$\overset{\overline{}}{\mathbf{Q}_{\mathbf{n}}}$$ |
---|---|---|---|
X | 0 | Qn − 1 |
$$\overset{\overline{}}{Q_{n - 1}}$$ |
0 | 1 | 1 | 0 |
1 | 1 | 0 | 1 |
Wnioski:
Przerzutnik typu D (Data) ma tą przewagę nad przerzutnikami typu RS że nie występują tu stany zabronione – nie pojawiają się błędy logiczne w działaniu przerzutnika.
Przerzutnik typu D działa tak, że przy stanie niskim na wejściu zegarowym oraz dowolnym stanie na wejściu D wyjścia zapamiętują swój poprzedni stan. Przy wysokim stanie wejścia zegarowego wyjście niezanegowane Q ma stan przeciwny do stanu na wejściu D – dla stanu wysokiego na wejściu D, wyjście Q ma stan niski, a zanegowane Q – stan wysoki, w drugim przypadku wyjście Q ma stan wysoki a zanegowane Q stan niski.
Z powodu zachowania przerzutnika przy niskim stanie na wejściu zegarowym (stan na wejściu Data nie wpływa już wówczas na wyjście) – przerzutnik ten często nosi nazwę zatrzask.
Przerzutnik JK
J | K | CLK | Qn |
$$\overset{\overline{}}{\mathbf{Q}_{\mathbf{n}}}$$ |
---|---|---|---|---|
X | X | 0 | Qn − 1 |
$$\overset{\overline{}}{Q_{n - 1}}$$ |
0 | 0 | X | Qn − 1 |
$$\overset{\overline{}}{Q_{n - 1}}$$ |
0 | 1 | 1 | 0 | 1 |
1 | 0 | 1 | 1 | 0 |
1 | 1 | 0⇨1 | $$\overset{\overline{}}{Q_{n - 1}}$$ |
Qn − 1 |
1 | 1 | 1⇨0 | $$\overset{\overline{}}{Q_{n - 1}}$$ |
Qn − 1 |
Wnioski:
Przerzutnik typu JK jest najbardziej uniwersalnym i najpowszechniej stosowanym rodzajem przerzutnika cyfrowego z uwagi na swoją uniwersalność, która pozwala na łatwe stosowanie w różnych układach cyfrowych. Jest wyposażone w 2 wejścia sterujące J i K, wejście czasowe CLK oraz 2 wyjścia – Q oraz $\overset{\overline{}}{Q}$. Ten przerzutnik też ma przewagę nad przerzutnikiem RS – nie pozwala na uzyskanie stanu zabronionego wyjść.
Przerzutnik typu JK – analiza pracy:
Gdy na wejściu zegarowym mamy stan niski, wówczas wyjścia zapamiętują swój poprzedni stan, sygnały sterujące z wejść J i K nie mają wpływu na wyjścia
Gdy wejścia J i K są w stanie niskim, wyjścia także zapamiętują swój poprzedni stan, wejście czasowe CLK nie ma wpływu na wyjścia
Gdy wejście K jest w stanie wysokim a J w stanie niskim – na wejściu Q mamy stan niski – stąd mnemotechniczny sposób nazwania tego wejścia: K – wejście kasujące (stan wysoki na K zeruje wyjście Q)
Gdy wejście J jest w stanie wysokim a K w stanie niski – na wyjściu Q mamy stan wysoki – stąd mnemotechniczny sposób nazwania tego wejścia: J – wejście jedynkujące (stan wysoki na J ustawia wyjście Q na stan wysoki)
Gdy oba wejścia J i K mają stan wysoki – dla zbocza wzrastającego na wejściu zegarowym, wyjście Q ma stan wysoki, natomiast dla zbocza opadającego wyjście Q - stan niski
Przerzutnik T (zbudowany z przerzutnika typu JK)
T | Qn |
$$\overset{\overline{}}{\mathbf{Q}_{\mathbf{n}}}$$ |
---|---|---|
0 | Qn − 1 |
$$\overset{\overline{}}{Q_{n - 1}}$$ |
1 | Qn − 1 |
$$\overset{\overline{}}{Q_{n - 1}}$$ |
1⇨0 | $$\overset{\overline{}}{Q_{n - 1}}$$ |
Qn − 1 |
Wnioski:
Przerzutnik T (Toggle – Zmiana, przeskok) jest podstawowym elementem zliczającym, czyli także i podstawowym elementem liczników asynchronicznych. Nie jest on jednak produkowany w formie układu scalonego. Można go jednak, zbudować na bazie przerzutników typu D lub typu JK.
Przerzutnik T jest wyzwalany zboczem (w przypadku zbudowania przerzutnika T z przerzutnika typu D – zboczem narastającym a w przypadku zbudowania z przerzutnika typu JK – zboczem opadającym) wejścia czasowego. Wraz z konkretnym typem zbocza na wejściu czasowym (0⇨1 ALBO 1⇨0), stan na wyjściu zmienia się na przeciwny względem poprzedniego.
Licznik zbudowany za pomocą kaskadowo połączonych przerzutników JK (czyli tak właściwie z połączonych kaskadowo przerzutników T zbudowanych z przerzutników JK)
Zbudowany z dwóch kaskadowo połączonych JK
Wnioski:
Mówimy tu o liczniku 2-bitowym asynchronicznym. Nazwa asynchroniczny pochodzi z tego, że wyjścia poszczególnych składowych przerzutników nie zmieniają się równocześnie a kaskadowo. Stan licznika ustala się dopiero po pewnym czasie równym sumie czasów propagacji poszczególnych przerzutników. Wejście zegarowe jest w takich licznikach podłączone tylko do wejścia zegarowego pierwszego przerzutnika, wejścia zegarowe kolejnych przerzutników są wyjściami poprzednich.
Stan licznika odczytujemy z wyjść Q poszczególnych przerzutników. Na podstawie powyższego wykresu przebiegów czasowych możemy dojść do wniosku że jest to licznik modulo 4, oczywiście liczenie zaczyna się od zera. Jako że licznik jest zbudowany z przerzutników JK, to zmiana stanu wyjścia Q0 jest wywoływana zboczem opadającym wejścia zegarowego, natomiast zmiana stanu wyjścia Q1 jest wywołana zboczem opadającym wyjścia Q0, które jest jednocześnie wejściem czasowym drugiego przerzutnika licząc od podłączenia wejścia zegarowego. Zerowanie na obu wyjściach następuje przy uzyskaniu na obu wyjściach stanu wysokiego wraz ze zboczem opadającym wejścia czasowego. Można by to zapisać w tablicy prawdy w taki oto sposób:
CLK | Nr impulsu na wejściu CLK | Q0 |
Q1 |
Stan licznika |
---|---|---|---|---|
1⇨0 | 1 | 0 | 0 | 0 |
1⇨0 | 2 | 0 | 1 | 1 |
1⇨0 | 3 | 1 | 0 | 2 |
1⇨0 | 4 | 1 | 1 | 3 |
1⇨0 | 5 | 0 | 0 | 0 |
1⇨0 | 6 | 0 | 1 | 1 |
⋮ |
⋮ |
⋮ |
⋮ |
⋮ |
Zbudowany z trzech kaskadowo połączonych JK
Wnioski:
Także i w tym przypadku mamy do czynienia z licznikiem asynchronicznym. Na podstawie powyższego wykresu przebiegu czasowego można stwierdzić, iż jest to licznik modulo 8. Jako że licznik jest zbudowany z przerzutników JK, to zmiana stanu wyjścia Q0 jest wywoływana zboczem opadającym wejścia zegarowego, natomiast zmiana stanu wyjścia Q1 jest wywołana zboczem opadającym wyjścia Q0, które jest jednocześnie wejściem zegarowym drugiego przerzutnika licząc od podłączenia wejścia zegarowego, w końcu zmiana stanu wyjścia Q2 jest wywołane zboczem opadającym wyjścia Q1, które jest jednocześnie wejściem czasowym trzeciego przerzutnika. Zerowanie na wszystkich wyjściach następuje przy uzyskaniu na wszystkich wyjściach stanu wysokiego wraz ze zboczem opadającym wejścia czasowego. Można by to zapisać w tablicy prawdy w taki oto sposób:
CLK | Nr impulsu na wejściu CLK | Q0 |
Q1 |
Q2 |
Stan licznika |
---|---|---|---|---|---|
1⇨0 | 1 | 0 | 0 | 0 | 0 |
1⇨0 | 2 | 0 | 0 | 1 | 1 |
1⇨0 | 3 | 0 | 1 | 0 | 2 |
1⇨0 | 4 | 0 | 1 | 1 | 3 |
1⇨0 | 5 | 1 | 0 | 0 | 4 |
1⇨0 | 6 | 1 | 0 | 1 | 5 |
1⇨0 | 7 | 1 | 1 | 0 | 6 |
1⇨0 | 8 | 1 | 1 | 1 | 7 |
1⇨0 | 9 | 0 | 0 | 0 | 0 |
1⇨0 | 10 | 0 | 0 | 1 | 1 |
1⇨0 | 11 | 0 | 1 | 0 | 2 |
1⇨0 | 12 | 0 | 1 | 1 | 3 |
⋮ |
⋮ |
⋮ |
⋮ |
⋮ |
⋮ |
Licznik modulo 16
Wnioski:
I w tym przypadku mamy do czynienia z licznikiem asynchronicznym – wyjścia składowych przerzutników licznika zmieniają się kaskadowo a nie równocześnie jak w przypadku liczników synchronicznych. Licznik modulo 16 jest zbudowany z 4 przerzutników T.
Jako że licznik jest zbudowany z przerzutników JK, to zmiana stanu wyjścia Q0 jest wywoływana zboczem opadającym wejścia zegarowego, natomiast zmiana stanu wyjścia Q1 jest wywołana zboczem opadającym wyjścia Q0, które jest jednocześnie wejściem zegarowym drugiego przerzutnika licząc od podłączenia wejścia zegarowego, w końcu zmiana stanu wyjścia Q2 jest wywołane zboczem opadającym wyjścia Q1, które jest jednocześnie wejściem zegarowym trzeciego przerzutnika, analogicznie zmiana stanu wyjścia Q3 jest wywołana zboczem opadającym wyjścia Q2. Zerowanie na wszystkich wyjściach następuje przy uzyskaniu na wszystkich wyjściach stanu wysokiego wraz ze zboczem opadającym wejścia zegarowego. Można by to zapisać w tablicy prawdy w taki oto sposób:
CLK | Nr impulsu na wejściu CLK | Q0 |
Q1 |
Q2 |
Q3 |
Stan licznika |
---|---|---|---|---|---|---|
1⇨0 | 1 | 0 | 0 | 0 | 0 | 0 |
1⇨0 | 2 | 0 | 0 | 0 | 1 | 1 |
1⇨0 | 3 | 0 | 0 | 1 | 0 | 2 |
1⇨0 | 4 | 0 | 0 | 1 | 1 | 3 |
1⇨0 | 5 | 0 | 1 | 0 | 0 | 4 |
1⇨0 | 6 | 0 | 1 | 0 | 1 | 5 |
1⇨0 | 7 | 0 | 1 | 1 | 0 | 6 |
1⇨0 | 8 | 0 | 1 | 1 | 1 | 7 |
1⇨0 | 9 | 1 | 0 | 0 | 0 | 8 |
1⇨0 | 10 | 1 | 0 | 0 | 1 | 9 |
1⇨0 | 11 | 1 | 0 | 1 | 0 | 10 |
1⇨0 | 12 | 1 | 0 | 1 | 1 | 11 |
1⇨0 | 13 | 1 | 1 | 0 | 0 | 12 |
1⇨0 | 14 | 1 | 1 | 0 | 1 | 13 |
1⇨0 | 15 | 1 | 1 | 1 | 0 | 14 |
1⇨0 | 16 | 1 | 1 | 1 | 1 | 15 |
1⇨0 | 17 | 0 | 0 | 0 | 0 | 0 |
1⇨0 | 18 | 0 | 0 | 0 | 1 | 1 |
1⇨0 | 19 | 0 | 0 | 1 | 0 | 2 |
1⇨0 | 20 | 0 | 0 | 1 | 1 | 3 |
⋮ |
⋮ |
⋮ |
⋮ |
⋮ |
⋮ |
⋮ |
Ogólna zasada na budowę liczników asynchronicznych modulo 2n jest taka, iż do budowy licznika wykorzystujemy n przerzutników T i łączymy je kaskadowo, tj. na wejście pierwszego podłączamy wejście czasowe, wyjście pierwszego podłączamy na wejście czasowe drugiego, wyjście drugiego na wejście czasowe trzeciego, itd.
Licznik synchroniczny
Przykłady:
Licznik jednobitowy synchroniczny
Licznik dwubitowy synchroniczny
Licznik 3-bitowy synchroniczny
Licznik 4-bitowy synchroniczny
Wnioski: W liczniku asynchronicznym przerzutniki są sterowane wyjściami przerzutników poprzedzających. To powód, przez który stan licznika nie ustala się od razu a dopiero po czasie równym sumie czasów propagacji sygnałów w poszczególnych przerzutnikach. Przy dużych częstotliwościach, okres propagacji w przerzutnikach stają się porównywalne z okresem impulsów zegarowych, przez co sygnał wyjściowy nie ma czasu na ustalenie się – zaczynają być gubione wartości poszczególnych impulsów. Pokazane to jest na rysunku poniżej:
Wg rysunku, już przy bicie Q8 opóźnienie jest na tyle duże że licznik „gubi” stan 8, czyli ten w którym wszystkie bity są w stanie wysokim (prezentacja binarna liczby 7). Przy większej ilości bitów opóźnienia powodują gubienie większej ilości stanów wyjściowych.
Z tego powodu stworzono liczniki synchroniczne, w których przerzutniki zmieniają się równo z taktem zegarowym. Różnicą w budowie między licznikami synchronicznymi a asynchronicznymi jest taka, iż wejście zegarowe jest połączone siecią logiczną z każdym przerzutnikiem licznika na ich wejściach czasowych. Przykłady takich liczników są powyżej. Wyjścia połączone są ze sobą w grupy za pomocą bramek AND w taki sposób że starszy bit łączy się zawsze ze wszystkimi poprzednimi bitami za pomocą bramki AND.