Układy cyfrowe (logiczne)

1.1. Układy arytmetyczneI

Układami arytmetycznymi nazywa się układy, umoŜliwiające wykonywanie operacji arytmetycznych na liczbach, przedstawionych w zapisie dwójkowym.

PoniewaŜ wszystkie podstawowe działania arytmetyczne: dodawanie, odejmowanie, mnoŜenie i dzielenie, a takŜe wszystkie inne operacje matematyczne, wykonać moŜna przy zastosowaniu odpowiednich algorytmów za pomocą jednego tylko działania arytmetycznego - dodawania, pod-stawowym układem arytmetycznym jest układ, realizujący dodawanie, nazywany sumatorem.

Do układów arytmetycznych zalicza się ponadto układy do porównywania dwu liczb, nazywane komparatorami oraz uniwersalne układy arytmetyczno - logiczne, realizujące róŜne operacje arytmetyczne i logiczne.

1.1.1. Sumatory

Sumatory to układy wykonujące dodawanie liczb, przedstawionych w zapisie dwójkowym.

Na Rys. 1.1.1 przedstawiono schemat i tabelę stanów podstawowego układu do dodawania dwóch jednobitowych liczb dwójkowych A i B, zwanego półsumatorem. Sumę arytmetyczną A+B

oblicza się zgodnie z następującymi regułami:

a)

b)

c)

A B

0 + 0 = 0; 0 + 1 = 1; 1 + 0 = 1;

A

B

1 + 1 = 10 (dziesiętnie 2).

Wej ścia

Wyjści a

C

Wynik dodawania musi być przedsta-

B

A

C

S

0

0

0

0

C=AB

wiony przy uŜyciu dwóch bitów. Młodszy bit

0

1

0

1

wyniku wyprowadzany jest na wyjście S,

S

1

0

0

1

S=A⊕B

starszy bit wyniku na wyjście C. Wyjście S

1

1

1

0

znajduje się w stanie 1 gdy jedno z wejść (A

lub B) znajduje się w stanie 0 a drugie w sta-

Rys. 1.1.1. Schemat (a), tabela stanów (b) i sposób

nie 1. Wyjście S związane jest zatem z wej-

realizacji (c) układu do dodawania dwóch liczb jedno-

ściami A i B funkcją nierówności ALBO

bitowych (pólsumatora).

(Exclusive OR, XOR):

S = A ⊕ B .

Na wyjściu C pojawia się 1 gdy jednocześnie A i B jest równe 1, wyjście C realizuje zatem funkję iloczynu logicznego (AND):

C = A ∧ B .

Układ do dodawania dwóch jednobitowych liczb dwójkowych moŜna zatem zrealizować przy uŜyciu jednej bramki Exlusive OR i jednej bramki AND (Rys. 1.1.1.c).

W przypadku dodawania liczb o większej liczbie bitów wartość wyprowadzana przez wyjście C układu do sumowania liczb jednobitowych musi być dodana do bitów na wyŜszej pozycji (prze-niesiona do wyŜszej pozycji). Wyjście C jest w związku z tym nazywane wyjściem przeniesienia

(ang. Carry). Sumowanie bitów na pozycji i wymaga dodania wartości i-tych bitów liczb A i B oraz przeniesienia z niŜszej pozycji:

Ai + Bi +Ci

a układ realizujący takie dodawanie, zwany jednobitowym sumatorem pełnym, musi zawierać dodatkowe wejście, wprowadzające przeniesienie Ci (Rys. 1.1.2.a). Zgodnie z tabelą stanów układu (Rys. 1.1.2.b) wyjścia Si i Ci+1 realizują funkcje:

1

Układy arytmetyczne

a)

b)

c)

Ai

Bi

Wejścia

Wyjścia

B

C=A

i

Ai

Ci

Ci+1

Si

iBi

Ai

Bi

Półsumator

0

0

0

0

0

0

0

1

0

1

Ci+1

Ci

Σ

0

1

0

0

1

S=A ⊕

i

Bi

0

1

1

1

0

Ci

1

0

0

0

1

Si

1

0

1

1

0

1

1

0

1

0

C=C

⊕

i(Ai

Bi)

1

1

1

1

1

Półsumator

C

⊕

i+1 = AiBi + Ci(Ai

Bi)

S

⊕ ⊕

i = Ai

Bi Ci

Rys. 1.1.2. Schemat (a), tabela stanów (b) i sposób realizacji (c) układu do sumowania i-tego bitu dwójkowych liczb wielobitowych (jednobitowego sumatora pełnego).

