Serwis Edukacyjny
w I-LO w Tarnowie
Do strony głównej I LO w Tarnowie

Materiały dla uczniów liceum

  Wyjście       Spis treści       Wstecz       Dalej  

obrazek

Autor artykułu: mgr Jerzy Wałaszek
Konsultacje: Wojciech Grodowski, mgr inż. Janusz Wałaszek

©2023 mgr Jerzy Wałaszek
I LO w Tarnowie

Elementy

Rejestry

SPIS TREŚCI
Podrozdziały

Co to jest rejestr?

Rejestr (ang. register) służy do zapamiętywania informacji bitowej oraz do przetwarzania zapamiętanej informacji. Można go zatem traktować jako pamięć podręczną.

Z rejestrami spotkasz się przy programowaniu mikrokontrolerów. Również używa się ich często jako osobnych elementów urządzenia cyfrowego. Przemysł elektroniczny produkuje wiele typów układów scalonych, które zawierają różnego rodzaju rejestry. Ten rozdział ma na celu przybliżyć ci budowę rejestrów oraz pokazać ich różne zastosowania praktyczne.

Rejestry budowane są z przerzutników oraz współpracujących z nimi sieci logicznych, które odpowiednio przetwarzają bity przechowywane w rejestrze.

Na początek:  podrozdziału   strony 

Rejestr pamięciowy

Najprostszy rejestr pamięciowy (tzn. zapamiętujący bity) tworzymy z odpowiedniej liczby przerzutników typu D-Latch:

obrazek      obrazek

Wejścia rejestru oznaczamy dużymi literami A, B, C, ... Wyjścia oznaczamy QA, QB, QC, ... Dodatkowo występuje tutaj jeszcze wejście CLK (ang. clock, zegar), które służy do zapisu stanu wejść w przerzutnikach.

Rejestr ten działa w sposób następujący:

Normalnie na wejściu CLK powinien panować stan niski. W tym stanie przerzutniki D-Latch pamiętają informację i zmiany stanu ich wejść D nie wpływają na wyjścia Q.

Informację, którą chcemy zapamiętać w rejestrze umieszczamy na wejściach A, B, C... w postaci bitów, tzn. stanów niskich 0 lub wysokich 1.

Na wejściu CLK umieszczamy stan wysoki 1. Wtedy informacja z wejść zostaje zapamiętana w przerzutnikach i pojawia się na wyjściach Q.

Zmieniamy stan wejścia CLK na niski 0. Spowoduje to "zatrzaśnięcie" zapamiętanej w przerzutnikach informacji. Rejestr będzie pamiętał wpisane bity aż do ponownej zmiany sygnału CLK.

Tego typu rejestr możesz sobie zbudować z dwóch układów SN7477 lub jednego układu SN74100:

SN7477
obrazek
    SN74100
obrazek
Na początek:  podrozdziału   strony 

Pamięć rejestrowa

Pamięć rejestrowa zbudowana jest z kilku rejestrów, w których przechowywana jest informacja. Rejestry są ponumerowane. Numer rejestru nazywamy adresem. Dla przykładu zbudujemy pamięć rejestrową zawierającą cztery rejestry 4-bitowe.

Zaczynamy od rejestrów:

obrazek

Rejestry będą zbudowane z przerzutników typu D-Latch. Przypominam: przerzutnik D-Latch zapisuje stan wejścia D na wyjściu Q, gdy sygnał C ma stan wysoki. Jeśli C przejdzie w stan niski, to na wyjściu Q zostanie "zatrzaśnięty" ostatnio zapisany w przerzutniku stan. Stąd słowo Latch w nazwie przerzutnika, które po angielsku oznacza klamkę lub zatrzask.

Rejestry będą 4-bitowe, zatem łączymy sygnały C przerzutników, tak aby otrzymać 4 osobne rejestry. Wejścia D odpowiadających sobie przerzutników w rejestrach łączymy ze sobą:

obrazek

Zapis do rejestrów nastąpi, gdy na wejściach A...D umieścimy daną, a następnie podamy impuls zapisujący na linię C odpowiedniej grupy przerzutników. Operację taką można wykonać za pomocą prostej sieci logicznej zbudowanej z kilku bramek. Sieć będzie sterowana 2-bitowym adresem rejestru oraz sygnałem zapisu:

obrazek

Zasada działania tej sieci ma być następująca:

Na wejścia A0 i A1 podajemy w postaci dwójkowej adres rejestru, w którym mają zostać zapisane dane z linii A...D.

Na wejście W podajemy impuls zapisujący.

Wtedy na odpowiednim wyjściu C0...C3 ma się pojawić stan wysoki na czas trwania impulsu W.

Tabelka funkcyjna jest następująca:

A0 A1 W C0 C1 C2 C3
X X 0 0 0 0 0
0 0 1 1 0 0 0
0 1 1 0 1 0 0
1 0 1 0 0 1 0
1 1 1 0 0 0 1

