Układy logiczne układy cyfrowe Jak projektować układy cyfrowe (systemy cyfrowe) Układy arytmetyki rozproszonej filtrów cyfrowych Układy kryptograficzne X Selektor ROM ROM AND Specjalizowane układy cyfrowe X Komparator Układy wykrywania wzorców ZPT
Bloki funkcjonalne Multipleksery, sumatory, komparatory, liczniki, rejestry. Komparator e Y LICZNIK Σ A n REJESTR Są to oddzielne elementy konstrukcyjne, ich struktura i działanie jest ściśle zdeterminowane. Są budowane z bramek i przerzutników. Z bloków funkcjonalnych buduje się złożone układy cyfrowe o różnorodnych zastosowaniach: układy przetwarzania sygnałów, układy sterowania, specjalizowane procesory, układy kryptograficzne. ZPT 2
W latach 8. Bloki funkcjonalne: Sumatory Liczniki Rejestry Komparatory Konwertery Bufory Rejestry przesuwajace Były produkowane w postaci katalogowych układów scalonych serii 74xx 74xx ZPT A jak jest dziś? 3
Bloki funkcjonalne stanowią wyposażenie bibliotek komputerowych systemów projektowania Licznik Mux Rejestr ZPT Każdy układ cyfrowy składamy z bloków funkcjonalnych 4
Bloki funkcjonalne stanowią wyposażenie bibliotek komputerowych systemów projektowania Licznik Mux Rejestr ZPT W procesie konstruowania systemów cyfrowych struktura wewnętrzna bloku w zasadzie nas nie interesuje 5
Bloki funkcjonalne B. kombinacyjne B. sekwencyjne Pamięci Komutacyjne Arytmetyczne Rejestry Liczniki ROM (RAM) MUX DMUX DEC Komparator Sumator Równoległe Przesuwające Zliczające W górę W dół ZPT 6
Multiplekser (MUX) e Wejście zezwalające N = 2 n wejść informacyjnych d d = e N d N- y Wyjście k = P(A)d k k Wejścia adresowe a n- a gdzie P(A) k oznacza pełny iloczyn zmiennych a n,...,a,, prostych lub zanegowanych, zgodnie z reprezentacją binarną liczby k= L(A) ZPT 7
e= Jak działa Multiplekser Dlan=(MUX2:): d N y = ad + ad y = e d k = P k (A)d k dlan=2(mux4:): d N- y = aad + + aad + aad aad 2 3 a n- a dla n= 3 (MUX 8 : ): y = aaad + aaad + aaad + aaad 2 + aaad + 2 2 2 2 3 aad + aaad + aaad + aaad 2 4 2 5 2 6 2 7 + d 2 + a d a d e y Każdy blok funkcjonalny można skonstruować ZPT bramek logicznych 8 d 3
Multiplekser jako przełącznik e= e= d d d 2 d 3 2 3 y = aad + + aad + aad aad 2 3 = = = = y=d 2 y=d 3 a a = = ZPT 9
Multiplekser jako przełącznik Źródło danych I Multiplekser 2 n źródeł danych Źródło danych I f odbiornik Źródło danych I 2 n 2 n adresów źródeł To nie jest połączenie w postaci ścieżki metalizowanej ZPT
Demultiplekser e Wejście zezwalające y Wejście d informacyjne Wejścia adresowe a n- a y N = 2 n wyjść y N- y k = ep k (A)d gdzie P(A) k oznacza pełny iloczyn zmiennych a n,...,a,, prostych lub zanegowanych, zgodnie z reprezentacją binarną liczby k= L(A) ZPT
Demultiplekser jako przełącznik e= y = aa d=d = a y2 = aad y a d =d y3 = aad=d 2 3 a e d y a y y 2 y 3 ZPT 2
Demultiplekser jako przełącznik Demultiplekser f Źródło danych f 2 n odbiorników f 2n 2 n adresów odbiorników ZPT 3
Dekoder DMUX e DEKODER d y y d = e = a a a n- y y N- y N- y a n- a N = 2 n ZPT 4
Bloki komutacyjne W dzisiejszych czasach można skonstruować blok komutacyjny o dowolnych wymiarach 2 3 3 2 a a a a Dane można przesłać z dowolnego źródła do dowolnego odbiornika ZPT 5
MUX/DMUX w realizacji funkcji boolowskich y = Σ(,7,,3,4,5) 2 3 4 5 6 7 8 9 2 3 4 5 y 2 3 4 5 6 7 8 9 2 3 4 5 y x 3 x 2 x x x 3 x 2 x x ZPT 6
Bezpośrednie zastosowanie MUX/DMUX do realizacji funkcji boolowskich należy odłożyć do kosza! Sensowne jest natomiast stosowanie tych układów do wspomagania procesu syntezy funkcji boolowskich Dobrym przykładem jest zastosowanie dekoderów do zmniejszania liczby wyjść pamięci ROM w realizacjach zespołów funkcji boolowskich. Jest to problem z zadań.3 i.4 str. 94 skryptu ULOG w zadaniach. ZPT 7
Komparator A B n n z 3 K A < B A = B A > B ZPT Taki komparatormożna łatwo zbudować z bramek logicznych 8
Komparator A n K B n a 3 a 2 a a b 3 b 2 b b Y Y 2 Y 3...................... Metody syntezy logicznej można wspomagać intuicją inżynierską ZPT 9
Komparator dla liczb 4-bitowych a 3 b 3 i 3 A = a 3 a 2 a a B = b 3 b 2 b b i k = a k b k a 2 i 2 b 2 y = a b = ab + ab a b a b i i A eqb = i 3i 2i i A <B = Aeq B + A gt B A >B = ab iab 3 3 3 2 2 + +i iab + iiiab 3 2 3 2 ZawszeA >B, jeśli a 3 = i jeśli b 3 = A B --- ZPT 2
Sumatory A B Sumator podstawowy BF powszechnie stosowany w technice DSP c n n Σ n c Inne układy arytmetyczne: układy odejmowania układy mnożące układy dzielenia n Y...są budowane z sumatorów ZPT 2
Sumator A B n n Sumator kaskadowy: ripple carry adder a n-b n- a b i i a b c n C 4 = = Σ c c n Σ c n- c i+ Σ c i c Σ c n y n- y i y Y Y Jak jest zbudowane pojedyncze ogniwo? ZPT 22
Funkcje logiczne sumatora a b a b c c o y c o Σ y c ZPT 23
Funkcje logiczne sumatora ZPT c o c y i i + a b Σ y c = a b i i = ab c(a i i i a b c c o y ab c y = cab cab cab cab c a b ca y = c a b ab c c i i b) i c o ( b ) = ab c(a b) = ab c(a b) 24
Sumator (Full adder) c i si a i b i c i+ c i s i = = a i ab c b i ( a c i b + i i i i i ) ZPT 25
Bloki funkcjonalne c.d. B. kombinacyjne B. sekwencyjne Pamięci Układy Układy Rejestry Liczniki ROM Komutacyjne Arytmetyczne Komparator Równoległe Zliczające MUX Sumator Przesuwające W górę DMUX W dół DEC ZPT 26
Rejestry Rejestry buduje się z przerzutników typu D Najprostszy rejestr: ładowanie (load) i pamiętanie D D 2 2 D 3 3 D 4 4 CLK ZPT LOAD Taki rejestr nazywamy równoległo-równoległym, krótko równoległym 27
Rejestr przesuwający SHR wejście szeregowe clk 2 3 4 D D 2 D 3 D 4 ZPT Taki rejestr nazywamy szeregowo-równoległym, krótko szeregowym WE 2 3 4 28
Jak zbudować rejestr uniwersalny... tzn. taki, który wykonywałby funkcje zarówno rejestru równoległego, jak też szeregowego D D 2 2 D 3 3 D 4 4 CLK 2 3 4 wejście szeregowe D D 2 D 3 D 4 CLK ZPT 29
...wystarczy rozbudować rejestr przesuwający 2 3 4 wejście szeregowe D D 2 D 3 D 4 CLK D Clock D D Sel ZPT 3
Rejestr szeregowo-równoległy x p Wejście szeregowe Wejścia równoległe Taki rejestr można rozbudowywać dalej uzyskując tzw. rejestr uniwersalny X x p X Wejście sterujące Clock D D D D Y Clock s s 2 clock R () Y Y:= X LOAD Y:= Y HOLD D D D D Clock Wyjścia równoległe Y:= SHR(x p, Y) ZPT 3
LOAD Mikrooperacje rejestru HOLD SHR x R LOAD HOLD SHR clock Rejestr ZPT LOAD SHR przesuwanie w prawo 32
Liczniki przykład syntezy licznika (zadanie 8. skrypt Układy logiczne w zadaniach) Zaprojektować licznik mod8 z wejściem zezwalającym E (Enable). Przerzutniki do realizacji dobrać tak, aby uzyskać najprostszy schemat logiczny licznika. S E E Licznik S S S S S S 2 clock S 2 S 2 S 3 S 3 S 3 S 4 S 7 S 7 S ZPT 33
Zakodowana tablica przejść licznika Tablica przejść Zakodowana tablica przejść kod binarny S E 2 E ZPT S S S S S S 2 S 2 S 2 S 3 S 3 S 3 S 4 S 4 S 4 S 5 S 5 S 5 S 6 S 6 S 6 S 7 S 7 S 7 s S 2 2 34
Zakodowana tablica transformowana do tablicy Karnaugha 2 E E 2 2 2 2 2 ZPT 35
Funkcje wzbudzeń dla przerzutników D D 2 E E 2 2 2 2 D2 D D D2 = 2 + 2 E D = E + D = E +E + 2 + 2E +E ZPT 36
Funkcje wzbudzeń dla przerzutników T T 2 E E 2 2 2 2 T2 T T T2 = E T = E T = Errata do zad. 8. ze skryptu ZPT 37 E
Funkcje wzbudzeń licznika D = E + E D + D = E + + E D = + E + + E 2 2 2 2 2 T =E E T = E T =E 2 =T Enable T T T 2 Clock ) Najprostszy na świecie ZPT 38
Schemat ten można uogólnić T = T = T2 = T = E 3 E E = E 2 T = T 2 2 E A A A A A A A 2 A 2 A 2 A 3 A 3 A 3 A 4 A 4 A A 5 Enable T T T T Clock A 4 A 4 A 5 A 5 A 5 A ZPT 39
Licznik 4-bitowy Enable T T T T Clock Rst z powodzeniem może być wykorzystany do realizacji licznika uniwersalnego Wada: jest to licznik bez funkcji: LOAD (ładowanie) Realizacja funkcji ładowania dla przerzutników T jest niemożliwa Jak wybrnąć z tej sytuacji? Trzeba znać i rozumieć układy logiczne! ZPT 4
Przerzutnik T realizowany z D D T = D ' = T + T Równanie charakterystyczne: = f(i,i 2,) D = T + T T D clk ZPT 4
Licznik z wpisem równoległym.. uzyskamy, zastępując przerzutniki T Enable T T T T Clock Rst T D clk ZPT 42
Licznik z przerzutnikami D Wprowadzając taką zmianę, jak też wprowadzając przed wejście każdego D multiplekser, uzyskujemy strukturę licznika z mikrooperacją wpisu równoległego. ZPT 43
Licznik z wpisywaniem równoległym Enable D D Wejścia równoległe D D Wyjścia równoległe D 2 D 2 D 3 D 3 ZPT Load Clock Output carry 44
Licznik z wpisywaniem równoległym Enable D D X D s s 2 D 2 D L () clock D 2 Y D 3 Y:= X LOAD Y:= Y HOLD 3 D Y:= Y+ COUNT ZPT Load Clock Output carry 45
Mikrooperacje licznika LOAD HOLD COUNT LOAD HOLD COUNT clock Licznik LOAD Zliczanie ZPT 46
Pamięci typu ROM X n A X i ROM N m N = 2 n X N- N słów (komórek) m-bitowych m Y W każdym komórce pamięci zapisane jest słowo m-bitowe Pamięć ROM jest uniwersalnym układem kombinacyjnym ZPT 47
Pamięci typu ROM Adres 2 3 4 5 6 7 ROM 8 4 ZPT 48
Pamięci typu ROM Pamięci typu ROM odgrywają coraz większą rolę w syntezie logicznej układów cyfrowych Więcej o cyfrowych blokach funkcjonalnych w Są doskonałymi elementami konstrukcyjnymi w strukturach FPGA z wbudowanymi pamięciami ZPT 49