S = A B C + A B C + A B C + A B C ;

i

i

i

i

i

i

i

i

i

i

i

i

i

C

.

1 = A B C

+ A B C + A B C 1 + A B C

i +

i

i

i

i

i

i

i

i

i −

i

i

i

które moŜna przekształcić do postaci:

S = C (A B + A B ) + C (A B + A B ) ;

i

i

i

i

i

i

i

i

i

i

i

S = C (A

)

(

)

;

i

i ⊕ Bi

+ C Ai ⊕ Bi = Ai ⊕ Bi ⊕ C

i

i

i

oraz:

C

;

1 = A B C

+ A B C + A B C + A B C

i +

i

i

i

i

i

i

i

i

i

i

i

i

C

(

)

(

)

(

)

1 = C

A B + A B + A B C + C

= A B + C A ⊕ B

i +

i

i

i

i

i

i

i

i

i

i

i

i

i

i

PowyŜsze równania potwierdzają wyczuwaną intuicyjnie moŜliwość realizacji jednobitowego sumatora pełnego przy uŜyciu dwóch półsumatorów i dodatkowej bramki sumy logicznej (OR), sumującej przeniesienia obydwu półsumatorów (Rys. 1.1.2.c).

W celu dodawania liczb wielobitowych sumatory jednobitowe łączy się w większe zespoły. W

najprostszym przypadku tworzy się kaskadę sumatorów z szeregowo połączonymi wejściami i wyj-

ściami przeniesień (z tzw.

przeniesieniami szeregowymi,

An

Bn

A1

B1

A0

B0

Rys. 1.1.3). Wadą takiego po-

łączenia jest ustalanie wyniku

Cn+1

Cn

Σ

C2

C1

Σ

C1

C0

Σ

n-tego sumatora dopiero po

ustaleniu kolejnych stanów

wszystkich

poprzedzaj

S

S

S

ących

n

1

0

sumatorów, co opóźnia otrzy-

manie wyniku. Lepszym roz-

Rys. 1.1.3. Sumator n-bitowy z przeniesieniami szeregowymi.

wiązaniem jest wstępne wy-

znaczenie wszystkich przeniesień na podstawie wartości liczb wejściowych A i B przez tzw. blok generacji przeniesień i następnie jednoczesne dodanie bitów na wszystkich pozycjach przez zespół

2

Układy arytmetyczne

sumatorów (Rys. 1.1.4). Układy takie nazywane są sumatorami z przeniesieniami równoległymi (ang. look ahead).

An

Bn

A1

B1

A0

B0

Cn+1

C0

blok generacji przeniesień

An

Bn

A1

B1

A0

B0

Cn

Σ

C1

Σ

C0

Σ

Sn

S1

S0

Rys. 1.1.4. Sumator n-bitowy z przeniesieniami równoległymi.

W rodzinie układów scalonych TTL i TTL LS dostępne są sumatory dwójkowe 4-bitowe: 7483 (starego typu, z przeniesieniami szeregowymi) oraz 7483A, 74LS83A i 74LS283 (z przeniesieniami równoległymi). Symbol takiego sumatora przedstawiono na Rys. 1.1.5. Tab. 1.1.1 przed-stawia fragment tabeli stanów układu.

A3 B3 A2 B2 A1 B1 A0 B0

CO

CI

Σ

S3 S2 S1 S0

Rys. 1.1.5. Scalony dwójkowy sumator 4-

bitowy 7483, 7483A, 74LS83A lub 74LS283.

Tab. 1.1.1. Fragment tabeli stanów sumatora 7483 ... 74LS283.

Wejścia

Wyjścia

działanie

B3 B2 B1 B0 A3

A2

A1

A0

CI CO S3 S2 S1 S0

1

0

0

1

1

0

1

0

0

1

0

0

1

1

10+9=19

0

1

1

0

0

1

0

1

1

0

1

1

0

0

CI+5+6=12

1.1.2. Komparatory

Komparatory to układy do porównywania liczb, przedstawionych w zapisie dwójkowym.

Informację o równości dwóch liczb jednobitowych a i b uzyskać moŜna za pomocą funkcji: (a = b) = a b ∨ a b = a ⊕ b .

która przyjmuje wartość 1 wtedy, gdy a=b=1 lub a=b=0. Funkcją taką jest negacja funkcji ALBO

