Podstawy techniki cyfrowej cz.2 wykład 3 i 5 Rafał Walkowiak Wersja 0.1 29.10.2013 Układy cyfrowe Ogólna struktura logiczna: Wej ster Dane bloki funkcjonalne dla realizacji określonych funkcji przetwarzania danych czyli układ operacyjny lub ścieżka danych (ang. data path) US mikrorozkazy stan przetwarzania UO układ sterowania Wyj ster Funkcje 2 1
Określenie: Synteza strukturalna struktury bloków funkcjonalnych: liczniki, rejestry, komparatory, sumatory i połączeń między nimi Określenie sposobu pracy układu sterowania realizującego algorytm przetwarzania zapisanego za pomocą sieci działań diagram ASM (ang. Algorithmic State Machine) 3 Synteza behawioralna Opisanie działania układu za pomocą języka opisu sprzętu HDL (ang. hardware description language) Określenie i połączenie odpowiednich bloków funkcjonalnych realizowane poprzez kompilator języka HDL w ramach komputerowego systemu projektowania. 4 2
Blok funkcjonalny Synteza strukturalna Sygnały wejściowe Wejścia sterujące CLK - zegar BF Sygnały wyjściowe Wyjścia predykatowe sygnalizacja stanu przetwarzania danych 5 Podział układów cyfrowych Układy kombinacyjne pozbawione właściwości pamiętania stanów, realizujące funkcje logiczne w oparciu o bramki i inne proste układy cyfrowe. Układy sekwencyjne - posiadają cechę pamiętania stanów logicznych, zbudowane dodatkowo z przerzutników. 6 3
Podstawowe funktory układów cyfrowych układy kombinacyjne Bramki Bramkami nazywamy kombinacyjne układy cyfrowe realizujące proste funkcje logiczne jednej lub wielu zmiennych. Zmienną logiczną jest sygnał elektryczny występujący na wejściach i wyjściach tych układów. Działanie bramek jest opisane za pomocą tablicy prawdy zawierającej stany logiczne 0/1 lub poziom wielkości fizycznej (np. napięcia) niski (L) lub wysoki (H). 8 4
Bramki logiczne symbole graficzne Iloczyn AND Suma OR Negacja NOT Negacja iloczynu NAND Negacja sumy NOR Suma mod 2 XOR Równoważność XNOR Rysunki za: http://en.wikipedia.org/wiki/logic_gate 9 Sygnał cyfrowy technologia TTL Układy TTL zbudowane są z tranzystorów bipolarnych i zasila się je napięciem stałym 5 V. Gdy poziom sygnału ma wartość 0V 0, 8V sygnał TTL jest niski - logiczne 0 logika dodatnia. Poziom sygnału jest między 2V 5V jest określany jako stan wysoki - logiczna 1. Gdy wartość napięcia jest z przedziału 0, 8V 2V - sygnał jest nieokreślony. 10 5
Bramki TTL Bramka NAND Na wejściach jedynki powodują nasycenie T2 i T4 oraz zatkanie T3 (baza i emiter na tym samym potencjale), na wyjściu stan niski. Na wejściu 0 powoduje nasycenie T1, obniżenie napięcia na bazie T2 - zatkanie T2 i T4, T3 przewodzi, na wyjściu stan wysoki. 11 Układy CMOS Układy CMOS zbudowane są z tranzystorów MOSFET (ang. metal oxide semiconductor field-effect transistor) o przeciwnym typie przewodnictwa i połączonych w taki sposób, że w ustalonym stanie logicznym przewodzi tylko jeden z nich. Układy CMOS są relatywnie proste i tanie w produkcji, umożliwiając uzyskanie bardzo dużych gęstości upakowania. Układy cyfrowe wykonane w technologii CMOS mogą być zasilanie napięciem 3 18V, praktycznie nie pobierają mocy statycznie. Poziomy logiczne sygnałów są zbliżone do napięć zasilających (masa - logiczne "0", zasilanie logiczna "1"). Układy niskonapięciowe (Low Voltage) Obniżanie napięcia zasilania prowadzi do spadku zużycia mocy Produkowane są serie układów cyfrowych CMOS przystosowane do zasilania napięciem 3, 3V, 2, 5V czy nawet 1, 8V, 12 6
Bramki CMOS CMOS układy z komplementarnymi ( typu p i typu n) tranzystorami MOS Strzałka określa wymagany kierunek wzrostu napięcia otwierający klucz Bramka NOT A=0 otwarcie tranzystora górnego (, wyjście wysterowane do poziomu wysokiego A=1 otwarcie tranzystora dolnego, wyjście wysterowane do poziomu niskiego Bramka NAND jedno 0 na wejściu łączy wyjście z 1 Bramka NOR jedna 1 na wejściu łączy wyjście z 0 13 Trzeci stan logiczny i bramki typu "open collector Koncepcja: W niektórych implementacjach bramek logicznych oprócz logicznego "0" i logicznej "1" istnieje trzeci stan logiczny stan wysokiej impedancji (ang. high impedance). Gdy wyjście układu nie jest połączone galwanicznie z układem cyfrowym znajduje się ono w stanie wysokiej impedancji nie jest wysterowane (ani do poziomu wysokiego ani niskiego). Realizacja: Istnieją bramki logiczne, których wyjście pozostawać może w stanie wysokiej impedancji być nieaktywne lub zwarte z masą być aktywne, bramki typu open collector (TTL) lub otwarty dren (MOSFET). Wyjście OC aby mogło być traktowany jako logiczne "0" albo "1" należy poprzez rezystor połączyć do zasilania (rezystor podciągający (ang. pull up resistor)). Zastosowanie odpowiedniego poziomu napięcia zasilnia na rezystorze podciągającym pozwala na sterowanie poprzez wyjście układami pracującymi przy innych poziomach napięć sygnałów. Kilka wyjść OC można połączyć do jednej linii sygnałowej umożliwiając sterowanie jednej linii z wielu źródeł (np. magistrala). 14 7
Wykorzystanie bramki typu open collector VCC a b 7401 F a b c d F 0 x 0 x 1 x 0 x 0 1 1 1 0 0 0 0 0 1 1 0 1 1 1 1 0 c d F = ab + cd = ( ab )' ( cd Przy zwartych wyjściach OC dowolna liczba wyjść bramek NAND równych 0 daje stan F=0, aby uzyskać 0 na bramce konieczna 1 na wszystkich wejściach. 15 )' Bramki trójstanowe WE WY WE E WY 0 0 1 0 1 Z 1 0 0 1 1 Z E Z - stan wysokiej impedancji Zastosowanie: podłączenie układu do magistrali jako jednego z możliwych źródeł jej wysterowania. Zapewnienie wykluczającego się wyboru źródła. 16 8
Bramki trójstanowe zastosowanie WE0 WE1 E1 WY WE0 WE1 E1 E2 WY 0 X 0 1 1 1 X 0 1 0 X 0 1 0 1 X 1 1 0 0 X X 1 1 Z E2 E1 +E2 <> 0 TYLKO jedno wejście ENABLE może być wybrane 17 Niewykorzystane wejścia bramek A B? Dla bramki AND zachowanie realizowanej funkcji jest możliwe gdy? =1 gdyż AB1=AB lub? =B gdyż ABB=AB Możliwe zatem rozwiązania to podłączenie: wejścia do wartości stałej 1 lub zwarcie wejść np.?=b (lub?=a). Drugie rozwiązanie nie jest korzystne ze względu na dodatkowe obciążenie układu generującego sygnał B (A). W technologii realizacji bramek istnieje parametr obciążalności wyjściowej (ang. fan-out) określający maksymalną liczbę możliwych do podłączenia wejść, która umożliwi poprawną pracę układu. Analogiczna sytuacja z niewykorzystanymi wejściami innych bramek: OR A+B+B=A+B+0 XOR A B 0 = A B 18 9
Uszkodzenia bramek Uszkodzenia bramek (lub połaczeń z wejściami bramek) mogą powodować błędne działanie bramki i układu. Możliwe błędy związane z wejściem B bramki to: Stała wartość 1 na jednym wejściu B=1, Stała wartość 0 na jednym wejściu B=0, Połączenie wejść B=A. W przypadku bramki AND efektem powyższego będą odpowiednio: Na wyjściu Y wartość równa wartości drugiego wejścia, Y=A, Na wyjściu wartość 0 - stała na wyjściu niezależnie od wartości wejść, Y=0, Na wyjściu wartość równa wartości drugiego wejścia, Y=A. Obserwacja określonego niespodziewanego zachowania wyjścia bramki, na podstawie znajomości realizowanej funkcji może ukierunkować na przyczynę błędu np. brak połączenia, przypadkowe zwarcie sygnałów itp. 19 Konwencje logiki Konwencja logiki dodatniej: Wartość logiczna 0 reprezentowana przez niskie napięcie (np. 0), Wartość logiczna 1 reprezentowana przez wysokie napięcie (np. +5V). Konwencja logiki ujemnej (odwrotne przyporządkowanie): Wartość logiczna 1 reprezentowana przez niskie napięcie (np. 0), Wartość logiczna 0 reprezentowana przez wysokie napięcie (np. +5V). Bramka AND analizowana w konwencji logiki dodatniej (L=0, H=1) realizuje funkcję AND. Bramka AND analizowana w konwencji logiki ujemnej (L=1, H=0) realizuje funkcję OR. Bramka OR analizowana w konwencji logiki dodatniej (L=0, H=1) realizuje funkcję OR. Bramka OR analizowana w konwencji logiki ujemnej (L=1, H=0) realizuje funkcję AND. Analogicznie zgodnie zasadą dualności bramki NOR i NAND Poziomy napięć Wartości Logiczne LOGIKA DODATNIA Wartości Logiczne LOGIKA UJEMNA A B Y A B Y A B Y H H H H L L L H L L L L 1 1 1 1 0 0 0 1 0 0 0 0 BRAMKA AND 0 0 0 0 1 1 1 0 1 1 1 1 BRAMKA OR 20 10
Multipleksery Służą do wyboru i przesłania na wyjście sygnału z jednego z N wejść informacyjnych. Wejścia adresowe określają przekazywany na wyjście sygnał (A liczba wejść adresowych). Wejście enable służy do uaktywnienia/zablokowania wyjścia multipleksera. Liczba wejść informacyjnych związana jest z liczbą wejść adresowych zależnością N=2 A FUNKCJA REALIZOWANA PRZEZ MULTIPLEKSER: y=e k=0.. N-1 P k (Adr) * d k Gdzie P k (Adr) oznacza pełny iloczyn zmiennych adresowych a n-1,,a 0 prostych lub zanegowanych zgodnie z reprezentacją liczby k dla k=1 i A=2 P 1 (Adr) = a 1 a 0 21 Multiplekser d0 d1 d2 d3 e - enable y y=e k=0.. 3 P k (Adr) * d k y=e (a 1 a 0 d 0 + a 1 a 0 d 1 + a 1 a 0 d 2 + a 1 a 0 d 3 ) d N-1 a A-1 a 0 22 11
Multiplekser w syntezie funkcji logicznych d0 d1 d2 y 0 0 0 0 0 0 1 0 0 1 0 1 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 0 Multiplekser z A wejściami adresowymi, Realizacja jest możliwa, gdy liczba mintermów funkcji N wejściowej jest wielokrotnością 2 N-A-1, tutaj 2 3-2-1 =1 (mintermy są 3 więc jest to możliwe) 0 1 d2 d2 d0 d1 y 23 Multiplekser w syntezie funkcji logicznych d0 d1 d2 y 0 0 0 0 0 0 1 0 0 1 0 1 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 0 d1 Exor(d1,d2) d0 y Realizacja możliwa - liczba mintermów jest wielokrotnością 2 N-A-1 = 2 3-1-1 =2 24 12
Multiplekser w syntezie funkcji logicznych d0 d1 d2 d3 y 1 0 0 0 1 1 1 0 0 1 0 0 0 1 1 0 0 1 1 1 1 0 0 1 1 1 0 1 1 1 d3 d3 NAND(d1,d3) d3 y Wybór wejść funkcji jako wejść adresowych mulipleksera d0 d2 25 0 Multiplekser jako dekoder adresu 00 01 10 11 Sygnał wyboru Określenie adresu urządzenia poprzez podłączenie poziomu aktywnego na wejście multipleksera odpowiadające adresowi urządzenia, pozostałe wejścia nieaktywne. 1 adres Jeśli aktywny poziom wyboru układu jest niski to dla adresu urządzenie równego 2 należy na wejścia podać sygnały jak na rysunku. Adres =2 powoduje pojawienie się na wyjściu 0. 26 13
Demultipleksery (wykład 4 lub 5) Pozwalają na wybór wyjścia i przesłanie na nie sygnału z wejścia Numer wyjścia jest określany przez stan wejść adresowych Możliwe zastosowanie jako dekodery z naturalnego kodu binarnego na kod 1 z N 27 Demultiplekser, dekoder e - enable e - enable d y0 y1 y2 y3 a A-1 y0 y1 y2 y3 a 0 y N-1 y N-1 a A-1 a 0 Dekoder d=1 28 14
Synteza funkcji logicznych w oparciu o dekoder a b c c b a c b a c ba c ba cb a cb a cba cba Dostępność wszystkich implikantów dla zmiennych adresowych pozwala na łatwą realizację wielu funkcji logicznych 29 d0 d1 Łączenie multiplekserów Multiplekser 1 z 16 zbudowany jako dwupoziomowa struktura 5 multiplekserów 1 z 4 a2 a3 d15 a0 a1 30 15
Łączenie dekoderów a 0 a 1 a 2 enable a 0 a 1 E a 0 a 1 E y0 y 1 y 2 y 3 y 4 y 5 y 6 y 7 Dekoder 3/8zbudowany z dwóch dekoderów 2/4, E wejście zezwalające na wybór wyjścia 31 Multiplekser i demultiplekser grupowy E E X 0 Y 0 X 1 Y X Y 1 X n-1 Y N-1 A A 32 16
Sumator jednobitowy Sumator jednobitowy pełny Y=a b carry_in carry_out =ab+ (a+b)carry_in = ab+(a b) carry_in Zależności wynikają z tablicy prawdy dla funkcji sumy i przeniesienia carry_out a Y b carry_in 33 Sumator z przeniesieniem szeregowym a n-1 b n-1 a 1 b 1 a 0 b 0 c n-1 c n-2 c 2 c 1 c 0 Y n-1 Y 1 Y 0 Czas działania układu o takiej strukturze jest sumą czasów działania układów składowych ze względu na sekwencyjną propagację przeniesienia 34 17
Sumator z przeniesieniami równoległymi G i - Warunek generacji przeniesienia gdy 2 sumowane bity są 1 P i - Warunek propagacji przeniesienia gdy jeden sumowany bit jest 1 Jeżeli G i =1 to P i =0 G i = A i B i P i = A i B i c i+1 = G i +P i c i Y i = c i P i c 1 =g 1 +p 1 c 0 c 2 =g 2 +p 2 c 1 =g 2 +p 2 (g 1 +p 1 c 0 )=g 2 +p 2 g 1 +p 2 p 1 c 0 c 3 =g 3 +p 3 c 2 =g 3 +p 3 (g 2 +p 2 g 1 +p 2 p 1 c 0 ) = g 3 +p 3 g 2 +p 3 p 2 g 1 +p 3 p 2 p 1 c 0 Dla wyznaczenia przeniesienia c i brak konieczności znajomości wyniku z pozycji wcześniejszej c i-1 możliwość równoległej dla wszystkich pozycji sumatora generacji przeniesień jako sumy iloczynów sygnałów dostępnych na starcie przetwarzania. Wykorzystanie powyższych równań pozwala na uzyskanie wyniku sumy na 4 bitach po przejściu 2 poziomów bramkowania czas 2 t 35 Sumator z przeniesieniami równoległymi g 3 p 3 p 3 c 3 EXOR s 3 g 2 p 2 g 1 p 1 Generator przeniesień jednoczesnych p 2 c 2 p 1 c 1 EXOR EXOR s 2 s 1 g 0 p 0 p 0 c 0 EXOR s 0 c 0 36 18
Sumator z przeniesieniami równoległymi Problemem jest: duża liczba wejść bloku wyznaczającego przeniesienie wejściowe dla starszych bitów. Rozwiązaniem problemu jest: przetwarzanie grup bitów i wykorzystanie do otrzymania przeniesienia z grupy sygnałów: generacji i propagacji przeniesienia dla grupy wcześniejszych. Rozważmy sumator 16 bitowy 4 grupy po 4 bity: Warunek generacji grupy 4 bitów G=G 4 +G 3 P 4 +G 2 P 4 P 3 +G 1 P 4 P 3 P 2 Warunek propagacji grupy P=P 4 P 3 P 2 P 1 Przeniesienie z grupy C g =G+P C g-1 Czasy: t przejścia jedenego poziomu bramkowania 1. Generacja sygnałów G i P i jest realizowana równolegle, 2. Wyznaczenie sygnałów generacji i propagacji dla grupy 3. Wyznaczenie przeniesienia dla grupy 4. Powtórzenie kroków 3 dla kolejnych grup Dla 16 bitów mamy 9 t zamiast z 16 krokami przetwarzania sumatora z przeniesieniem szeregowym 37 Grupowy sumator z przeniesieniami równoległymi S 13-16 B 13-16 A 13-16 S 9-12 B 9-12 A 9-12 S 5-8 B 5-8 A 5-8 S 1-4 B 1-4 A 1-4 13-16 PG 13-16 9-12 PG 9-12 5-8 PG 5-8 1-4 PG 1-4 C 13-16 P 13-16 G 13-16 C 9-12 P 9-12 G 9-12 C 5-8 P 5-8 G 5-8 C 1-4 P 1-4 G 1-4 Generator przeniesień GC 3 Generator przeniesień GC 2 Generator przeniesień GC 1 Generator przeniesień C 0 GP 4 GG 4 GP 3 GG 3 GP 2 GG 2 GP 1 GG 1 Grupowy generator przeniesień C 0 Blok sprowadza się do bramek EXOR, a generatory przeniesień pracują wg podanych wcześniej wzorów funkcji. 38 19
Sumator ze sterowanym przeniesieniem wyborem wyniku B5-8 A 5-8 B 1-4 A 1-4 1 0 c 4 bitowy 4 bitowy 5 4 bitowy c 0 UK S 1-4 c 8 S 5-8 UK w zależności od c 5 określa skąd pochodzi przeniesienie 39 Podział sumatorów Równoległe: Z przeniesieniem szeregowym Z przeniesieniem równoległym Szeregowe (układy sekwencyjne) Zwykłe Akumulujące Szeregowo-równoległe 40 20
Odejmowanie Równanie poniższe przedstawia działanie układu sumatora lub substraktera w zależności od wartości zmiennej c. Działania realizowane na wartościach w kodzie U2. Y= A+ (B c)+c gdzie oznacza sumę modulo wektora A i skalara c Dla c=0 realizowane jest dodawanie. Dla c=1 Y= A +B + 1 gdzie B + 1 oznacza liczbę -B w kodzie U2. Zasada działania: układ dodający, w przypadku odejmowania dodaje liczbę przeciwną do odjemnika. 41 Układ sumatora/substraktera A B A n B n XOR C n+1 C n C n+1 C 0 EXOR Y V nadmiar przepełnienie Nadmiar pojawia się gdy wejście i wyjście przeniesienia na najstarszym bicie są różne. 42 21
Algorytm mnożenia a 3 a 2 a 1 a 0 X b 3 b 2 b 1 b 0 a 3 b 0 a 2 b 0 a 1 b 0 a 0 b 0 + a 3 b 1 a 2 b 1 a 1 b 1 a 0 b 1 a 3 b 1 s 31 s 21 s 11 c 31 c 21 c 11 + a 3 b 2 a 2 b 2 a 1 b 2 a 0 b 2 a 3 b 2 s 42 s 32 s 22 c 42 c 32 c 22 + a 3 b 3 a 2 b 3 a 1 b 3 a 0 b 3 a 3 b 3 s 53 s 43 s 33 + c 53 c 43 c 33 s 7 s 6 s 5 s 4 s 3 s 2 s 1 s 0 43 Algorytm mnożenia a 3 a 2 a 1 a 0 X b 3 b 2 b 1 b 0 a 3 b 0 a 2 b 0 a 1 b 0 a 0 b 0 + a 3 b 1 a 2 b 1 a 1 b 1 a 0 b 1 a 3 b 1 s 31 s 21 s 11 c 31 c 21 c 11 + a 3 b 2 a 2 b 2 a 1 b 2 a 0 b 2 a 3 b 2 s 42 s 32 s 22 c 42 c 32 c 22 + a 3 b 3 a 2 b 3 a 1 b 3 a 0 b 3 a 3 b 3 s 53 s 43 s 33 + c 53 c 43 c 33 s 7 s 6 s 5 s 4 s 3 s 2 s 1 s 0 Iloczyn czynnika i najmłodszego bitu T PAND Iloczyn czynnika i 2 bitu Wynik częściowy (bez przeniesienia) +T PSUM Przeniesienie Iloczyn czynnika i 3 bitu Wynik częściowy (bez przeniesienia) +T PSUM Przeniesienie Iloczyn czynnika i 4 bitu Wynik częściowy (bez przeniesienia) +T PSUM SUMAWANIE Przeniesienia Z PROPAGACJĄ Wynik ostateczny + 3T PSUM Dla liczby 4 bitowej 4 etapy sumowania, 3 etapy sumowania na 3 bitach bez propagacji przeniesienia, przeniesienie dodawane jako składnik sumy kolejnego etapu, 4 etap sumowanie przeniesienia z jego propagacją. Czas wyznaczania iloczynu T PAND + 6 *T PSUM p44 22
Matrycowy układ mnożący c+ x c SP y a 3 b 1 s a SP 3 b 2 Sumator pełny 1 bitowy a 3 b 0 SP SP a 2 b 2 0 a 2 b 0 a 2 b 1 SP a 1 b 2 SP s 2 0 0 a 1 b 0 c a 0 b 0 a 1 b 1 a 0 b 2 SP s a 0 b 0 1 s 1 a3 b 3 SP a 2 b 3 SP a 1 b 3 SP a 0 b 3 SP SP SP c+ c+ 0 s 3 s 7 s 6 s 5 s 4 T p_sp propagacja sumatora pełnego T p_b propagacja bramki Czas propagacji układu jest równy T p_b +6* T p_sp 45 Komparator Porównywanie liczb binarnych dodatnich a 3 a 2 a 1 a 0 i b 3 b 2 b 1 b 0 46 23
Komparatory szeregowe W ramach układów sekwencyjnych 47 24