Serwis Edukacyjny
Nauczycieli
w I-LO w Tarnowie

Do strony głównej I LO w Tarnowie

Materiały dla uczniów liceum

  Wyjście       Spis treści       Poprzedni       Następny  

©2018 mgr Jerzy Wałaszek
I LO w Tarnowie

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

 

 

Elementy

Rejestry

Rozdziały artykułu:
Wstęp
Teoria
Warsztat
Elementy
    Przewody
    Złącza
    Baterie i akumulatory
    Obwody elektroniczne
    Przyciski
    Oporniki
    Kondensatory
    Diody
    Tranzystory
    Bramki cyfrowe
    Sieci logiczne
    Układy kombinacyjne
    Przerzutniki
    Rejestry
    Liczniki
    Generatory
    Wzmacniacze operacyjne
    Przekaźniki
    Przetworniki akustyczne
    Czujniki
    Przetworniki A/C i C/A
Projekty

 

Co to jest rejestr?

Rejestr (ang. register) służy do zapamiętywania informacji bitowej oraz do przetwarzania zapamiętanej informacji.

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.

 

Rejestr pamięciowy

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

    

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

    SN74100

 

 

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:

 

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 "zatrząś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ą:

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:

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.

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:

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:

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

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

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:

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

 

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. 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.

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:

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:

 

Zespół Przedmiotowy
Chemii-Fizyki-Informatyki

w I Liceum Ogólnokształcącym
im. Kazimierza Brodzińskiego
w Tarnowie
ul. Piłsudskiego 4
©2018 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.