(Exclusive OR). Układ do badania równości liczb wielobitowych zbudować moŜna z realizujących powyŜszą funkcję dwuwejściowych bramek Exclusive NOR, badających równość poszczególnych 3

Układy arytmetyczne

bitów i wielowejściowej bramki iloczynu logicznego AND, zbierającej

wyniki tych badań (Rys. 1.1.6. Na wyjściach bramek Ex NOR uzyskuje

a0

się 1 gdy bit ai = bi. Na wyjściu y występuje 1 gdy bity na wszystkich

b0

pozycjach są sobie równe.

a1

y

Informację o relacjach a>b lub a<b dwóch liczb jednobitowych

b1

uzyskać moŜna za pomocą funkcji:

a2

(a > b) = ab ; (a < b) = ab

b2

gdyŜ jednobitowa liczba a jest większa od jednobitowej liczby b tylko

wtedy, gdy a=1 a b=0. Funkcje takie moŜna zrealizować przy uŜyciu

Rys. 1.1.6. Przykład reali-

dwuwejściowej bramki AND i negacji. Relacje A>B lub A<B liczb

zacji komparatora 3-

wielobitowych określają relacje a>b lub a<b między bitami na najwyŜ-

bitowego.

szej pozycji, na której wartości bitów są róŜne. Relacje między bitami

niŜszych pozycji są nieistotne.

a)

b)

A

Wejścia do połączeń

0

Wejścia komparacyjne

Wyjścia

A

kaskadowych

1

A

A3 , B3

A2 , B2

A1 , B1

A0 , B0

A<B

A=B

A>B

A<B

A=B

A>B

2

A

A3<B3

x

x

x

x

x

x

1

0

0

3

A3>B3

x

x

x

x

x

x

0

0

1

I

A<B

A<B

A3=B3

A2<B2

x

x

x

x

x

1

0

0

I

A=B

A=B

A3=B3

A2>B2

x

x

x

x

x

0

0

1

I

A>B

A

A>B

3=B3

A2=B2

A1<B1

x

x

x

x

1

0

1

A3=B3

A2=B2

A1>B1

x

x

x

x

0

0

1

B0

A3=B3

A2=B2

A1=B1

A0<B0

x

x

x

1

0

1

B1

A3=B3

A2=B2

A1=B1

A0<B0

x

x

x

0

0

1

B2

A3=B3

A2=B2

A1=B1

A0=B0

1

0

0

1

0

0

B3

A3=B3

A2=B2

A1=B1

A0=B0

0

1

0

0

1

0

74LS85

A3=B3

A2=B2

A1=B1

A0=B0

0

0

1

0

0

1

Rys. 1.1.8. Komparator scalony typu 74LS85: a) symbol b) tabela stanów.

Scalonym komparatorem, wyznaczającym re-

A0

A4

lacje:

A1

A5

A<B, A=B lub A>B

A2

A6

dla dwóch 4-bitowych liczb A i B jest układ 74LS85

A3

A7

"1"

o symbolu przedstawionym na Rys. 1.1.8. Wynik

I

A<B

A<B

I

A<B

A<B

porównania znaczony jest stanem 1 na jednym z

I

A=B

A=B

I

A=B

A=B

trzech osobnych wyjść.

I

A>B

A>B

I

A>B

A>B

Układ wyposaŜony jest w wejścia IA< , I

B

A =

,

B

B0

B4

B

B

I

1

5

A >

, umoŜliwiające kaskadowe łączenie kilku

B

B2

B6

komparatorów w celu porównywania liczb o więk-

B3

B7

74LS85

74LS85

szej liczbie bitów (Rys. 1.1.7). Wejścia te łączy się z

odpowiednimi wyjściami poprzedzającego kompara-

tora, porównującego mniej znaczące bity liczb. W

Rys. 1.1.7. Komparator liczb 8-bitowych z

komparatorze porównującym bity na najniŜszych

dwóch połączonych kaskadowo układów

74LS85.

4

Układy arytmetyczne

pozycjach wejścia te ustawia się na stałe w stan:

I

= 0 , I

= 1, I

= 0 ,

A < B

A = B

A > B

co neutralizuje wpływ tych wejść na wynik porównania. Stan wejść IA< , I B

A =

, I

B

A >

wpływa na

B

stan wyjść komparatora tylko gdy porównywane przez komparator 4-bitowe części liczb są równe.

