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