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