Stan tych wejść jest wówczas po prostu przenoszony na wyjścia. W przypadku A<B lub A>B wynik porównania mniej znaczącej części liczb przez poprzedzający komparator nie ma znaczenia.

1.1.3. Uniwersalna jednostka arytmetyczno-logiczna (ALU)

W rodzinie układów scalonych TTL i TTL LS produkowana jest uniwersalna jednostka arytmetyczno-logiczna 74LS181 (74181), zwana ALU (ang. Arythmetic Logic Unit). Jednostka taka umoŜliwia wykonywanie róŜnorodnych operacji arytmetycznych i logicznych na dwóch 4-bitowych liczbach dwójkowych. Liczby, na których wykonywane są operacje doprowadza się do wejść A3..A0

i B3..B0 (Rys. 1.1.9). Rodzaj operacji programuje się za pomocą wejść M i S3..S0. Przy M=1 wykonywane są operacje logiczne, przy M=0 wykonywane

A3 B3 A2 B2 A1 B1 A0 B0

są operacje arytmetyczne. Rodzaj operacji określa

stan wejść S3..S0. Cztery linie wejściowe S3..S0 umoŜ-

CO

Ci

liwiają wybór 16-tu róŜnych funkcji. Układ wykonuje

M

zatem 16 róŜnych funkcji logicznych i 16 róŜnych

A=B

ALU

S3

S2

funkcji arytmetycznych (łącznie 32 róŜne funkcje).

74LS181

G

S1

Wynik operacji ustawiany jest na wyjściach F3..F0 i

P

S0

wyjściu przeniesienia C .

o

Podstawowe wykonywane funkcje logiczne to:

F3 F2 F1 F0

negacja A lub B, suma logiczna A ∨ B , iloczyn lo-

giczny A ∧ B , róŜnica symetryczna A ⊕ B i róŜne

Rys. 1.1.9. Uniwersalna jednostka arytme-

funkcje kombinowane: A ∧ B , A ∨ B , A ∧ B ,

tyczno - logiczna (ALU) 74LS181.

A ∨ B , A ⊕ B itp. Funkcje logiczne wykonywane są

na pojedynczych bitach, tzn. kaŜda funkcja wykony-

wana jest niezaleŜnie i równolegle na wszystkich bitach Ai i Bi (i = [0,3]).

Podstawowe wykonywane funkcje arytmetyczne to: suma arytmetyczna A+B, róŜnica arytmetyczna A-B-1 oraz mieszane funkcje logiczno-arytmetyczne: ( A ∨ B )+A, A+( A ∧ B ) itp. Przy funkcjach arytmetycznych uwzględniany jest stan wejścia przeniesienia C , a zatem funkcje te re-i

alizowane są jako A+B+ C lub A-B-1+ C . Za pomocą funkcji A-B-1(+ C ) moŜna uzyskać bezpo-i

i

i

średnio wynika A-B przy ustawieniu na wejściu przeniesienia () stanu 0.

Wyjście A=B ustawiane jest w stan 1 przy F3F2F1F0 = 1111. MoŜna to wykorzystać do po-równywania liczb A i B za pomocą funkcji A-B-1 (przy C =0) która daje wynik F

i

3F2F1F0 = 1111

(dziesiętnie -1) przy równości A=B. Przy wykorzystaniu wyjścia C za pomocą tej samej funkcji o

moŜna ustalić zaleŜności A>B i A<B.

Układ 74LS181 zaopatrzony jest w blok generacji przeniesień równoległych, w związku z czym jest bardzo szybki. Do operacji na liczbach o większej liczbie bitów moŜna łączyć kaskadowo kilka układów tego typu. W najprostszym przypadku wejście przeniesienia C układu operującego i

5

Układy arytmetyczne

na starszych czterech bitach liczby łączy się przy tym z wyjściem C układu operującego na młod-o

szych czterech bitach liczby. Przeniesienia między kaŜdą czwórką bitów są wówczas przekazywane szeregowo. MoŜna równieŜ zastosować równoległą generację przeniesień między kolejnymi czwór-kami bitów, realizowaną za pomocą specjalnych układów generacji przeniesień równoległych 74LS182. Do połączenia z tymi układami słuŜą wyjścia G i P. RównieŜ wyjścia A=B, które są wyj-

ściami z otwartym kolektorem, łączy się równolegle do wspólnego rezystora, otrzymując sygnaliza-cję stanu A = B liczb o długości większej niŜ 4 bity.

I Opracował dr inŜ. Grzegorz Stępień

6