TC Moduł 10

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
TC M10 Slajd1.png
Układy cyfrowe cz. 1

TC M10 Slajd2.png
Omawiane do tej pory układy logiczne to inaczej mówiąc układy cyfrowe konstruowane z bramek i przerzutników. I w zasadzie można z nich zaprojektować i zbudować dowolny układ cyfrowy. Problem jednak leży w tym, że takie postępowanie byłoby bardzo skomplikowane. Dlatego z podstawowych układów logicznych buduje się najpierw tzw. bloki funkcjonalne, a dopiero z nich konstruuje się bardziej złożone układy cyfrowe jak np.: układy przetwarzania sygnałów, układy sterowania, specjalizowane procesory, układy kryptograficzne.

TC M10 Slajd3.png
Wymienione układy znajdują zastosowanie w różnorodnych urządzeniach cyfrowych: telefonia cyfrowa, telewizja cyfrowa, urządzenia multimedialne itp.

TC M10 Slajd4.png
Podstawową techniką w projektowaniu układów cyfrowych jest tzw. synteza strukturalna. Jest to metoda budowania „większego” układu z „mniejszych” podukładów, zwanych blokami funkcjonalnymi (BF). W technice układów katalogowych bloki funkcjonalne wykonujące typowe operacje przetwarzania sygnałów cyfrowych były produkowane w postaci modułów scalonych średniej i wielkiej skali integracji. Powszechnie stosowana seria układów scalonych TTL (tzw. seria 74) obejmowała takie układy jak: multipleksery, liczniki, rejestry itp. Układom tym nadawano specyficzne, katalogowe oznaczenia np. 74151 dla multipleksera, 74163 dla licznika itp. Obecnie większość tych układów wchodzi w skład elementów bibliotecznych systemów projektowania układów cyfrowych w postaci tzw. komponentów lub makrobloków.

TC M10 Slajd5.png
Blok funkcjonalny to specjalizowany układ cyfrowy przystosowany do wykonania jednej lub kilku określonych operacji przetwarzania sygnałów binarnych. Operacje te w odniesieniu do monolitycznego lub wyodrębnionego bloku funkcjonalnego nazywane są mikrooperacjami. 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 predykatowych. Dodatkowo sekwencyjny blok funkcjonalny jest wyposażony w wejście synchronizujące (zegarowe) .

TC M10 Slajd6.png
Najogólniejsza klasyfikacja bloków funkcjonalnych uwzględnia bloki kombinacyjne oraz sekwencyjne. Typowe bloki funkcjonalne kombinacyjne to multipleksery, demultipleksery, dekodery, sumatory, komparatory. Typowe bloki sekwencyjne to rejestry i liczniki.

Warto podkreślić, że pojęcie bloku funkcjonalnego, jak też ich klasyfikacja uległo pewnej modyfikacji i powinno być rozumiane ogólniej niż to miało miejsce w technice układów katalogowych. Wobec możliwości zaprojektowania i umieszczenia w bibliotece komputerowego systemu projektowania dowolnego układu cyfrowego – bez potrzeby sztywnych ograniczeń jakie były oferowane w realizacjach katalogowych – w dzisiejszej technice BF może być specjalizowanym układem cyfrowym, którego mikrooperacje zarówno pod względem ilości jak też funkcjonalności definiuje sam użytkownik.


TC M10 Slajd7.png
Multiplekser to funkcjonalny blok kombinacyjny, w którym jest wejść informacyjnych (), wejść adresowych , wyjście oraz wejście zezwolenia (enable). Multiplekser (MUX) realizuje funkcję opisaną wyrażeniem boolowskim:
,

gdzie oznacza pełny iloczyn zmiennych , prostych lub zanegowanych, zgodnie z reprezentacją binarną liczby .


TC M10 Slajd8.png
Zakładając, że dla (tak zwany MUX 2 : 1) mamy:

W podobny sposób można wyprowadzić wzory dla (MUX 4 : 1) oraz dla dla (MUX 8:1). W szczególności na rysunku podany jest schemat multipleksera o dwóch wejściach adresowych. Warto spostrzec, że wzory określające wyjście podają jednocześnie w jaki sposób skonstruowany jest multiplekser z bramek logicznych.


