« poprzedni punkt |
Głównym zadaniem rejestrów jest przechowanie informacji przez czas pomiędzy dwoma kolejnymi impulsami zegarowymi. Każde narastające zbocze impulsu zegarowego wpisuje N bitów wejściowych do N przerzutników i to słowo pojawia się na wyjściach przerzutników. Stan ten trwa do momentu pojawienia się następnego impulsu zegarowego. Jeżeli wtedy na wejściach rejestru są inne wartości bitów, to zostaną one wpisane do rejestru. Wszystkie przerzutniki rejestru są także wspólnie zerowane.
Rysunek IX.20. Czterobitowy rejestr z wejściem CLR i wejściem SET
Na rysunku IX.20 pokazano czterobitowy rejestr, w którym wszystkie przerzutniki mają zwarte wejścia CLK, są wspólnie zerowane (CLR) i wspólnie ustawiane w stan 1 (SET). Oznaczenia na rysunku pokazują, że zerowanie i ustawianie stanu 1 w przerzutnikach odbywa się niskim poziomem napięcia. Wejścia CLR oraz SET są wejściami asynchronicznymi.
Istnieje także inny rodzaj rejestru, który wykonuje operację przesuwania. Przesuwanie zawartości rejestru może być w lewo i w prawo. Tutaj zostaną pokazane rejestry przesuwające w prawo.
Rysunek IX.21. Czterobitowy rejestr przesuwający
Na rysunku IX.21 pokazano czterobitowy rejestr, w którym informacja z jednego przerzutnika typu D jest przepisywana do następnego znajdującego się na rysunku IX.21 po jego prawej stronie. Przepisanie odbywa się w momencie pojawienia się impulsu zegarowego. Bit pojawiający się na wejściu WE jest wpisywany do przerzutnika Q0. Następnie, w czasie kolejnego impulsu zegarowego, bit ten jest wpisywany do przerzutnika Q1, w czasie następnego impulsu zegarowego do przerzutnika Q2, a w czasie następnego impulsu zegarowego do przerzutnika Q3. W ten sposób szeregowo wprowadzane bity na wejście rejestru będą po czterech impulsach zegarowych pojawiały się na wyjściu rejestru. Takie rejestry nazywane są rejestrami przesuwającymi.
Jednym z zastosowań takich rejestrów jest zamiana informacji szeregowej na równoległą. Czterobitowe słowo podawane na wejście przykładowego rejestru, po 4 taktach zegara można odczytać równolegle na wyjściach Q0, Q1, Q2 i Q3.
Innym zastosowaniem rejestrów przesuwających jest wykorzystanie ich jako liczników. Układ licznika powstaje przez wprowadzenie odpowiedniego sprzężenia zwrotnego.
Rysunek IX.22. Rejestr przesuwający ze sprzężeniem zwrotnym
Na rysunku IX.22 pokazano układ, w którym sygnał z wyjścia ostatniego przerzutnika jest podawany na wejście. Załóżmy, że pierwszy stan czterobitowego rejestru przesuwającego będzie 1000 (ustawiany za pomocą wejść asynchronicznych). Wtedy kolejne stany będą 0100, 0010, 0001 i ponownie pojawi się stan 1000. Układ taki jest czterostanowym licznikiem liczącym w kodzie "1 z 4" i jest nazywany licznikiem pierścieniowym.
Jeśli stan początkowy będzie inny, to i sekwencja stanów będzie inna. Jeśli pierwszy stan będzie 1100, to dalsze będą 0110, 0011 i 1001. Jeśli pierwszym stanem będzie 1110, to dalsze będą 0111, 1011 i 1101. Jeśli pierwszym stanem będzie 1010, to licznik będzie dwustanowy i jego drugi stan będzie 0101. Gdyby układ znalazł się w stanie 0000 lub 1111, to nie będzie mógł zmienić stanu.
Liczniki pierścieniowe można stosować zamiast licznika dwójkowego z dekoderem wyjściowym. Przykładowo dekodując stany trzybitowego licznika następnikowego dekoderem ośmiowyjściowym otrzyma się na wyjściu kod "1 z 8". Taki sam rezultat można otrzymać stosując ośmiobitowy licznik pierścieniowy.
Rysunek IX.23. Rejestr przesuwający ze sprzężeniem zwrotnym przez negację
Na rysunku IX.23 pokazano układ, w którym sygnał z wyjścia ostatniego przerzutnika jest podawany na wejście rejestru przesuwającego poprzez negację. Załóżmy, że pierwszym stanem czterobitowego rejestru przesuwającego będzie stan 1000. Kolejne stany rejestru będą: 1100, 1110, 1111, 0111, 0011, 0001 i 0000. Po stanie 0000 układ ponownie przejdzie do stanu 1000. Układ jest licznikiem ośmiostanowym, którego kolejne stany odpowiadają słowom kodowym tzw. kodu Johnsona. Jeśli pierwszym stanem będzie stan spoza kodu Johnsona, np. 1010, to następne stany będą 1101, 0110, 1011, 0101, 0010, 1001 i 0100. Dalej stany będą się powtarzały.
Rysunek IX.24. Rejestr przesuwający ze sprzężeniem zwrotnym przez bramkę XOR
Na rysunku IX.24 pokazano układ, w którym na wejście podawany jest sygnał z wyjścia bramki XOR, na której wejścia podano sygnały z ostatniego i przedostatniego przerzutnika. Załóżmy, że pierwszym stanem czterobitowego rejestru przesuwającego będzie 1000. Wtedy kolejnymi stanami będą stany 0100, 0010, 1001, 1100, 0110, 1011, 0101, 1010, 1101, 1110, 1111, 0111, 0011, 0001. Po stanie 0001 pojawi się ponownie stan 1000. Z przedstawionej sekwencji wynika, że licznik jest układem piętnastostanowym (w cyklu nie występuje tylko stan 0000). Kolejność stanów nie jest zgodna z żadnym ze znanych kodów. Można uznać, że kolejność ta jest przypadkowa. Używając takich rejestrów o większych długościach realizuje się generatory liczb losowych. Taki licznik o liczbie stanów 2n-1, gdzie n jest liczbą przerzutników, nazywany jest licznikiem liniowym lub łańcuchowym. Stosuje się go często w układach testujących oraz w generatorach kodu CRC służącego do detekcji i korekcji błędów.
« poprzedni punkt |