4. układy funkcjonalne techniki cyfrowej
Transkrypt
4. układy funkcjonalne techniki cyfrowej
4. UKŁADY FUNKCJONALNE TECHNIKI CYFROWEJ 4.1. UKŁADY KONWERSJI KODÓW 4.1.1. Kody Kod - sposób reprezentacji sygnału cyfrowego za pomocą grupy sygnałów binarnych: Sygnał cyfrowy ⇔ wektor bitowy Gdzie np. sygnał cyfrowy: znaki A..Z, a..z, 0..9, znaki specjalne, interpunkcyjne i in. - tzw. kody alfanumeryczne; cyfra 0..9 - tzw. kody dwójkowo-dziesiętne; wartość całkowita z pewnego przedziału, np. <- 128,+127>; inne... 4.1.1.1.Klasyfikacje kodów n - długość słowa kodowego (liczba bitów wektora) P - pojemność kodu (liczba wszystkich dopuszczalnych kombinacji kodu) Kody zupełne i niezupełne P = 2n ⇒ kod zupełny P < 2n ⇒ kod niezupełny Kody systematyczne (np. naturalny kod binarny) i niesystematyczne (np. alfanumeryczne) Bardzo ważna klasa kodów systematycznych, kodujących liczby - kody wagowe: każda pozycja w słowie kodowym (bit) ma określoną i niezmienną wartość - tzw. wagę. Np. 3-bitowy naturalny kod binarny (NKB): n=3 Wagi P = 8 = 2n ⇒ kod zupełny 4 2 1 0 0 0 0 1 0 0 1 2 0 1 0 3 0 1 1 4 1 0 0 5 1 0 1 6 1 1 0 7 1 1 1 1 4.1.1.2.Kody dwójkowo-dziesiętne Jak zakodować binarnie cyfry 0...9? P = 10 n = 4 .. 10 - różnie dla różnych kodów. Najpopularniejsze (n = 4): Naturalny BCD (8421) Aikena (2421) Plus 3 (2*421) (7421) (+3, excess3, XS3) niewagowy! 0 0000 0000 0000 0000 0011 1 0001 0001 0001 0001 0100 2 0010 0010 0010 0010 0101 3 0011 0011 0011 0011 0110 4 0100 0100 0100 0100 0111 5 0101 1011 0101 0101 1000 6 0110 1100 0110 0110 1001 7 0111 1101 0111 0111 1010 8 1000 1110 1110 1001 1011 9 1001 1111 1111 1010 1100 4.1.1.3.Kody o stałej liczbie jedynek: „k z n" W słowie n bitowym dokładnie k bitów jest równych 1 Jeśli k= 1 ⇒ kod „1 z n" (zwany też kodem pierścieniowym, prostym). Dla kodów pierścieniowych P = n. Np. kod 1 z 4: 0001 0010 0100 1000 2 4.1.1.4.Kod pseudopierścieniowy (Johnsona) Systematyczny, ale niewagowy. P = 2n. Np. kod 4b (P = 8): 0000 0001 0011 0111 1111 1110 1100 1000 4.1.1.5.Kod Gray'a Zupełny kod niewagowy, w którym każde dwa kolejne słowa kodowe (także pierwsze i ostatnie) różnią się między sobą dokładnie jednym bitem. n=1 n=3 n=2 0 0 0 0 0 0 1 0 1 0 0 1 1 1 0 1 1 1 0 0 1 0 1 1 0 1 1 1 1 0 1 1 0 0 4.1.1.6.Inne kody Detekcyjne i korekcyjne: transmisja i zapis danych, dodany nadmiar umożliwia wykrycie lub wykrycie i korekcję określonej klasy błędów; np. dodawanie bitu parzystości. Alfanumeryczne, np. kod ASCII (7-bitowy); w komputerach PC stosowany 8bitowy tzw. kod ASCII rozszerzony (extended ASCII), znaki o kodach powyżej 127 bywają różne. Kody kompresji danych... 3 4.1.2. Układy konwersji kodów Podstawowa klasyfikacja: Enkoder (koder): kod WE jest kodem prostym („1 z n”). Dekoder: kod WY jest kodem prostym („1 z n”). Transkoder: żaden z kodów WE ani WY nie jest „1 z n”. Enkoder priorytetowy: jeśli na WE zamiast kodu 1 z n pojawi się więcej niż jedna jedynka, ustalona ranga priorytetów WE decyduje, która z nich określa odpowiedź układu (np. najstarsza). Dekoder pełny: kod WE jest zupełny (czyli m = 2n, gdzie n = liczba WE, m = liczba WY). Np. układ scalony TTL 7442 - dekoder kodu BCD 8421 ABCD 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1101 1110 1111 0 0 1 1 1 1 1 1 1 1 1 1 2 3 4 5 6 7 8 9 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Dekoder niepełny. 4 4.1.3. Dekodery NKB Ang. „k – to - n decoders” (2-to-4, 3-to-8 etc.) Dekodery„2 na 4” (a) postać kanoniczna (b) WY aktywne „0" (c) realizacja uproszczona Dekodery„3 na 8” (a) postać kanoniczna (b) regularna struktura na 2WE bramkach iloczynu (+negacje zmiennych WE) 5 Dekoder„4 na 16” - struktura matrycowa: Dekoder„2 na 4” z sygnałem Enable 6 Kaskadowe łączenie dekoderów (a) NOT+2 x „2 na 4” ⇒ „3 na 8” (b) 4 x „2 na 4” ⇒ „4 na 16" z Enable 4.1.4. Multipleksery i demultipleksery Multiplekser: układ kombinacyjny umożliwiający wybór i przestanie na swoje wyjście sygnału z jednego z n WE informacyjnych; numer WE określany jest stanem WE adresowych (sterujących). Zwykle numer WE podawany jest w NKB jako liczba m bitowa; n = 2m. Demultiplekser: układ kombinacyjny umożliwiający wybór i przestanie sygnału ze swojego wejścia na jedno z n WY; numer WY określany jest stanem WE adresowych (sterujących) -j.w. 7 Przykład: multipleksowany (przełączany, komutowany) układ transmisji danych: Idea realizacji: dekoder NKB bramkujący WE informacyjne Np. układy czterokanałowe (n = 4, m = 2): 8 4.1.5. Realizacje funkcji boolowskich na układach konwersji kodów 4.1.5.1.Multipleksery Realizacja funkcji n zmiennych na multiplekserze 2m kanałowym ⇒ podanie na jego wejścia funkcji n - m zmiennych. Przykłady (multipleksery 4-kanałowe, 2 WE adresowe): a) n – m = 0 b) n – m = 1 a b c f1 0 0 0 0 0 0 1 0 0 l 0 0 0 l 1 1 l 0 0 1 1 0 1 1 l 1 0 1 1 1 1 0 9 c) n – m > 1 : f(a, b, c, a)=Σ(0001, 0011, 1000, 1001, 1011, 1100) a b c d f 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 1 1 1 0 1 0 0 0 0 1 0 1 0 0 1 1 0 0 0 1 1 1 0 1 0 0 0 1 1 0 0 1 1 1 0 1 0 0 1 0 1 1 1 1 1 0 0 1 1 1 0 1 0 1 1 1 0 0 1 1 1 1 0 a b c d f 0 0 0 1 1 0 0 1 1 1 1 1 0 0 1 1 0 0 0 1 1 0 0 1 1 1 0 1 1 1 f(0,0,c,d) = d f(0,1,c,d) = 0 f(1,0,c,d) = /c + d f(1,1,c,d) = /(c + d) 10 4.1.5.2.Dekodery A. Postać kanoniczna sumy iloczynów (jedynki funkcji) Np.: f(Q, X, P)=Σ(000, 001, 100, 110, 111) ⇒ B. Postać kanoniczna iloczynu sum (zera funkcji) f(Q, X, P) = Π(010, 011, 101) ⇒ 4.1.5.3.Podsumowanie Jedna uniwersalna struktura + zmieniana dla konkretnej funkcji sieć połączeń WE (multiplekser) lub WY (dekoder) Przydatność w architekturze programowalnych układów logicznych. 11 4.2. REJESTRY Najogólniej: Rejestr n-bitowy = grupa n przerzutników o wspólnych sygnałach sterujących, służąca do przechowywania (pamiętania) n wartości binarnych. Podstawowy podział - sposób wprowadzania / wyprowadzania informacji: a) szeregowy (serial): b) równoległy (parallel): Klasyfikacja: PIPO (Parallel In - Parallel Out) PISO (Parallel In – Serial Out) SIPO (Serial In – Parallel Out) SISO (Serial In – Serial Out) 4.2.1. Rejestry równoległe Np. 4-bitowy rejestr PIPO = bufor 4-bitowy: • 4 przerzutniki D o wspólnym WE zegarowym. • W zależności od rodzaju przerzutników D może to być rejestr typu „latch" (zatrzask) lub rejestr synchroniczny. • Ładowanie zawartości zboczem narastającym lub opadającym. 12 4.2.2. Rejestry przesuwne Jedno i dwukierunkowe. Zwykle kaskada przerzutników typu D z różnymi konfiguracjami połączeń. Np.: rejestr 4b: • Load aktywne poziomem wysokim, Clear - poziomem niskim. • Przed każdym zapisem (Load) wymagane wyzerowanie rejestru (Clear). Układ pełnego wpisu równoległego (bez konieczności zerowania): 13 4.3. LICZNIKI Układy sekwencyjne, służące do zliczania i zapamiętywania liczby impulsów. • Automaty o WE synchronizującym Clk, z którego impulsy podlegają zliczaniu (plus inne WE sterujące, np. zerujące, bramkujące WE itp.), i o sygnale wyjściowym Y=A (a więc automat Moore'a). • Liczba stanów automatu - pojemność licznika = N. Dla liczników w NKB najczęściej N = 2n, n = liczba WY licznika. • Jeśli w grafie występuje przejście qN-1 • Jeśli nie - licznik „do N” + osobny sygnał zerujący. • Jeśli w grafie występują przejścia zwrotne pomiędzy sąsiednimi stanami - licznik q0 - licznik „modulo N". rewersyjny (dodatkowe sygnały sterujące); jeśli nie licznik jednokierunkowy (zliczający w przód / wstecz). • Podstawowy podział: liczniki asynchroniczne (= prostsze) i synchroniczne (= szybsze). 4.3.1. Liczniki asynchroniczne (szeregowe) Podstawowa komórka liczników asynchronicznych: tzw. dwójka licząca - na przerzutniku typu T, JK lub D: Clk Q0 • Dwójka licząca =dzielnik częstotliwości przez 2 przełączany zboczem opadającym. • Naturalny element konstrukcji liczników w NKB. 14 3-bitowy asynchroniczny licznik NKB (modulo 8) = kaskada trzech dwójek liczących: Clk Q0 Q1 Q2 Podstawowa wada liczników asynchronicznych: propagująca się kaskadowo lawina przełączeń przerzutników przy przejściu np. ze stanu 111 do 000: Rzeczywista sekwencja stanów: 111 110 100 000 τ = czas przełączania się przerzutnika 15 4.3.2. Liczniki synchroniczne Zliczane impulsy podawane równolegle na wejścia synchronizujące wszystkich przerzutników - nie ma kaskadowego przełączania się kolejnych przerzutników! Dodatkowe układy logiczne tzw. generacji przeniesienia. Warunek przełączania się bitu Qk: Tk= Q0 ⋅ Q1 ⋅ ... ⋅ Qk-1 = 1 • Zaleta liczników synchronicznych: mniejsze opóźnienia, szybsze przełączanie się, większa częstotliwość pracy. • O częstotliwości pracy decyduje szybkość układu generacji przeniesienia; na rysunku powyżej pokazana jest konfiguracja tzw. przeniesienia równoległego (szybsza, ale na wielowejściowych bramkach AND): Tk= Q0 ⋅ Q1 ⋅ ... ⋅ Qk-1 • Alternatywa - konfiguracja szeregowa (bramki tylko dwuwejściowe, ale wolniejsza): Tk= Tk-1⋅ Qk-1, T0 = 1. 16 4.3.3. Zliczanie wstecz Clk Q0 Q1 Q2 0 7 6 5 4 3 2 1 0 Liczniki asynchroniczne - przełączanie bitu Qk zboczem narastającym Qk-1. Liczniki synchroniczne - warunek przełączania się bitu Qk: Tk= /Q0 ⋅ /Q1 ⋅ ... ⋅ /Qk-1 = 1 (generacja równoległa) lub Tk= Tk-1⋅ /Qk-1= 1 (generacja szeregowa) Przełączanie bitu Q0 wciąż opadającym zboczem zegara ⇒ problemy z kaskadowym łączeniem liczników, sygnał Clk nie może być traktowany jako „Q-1” bit słowa licznika. Rewersyjny licznik asynchroniczny (idea): Rewersyjny licznik synchroniczny (idea; szeregowa generacja przeniesienia): 17 4.4. Układy arytmetyczne 4.4.1. Sumatory Prawie wszystkie obliczenia matematyczne dają się sprowadzić do działań arytmetycznych, te zaś dają się sprowadzić do dodawania. Podstawowy podział: a) szeregowe (był przykład syntezy abstrakcyjnej automatu) - układy sekwencyjne; b) równoległe - układy kombinacyjne. Elementy sumatora równoległego – półsumator oraz sumator pełny: A B C S 0 0 0 0 0 1 0 1 1 0 0 1 1 1 1 0 S =A ⊕ B C= A ⋅ B Si = Ai ⊕ Bi ⊕ Ci-1 Ai Bi Ci-1 Ci Si 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 Ci = Ai ⋅ Bi + Ai ⋅ Ci + Bi ⋅ Ci • Kompletny kaskadowy 4-bitowy sumator równoległy: 18 Generacja przeniesienia w sumatorach kaskadowych • Szybkość propagacji przeniesienia w kaskadzie decyduje o szybkości pracy całego sumatora. • Na rysunku powyżej, przy czysto szeregowej propagacji przeniesienia pomiędzy poszczególnymi stopniami, całkowity czas sumowania jest wprost proporcjonalny do długości sumowanych stów. • Aby zwiększyć maksymalną częstotliwość pracy sumatora konstruuje się specjalne szybkie układy generacji przeniesień, w których szeregowa propagacja jest eliminowana. • Każdy bit - tzw. stopień sumatora - znajduje się w jednym z trzech stanów: a) generacji przeniesienia zerowego (Ci = 0), b) generacji przeniesienia jedynkowego (Ci =1), c) propagacji przeniesienia (Ci = Ci-1). 19