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