PSL-K-02/B Uniwersalne bloki kombinacyjne
PODSTAWY STEROWANIA LOGICZNEGO
LABORATORIUM SYSTEMÓW STEROWANIA PRZEMYSŁOWEGO I AUTOMATYKI BUDYNKÓW
KATEDRA AUTOMATYKI NAPĘDU I URZĄDZEŃ PRZEMYSŁOWYCH
AKADEMIA GÓRNICZO-HUTNICZA
WWW.KANIUP.AGH.EDU.PL
WWW.AGH.EDU.PL
Temat:
Konstrukcja uniwersalnych bloków jednobitowego
dodawania, odejmowania i porównywania.
Grupa:
układy kombinacyjne
Obiekt:
modele zrealizowane w pakiecie symulacyjnym
Cel ćwiczenia: 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. Układy wielobitowe powstają poprzez szeregowe połączenie bloków 1-bitowych, które mają przetwarzać jedną pozycję binarną (np. wszystkie bity na drugiej pozycji od bitu najmłodszego), z uwzględnieniem przeniesienia z poprzedniej lub następnej pozycji i wypracowaniem przeniesienia na kolejną pozycję).
Przykład dodawania binarnego liczb A i B (W oznacza wynik, a C przeniesienia): C
11 1
i:
Ai: 0110010
Bi: 0110111
Wi: 1101001
Numerując bity liczb od 0 do 6, można zauważyć, że dodanie:
A1 + B1 = 10(2), czyli C1=1, a W1=0.
Schematycznie moduł realizujący zadaną funkcję można przedstawić następująco: Ai
Ci
Bi
Wi
Σ
Ci-1
A + B + C = W / C
i
i
i-1
i
i
Program ćwiczenia:
Realizacja układu dodającego (sumatora)
1. Wypisać tablicę prawdy sumatora uniwersalnego (
Ai
Bi
Ci-1
Wi
Ci
).
2. Zapisać i zminimalizować funkcje realizujące Wi i Ci.
3. Zrealizować funkcje Wi i Ci na funktorach logicznych (w programie symulacyjnym).
Przetestować i potwierdzić poprawność zrealizowanych funkcji. Następnie przekształcić obie funkcje (np. używając praw de’Morgana) tak, aby zrealizowane były tylko na jednym rodzaju bramek: NAND lub NOR.
4. Przekształcić funkcję do postaci dwóch identycznych układów (tzw. półsumatorów - układów o 2 wejściach i 2 wyjściach). Na wejścia podaje się sumowane bity. Jedno z wyjść zwane S
jest wynikiem sumowania na bieżącej pozycji, a drugie z wyjść wyjściem przeniesienia C:
• Ci’ = F1( Ai, Bi ), Si’ = F2( Ai, Bi ),
• Ci’’ = F1( Si’, Ci-1 ), Si’’ = F2( Si’, Ci-1 ),
• Wi = Si’’, Ci = Ci’ + Ci’’.
PSL-K-02/B Uniwersalne bloki kombinacyjne
1/4
Zaproponować funkcję logiczną realizującą wyjścia Si i Ci – funkcje F1 i F2.
Poniżej przedstawiono blok sumatora składający się z dwóch półsumatorów oraz dwa identyczne bloki półsumatorów składające się z funkcji F1 i F2.
Ai
C
F
i’
1
B
Si’
i
F2
Ci
Ci’’
F1
C
Si’’
Wi
i-1
F2
- półsumatory
- sumator
5. Zrealizować układ sumatora złożony z dwóch półsumatorów w programie symulacyjnym i przetestować (dodawanie pojedynczego bitu).
6. Stworzyć przy pomocy bloków sumatora układ dodający 4-bitowe liczby A i B (do wyświetlania dodawanych liczb oraz wyniku użyć wyświetlaczy). Do realizacji sumatora 4-bitowego użyć funkcji programu symulacyjnego umożliwiającej definiowanie własnych bloków (makr).
PSL-K-02/B Uniwersalne bloki kombinacyjne
2/4
Blok uniwersalnego 1-bitowego układu odejmującego
1. Zapisać liczby A=4D(16) i B=33(16) w systemie dwójkowym i wykonać odejmowanie A-B
(w „słupku”). Odejmowanie przebiega następująco (zaczynając od najmniej znaczącej pozycji): 1 – 1 = 0
0 – 1 = -1 (-1 w zapisie U2 na dwóch bitach to 11, więc lewą 1-kę, na bardziej znaczącej pozycji traktujemy jako bit pożyczki na następną pozycję, a prawą 1-kę, na mniej znaczącej pozycji traktujemy jako bit wyniku); bit wyniku wynosi 1
1 – 0 – 1 = 0 ( – 1 to bit pożyczki z poprzedniej pozycji) 1 – 0 = 1
0 – 1 = -1 (j.w.: -1 to 11, więc bit pożyczki wynosi 1 i bit wyniku wynosi 1) 0 – 1 – 1 = -2 ( – 1 to bit pożyczki z poprzedniej pozycji; -2 w zapisie U2 na dwóch bitach to 10, więc bit pożyczki na następną pozycję wynosi 1, a bit wyniku wynosi 0) 1 – 0 – 1 = 0
Tak więc wynik odejmowania wynosi 0011010
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).
2. Mając na uwadze powyższy przykład, zapisać tabelę prawdy uniwersalnego 1-bitowego bloku odejmującego (kolumny jak dla bloku sumatora).
3. Zapisać i zminimalizować funkcje wyniku i pożyczki. Zrealizować funkcje przy pomocy funktorów logicznych w programie symulacyjnym, przetestować poprawność działania pojedynczego bloku.
4. Zrealizować w programie symulacyjnym układ odejmujący dwie 4-bitowe liczby (użyć wyświetlacza do prezentacji liczb: odejmowanych i wyniku). Przetestować.
PSL-K-02/B Uniwersalne bloki kombinacyjne
3/4
Jednobitowy blok komparatora do porównywania dwóch dowolnie długich liczb 1. 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).
2. 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:
Ai
Ri
B
<
i
Wi
R
=
i+1
W
>
i+1
1 A = B
1 A > B
gdy R
i
i
i
i
i+1=0
R =
W =
i
i
0 A ≠ B
0 A ≤ B
i
i
i
i
gdy Ri+1≠0 Ri=Ri+1, Wi=Wi+1
3. Zapisać tabele prawdy dla funkcji Ri i Wi; obie są funkcjami zmiennych Ai, Bi, Ri+1 i Wi+1, tj. Wi=ƒ(Ai, Bi, Ri+1, Wi+1) oraz Ri=ƒ(Ai, Bi, Ri+1, Wi+1).
4. Zminimalizować funkcje Ri i Wi oraz zrealizować je w programie symulacyjnym. Sprawdzić działanie pojedynczego bloku komparatora.
5. Połączyć szeregowo bloki komparatorów tak, aby utworzyć układ porównujący dwie 4-bitowe liczby. Do wyświetlania porównywanych liczb użyć wyświetlaczy.
Skonstruować dekoder, który na wyświetlaczu 7-segmentowym będzie wskazywał symbol większej liczby (A lub b) lub znak = w przypadku ich równości. Przypisanie segmentów wyświetlacza 7-segmentowego do jego wejść w programie symulacyjnym pokazano obok.
PSL-K-02/B Uniwersalne bloki kombinacyjne
4/4