Sstem cfrow Sgnał sterujące ane wejściowe Układ sterując (kontroler) Układ operacjn (atapath) Mikrooperacje wwołwane przez sgnał sterujące Stan części operacjnej ane wjściowe
Snteza strukturalna układów cfrowch Bloki funkcjonalne tworzą nowe element konstrukcjne, z którch buduje się złoŝone układ cfrowe o róŝnorodnch zastosowaniach: układ przetwarzania sgnałów, układ sterowania, specjalizowane procesor, układ krptograficzne Konstruowanie układu cfrowego z bloków funkcjonalnch: Snteza strukturalna układów cfrowch 2
Snteza strukturalna układów cfrowch icznik Mux Rejestr Składam układ z bloków funkcjonalnch 3
Edtor graficzn B[7..] INPUT CK INPUT r3_v r2_v r_v IN OUT IN OUT B[7..] OUT OA A[3..] OA B[3..] OA RB[7..] CK CK CK CK START INPUT INPUT Us_v CK COK START OA STOP k_v CK [3..] OA STOP OUTPUT OUTPUT COK STOP r4_v STOP] CK B[3..] A[3..] [7..] OUTPUT [7..] 4
Bloki funkcjonalne X X, (Y) wejścia (wjścia) sgnałów reprezentującch dane wejściowe i wjściowe S BF P S wejścia sterujące, P wjścia predkatowe, clk wejście zegarowe clk Y Bloki funkcjonalne stanowią wposaŝenie bibliotek komputerowch sstemów projektowania 5
Sstem MAX+PUSII jest wposaŝon w dwie biblioteki komponentów: a) bibliotekę tzw. makrofunkcji b) bibliotekę megafunkcji (moduł PM) ibrar of Parameterized Modules (PM) 6
Makrofunkcje Macrofunctions: Adders atches Arithmetic ogic Units Buffers Multiplexers Comparators Converters Counters Registers Shift Registers Multipliers Bł kiedś produkowane jako bloki funkcjonalne serii 74xx 7
Konsekwencje wprowadzenia makrofunkcji Struktur makrofunkcji nie są odpowiednie do technologii układów programowalnch a ich odwzorowanie technologiczne na komórki aktualnie produkowanch układów FPGA nie prowadzi do optmalnego wkorzstania zasobów sprzętowch 8
Megafunkcje Sstem MAX + plus II jest wposaŝon w moduł PM (ibrar of Parameterized Modules) Moduł PM są parametrzowane: uŝtkownik moŝe ustalić np. wielkość MUX, liczbę bitów argumentów sumatora lub niektóre mikrooperacje. 9
NajwaŜniejsze bloki funkcjonalne B. kombinacjne B. sekwencjne Układ Komutacjne MUX MUX EC Układ artmetczne Sumator Układ odejmując Komparator Rejestr Równoległe Przesuwające iczniki Zliczające W górę W dół Pamięci ROM (RAM)
Multiplekser, demultiplekser e e N = 2 n d d d d N- N- MUX a n- a a n- a MUX = e N k= P k (A)d k k = ep (A)d k k = (A), P k pełn iloczn
Multiplekser = e N k= P k (A)d k gdzie P k (A) oznacza pełn iloczn zmiennch a n,...,a, prostch lub zanegowanch, zgodnie z reprezentacją binarną liczb k. la n = 3 (MUX 8 : ): = a a a d 2 + a a a 2 la n = (MUX 2 : ): = ad + ad la n = 2 (MUX 4 : ): = a a d + a a d + a a d + a a d + a d + 4 2 d 2 3 a a d a a a 2 + d 5 a a a d 2 + a a a 2 2 + a d + 6 2 a a d a a a 2 3 + d 7 2
Multiplekser e= = a a + d + aa d + aa d2 aa d3 2 3 3
emultiplekser e= 2 a d = a a d 2 = a = a 3 a a d a 3 = d 4
ekoder MUX e ekoder d a a N- a n- N- a n- a N = 2 n 5
Multiplekser, demultiplekser: realizacja na bramkach Multiplekser = a + ad + aa d + aa d2 aa d3 emultiplekser = a a d = a a d d a a e 2 = a a d 3 = a a a e a d d d 2 2 d 3 d 3 6
Multiplekser kaskadowe 7
Multiplekser grupowe A A B Y=A Y=B B 8
Bloki komutacjne b b X Y X j Y X Y j X N- Y N- Multiplekser słuŝ do wbierania jednego z wielu słów wejściowch i przesłania go na wjście. Na wjściu Y pojawia się słowo wejściowe wskazane adresem A (wg naturalnego kodu binarnego). S n S n emultiplekser słuŝ do przesłania słowa X wejściowego na jedno z wielu wjść; numer tego wjścia jest równ aktualnej wartości adresu. 9
Bloki komutacjne 2 2 3 a a 3 a a 2
Magistrala (realizacja z multiplekserami) Bus 2 k Clock ane wejściowe R R 2 R k a a m M ultiplekser s s s n - S 2
Magistrale (szn) Budowane z elementów trójstanowch e = e x f x f x e = f e x f Z Z 22
Magistrala (realizacja z buforami) ane we E Bus Clock R R 2 Rk R in R out R 2 in R 2 out Rk in Rk out sterowanie 23
Inne zastosowania 2 3 4 5 6 7 8 9 2 3 4 5 x 3 x 2 x x Zastosowanie MUX do realizacji funkcji boolowskich = Σ(,7,,3,4,5) 24
Inne zastosowania 2 3 Zastosowanie dekodera do realizacji funkcji boolowskich 4 5 6 7 8 = Σ(,7,,3,4,5) 9 2 3 4 5 ale te rozwiązania są historczne i naleŝ odłoŝć do kosza! x 3 x 2 x x 25
Sumator Sumator podstawow BF powszechnie stosowan w technice SP cn XA n Y n c Σ Inne układ artmetczne: układ odejmowania układ mnoŝące układ dzielenia n S... są budowane z sumatorów 26
Sumator kaskadow Ripple carr adder (RCA) x n- n- x i i x c n- c c i+ n FA FA c n c i c FA c s n- s i s c i s i = = x x i c i ( x c i + i i i i i ) 27
Sumator (full adder) c i x i i s i c i+ c i s i = = x x i c i ( x c i + i i i i i ) 28
Sumator Jaka jest ścieŝka kaskadow - wad krtczna tego układu? n- n- n n- ŚcieŜka krtczna: bardzo długa - liniowo zaleŝna od wielkości sumatora Rozwiązanie: układ generujące sgnał przeniesienia, w układach programowalnch dodatkowa szbka logika generująca carr-chain 29
Sumator z antcpacją przeniesień Znacznie lepsz jest sumator z antcpacją przeniesień, (carr lookahead adder) w którm wszstkie przeniesienia są wtwarzane jednocześnie na podstawie bitów sumowanch składników. (antcpacja - przewidwanie) 3
Sumator z antcpacją przeniesień s i = x i i c i c i+ = x i i + x i c i + i c i = x i i + c i (x i + i ) c i+ = x i i + c i (x i + i ) g i = x i i (generacja przeniesienia) i i i p i = x i + i (propagacja przeniesienia) Otrzmujem: c i+ = g i + p i c i s i = c i (p i g i ) s i = x i i c i 3
Sumator z antcpacją przeniesień c i+ = g i + p i c i c c = g + p c c = g + p c c 2 = g + p c = g + p (g + p c ) c 2 = g + p g + p p c c 3 = g 2 + p 2 g + p 2 p g + p 2 p p c (funkcja 5 arg.) c 4 = g 3 + p 3 g 2 + p 3 p 2 g + p 3 p 2 p g + p 3 p 2 p p c 32
Sumator z antcpacją przeniesień Wszstkie przeniesienia są wtwarzane jednocześnie na podstawie bitów sumowanch składników! x x p g p g c C C c 2 F c F c 2 = g + p g + p p c s i = c i (p i g i ) s s 33
Sumator n-bitow Sumator z antcpacją przeniesień moŝna łączć szeregowo x 3-24 3-24 x 5-8 5-8 x 7-7- c 24 c 6 c 32 Blok 3 Blok Blok c 8 c S 3-24 S 5-8 S 7-34
ierarchiczn sumator z antcpacją przeniesień x 3 24 3 24 x 5 8 5 8 x 7 7 Block 3 c 24 Block Block c G 3 3 G G s 3 24 s 5 8 s 7 c 32 c 6 c 8 rugi poziom 35
Sumator/układ odejmując Kod U2 A A U2 = (a n,..., a j,..., a ) B n ( ) n U2 = an 2 + j= A = A aj2 B n 2 j n XOR n C o cn c Σ Y n + Y = A B = A + ( B U2 ) B U2 = B + = B + la c = : Y = A + B + = A + B la c = : Y = A + B + = A - B 36
Kod U2 A U2 = <a n,..., a j,..., a >, gdzie a j {,} A n ( ) 2 n = = j AU2 an 2 + aj2 j= Bit a n moŝna interpretować jako bit znaku. Jeśli a n =, to liczba jest dodatnia; jeśli a n = to liczba jest ujemna; pozostałe bit stanowią uzupełnienie (róŝnicę) wartości liczb do najwŝszej potęgi liczb 2 <> U2 = +5 ; <> U2 = 5 Zakres: 2 n A 2 n 37
Sumator/układ odejmując a 3 b 3 a 2 b 2 a b a b c 4 A CO + B CI A CO + B CI A CO + B CI A CO + B CI odawanie/ odejmowanie c S 3 S S S OVR = c n c n Overflow OVR = c 3 c 4 S 3 S 2 S S Co stanie się gd dodam 4 + 5, lub (-4) + (-5)? OVR= (+4) (+5) (-7) OVR= (-4) (-5) (+7) 38
Komparator A B n n K z 3 A < B A = B A > B 39
Komparator 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 b 2 i 2 a b i A eq B = i 3 i 2 i i a b i A < B = A eq B + A gt B A > B = a 3 + i b 3 3 i 2 + i a 3 b a 2 b 2 + i 3 i + 2 i a b a k b k A < B, gd a k =, b k = A > B, gd a k =, b k = 4
Komparator a 3 b 3 a 2 b 2 a b i 3 i 2 i A = a 3 a 2 a a B = b 3 b 2 b b A = B a b i A < B A > B 4
Sekwencjne bloki funkcjonalne Y := X OA Y := Y O Rejestr iczniki Y := <...> RESET (CEAR) x p X x l X s s 2 clock R () s s 2 clock () Y Y := SR(x p, Y) Y := S(Y, x l ) Y Y := Y + = INC(Y) Y := Y = EC(Y) 42
Prost rejestr Rejestr zbudowan z przerzutników ładowanie (load) i pamiętanie CK 2 2 3 3 4 4 OA 43
Rejestr przesuwając SR wejście szeregowe clk 2 3 4 2 3 4 WE 2 3 4 44
Rejestr przesuwając 2 3 4 wejście szeregowe 2 3 4 CK Łatwo moŝna zbudować rejestr, w którm obie funkcje (ładowanie, przesuwanie) są wkonwane w jednm układzie Clock Sel 45
Rejestr przesuwając z wpisem równoległm Realizacja z multiplekserami Wjścia równoległe 3 2 Wejście szeregowe Shift/oad Wejścia równoległe Clock 46
Rejestr przesuwając z wpisem równoległm Realizacja na bramkach Wjścia równoległe 3 2 Wejście Shift/oad szeregowe Wejścia równoległe Clock 47
Mikrooperacje licznika OA O COUNT OA O COUNT clock icznik OA Zliczanie 48
Przkład licznika z wejściem Enable E icznik E A A A A clock T T T T 2 3 = E = E = E = T = E = T A A A 2 A 2 A 2 A 3 = A 3 A 3 A 4 2 2 2 A 4 A 4 A 5 A 4 A 4 A 5 A 5 A 5 A 49
icznik w górę na przerzutnikach T Enable T T T T Clock Rst T clk 5
icznik w górę na przerzutnikach Enable 2 3 Clock Output carr 5
icznik z wpiswaniem równoległm Enable 2 2 3 3 oad Clock Output carr 52
Pamięci tpu ROM X n A X i ROM N m N=2 n X N- m Y ROM uniwersaln układ kombinacjn Jest zaprogramowana na pamiętanie N słów m-bitowch 53
Pamięci tpu ROM Adres 2 3 4 5 6 7 ROM 8 4 54
Pamięci tpu ROM w P C B A MATRYCA OR (PROGRAMOWANA) MATRYCA AN (STAA) 3 2 55