Element ten zaprojektujemy, tak aby wykorzystać go również do sterowania wyjściami z rejestrów:

obrazek

Bramki AND dadzą na wyjściach stan wysoki, jeśli sygnał z dekodera i sygnał W będą miały stan wysoki. Pozostaje zatem zaprojektować dekoder. Tabelka stanów:

A0 A1 0 1 2 3
0 0 1 0 0 0
0 1 0 1 0 0
1 0 0 0 1 0
1 1 0 0 0 1

Z metody algebraicznej otrzymujemy od razu funkcje sygnałów wyjściowych:

A stąd sieć dekodera:

obrazek

Łączymy dekoder z sygnałem W i przerzutnikami:

obrazek

Mamy zrealizowany zapis informacji do rejestru. Teraz zajmijmy się odczytem. Będzie nam potrzebny układ zwany demultiplekserem:

obrazek

Demultiplekser posiada 4 wejścia danych D0...D3, 4 wejścia wybierające 0...3 i jedno wyjście Y. Zasada działania jest następująca:

Na jedno z wejść wybierających 0...3 podajemy stan logiczny 1. Na pozostałych wejściach wybierających powinien być stan 0. Wtedy na wyjściu Y pojawi się stan wybranego wejścia D0...D3.

Tabelka logiczna jest następująca:

0 1 2 3 Y
1 0 0 0 D0
0 1 0 0 D1
0 0 1 0 D2
0 0 0 1 D3

Sieć logiczna jest następująca:

obrazek

Takich demultiplekserów będziemy potrzebować 4. Łączymy wszystko w całość i otrzymujemy:

obrazek

Jak widzisz, nawet taki prosty rejestr jest układem dosyć skomplikowanym logicznie. Oczywiście, można tutaj zastosować wiele usprawnień i uproszczeń, niemniej jednak nie opłaca się budowanie takich rejestrów z pojedynczych elementów. Na szczęście przemysł elektroniczny produkuje wiele pamięci rejestrowych, gotowych do zastosowania:

SN7481, SN7484 – 16 bitowe pamięci RAM o organizacji 16 x 1 bit

SN7489, SN74189 – pamięci 64-bitowe RAM o organizacji 16 x 4 bity

SN74170 – zespół 4 rejestrów 4-bitowych – odpowiednik naszego projektu, ale w pojedynczym układzie scalonym.

Pamięci komputerowe o dużej liczbie komórek są budowane nieco inaczej, ponieważ stosowanie rejestrów byłoby w tym przypadku zbyt drogie i nieopłacalne. Opis pamięci RAM znajdziesz tutaj.


Rejestr przesuwający

Rejestr przesuwający (ang. shift register) umożliwia przesunięcie bitów w słowie binarnym.

obrazek

Rejestry przesuwające najczęściej stosuje się przy zamianie informacji równoległej na szeregową lub szeregowej na równoległą. Rejestry mogą przesuwać informację tylko w jednym kierunku lub w obu kierunkach. Buduje się je z przerzutników wyzwalanych zboczem sygnału zegarowego (przerzutniki D Latch nie nadają się do tego celu).

Oto 4-bitowy rejestr przesuwający w prawo zbudowany z przerzutników D:

obrazek

Zasada działania jest następująca:

Na wejściu S umieszczamy daną, która ma zostać wpisana do pierwszego przerzutnika. Na wejście CLK podajemy dodatni impuls. Na opadającym zboczu tego impulsu dana z wejścia S zostaje wpisana do pierwszego przerzutnika, lecz pojawia się na wyjściu QA dopiero po czasie propagacji. Przez tę krótką chwilę pierwszy przerzutnik utrzymuje na swoim wyjściu poprzedni stan. Stan ten przenosi się na wejście D kolejnego przerzutnika i zostanie w nim zapisany przy ujemnym zboczu sygnału CLK. Tutaj sytuacja się powtarza: na wyjściu Q przerzutnika przez czas propagacji utrzymuje się poprzedni stan, który zostanie zapisany do następnego przerzutnika, itd. W efekcie informacja pamiętana w przerzutnikach zostanie przesunięta w prawo o 1 bit, a do pierwszego przerzutnika zostanie zapisany stan wejścia S.

Rejestrów przesuwających zwykle nie buduje się z pojedynczych przerzutników, lecz stosuje się gotowe układy scalone:

Na początek:  podrozdziału   strony 

Zespół Przedmiotowy
Chemii-Fizyki-Informatyki

w I Liceum Ogólnokształcącym
im. Kazimierza Brodzińskiego
w Tarnowie
ul. Piłsudskiego 4
©2023 mgr Jerzy Wałaszek

Materiały tylko do użytku dydaktycznego. Ich kopiowanie i powielanie jest dozwolone
pod warunkiem podania źródła oraz niepobierania za to pieniędzy.

Pytania proszę przesyłać na adres email: i-lo@eduinf.waw.pl

Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.

Informacje dodatkowe.