Omawiane do tej pory układy logiczne to inaczej mówic układy cyfrowe konstruowane z bramek i przerzutników. I w zasadzie mona z nich zaprojektowa i zbudowa dowolny układ cyfrowy. Problem jednak ley w tym, e takie postpowanie 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łoone układy cyfrowe jak np.: układy przetwarzania sygnałów, układy sterowania, specjalizowane procesory, układy kryptograficzne. 1
Podstawow technik w projektowaniu układów cyfrowych jest tzw. synteza strukturalna. Jest to metoda budowania wikszego układu z mniejszych podukładów, zwanych blokami funkcjonalnymi (BF). 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 wikszo 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. 2
Blok funkcjonalny to specjalizowany układ cyfrowy przystosowany do wykonania jednej lub kilku okrelonych operacji przetwarzania sygnałów binarnych. Informacja o stanie operacji przetwarzania w BF jest ewentualnie przekazana na zewntrz za porednictwem sygnałów na wyjciach predykatowych. Dodatkowo sekwencyjny blok funkcjonalny jest wyposaony w wejcie synchronizujce (zegarowe) 3
Najogólniejsza klasyfikacja bloków funkcjonalnych uwzgldnia bloki kombinacyjne oraz sekwencyjne. Typowe bloki funkcjonalne kombinacyjne to multipleksery, demultipleksery, dekodery, sumatory, komparatory. Typowe bloki sekwencyjne to rejestry i liczniki. Warto podkreli, e pojcie 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. W dzisiejszej technice BF moe by specjalizowanym układem cyfrowym, którego mikrooperacje zarówno pod wzgldem iloci jak te funkcjonalnoci definiuje sam uytkownik. 4
Multiplekser to funkcjonalny blok kombinacyjny, w którym jest: wej informacyjnych ( ), wej adresowych, wyjcie oraz wejcie zezwolenia (enable). Multiplekser (MUX) realizuje funkcj opisan wyraeniem boolowskim:, gdzie oznacza pełny iloczyn zmiennych, prostych lub zanegowanych, zgodnie z reprezentacj binarn liczby. Multiplekser pracuje jako przełcznik. Dla multipleksera o dwóch wejciach adresowych (jak na rysunku) oznacza to, e jeli sygnały na jego wejciach adresowych s odpowiednio, to na wyjciu pojawi si sygnał taki jak na wejciu informacyjnym oznaczonym, podobnie dla adresu, bdzie to sygnał taki jak na wejciu, itd. 5
Demultiplekser te pracuje jako przełcznik, ale jego działanie jest przeciwne do działania multipleksera. W tym przypadku sygnał podany na wejcie (informacyjne jest rozprowadzany na róne wyjcia. Dla DMUX z rysunku na planszy przy adresie równym, sygnał pojawi si na wyjciu oznaczonym, (a na pozostałych wyjciach warto logiczna sygnału bdzie ), przy adresie równym, logiczna pojawi si na wyjciu ozn.. itd. Liczba wej informacyjnych multipleksera (równie demultipleksera) ronie wykładniczo. Z tych powodów nie realizuje si bezporednio multiplekserów o duej liczbie wej adresowych (np. wikszej od czterech), a raczej składa si je z mniejszych multiplekserów. Przykład takiego kaskadowego połczenia jest pokazany na rysunku. 6
Szczególnym przypadkiem demultipleksera jest dekoder, w którym przyjmuje si, e do wejcia zawsze jest dołczony sygnał o wartoci logicznej. Dlatego wyjcie to nie jest dostpne na zewntrz układu i w rezultacie symbol graficzny dekodera jest nieco inny. Dla MUX z rysunku na planszy jego wyjcie jest cigiem, gdy adres przełcza sygnały z wej informacyjnych oznaczonych cyfr. Dla DMUX na wyjciu oznaczonym pojawiaj si sygnały z wej informacyjnych, czyli. 7
Operacj sumowania arytmetycznego realizuje sumator. Na wyjciu sumatora powstaje suma liczb binarnych i. Ze zrozumiałych wzgldów suma ta, reprezentowana -bitowym wektorem moe by przekłamana, gdy zapis jej wartoci wymaga bdzie bitów. Sytuacja taka jest sygnalizowana na wyjciu przeniesienia sygnałem logicznym, a wektor jest prawidłowym wynikiem. 8
Działanie pojedynczego ogniwa sumatora mona opisa funkcjami boolowskimi podanymi w tablicy. Po odpowiedniej minimalizacji (na tablicach Karnaugha) i stosownych przekształceniach uzyskuje si wyraenia boolowskie bezporednio opisujce struktur pojedynczego ogniwa sumatora (czsto zwanego sumatorem pełnym i oznaczanego FA Full adder. Sumator moe by wykorzystany do realizacji operacji odejmowania. W tym celu wystarczy wejcia dołczy do wej sumatora za porednictwem inwertorów, ale najlepiej jest negowa poszczególne bity wektora za porednictwem dwuwejciowych 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. 9
Warto dziesitna liczby przedstawionej za pomoc wektora zapisanego w NKB wynosi: Za pomoc wektora o długoci mona przedstawi dziesitne liczby dodatnie z zakresu. Kod NKB słuy do zapisu całkowitych liczb dodatnich. Zapis zarówno liczb dodatnich, jak i ujemnych umoliwia czsto stosowany kod (kod uzupełnieniowy do dwóch): 10
W kodzie, gdzie. Bit mona interpretowa jako bit znaku. Jeli, to liczba jest dodatnia; jeli to liczba jest ujemna; pozostałe bity stanowi uzupełnienie (rónic) wartoci liczby do najwyszej potgi liczby. 11
Działanie układu z rys. na planszy mona opisa:,gdzie Dla mamy, czyli sumowanie. Dla mamy ; oznacza liczb w kodzie, zatem. Komparator umoliwia porównanie dwóch liczb n-bitowych i okrelenie czy s sobie równe, a take, która z liczb jest wiksza, a która mniejsza. Stan logiczny na wyjciach, lub, okrela odpowiednio sytuacj, gdy:,,. 12
Sekwencyjne bloki funkcjonalne to przede wszystkim rejestry i liczniki. W tak zwanym rejestrze uniwersalnym, oprócz typowych operacji i wystpuj mikrooperacje przesuwania w prawo (Shift Right) oraz w lewo (Shift Left). Licznik to rejestr specjalnego typu, dodatkowo wyposaony w mikrooperacj zwikszania (zliczania w gór ) lub zmniejszania (zliczania w dół ) jego zawartoci. Mikrooperacje te zapisuje si równie jako inkrementacj lub dekrementacj:,, 13
Rejestr to w najprostszym przypadku układ składajcy si z zespołu przerzutników, z których kady wykonuje identyczne funkcje. Na rysunku pokazano rejestr zbudowany z czterech przerzutników. Jest on wyposaony w wejcia typu. W rejestrze takim wpisanie ( ) nowej zawartoci jest dokonywane przez wejcia synchronicznie z zegarem. Inaczej mówic, po podaniu na wejcia -bitowego słowa i po przyjciu ustalonego zbocza sygnału nastpi zapamitanie tego słowa w rejestrze, co znaczy, e pojawi si ono na wyjciach. 14
Wanym w zastosowaniach jest rejestr, w którym wejcia i wyjcia s połczone kaskadowo. Taki rejestr nazywa si rejestrem przesuwajcym (shift register). Prac rejestru przesuwajcego mona opisa jak w tablicy na planszy. Pokazano w niej sze kolejnych stanów rejestru dla kolejnych szeciu impulsów zegarowych, przy załoeniu, e pierwotnie rejestr znajdował si w stanie, a na jego wejcie podano szeregowo sekwencj bitów. Z tablicy wynika, e jedynka podana na wejcie rejestru (wejcie D1 pierwszego przerzutnika) pojawi si na wyjciu przerzutnika po czwartym impulsie zegarowym. 15
Dodajc przed wejcie kadego przerzutnika multiplekser uzyskuje si rejestr szeregowy z wpisem równoległym. W rejestrze tym sygnał wprowadzony na wejcie przerzutnika jest za porednictwem multipleksera pobierany bd to z wejcia równoległego, bd szeregowego (dla pierwszego ogniwa) lub z wyjcia poprzedzajcego przerzutnika. W rezultacie przy sygnale Shift/Load = 0 w układzie jest wykonywana mikrooperacja przesuwania, a przy Shift/Load = 1 jest wykonywany wpis równoległy. 16
Licznik to rejestr specjalnego typu, dodatkowo wyposaony w mikrooperacj zliczania. Rysunek na planszy ilustruje prac licznika o mikrooperacjach: LOAD, HOLD, COUNT. 17
Łatwo sprawdzi, e obliczonym w ten sposób funkcjom wzbudze odpowiada schemat logiczny licznika. Rozbudowa tego licznika do układu z wpisywaniem równoległym polega na wykorzystaniu spostrzeenia, e naturalnym układem do wpisywania jest rejestr zbudowany z przerzutników typu. Przerzutnik typu mona zbudowa z przerzutnika w sposób pokazany na rysunku. Zastpujc kady przerzutnik licznika z planszy 10 przerzutnikiem typu z bramk uzyskujemy układ, w którym moliwe bdzie zrealizowanie dodatkowej mikrooperacji ładowania ( ). 18
Pamici stałe typu ROM s układami kombinacyjnymi, w których jest moliwe tylko odczytanie informacji zawartej w strukturze matrycy pamici. Zapisanie tej informacji odbywa si w procesie technologicznym zwanym programowaniem pamici. O pamici, w której wektor adresowy ma długo a wektor wyjciowy długo m mówimy, e ma pojemno bitów ( słów -bitowych), przy czym. Na rysunku przedstawione jest działanie pamici typu ROM o 3 wejciach adresowych. Sygnały wyjciowe pamici odpowiadajce poszczególnym adresom wyróniono kolorami. 19
Układ cyfrowy zbudowany ze specjalizowanych bloków funkcjonalnych, z których kady wykonuje ustalone mikrooperacje, jest nazywany układem operacyjnym (UO) lub wykonawczym. Poniewa mikrooperacje te zgodnie z zadanym algorytmem przetwarzania musz by wykonywane sekwencyjnie to do tak skonstruowanego układu naley doprowadzi odpowiedni sekwencj sygnałów sterujcych. Sekwencja ta jest cigiem słów binarnych tzw. mikrorozkazów, które wytwarzane s w wyodrbnionym układzie sterujcym US. Jednoczenie informacja o stanie przetwarzania sygnałów wejciowych w wyjciowe jest przekazywana zwrotnie do układu sterujcego. 20
Syntez strukturaln układów cyfrowych omówimy na przykładzie układu do konwersji liczby binarnej na liczb dziesitn w kodzie BCD (liczb dziesitn z cyframi kodowanymi binarnie). W kodzie BCD (Binary Coded Decimal) kada cyfra liczby zapisanej w kodzie dziesitnym jest przedstawiana czterobitow liczb binarn. Mówic pogldowo naszym zadaniem jest zaprojektowanie układu, czyli skonstruowanie go z bloków funkcjonalnych. W celu ograniczenia rozmiarów układu załoymy, e przetwarzana liczba binarna moe by liczb 8-bitow, ale mniejsz od 100. 21
Do projektu wykorzystamy algorytm znany pod nazw plus 3. W algorytmie tym liczba przetwarzana binarna jest wprowadzana do 8 bitowego rejestru LB. Liczba w kodzie BCD jest wytwarzana w dwóch 4 bitowych rejestrach LDA i LDB. W poszczególnych krokach algorytmu wykonywane s nastpujce czynnoci. Sprawdzana jest liczba LDB i jeli jest ona wiksza lub równa 5, to zawarto tego rejestru jest zwikszana o 3. W przeciwnym przypadku zawarto LDB nie ulega zmianie. Analogiczne czynnoci wykonywane s dla rejestru LDA. Po sprawdzeniu zawarto wszystkich rejestrów zostaje przesunita o 1 bit w lewo. Po 8 sekwencjach sprawdzania i przesuwania w rejestrach LDA (cz starsza) i LDB (cz młodsza) powstanie liczba w kodzie BCD. 22
Prac algorytmu plus 3 ilustrujemy pogldowo na nastpujcej planszy. Rysunek przedstawia zawartoci rejestrów LB, LDB oraz LDA w poszczególnych krokach algorytmu. Do rejestru LB została wprowadzona (binarnie) liczba. Zauwamy, e w 6 kroku algorytmu do liczby binarnej (dziesitnie ) została dodana liczba (czyli ). Po 8 krokach w rejestrach LDA, LDB ustaliły si liczby oraz, czyli. 23