3. Bramki dynamiczne i przerzutniki

3.9. Rejestry

Rejestry służą do zapisu, przechowywania i odczytu grup bitów - typowo od kilku do kilkuset bitów. Istnieją rejestry równoległe i szeregowe. Do rejestrów równoległych zapisuje się i odczytuje wszystkie bity równocześnie. Rejestry szeregowe umożliwiają szeregowe wpisywanie kolejnych bitów i podobnie odczyt. Istnieją też rejestry szeregowo-równoległe, umożliwiające np. szeregowe wpisywanie i równoległy odczyt, lub odwrotnie.

 

Rysunek 3 14. Rodzaje rejestrów: (a) równoległy (wpis i odczyt równoległy), (b) szeregowy przesuwający (wpis i odczyt szeregowy), (c) szeregowo-równoległy (wpis szeregowy, odczyt równoległy) (d) równoległo-szeregowy (wpis równoległy, odczyt szeregowy)

 

Rejestry równoległe to zespoły przerzutników jednobitowych. Bardziej interesujące są rejestry szeregowe. Zwane są one przesuwającymi, ponieważ przy szeregowym wpisywaniu i odczycie kolejne bity są "przesuwane" przy każdym takcie zegara w kierunku od wejścia do wyjścia. Typowym rejestrem przesuwającym jest rejestr zbudowany z przerzutników typu D.

 

Rysunek 3 15. Rejestr szeregowy przesuwający z przerzutników typu D

 

Każdy takt zegara CLK powoduje przesunięcie zapisanych w przerzutnikach bitów o jedną pozycję w prawo i wczytanie nowego bitu z wejścia. 

Rejestr pokazany na rysunku 3-15 jest taktowany pojedynczym sygnałem zegara. Tymczasem w przerzutnikach typu D takich, jak omawiane poprzednio (rysunki 3-8 i 3-9) wymagany jest zegar dwufazowy o fazach „1” nie nakładających się. Teoretycznie możliwe są dwa rozwiązania: albo druga faza zegara jest generowana lokalnie w każdym przerzutniku (takie rozwiązanie, wspomniane wcześniej, jest zwykle stosowane w przerzutnikach wchodzących w skład bibliotek komórek standardowych), albo oba zegary są generowane centralnie i doprowadzane do każdego przerzutnika. To drugie rozwiązanie jest technicznie kłopotliwe. Do tego zagadnienia będziemy jeszcze wracać.

Oprócz rejestrów złożonych z przerzutników pseudo-statycznych (takich, jak te z rysunków 3-8 i 3-9) bywają też stosowane rejestry w pełni dynamiczne. Takie rejestry mają znacznie prostszą budowę. Pojedynczy stopień rejestru składa się z inwertera, bramki transmisyjnej oraz pojemności, która służy jako element pamięciowy:

 

Rysunek 3 16. Dynamiczny rejestr szeregowy przesuwający

 

W rejestrze dynamicznym kolejne bramki transmisyjne (mogą to być pojedyncze tranzystory nMOS) są otwierane i zamykane na przemian sygnałem zegara i jego negacją. Otwarta bramka powoduje podanie sygnału z wyjścia poprzedniego inwertera na wejście następnego. Łatwo się przekonać, że w tej sytuacji jeden pełny takt zegara powoduje przesunięcie o dwa stopnie. Rejestr dynamiczny wymaga ciągłego taktowania, a częstotliwość zegara nie może być dowolnie mała, jest ograniczona od dołu zjawiskiem upływności rozładowującej kondensatory.