Ukªady sekwencyjne 1 Podstawowe ukªady sekwencyjne

Transkrypt

Ukªady sekwencyjne 1 Podstawowe ukªady sekwencyjne
Ukªady sekwencyjne
Wszystkie do tej pory poznane ukªady logiczne byªy ukªadami kombinacyjnymi, tzn. warto±ci na wyj±ciach ukªadu zale»aªy tylko i wyª¡cznie od warto±ci na wej±ciach. Aby skonstruowa¢ pami¦¢ b¦dziemy potrzebowali ukªadów sekwencyjnych. Ukªady takie, b¦d¡ miaªy swój wewn¦trzny stan. Bie»¡cy stan takiego
ukªadu zale»y nie tylko od tego co jest na wej±ciach, ale tak»e od poprzedniego stanu.
1
1.1
Podstawowe ukªady sekwencyjne
Przerzutnik S-R
Ka»dy przerzutnik ma dwa mo»liwe stany wewn¦trzne: 1 i 0. Jest zatem pami¦ci¡ 1-bitow¡. Stan ukªadu jest
reprezentowany przez wyj±cie Q. Zaznaczamy zawsze tak»e wyj±cie dopeªniaj¡ce Q.
Przerzutnik S-R ma dwa wyj±cia S i R pozwalaj¡ce ustawia¢ Q odpowiednio na 1 i 0. Rys. 1 przedstawia
realizacj¦ przerzutnika S-R za pomoc¡ bramek NOR i jego tabel¦ przej±¢. Peªna tabela przej±¢ przedstawiona
jest poni»ej:
S
0
0
0
0
1
1
1
1
R
0
0
1
1
0
0
1
1
Qn
0
1
0
1
0
1
0
1
Qn+1
0
1
0
0
1
1
-
Kombinacja wej±¢ 10 ustawia zatem przerzutnik w stanie 1, kombinacja 01 - w stanie 0, 00 jest kombinacj¡
podtrzymuj¡c¡ stan ukªadu, a 11 - kombinacj¡ zabronion¡ (co si¦ dzieje jak podamy takie wej±cie?)
Rysunek 1: Przerzutnik S-R zrealizowany za pomoc¡ bramek NOR
Przedstawiony ukªad ma pewn¡ wad¦: po zmianie wej±cia ukªad od razu dziaªa i zmienia wyj±cie. Zachowanie takie mo»e by¢ nieporz¡dane w systemie komputerowym - chcieliby±my synchronizowa¢ dziaªanie ró»nych
jego elementów. W tym celu u»yjemy sygnaªu zegarowego (na rysunkach oznaczanego zazwyczaj literk¡ C ).
Sygnaª taki na zmian¦ co pewnien okres czasu (poªow¦ cyklu zegarowego) zmienia si¦ z 0 na 1 i odwrotnie.
Zegar o cz¦stotliwo±¢i 1GHz zmienia swój stan z 0 na 1 miliard razy na sekund¦. Pierwsze usprawnienie przerzutnika S-R b¦dzie polegaªo na podª¡czeniu go do sygnaªu zegarowego i zezwoleniu na zmian¦ stanu tylko w
czasie gdy sygnaª zegarowy jest równy 1. Wystarczy w tym celu poª¡czy¢ wej±cia S i R z sygnaªem zegarowym
1
bramkami AND (mo»emy synchronizowa¢ wiele przerzutników lub innych ukªadów komputera podª¡czaj¡c je
do tego samego sygnaªu zegarowego). Uzyskany ukªad nazywany jest przerzutnikiem S-R sterowanym
poziomem sygnaªu.
Ukªad zachowuje si¦ ju» troch¦ lepiej, ale wci¡» nie jest idealny: w czasie jednego cyklu zegarowego stan
Q mo»e zmieni¢ si¦ wielokrotnie. Spróbujemy wymusi¢, aby nasz przerzutnik mógª reagowa¢ zmian¡ stanu
tylko raz w czasie pojedynczego cyklu zegarowego. Idea polega na u»yciu poª¡czonych szeregowo dwóch przerzutników S-R sterowanych poziomem sygnaªu i podpi¦ciu do drugiego negacji sygnaªu zegarowego pierwszego
przerzutnika. Odpowiedni rysunek i analiza dziaªania zostaªy przedstawione na wykªadzie. Uzyskany ukªad
b¦dziemy nazywali przerzutnikiem S-R sterowanym zboczem sygnaªu.
Symbol synchronizowanego przerzutnika S-R sterowanego zboczem przedstawia rysunek 2. W przypadku
przerzutnika sterowanego poziomem sygnaªu trójk¡cik zast¦powany jest zazwyczaj póªokr¦giem.
Rysunek 2: Symbol synchronizowanego przerzutnika S-R
1.2
Inne przerzutniki
Przerzutnik J-K to nieco usprawniona wersja przerzutnika S-R rozwi¡zuje problem zabronionego wej±cia 11.
Symbol, tabel¦ przej±¢ oraz realizacj¦ za pomoc¡ przerzutnika S-R przedstawia rysuneke 3.
Rysunek 3: Przerzutnik J-K
Przerzutnik D (przerzutnik danych) to rzeczywisty odpowiednik jednostki pami¦ci przechowuj¡cej pojedynczy bit informacji. Ma jedno wej±cie D, które mówi co powinno by¢ zapami¦tane. Symbol, tabel¦ przej±¢
oraz realizacj¦ za pomoc¡ przerzutnika S-R przedstawia rysunek 4.
Rysunek 4: Przerzutnik D
2
2.1
Przykªady ukªadów sekwencyjnych
Rejestr
Rejestry sªu»¡ do przechowywania danych, np. liczb. Na rysunku 5 przedstawiamy rejestr 4-bitowy. W
praktyce rejestry s¡ wi¦ksze (16, 32, 64 bity). Sygnaª zegarowy synchronizuj¡cy caªy ukªad zapewnia, »e
2
wszystkie bity rejestru b¦d¡ modykowane w tym samym czasie.
Rysunek 5: Rejestr 4-bitowy i jego blokowe oznaczenie
Rzeczywiste rejestry maj¡ jeszcze dodatkowe linie zasilania i uziemienia oraz linie zerowania. Pomijamy
je w naszych rozwa»aniach. Dane wej±ciowe dla rejestru mog¡ by¢ pobierane w wyj±cia multipleksera, co
pozwala na pobieranie danych z ró»nych ¹ródeª. Dane wyj±ciowe mog¡ by¢ z kolei przekazywane dalej przez
demultiplekser.
2.2
Licznik binarny
Licznik binarny to ukªad, który w takt zegara przyjmuje kolejno ±ci±le okre±lone stany (zazwyczaj sekwencje
kolejnych liczb binarnych). Rozwa»my sekwencje: 0000, 0001, 0010, 0011, ..., 1111, 0000, 0001, ... Najmniej
znacz¡cy bit zmienia si¦ w ka»dym cyklu zegarowym, kolejne bity: dokªadnie wtedy, gdy wszystkie bity na
prawo od nich s¡ jedynkami. Najpro±ciej zrealizowa¢ tego typu ukªad z przerzutników J-K.
Wersja asynchroniczna. Na wej±cia J i K ka»dego z przerzutników podajemy 1 (na staªe). Na wej±cie
zegarowe pierwszego przerzutnika podajemy sygnaª zegarowy; na wej±cie zegarowe ka»dego z pozostaªych
przerzutników: wyj±cie Q poprzedniego przerzutnika. Dlaczego taki ukªad jest nazywany asynchronicznym
(rozwa» przej±cie ze stanu 1111 do 0000)?
Wersja synchroniczna. Na rysunku 6 przedstawiona jest realizacja 4-bitowego licznika synchronicznego.
Zmiana stanu przerzutników nast¦puje w nim równolegle. Licznik zaczyna pracowa¢ po ustawieniu linii count
enable na 1. Dodatkowo wyj±cie output carry pozwala wychwyci¢ moment, gdy licznik doszedª do stanu 1111.
Rysunek 6: Licznik synchroniczny
3
3
Projektowanie ukªadów sekwencyjnych
W tym rozdziale opowiemy o konstruowaniu ukªadów, których wyj±ciem s¡ po prostu wyj±cia przerzutników a
wej±cia nie ma. Problem projektowania zilustrujemy konstruuj¡c krok po kroku synchroniczny licznik 3-bitowy
(przykªad pochodzi z ksi¡»ki Stallingsa). U»yjemy przerzutników J-K. Wyj±cia przerzutników oznaczymy przez
QA , QB , QC (QC to bit najmniej znacz¡cy).
W poni»szej tabeli przypominamy tablic¦ wªasno±ci przerzutnika J-K:
J
0
0
1
1
K
0
1
0
1
Qt+1
Qt
0
1
Qt
Tabel¦ mo»na przepisa¢ do poni»eszej postaci (tzw.
Qt
0
0
1
1
J
0
1
d
d
tablica wzbudzania):
K
d
d
1
0
Qt+1
0
1
0
1
Posªuguj¡c si¦ tablic¡ wzbudzania konstruujemy teraz tablic¦ prawdy wi¡»¡c¡ wej±cia J,K z wyj±ciami.
Tablica przedstawiona jest poni»ej:
QA
0
0
0
0
1
1
1
1
QB
0
0
1
1
0
0
1
1
QC
0
1
0
1
0
1
0
1
Ja
0
0
0
1
d
d
d
d
Ka
d
d
d
d
0
0
0
1
Jb
0
1
d
d
0
1
d
d
Kb
d
d
0
1
d
d
0
1
Jc
1
d
1
d
1
d
1
d
Kc
d
1
d
1
d
1
d
1
Rozwa»amy przej±cie z pierwszego do drugiego wiersza: chcemy, »eby warto±ci QA i QB pozostaªy równe
0, a warto±¢ QC ma si¦ zmieni¢ na 1 przy kolejnym impulsie zegarowym. Wpisujemy odpowiednie warto±ci do
kolumn Ja, Ka, ... . Analogicznie post¦pujemy z kolejnymi wierszami. Teraz znajdujemy wyra»enia boolowskie
dla wyj±¢ Ja, Ka, ... (funkcje QA , QB , QC ). Mo»emy u»y¢ metody siatek Karnaugha. Powinni±my otrzyma¢:
Ja=QB QC , Ka=QB QC , Jb=QC , Kb=QC , Jc=1, Kc=1.
4
Automaty Moore'a i Mealy'ego
Ta cz¦±¢ jest w notatkach bardzo skrócona. Ci, którzy nie byli na wykªadzie b¦d¡ musieli poszuka¢ informacji
w innym miejscu.
• Licznik synchroniczny jest przykªadem klasy ukªadów synchronicznych nazywanych synchronicznymi
automatami Moore'a.
• Rozwa»a¢ b¦dziemy tylko ukªady synchroniczne, tzn. takie, w których stan przerzutników zmienia si¦ w
jednym momencie (raz na cykl zegarowy; istniej¡ te» ukªady asynchroniczne: np. nasza pierwsza wersja
licznika binarnego); ukªady te maj¡ linie wej±cia, linie wyj±cia oraz wewn¦trzny stan
• dwa rodzaje ukªadów sekwencyjnych: automaty Moore'a i Mealy'ego kolejny stan zale»y od poprzedniego stanu i od wej±cia;
• automaty Moore'a wyj±cie zale»y tylko od stanu
• automaty Mealy'ego wyj±cie zale»y od stanu i wej±cia
4
• zauwa»my, »e nasz ukªad licznika synchronicznego (bez linii 'count enable') jest ukªadem Moore'a, który
nie patrzy na wej±cia;
• Na wykªadzie pokazaªem przykªad konstrukcji prostego automatu Moore'a. Jest ona podobna do konstrukcji naszego licznika binarnego z poprzedniego rozdziaªuaju, ale uwzgl¦dnia sygnaªy wej±ciowe oraz
pozwala, by na wyj±ciu pojawiªa si¦ jaka± funkcja wyj±¢ przerzutników (a nie po prostu same wyj±cia).
5

Podobne dokumenty