Uniwersalne bloki kombinacyjne | ||
---|---|---|
Łukasz Uszko Seweryn Kwieciński |
AGH WEAIiIB KANiUP |
|
3 EC | ||
2012/2013 | Lab. Podstaw Sterowania Logicznego |
Cel ćwiczenia
Celem ćwiczenia jest poznanie techniki konstruowania uniwersalnych modułów (bloków) umożliwiających łatwe tworzenie wielobitowych układów do wykonywania operacji takich jak dodawanie, odejmowanie lub porównywanie.
Realizacja układu dodającego (sumatora)
Tablica prawdy sumatora uniwersalnego
Sumator jest układem kombinacyjnym generującym sumę arytmetyczną trzech bitów wejściowych. Ma trzy wejścia i dwa wyjścia. Wejścia Ai i Bi służą do dodawania bitów z i-tej pozycji, a wejście Ci-1 do przyjęcia przeniesienia z poprzedniej i-1 pozycji.
Poniżej przedstawiono tablicę stanów sumatora.
Wejścia | Wyjścia |
---|---|
Ai | Bi |
0 | 0 |
0 | 0 |
0 | 1 |
0 | 1 |
1 | 0 |
1 | 0 |
1 | 1 |
1 | 1 |
Następnie tą tablice należy rozłożyć na dwie (ponieważ mamy dwa wyjścia) i każdą z nich zminimalizować oraz zapisać funkcje wyjściową
Tabela dla Wi
BiCi-1 Ai |
00 | 01 | 11 | 10 |
---|---|---|---|---|
0 | 0 | 0 | 1 | 0 |
1 | 0 | 1 | 1 | 1 |
Zapisanie zminimalizowanej funkcji realizujących Wi
Y = b • c + a • c + a • b
Tabela dla Ci
BiCi-1 Ai |
00 | 01 | 11 | 10 |
---|---|---|---|---|
0 | 0 | 1 | 0 | 1 |
1 | 1 | 0 | 1 | 0 |
Zapisanie zminimalizowanej funkcji realizujących Ci
$$Y\ = \ \overline{A} \bullet \overline{B} \bullet C_{i - 1}\ + \ \overline{A} \bullet B \bullet \overline{C_{i - 1}}\ + \ A \bullet \overline{B} \bullet \overline{C_{i - 1}}\ \ + \ A \bullet B \bullet C_{i - 1}$$
Powyższą funkcję można uprościć korzystając z alternatywy wykluczającej (XOR)
Y = A ⨁ B ⨁ Ci − 1
Realizacja funkcji Wi i Ci na funktorach logicznych (w programie symulacyjnym).
Stworzenie przy pomocy bloków sumatora układ dodający 4-bitowe liczby
Blok uniwersalnego 1 bitowego układu odejmującego:
Blok uniwersalnego 1-bitowego bloku odejmującego będzie posiadał takie same wejścia i wyjścia jak blok sumatora (na wejścia podawane będą bity liczby A i B oraz pożyczka z młodszej pozycji, a wyjściami będą bity wyniku oraz pożyczki z bieżącej pozycji).
Tabela prawdy subtraktora :
Mając na uwadze przykład podany przez prowadzącego w instrukcji, zapisaliśmy tabelę prawdy uniwersalnego 1-bitowego bloku odejmującego
A | B | P-1 | W | P |
0 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 1 | 1 |
0 | 1 | 0 | 1 | 1 |
0 | 1 | 1 | 0 | 1 |
1 | 0 | 0 | 1 | 0 |
1 | 0 | 1 | 0 | 0 |
1 | 1 | 0 | 0 | 0 |
1 | 1 | 1 | 1 | 1 |
Minimalizacja funkcji Wyniku i Pożyczki:
Minimalizacja Wyniku (W)
P-1 AB |
0 | 1 |
00 | 0 | 1 |
01 | 1 | 0 |
11 | 0 | 1 |
10 | 1 | 0 |
Otrzymana funkcja po zminimalizowaniu:
W = P−1(∼A∼B+AB) + ∼P−1(∼AB+A∼B) = P−1 ∼ (A⨁B) + ∼P−1(A⨁B) = (P−1⨁A⨁B)
Minimalizacja Pożyczki (P)
P-1 AB |
0 | 1 |
00 | 0 | 1 |
01 | 1 | 1 |
11 | 0 | 1 |
10 | 0 | 0 |
Otrzymana funkcja po zminimalizowaniu:
P = ( ∼ AB + ∼AP−1 + BP−1)
Po zminimalizowaniu i zapisaniu funkcji wyniku i pożyczki zrealizowaliśmy funkcje przy pomocy funktorów logicznych w programie symulacyjnym oraz przetestowaliśmy poprawność działania
każdego bloku.
Rys 2.1 Układ subtraktora po zminimalizowaniu
Rys 2.2 Układ subtraktora po dodatkowym uproszczeniu
Rys 2.3 Układ odejmujący dwie 4-bitowe liczby:
Jednobitowy blok komparatora do porównywania dwóch dowolnie długich liczb
Wprowadzenie
Blok komparatora ma porównywać jedną pozycję binarną (z uwzględnieniem przeniesienia bitu
równości następnej pozycji i wypracowaniem bitu równości na poprzednią pozycję). Na wyjściu
układu należy otrzymać informację o stosunku dwóch porównywanych liczb (A<B, A>B, A=B).
Porównywanie binarne przebiega następująco: zaczynając od najstarszego bitu – jeśli bity na danej pozycji są równe, należy porównać bit na młodszej pozycji; jeśli różne – przekazać informację do komparatora młodszej pozycji, który informację o większości / mniejszości starszego bitu (całej liczby) przekaże dalej do komparatorów młodszych bitów. Wynik otrzymujemy na wyjściu komparatora najmłodszego bitu. Tak więc komparator pojedynczego bitu będzie wyglądał następująco:
Tablice prawdy
Zgodnie z tym algorytmem który został podany przez prowadzącego, można wywnioskować że:
gdy A=B, R=1 W=0
gdy A≤B, R=0 W=0
gdy A>B, R=0 W=1
Uwzględniając to można stworzyć tablicę prawdy dla sumatora:
Wejścia | Wyjścia |
---|---|
Ai | Bi |
0 | 0 |
1 | 1 |
0 | 1 |
1 | 0 |
x | x |
x | x |
gdzie x – dowolny stan
Następnie tą tablice należy rozłożyć na dwie (ponieważ mamy dwa wyjścia) i każdą z nich zminimalizować oraz zapisać funkcje wyjściową:
Tablica dla Ri
R(i+1) W(i+1) Ai BI |
00 | 01 | 11 | 10 |
---|---|---|---|---|
00 | 0 | 0 | x | 1 |
01 | 0 | 0 | x | 0 |
11 | 0 | 0 | x | 1 |
10 | 0 | 0 | x | 0 |
Po zminimalizowaniu funkcja wyjściowa daje się zapisać:
$$Y = \overline{A_{i}}\ \bullet \overline{B_{i}} \bullet R_{i + 1} + A_{i} \bullet B_{i} \bullet R_{i + 1}$$
Tablica dla Wi
R(i+1) W(i+1) Ai BI |
00 | 01 | 11 | 10 |
---|---|---|---|---|
00 | 1 | 0 | x | 1 |
01 | 1 | 0 | x | 0 |
11 | 1 | 0 | x | 1 |
10 | 1 | 0 | x | 0 |
Po zminimalizowaniu funkcja wyjściowa daje się zapisać:
$$Y = W_{i + 1} + A_{i} \bullet \overline{B_{i}} \bullet R_{i + 1}$$
Tabela dla dekodera komparatora.
Następnym zadaniem było zaprojektowanie dekodera do wyświetlacza siedmiosegmentowego. W tym celu rozpisaliśmy tablicę dla każdego segmentu. Segment g świeci się w każdym przypadku, zatem w dekoderze połączyliśmy ten segment z VCC.
Wejścia | Wyjścia (poszczególne segmenty wyświetlacza) |
---|---|
Ri | Wi |
1 | 0 |
0 | 0 |
0 | 1 |
1 | 1 |
Dla segmentów ab:
Wi Ri |
0 | 1 |
---|---|---|
0 | 0 | 1 |
1 | 0 | x |
Po zminimalizowaniu funkcja wyjściowa:
Y = Wi
Dla segmentów c oraz ef:
Wi Ri |
0 | 1 |
---|---|---|
0 | 1 | 1 |
1 | 0 | x |
Po zminimalizowaniu funkcja wyjściowa:
$$Y = \overline{R_{i}}$$
Dla segmentów d:
Wi Ri |
0 | 1 |
---|---|---|
0 | 0 | 1 |
1 | 0 | x |
$$Y = \overline{W_{i}}$$
Realizacja układu na bramkach oraz jego symulacja
Po otrzymaniu zminimalizowanych funkcji bez problemu można było używając odpowiednich bramek zasymulować badany przez nas układ:
Rys 3.1 Blok komparatora
Rys 3.2 Blok dekodera do wyświetlacza 7-segmentowego
Rys 3.3 Struktura komparatora 4-bitowego oraz działanie podczas gdy badane liczby są równe
Rys 3.4 Działanie komparatora gdy liczba A>B
Rys 3.4 Działanie komparatora gdy liczba B>A
Wnioski
Podczas wykonania ćwiczenia nauczyliśmy się podstaw pracy z użyciem symulatorów układów cyfrowych. Poznaliśmy zasadę tworzenia bloków z układów logicznych.
Podstawowym członem sumatorów dwójkowych jest zwykle sumator jednobitowy. Sumator ten dodaje algebraicznie trzy liczby dwójkowe. Z odpowiedniego połączenia sumatorów jednobitowych otrzymujemy sumator wielobitowy.
Układ subtraktora jest układem realizującym odejmowanie dwóch liczb binarnych. Subtraktor można nazwać pewnym przypadkiem sumatora ze zmianą w funkcji pożyczki. Układy wielobitowe subtraktorów budowane są analogicznie jak odpowiednie sumatory.
Komparator jest układem kombinacyjnym służącym do porównywania dwóch liczb dwójkowych. Z połączenia komparatorów dwubitowych można uzyskać komparatory wielobitowe.
Dzięki ćwiczeniu zrozumieliśmy dogłębniej zasadę działania sumatora, substraktora oraz komparatora.