Zad 1.
Celem pierwszego zadania było zbadanie działania 4-bitowego rejestru szeregowego. Schemat zbudowanego przez nas rejestru znajduje się poniżej:
W celu dokładnej diagnozy wyprowadziliśmy wyjście każdego z przerzutników na żarówkę.
Poniższy wykres czasowy ilustruje niektóre z dokonanych przez nas testów:
Na wykresie tym Qi oznacza wyjście i-tego przerzutnika.
Przeprowadzone przez nas testy wykazały, że zmontowany układ działa zgodnie z założeniami teoretycznymi.
Zad.2
Celem drugiego zadania było sprawdzenie działania asynchronicznego i synchronicznego rejestru równoległego.
Schemat rejestry asynchronicznego:
Sygnał w musi wynosić 1, aby informacja została zapisana do rejestru. Jak widać na schemacie zastosowane tutaj wprowadzanie informacji do rejestru jest dwustopniowe. Przed wprowadzeniem informacji należy każdy z rejestrów wyzerować za pomocą podania na chwilę na wejście Z stanu niskiego, gdyby tego nie uczyniono to w i-tym rejestrze nastąpiłoby logiczne zsumowanie jego stanu z wejściem xi. Inną możliwością było zastosowanie układu większej ilości bramek, ale umożliwiającego jednostopniowe wprowadzanie informacji do rejestru (rozwiązanie to polega na wprowadzeniu na wejście resetujące każdego z przerzutników zanegowanego sygnału niż podany na wejście ustawiające).
Po przetestowaniu układu doszliśmy do wniosku, że układ działa poprawnie
Schemat synchronicznego rejestru równoległego znajduje się poniżej.
Po przetestowaniu układ działał poprawnie
Zad. 3
Celem tego ćwiczenia było sprawdzenie układów do wprowadzania i wyprowadzania informacji z rejestru. Tego zadania zgodnie z poleceniem prowadzącego nie realizowaliśmy na laboratoriach, ze względu na jego prostotę. Innym powodem było to, że do poprawnej jego realizacji dobrze byłoby użyć kilku kilku-bitowych rejestrów, a ponieważ każdy z rejestrów budowaliśmy z przerzutników, a nie mieliśmy danych, jako układy, zwiększyłoby to znacznie stopień skomplikowania praktycznego wykonania.
Przesył informacji między rejestrami szeregowymi wykonać można w ten sposób, że wyjścia rejestrów nadawczych będą po pierwsze pokierowane na swoje wejścia, w celu nie utracenia z nich informacji. Po drugie dla każdego rejestru nadawczego wyjście należałoby dołączyć do dwuwejściowej bramki AND, drugie jej wejście byłoby sygnałem aktywującym przesył z danego rejestru (Mogłoby to być sterowane za pomocą demultipleksera, na jego wejścia adresowe podawałoby się adres żądanego rejestru, co spowodowałoby wystawienie stanu wysokiego na to wyjście, które odpowiadałoby odpowiedniemu rejestrowi). Wybór rejestrów, które miałyby przyjąć informację mógłby również odbywać się za pomocą demultipleksera
(chociaż tutaj może lepszym rozwiązaniem byłoby bezpośrednie podanie stanów umożliwiających wpis na te rejestry do których chcemy coś wpisać, rozwiązanie to byłoby o tyle lepsze że demultiplekser umożliwiałby jednoczesne zaadresowanie tylko jednego rejestru, więc w sytuacjach kiedy chcielibyśmy przesłać informację z tego samego rejestru do kilku innych trzeba by to robić kilkakrotnie, wybór rozwiązania adresowania rejestrów odbiorczych byłby tutaj więc sprawą indywidualną dla konkretnego przypadku zastosowań). Jeżeli dany rejestr byłby wybrany to sygnał, który go adresuje mógłby być wejściem adresowym multipleksera, który wybierałby czy na wejście ma być podawany stan poprzedni czy wystawiony aktualnie na linię przesyłową (ponieważ jest to trywialny przypadek multipleksera można z łatwością użyć zamiast niego bramek). W przypadku przesyłu pomiędzy rejestrami równoległymi realizacja wyboru rejestru nadawczego odbywałaby się w sposób podobny z tym, tutaj każde z wyjść przerzutników musiałoby być doprowadzone do bramek NAND razem z sygnałem adresującym, następnie Wszystkie i-te wyjścia rejestrów nadawczych musiałyby być dołączone do bramek OR i wyjścia tych bramek trafiałyby na magistralę. Innym rozwiązaniem niż użycie bramek NAND jest użycie bramek trójstanowych, które w zależności od sygnału adresującego dany rejestr wystawia albo to, co jest podane na jego wejście (w momencie, kiedy ten rejestr jest wybrany), albo wystawia stan wysokiej impedancji, co jest równoważne jakby odłączeniu wyjść danego rejestru od magistrali. Adresowanie rejestrów odbiorczych również można zorganizować w podobny sposób jak w rejestrach szeregowych z tą różnicą, że tutaj zapamiętanie poprzedniego stanu wylądało by nieco inaczej. Najprostszym rozwiązaniem wydaje się zatrzymanie taktowania tych rejestrów, które informacji maja nie odebrać (np. poprzez podawanie sygnału taktującego dany rejestr na bramkę NAND razem z sygnałem wybierającym dany rejestr, wyjścia tej bramki byłyby podpięte do wejść zegarowych każdego przerzutnika).
Zad. 6
Celem tego ćwiczenia było zbudowanie 3-bitowego rejestru dwukierunkowego. Poniżej znajduje się schemat tego rejestru:
Podanie sygnały wysokiego na wejście sterujące s powoduje że aktywnym wejściem szeregowym rejestru staje się wejście xr, następuje wtedy przesuwanie informacji w prawo (wyjściem szeregowym jest w takim przypadku Q2). Natomiast podanie na wejście s stanu niskiego powoduje, że aktywny wejściem informacyjnym staje się wejście xl, a informacja przesuwana jest w lewą stronę (wyjściem szeregowym jest wtedy Q0).
Po zmontowaniu układ działał zgodnie z założeniami.