TC M10 Slajd9.png
Multiplekser pracuje jako przełącznik. Dla multipleksera o dwóch wejściach adresowych (jak na rysunku) oznacza to, że jeśli sygnały na jego wejściach adresowych są odpowiednio , to na wyjściu pojawi się sygnał taki jak na wejściu informacyjnym oznaczonym , podobnie dla adresu , będzie to sygnał taki jak na wejściu , itd.

TC M10 Slajd10.png
Demultiplekser to układ kombinacyjny o jednym wejściu informacyjnym , wejściach adresowych , wyjściach () oraz wejściu zezwalającym . Na wyjściu jest realizowana funkcja:
,

gdzie (jak poprzednio) jest pełnym iloczynem zmiennych , prostych lub zanegowanych, zgodnie z reprezentacją binarną liczby .


TC M10 Slajd11.png
Demultiplekser też pracuje jako przełącznik, ale jego działanie jest przeciwne do działania multipleksera. W tym przypadku sygnał podany na wejście (informacyjne jest „rozprowadzany” na różne wyjścia. Dla DMUX z rysunku na planszy przy adresie równym , sygnał pojawi się na wyjściu oznaczonym , (a na pozostałych wyjściach wartość logiczna sygnału będzie ), przy adresie równym , logiczna pojawi się na wyjściu ozn. . itd.

TC M10 Slajd12.png
Liczba wejść informacyjnych multipleksera (również demultipleksera) rośnie wykładniczo. Z tych powodów nie realizuje się bezpośrednio multiplekserów o dużej liczbie wejść adresowych (np. większej od czterech), a raczej „składa” się je z mniejszych multiplekserów. Przykład takiego kaskadowego połączenia jest pokazany na rysunku.

TC M10 Slajd13.png
Szczególnym przypadkiem demultipleksera jest dekoder, w którym przyjmuje się, że do wejścia zawsze jest dołączony sygnał o wartości logicznej . Dlatego wyjście to nie jest dostępne na zewnątrz układu i w rezultacie symbol graficzny dekodera jest nieco inny.

TC M10 Slajd14.png
Najważniejsze zastosowanie multiplekserów i demultiplekserów jest związane z realizacjami bloków komutacyjnych, czyli elementów umożliwiających proste przełączanie sygnałów, najczęściej wielokrotnych (grupowych). Na rysunku pokazano multiplekser (nazywany multiplekserem grupowym), w którym dwa 4-bitowe sygnały i mogą być dołączane do szyny w zależności od stanu wejścia adresowego .

TC M10 Slajd15.png
W rezultacie działanie tych układów można uogólnić następująco. Multiplekser MUX przesyła na wyjście wektor , wybrany za pomocą wektora adresowego (adresu) .

Demultiplekser DMUX przesyła wektor wejściowy na wyjście o numerze wskazanym przez wektor adresowy (adres) .


TC M10 Slajd16.png
Dla MUX z rysunku na planszy jego wyjście jest ciągiem , gdyż adres przełącza sygnały z wejść informacyjnych oznaczonych cyfrą . Dla DMUX na wyjściu oznaczonym pojawiają się sygnały z wejść informacyjnych, czyli .

TC M10 Slajd17.png
Multipleksery i demultipleksery/dekodery mogą być stosowane do realizacji funkcji boolowskich. Realizacje takie są szczególnie proste, gdy liczba wejść adresowych multipleksera/demultipleksera jest równa liczbie argumentów funkcji. W takich sytuacjach wystarczy wejścia informacyjne multipleksera reprezentowane wektorami zbioru dołączyć do stałej , a wejścia reprezentujące wektory zbioru dołączyć do stałej .

Na rysunku pokazany jest sposób dołączenia sygnałów logicznych do wejść informacyjnych MUX realizującego funkcję .


TC M10 Slajd18.png
Natomiast realizacja funkcji na dekoderze wymaga dołączenia odpowiednich wyjść dekodera do wejść bramki , której wyjście bezpośrednio realizuje funkcję . Na rysunku pokazany jest sposób dołączenia wyjść dekodera do wejść bramki w celu realizacji funkcji .

Oczywiście w przypadkach, gdy liczba argumentów funkcji jest większa od liczby wejść adresowych multipleksera (demultipleksera) należy zastosować odpowiednią konstrukcję większego multipleksera, wykorzystując do tego celu multiplekser kaskadowy. Nie będzie to jednak realizacja najlepsza ze względu na wykładniczy wzrost liczby potrzebnych modułów multiplekserów.


TC M10 Slajd19.png
Operację sumowania arytmetycznego realizuje sumator. Na wyjściu sumatora powstaje suma liczb binarnych i . Ze zrozumiałych względów suma ta, reprezentowana -bitowym wektorem może być „przekłamana”, gdy zapis jej wartości wymagać będzie bitów. Sytuacja taka jest sygnalizowana na wyjściu przeniesienia sygnałem logicznym , a wektor jest prawidłowym wynikiem.

TC M10 Slajd20.png
W najprostszej realizacji sumator jest zbudowany z kaskadowo połączonych sumatorów jednobitowych, o wejściach , wyjściach oraz . Dodatkowo na rysunku pokazano działanie sumatora 4 bitowego w przypadku, gdy na jego wejścia podano liczby oraz . Wtedy wynik należy odczytywać jako (czyli ), gdzie logiczna jest wytworzona na wyjściu przeniesienia .

TC M10 Slajd21.png
Działanie pojedynczego ogniwa sumatora można opisać funkcjami boolowskimi podanymi w tablicy. Po odpowiedniej minimalizacji (na tablicach Karnaugha) i stosownych przekształceniach uzyskuje się wyrażenia boolowskie bezpośrednio opisujące strukturę pojedynczego ogniwa sumatora (często zwanego sumatorem pełnym i oznaczanego FA – Full adder.

TC M10 Slajd22.png
Sumator może być wykorzystany do realizacji operacji odejmowania . W tym celu wystarczy wejścia dołączyć do wejść sumatora za pośrednictwem inwertorów, ale najlepiej jest negować poszczególne bity wektora za pośrednictwem dwuwejściowych bramek , w sposób pokazany na rysunku. Sposób takiej konstrukcji wynika z zasad działania na liczbach zapisanych w kodzie uzupełnień do dwóch.

TC M10 Slajd23.png
Wartość dziesiętna liczby przedstawionej za pomocą wektora zapisanego w NKB wynosi:

Za pomocą wektora o długości można przedstawić dziesiętne liczby dodatnie z zakresu .

Kod NKB służy do zapisu całkowitych liczb dodatnich. Zapis zarówno liczb dodatnich, jak i ujemnych umożliwia często stosowany kod (kod uzupełnieniowy do dwóch):


TC M10 Slajd24.png
W kodzie Parser nie mógł rozpoznać (SVG (MathML może zostać włączone przez wtyczkę w przeglądarce): Nieprawidłowa odpowiedź („Math extension cannot connect to Restbase.”) z serwera „https://wazniak.mimuw.edu.pl/api/rest_v1/”:): {\displaystyle A_{U2} =\left \langle a_{n–1} ,\ldots, a_j ,\ldots, a_0\right \rangle} , gdzie . Bit można interpretować jako bit znaku. Jeśli , to liczba jest dodatnia; jeśli to liczba jest ujemna; pozostałe bity stanowią uzupełnienie (różnicę) wartości liczby do najwyższej potęgi liczby .

TC M10 Slajd25.png
Działanie układu z rys. na planszy można opisać:

,gdzie

Dla mamy , czyli sumowanie. Dla mamy ; oznacza liczbę w kodzie , zatem .


TC M10 Slajd26.png
Rysunek na planszy przedstawia 4 bitowy sumator przystosowany do wykonywania operacji odejmowania. Przekroczenie zakresu wykonywanego działania jest sygnalizowane sygnałem nadmiaru OVR (overflow): Parser nie mógł rozpoznać (SVG (MathML może zostać włączone przez wtyczkę w przeglądarce): Nieprawidłowa odpowiedź („Math extension cannot connect to Restbase.”) z serwera „https://wazniak.mimuw.edu.pl/api/rest_v1/”:): {\displaystyle OVR = c_n\oplus c_{n–1}}

TC M10 Slajd27.png
Komparator umożliwia porównanie dwóch liczb n-bitowych i określenie czy są sobie równe, a także która z liczb jest większa, a która mniejsza. Stan logiczny na wyjściach , lub , określa odpowiednio sytuację gdy: , , .

TC M10 Slajd28.png
Przeanalizujmy przedstawiony na rysunku komparator 4-bitowy, gdzie: , , a ponadto:
tylko wtedy, gdy ,
tylko wtedy, gdy ,
tylko wtedy, gdy ,

Oznaczając poszczególne wyjścia komparatora można opisać zależnościami: