Politechnika Świętokrzyska w Kielcach Wydział Elektrotechniki, Automatyki i Informatyki |
---|
Laboratorium Układów Arytmetyczno-Logicznych |
Sprawozdanie nr 2 Cyfrowe Bloki Funkcjonalne (CBF) |
Data wykonania ćwiczenia: 11.11.2011 r. |
1. Cel ćwiczenia
Celem ćwiczenia było zapoznanie się z działaniem cyfrowych bloków funkcjonalnych (CBF) takichi jak bloki komutacyjne (multipleksery, demultipleksery, dekodery), rejestry, bloki sekwencyjne (liczniki), bloki arytmetyczne (sumatory, komparatory, multiplikatory, jednostki arytmetyczno-logiczne (ALU) oraz pamięci. Ćwiczenie realizowane było za pomocą komputerowego symulatora Logisim dostępnego w laboratorium.
2. Wstęp teoretyczny
Blok funkcjonalny jest to specjalizowany układ cyfrowy wykonujący jedną lub kilka elementarnych operacji (mikrooperacji) przetwarzania sygnałów cyfrowych. Na przykład: dodawanie czy odejmowanie.
Bloki funkcjonalne dzielimy według poniższego schematu:
2.1 Bloki komutacyjne
a) Multiplekser (MUX)
x0 …xk-1 –wejścia informacyjne
a0 … an-1 –wejścia adresowe (NKB)
s –wejście strobujące
y - wyjście
Multiplekser (w skrócie MUX) – układ kombinacyjny, najczęściej cyfrowy, służący do wyboru jednego z kilku dostępnych sygnałów wejściowych i przekazania go na wyjście.
Multiplekser jest układem komutacyjnym (przełączającym), posiadającym r wejść informacyjnych (zwanych też wejściami danych), r wejść adresowych (sterujących) i jedno wyjście y. Posiada też wejście sterujące działaniem układu oznaczane jako s (wejście strobujące, ang. strobe). Działanie multipleksera polega na przekazaniu wartości jednego z wejść Ur na wyjście y.
b) Demultiplekser (DMUX)
x –wejście informacyjne
a0 … an-1 –wejścia adresowe (NKB)
s –wejście strobujące
y0 … yk-1 - wyjścia
Demultiplekser (w skrócie DMUX) – układ kombinacyjny, posiadający jedno wejście U, a wejść adresowych oraz y wyjść (zazwyczaj y=2n), którego działanie polega na przekazaniu sygnału z wejścia U na jedno z wyjść y.
Wyjście jest określane przez podanie jego numeru na linie adresowe a1... an. Na pozostałych wyjściach jest stan zera logicznego. Zazwyczaj spotykane są demultipleksery o wyjściach zanegowanych. Demultipleksery o wyjściach prostych są znacznie rzadziej stosowane.
Jeśli na wejście strobujące (blokujące, ang. strobe) s podane zostanie logiczne zero, to wyjścia yi przyjmują określony stan logiczny (zwykle zero), niezależny od stanu wejścia U oraz od wejść adresowych.
c) Dekoder (DEC)
n=s
y2r-1 ar y2r-1
U
y1 a1 y1
y0 a0 y0
a1 a2 ar
wejścia adresowe NKB
Dekoder należy do klasy układów kombinacyjnych. Jest to układ posiadający a wejść oraz u wyjść. Jego działanie polega na zamianie naturalnego kodu binarnego NKB, lub każdego innego kodu, na kod "1 z n" . Działa odwrotnie do kodera, tzn. zamienia kod binarny na jego reprezentację w postaci tylko jednego wybranego wyjścia. W zależności od ilości wyjść nazywa się go dekoderem 1zN.
Niektóre źródła podają, że dekoderem jest także układ, który zamienia dowolny kod cyfrowy na kod wyświetlacza siedmiosegmentowego (poprawnie taki układ powinien być nazwany transkoderem).
2.2 Bloki arytmetyczne
a) sumator
Cn
A
C = A + B + C0 (arytmetycznie)
B
C0
Sumator – cyfrowy układ kombinacyjny, który wykonuje operacje dodawania dwóch (lub więcej) liczb dwójkowych. Są dwa główne rodzaje sumatorów:
z przeniesieniami szeregowymi (ang. ripple-carry adder)
z przeniesieniami równoległymi (ang. carry look-ahead adder)
b) komparator
A A>B
A=B
B A<B
Komparator jest układem kombinacyjnym służącym do porównywania dwóch liczb dwójkowych (kod binarny)(wykonanie cyfrowe) albo dwóch napięć (wykonanie analogowe).
c) multiplikator
A B
C = A * B
Multiplikator jest układem kombinacyjnym służącym do mnożenia dwóch binarnych.
d) jednostka arytmetyczno-logiczne (ALU)
Jednostka arytmetyczno-logiczna (ALU, ang. Aritmetic-Logic Unit) to uniwersalny układ cyfrowy przeznaczony do wykonywania operacji arytmetycznych i logicznych na dostarczonych do niej danych. Zestaw operacji ALU powinien być funkcjonalnie pełny, tzn. taki za pomocą którego jesteśmy w stanie zrealizować dowolny algorytm przetwarzania informacji. Każda lista rozkazów zawiera kilka grup działań występujących w różnych wersjach niemal w każdym komputerze są to:
- przesłania,
- działania arytmetyczne,
- działania logiczne,
- przesunięcia,
- sterowanie przebiegiem programu,
- przesłania wejścia-wyjścia, działania zmiennopozycyjne, działania na argumentach upakowanych.
ALU nie posiada pamięci ani urządzeń umożliwiających współpracę z pamięcią RAM. Współpracuje z zestawem rejestrów.
s0
s1 F
s2
c0
cn
P
Q OVR
S2 | S1 | S0 | F |
---|---|---|---|
0 | 0 | 0 | 0000 (reset) |
0 | 0 | 1 | Q-P-1+C0 |
0 | 1 | 0 | P-Q-1+C0 |
0 | 1 | 1 | P+Q+C0 |
1 | 0 | 0 | P ⊕ Q |
1 | 0 | 1 | P v Q |
1 | 1 | 0 | P ^ Q |
1 | 1 | 1 | 1111 (set) |
2.3 Rejestry
Rejestr (ang. register) jest układem cyfrowym służącym do zapamiętywania określonej porcji bitów danych. Rejestry stosuje się tam, gdzie występuje potrzeba chwilowego przechowania niewielkiej ilości informacji binarnej (np. wynik pewnej operacji arytmetycznej lub logicznej). Rejestry budowane są z przerzutników.
Informacja może być wprowadzana do rejestru na dwa sposoby:
- szeregowo (bit po bicie w takt sygnału zegarowego)
- równolegle (całe słowo wejściowe jest zapisywane jednocześnie
w chwili wyznaczonej przez sygnał taktujący)
Wyprowadzenie informacji przechowywanej w rejestrze może także odbywać się na te dwa sposoby.
W związku z tymi sposobami wprowadzania informacji wyróżnia się następujące rodzaje rejestrów:
szeregowo-szeregowy, zapis i odczyt jest realizowany szeregowy
szeregowo-równoległy, zapis informacji odbywa się szeregowo,
a wyprowadzana równolegle
równolegle-szeregowy, zapis jest realizowany równolegle, a odczyt szeregowo
równolegle-równoległy, zapis i odczyt dobywa się równolegle
2.4 Liczniki
Liczniki są, obok rejestrów, typowymi układami funkcjonalnymi stosowanymi powszechnie w różnego rodzaju układach cyfrowych i służą do zliczania impulsów i pamiętania ich liczby. Podstawowym elementem licznika jest przerzutnik z wejściem zegarowym (bez wejść programujących), który dzieli przez 2 częstotliwość impulsów podawanych na to wejście. W praktyce otrzymuje sie go z przerzutników typu D lub JK.
Liczniki dzielimy według następujących kategorii:
- liczniki modulo N (0123,0123,0123,…)
- liczniki do N (0…15)
- liczniki jednokierunkowe
- liczniki dwukierunkowe (rewersyjne)
2n-1 ≤ N ≤ 2n-1 0
1
n wyjść
n – 1
2.5 Pamięci
Pamięć cyfrowa – układ elektroniczny i/lub mechaniczny przeznaczony do przechowywania danych binarnych.
Rozróżniamy następujące rodzaje pamięci:
- RAM (Random Access Memory) – jest to pamięć ulotna, utrata następuje po odłączeniu zasilania
- ROM (Read-Only Memory) – pamięć trwała, tylko do odczytu
- PROM (Programmable Read-Only Memory) – pamięć jednokrotnego zapisu
- EPROM (Erasable Programmable Read-Only Memory) – kasowalna pamięć
- EEPROM (Electrically-Erasable Programmable Read-Only Memory) – nieulotna pamięć komputerowa kasowalna przy użyciu prądu elektrycznego
3. Przebieg ćwiczeń
Ćwiczenie polegało na badaniu wymienionych wyżej cyfrowych bloków funkcjonalnych w symulatorze Logisim. Każdy z wyżej wymienionych elementów został zrealizowany w symulatorze na zajęciach laboratoryjnych, co dokumentują poniższe zrzuty ekranu:
Rys 1. Realizacja multipleksera
Rys 2. Realizacja demultipleksera
Rys 3. Realizacja dekodera
Rys 4. Realizacja sumatora
Rys 5. Realizacja komparatora
Rys 5. Rejestr przesuwający
Rys 6. Symulacja licznika
Rys 6. Symulacja rejestru
4. Wnioski
Cyfrowe bloki funkcjonalne pozwalają zastąpić układy zbudowane z bramek logicznych. Blok funkcjonalny realizuje wybraną mikrooperację w wyniku zadania odpowiedniego wektora zmiennych wejściowych, zwanych zmiennymi sterującymi. Dla ustalonej mikrooperacji słowo wejściowe zostanie przetworzone w słowo wyjściowe i ewentualnie informacja o stanie tego przetwarzania będzie przekazana na zewnątrz za pośrednictwem sygnałów na wyjściach. Układy takie mogą wykonywać operacje logiczne takie jak porównywanie liczb lub ich sumowanie. Cyfrowe bloki funkcjonalne pozwalają na ułatwienie sobie pracy, gdyż są mniej rozbudowane od układów zawierających bramki logiczne.