Gdańsk 13.11.1998.
LABORATORIUM UKŁADÓW CYFROWYCH.
Ćwiczenie 3.
Układy iteracyjne.
Dariusz Kreft
Szymon Radtke
gr.III, gr.lab. 7
Data odrabiania ćwiczenia : 17.11.1998.
Data oddania sprawozdania : 17.11.1998.
Zadanie 1.
Binarny sumator dwóch liczb 8 - bitowych.
Układ składa się z ośmiu identycznych podukładów. Każdy z nich realizuje tą samą funkcję : sumuje odpowiadające sobie bity () obu liczb wejściowych z uwzględnieniem bitu przeniesienia z poprzedniego układu (na pierwszy z podukładów podajemy zerowy bit przeniesienia) oraz wysyła na wyjście kolejny bit liczby wynikowej i podaje na wejście następnego podukładu bit przeniesienia. Bit przeniesienia ostatniego (ósmego) podukładu stanowi najstarszy bit wyniku.
ukł.1. ukł.8.
Tabelka :
|
|
000 001 010 011 100 101 110 111 |
00 10 10 01 10 01 01 11 |
Schemat podukładu na multiplekserach Mx 16/1 :
„0”
„1”
I0 I1 I2 I3 I4 I5 I6 I7 ...
A3
A2 Mx 16/1
A1
A0
„0” „0”
a
b „1”
Pi
I0 I1 I2 I3 I4 I5 I6 I7 ...
A3
A2 Mx 16/1
A1
A0
Zadanie 2.
Komparator dwóch liczb 8 - bitowych, porównujący w kierunku od bitów starszych do młodszych.
Poszczególne podukłady tworzące komparator są połączone pomiędzy sobą trzema liniami (KLM), które za pomocą logicznej jedynki przenoszą odpowiednio następujące informacje : A > B, A = B i A < B. Po odebraniu informacji z poprzedniego podukładu i porównaniu aktualnych bitów obu liczb wejściowych układ generuje odpowiednią informację (K'L'M') do kolejnego.
Na wejście pierwszego z podukładów podajemy następujące sygnały : K=0, L=1, M.=0.
Układ generuje logiczną jedynkę na szynie K wtedy i tylko wtedy, gdy z poprzedniego „bloku” przyszła informacja, że liczba A > B (niezależnie od aktualnie porównywanych bitów), lub też gdy poprzedni układ przesłał informację L (A = B) i jednocześnie .
Jeżeli jeden z układów wygeneruje jedynkę na K to bez względu na to jakie będą kolejne bity porównywanych liczb na wyjściu ósmego podukładu K = 1.Podobnie rzecz się ma z szyną M. (porównywanie od najbardziej znaczącego bitu).
M.'=1 tylko wtedy gdy poprzedni podukład wygenerował M.'=1 lub też gdy wszystkie dotąd porównywane bity były sobie równe (L=1) i jednocześnie aktualnie porównywany kolejny bit liczby B jest większy od odpowiadającego mu bitu liczby A.
Natomiast układ wyśle informację L (A=B) wtedy gdy do układu przyszła informacja L i aktualnie porównywane bity również są identyczne.
Wynik porównania odczytamy z wyjść ostatniego bloku.
|
|
|
|
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 |
0 0 0 0 0 0 1 0 1 1 1 1 1 1 1 1 |
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 |
0 0 0 0 0 1 0 0 1 1 1 1 1 1 1 1 |
|
|
|
|
000 001 010 011 100 101 110 111 |
K K K K K K 1 K |
0 0 0 0 1 0 0 1 |
M. M. M. M. M. 1 M. M. |
Schemat układu wygląda podobnie jak w poprzednim zadaniu : na wejścia informacyjne podajemy zgodnie z tabelkami odpowiednio „0” , „1” lub też K bądź M natomiast na wejścia adresowe : L, a i b (wykorzystujemy połowę wejść informacyjnych I0 ÷ I7),
Zadanie 3.
Układ wykrywający sekwencję 1011 w ciągu 16 - bitowym.
Graf działania układu :
1
1 0 1
B/0 C/0
0
A/0 D/0
0 0
1
0 E/1
1
kody stanów :
A - 0 0 0 - nie wykryto jeszcze sekwencji,
B - 0 0 1 - poprzednio było 0, jest 1,
C - 0 1 0 - była 1, jest 0,
D - 0 1 1 - wykryty został ciąg 10 i jest 1,
E - 1 0 0 - wykryto sekwencję 1011.
Tabelka :
|
|
y |
0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 1 0 0 1 0 0 0 0 1 0 1 0 0 1 1 0 0 0 1 1 1 0 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 1 0 1 1 0 1 1 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 1 1 1 0 0 0 0 1 0 0 0 1 1 0 0 1 0 1 0 0 1 1 |
0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 1 1 0 1 0 0 0 1 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 1 1 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 |
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 |
Powyższą tabelkę przekształcamy w ten sposób, aby otrzymać funkcje cztero argumentowe (dysponujemy multiplekserami o czterech wejściach adresowych).
Na każdy z podukładów podajemy jednocześnie dwa kolejne bity ciągu wejściowego, z których pierwszy wraz z sygnałami podawany jest na wejścia adresowe multipleksera, natomiast na wejścia informacyjne zgodnie z poniższą tabelką podajemy „0” , „1” bądź też lub .
Na pierwszy z podukładów podajemy : .
|
|
y |
0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 |
0 0 0 0 0 0 0
0 0 1 0 0 1 0 0 1 0 0 |
0 0 0 0 0 0 0 0 1 1 |
Dekoder :
Układ jedynką na wyjściu sygnalizuje wykrycie wybranej sekwencji. Odpowiada to osiągnięciu przez układ stanu E (1 0 0).
Dekoder zrealizowaliśmy w następujący sposób : na wejścia adresowe multipleksera Mx 8/1 podajemy kod stanu (w przypadku wykrycia sekwencji będzie to 100), natomiast na wejście informacyjne I4 podajemy „1”, na pozostałe zaś „0”.
„0”
„1”
I0 I1 I2 I3 I4 I5 I6 I7
A2
A1 Mx 8/1 Y
A0