Układy kombinacyjne

Transkrypt

Układy kombinacyjne
Wprowadzenie do projektowania układów kombinacyjnych
1.
Wstęp
Każdy układ cyfrowy można przedstawić za pomocą tzw. „czarnej skrzynki” z określoną
liczbą wejść i wyjść.
x1
y1
xi
UK
yj
xn
ym
Rys. 1 Schemat blokowy układu logicznego o n- wejściach i m- wyjściach
Sygnały wejściowe i wyjściowe są sygnałami dwójkowymi (binarnymi). W układach
kombinacyjnych kombinacja stanu wejść jednoznacznie określa stan wyjść. Zależności
pomiędzy sygnałami wejściowymi i sygnałami wyjściowymi opisują funkcje boolowskie.
Każdą funkcję przełączającą (logiczną) przedstawić można w dwóch postaciach
kanonicznych:
sumy
2 n −1
f ( x1 , x 2 ,..., x n ) = ∑ f (i ) K i
(1)
i=0
iloczynu
2 n −1
f ( x1 , x 2 ,..., x n ) = ∏ [ f (i) + S i ]
(2)
i=0
gdzie: Ki - iloczyn wszystkich argumentów funkcji (wejść) dla kombinacji i,
Si - suma wszystkich argumentów funkcji (wejść) dla kombinacji i,
f(i)- wartość funkcji dla kombinacji i; przy czym f(i) e {0,1}.
Indeks i – przy iloczynie K jest liczbą dwójkową (lub równoważną dziesiętną), utworzoną
−
przez przyporządkowanie każdej zmiennej xi symbolu 1, a zmiennej xi symbolu 0. Tak więc
iloczynowi dwóch zmiennych x1 x2 odpowiada indeks (11) co w zapisie dziesiętnym oznacza
1*21+1*20=3, czyli symbol K3.
0*21+0*20=0 czyli symbol K0.
−
−
Natomiast iloczynowi x1 x 2
indeks (00) odpowiada
Indeks i – przy sumie S tworzy się odwrotnie niż przy iloczynie, przyporządkowując każdej
−
zmiennej xi symbol 0, a zmiennej xi symbol 1. Tak więc sumie dwóch zmiennych x1+x2
odpowiada indeks (00) co w zapisie dziesiętnym oznacza 0*21+0*20=0, czyli symbol S0.
−
−
Natomiast sumie x1 + x 2 indeks (11) odpowiada 1*21+1*20=1 czyli symbol S3.
Należy zaznaczyć, że liczba wszystkich kombinacji dla n – wejść, liczona od 0 do 2n-1, równa
się k=2n.
Na przykład dla trzech wejść liczba kombinacji równa się 8, liczona od 0 do 7 (tablica 1).
Tablica 1. Tablica zależności stanów dla układu o trzech wejściach
x3
x2
x1
22
21
20
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
I
0
1
2
3
4
5
6
7
Przykład 1
Określić postać kanoniczną sumy i iloczynu funkcji zadanej za pomocą tablicy 2
Tablica 2. Zależności funkcji y ( x1 , x2 , x3 ) dla przykładu 1
x3
22
0
0
0
0
1
1
1
1
x2
21
0
0
1
1
0
0
1
1
x1
20
0
1
0
1
0
1
0
1
y
1
0
1
0
0
0
0
1
Postać sumy:
y( x1 , x 2 , x3 ) = 1* K 0 + 0 * K1 + 1* K 2 + 0 * K 3 + 0 * K 4 + 0 * K 5 + 0 * K 6 + 1* K 7 = K 0 + K 2 + K 7 (3)
−
−
−
−
−
y = x1 x 2 x3 + x1 x 2 x 3 + x1 x 2 x 3
(4)
Postać iloczynu:
y(x1, x2, x3) = (1+ S0) ⋅ (0 + S1) ⋅ (1+ S2 ) ⋅ (0 + S3) ⋅ (0 + S4) ⋅ (0 + S5 ) ⋅ (0 + S6 ) ⋅ (1+ S7 ) = S1 ⋅ S3 ⋅ S4 ⋅ S5 ⋅ S6
−
−
−
−
−
−
−
(5)
−
y( x1 , x2 , x3 ) = ( x1 + x 2 + x3 ) ⋅ ( x1 + x2 + x3 ) ⋅ ( x1 + x2 + x3 ) ⋅ ( x1 + x2 + x3 ) ⋅ ( x1 + x2 + x3 ) (6)
Postacie kanoniczne sumy (4) i iloczynu (6) często przedstawia się za pomocą uproszczonego
dziesiętnego zapisu:
- postać sumy
y ( x1 , x 2 , x3 ) = ∑ ( 0,2,7)
(7)
- postać iloczynu
y ( x1 , x 2 , x3 ) = ∏ (1,3,4,5,6)
(8)
Postać kanoniczną sumy nazywa się także rozkładem wyrażenia strukturalnego na składowe
1, a postać iloczynu rozkładem na składowe 0.
2.
Upraszczanie funkcji logicznych
Za pomocą reguł algebry logiki (algebry Boole’a) można przekształcać i upraszczać funkcje
logiczne. Ponieważ stosowanie reguł opartych na prawach logiki może być dość uciążliwe, do
upraszczania funkcji logicznych stosuje się zapis graficzny w postaci tablicy Karnaugha.
Sposób minimalizacji funkcji logicznej za pomocą siatki Karnaugha omówiony zostanie na
przykładzie.
Przykład 2
Zaprojektować układ sterowania elementu wyjściowego F będącego funkcją trzech
elementów wejściowych (a, b, c) przy czym obowiązuje następujący warunek pracy:
Element F ma działać przy działaniu przynajmniej dwóch spośród trzech elementów
wejściowych.
Rozwiązanie
Zależności wiążące wejścia z wyjściem przedstawiono w tablicy 3.
Tablica 3 Tablica prawdy funkcji F
c
B
2
2
21
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
a
20
0
1
0
1
0
1
0
1
F
0
0
0
1
0
1
1
1
Postać funkcji F(a, b, c) w zapisie kanonicznym sumy (rozkładzie na składowe jedynki jest
następująca:
−
−
−
F=K3+K5+K6+K7= a bc + a b c + ab c + abc
Rozwiązanie (9) można uprościć, korzystając z algebry Boole’a, do postaci:
−
−
−
−
(9)
−
(10)
F= a bc + a b c + ab(c + c) = a bc + a b c + ab
Dalsze etapy minimalizacji funkcji nie są takie oczywiste. Stąd nie zawsze metodą
przekształceń udaje się znaleźć minimalnie uproszczoną postać funkcji.
Poniżej przedstawiono zależności z tablicy 3 w postaci graficznej za pomocą tablicy
Karnaugha.
Tablica ta składa się z tylu pól ile jest kombinacji zmiennych wejściowych. W omawianym
przykładzie n=3 więc k=23=8 pól. Zmiennym wejściowym przyporządkowuje się
odpowiednio wiersze i kolumny tablicy (rys. 2). Tablica powinna być tak zakodowana, aby w
kolejnych wierszach i kolumnach występowała zmiana tylko jednego wejścia. Znaczy to, że
nie można zakodować dwóch kolejnych kolumn (wierszy) kombinacjami 00->11 lub 01->10.
bc
a
00
0
01
0
11
1
10
0
0
1
1
1
0
1
Rys. 2 Tablica Karnaugha do przykładu 2 – minimalizacja postaci kanonicznej sumy
Do pól które spełniają warunki zadania wpisujemy jedynki. Sąsiednie pola z jedynkami,
różniące się tylko wartością jednej zmiennej mogą być łączone w większe bloki 2, 4, 8
polowe. Uproszczenie polega na tym, że znikają te wszystkie zmienne wejściowe, których
wartości zmieniają się wewnątrz oznaczonego bloku. Podgrupa dwu elementowa powoduje
uproszczenie o jedno wejście w kombinacji Ki. Podgrupa czteroelementowa o dwa wejścia,
podgrupa czteroelementowa o trzy wejścia i tak dalej.
W niniejszym przykładzie tworzymy trzy podgrupy po dwie jedynki. Po uproszczeniu
otrzymujemy:
F= ac+ab+bc
(11)
Analogicznie postępuje się w przypadku korzystania z wartości zerowej zmiennej wejściowej.
Wtedy obejmuje się pola zer (rys. 3).
bc
a
00
0
01
0
11
1
10
0
0
1
1
1
0
1
Rys. 3 Tablica Karnaugha do przykładu 2 – minimalizacja postaci kanonicznej iloczynu
F=(a+b)(b+c)(a+c)=abc+ab+bc+ac=ab(c+1)+bc+ac=ab+bc+ac
(12)
II. Ćwiczenia laboratoryjne
- Zaprojektować układ realizujący następujące operacje arytmetyczne:
Wejścia programujące
x1
x2
0
0
0
1
1
0
1
1
F
x3 , x4
x3*x4
x3+x4
0
1
Na bramkach typu NAND (NOR)
- Zrealizować konwerter naturalnego kodu binarnego (kodu 8421) na kod Graya.
Tablica zależności kodów 8421 i kodu Graya.
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Kod 8421
abcd
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
Kod Graya
WXYZ
0000
0001
0011
0010
0110
0111
0101
0100
1100
1101
1111
1110
1010
1011
1001
1000

Podobne dokumenty