Uklady arytmetyczne

6
Uklady cyfrowe (logiczne) 1 1.1. Uklady arytmetyczne I Ukladami arytmetycznymi nazywa się uklady, umoŜliwiające wykonywanie operacji arytme- tycznych na liczbach, przedstawionych w zapisie dwójkowym. PoniewaŜ wszystkie podstawowe dzialania arytmetyczne: dodawanie, odejmowanie, mnoŜe- nie i dzielenie, a takŜe wszystkie inne operacje matematyczne, wykonać moŜna przy zastosowaniu odpowiednich algorytmów za pomocą jednego tylko dzialania arytmetycznego - dodawania, pod- stawowym ukladem arytmetycznym jest uklad, realizujący dodawanie, nazywany sumatorem. Do ukladów arytmetycznych zalicza się ponadto uklady do porównywania dwu liczb, nazy- wane komparatorami oraz uniwersalne uklady arytmetyczno - logiczne, realizujące róŜne ope- racje arytmetyczne i logiczne. 1.1.1. Sumatory Sumatory to uklady wykonujące dodawanie liczb, przedstawionych w zapisie dwójkowym. Na Rys. 1.1.1 przedstawiono schemat i tabelę stanów podstawowego ukladu do dodawania dwóch jednobitowych liczb dwójkowych A i B, zwanego pólsumatorem. Sumę arytmetyczną A+B oblicza się zgodnie z następującymi regulami: 0 + 0 = 0; 0 + 1 = 1; 1 + 0 = 1; 1 + 1 = 10 (dziesiętnie 2). Wynik dodawania musi być przedsta- wiony przy uŜyciu dwóch bitów. Mlodszy bit wyniku wyprowadzany jest na wyjście S, starszy bit wyniku na wyjście C. Wyjście S znajduje się w stanie 1 gdy jedno z wejść (A lub B) znajduje się w stanie 0 a drugie w sta- nie 1. Wyjście S związane jest zatem z wej- ściami A i B funkcją nierówności ALBO (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 = . Uklad 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 ukladu 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: A i + B i +C i a uklad realizujący takie dodawanie, zwany jednobitowym sumatorem pelnym, musi zawierać dodatkowe wejście, wprowadzające przeniesienie C i (Rys. 1.1.2.a). Zgodnie z tabelą stanów ukladu (Rys. 1.1.2.b) wyjścia S i i C i+1 realizują funkcje: C B A S Wej ścia Wyjścia B A C S 0 0 0 0 0 1 0 1 1 0 0 1 1 1 1 0 b) a) A B c) C=AB S=AB Rys. 1.1.1. Schemat (a), tabela stanów (b) i sposób realizacji (c) ukladu do dodawania dwóch liczb jedno- bitowych (pólsumatora).

Transcript of Uklady arytmetyczne

Page 1: Uklady arytmetyczne

Układy cyfrowe (logiczne)

1

1.1. Układy arytmetyczne I Układami arytmetycznymi nazywa się układy, umoŜliwiające wykonywanie operacji arytme-

tycznych na liczbach, przedstawionych w zapisie dwójkowym. PoniewaŜ wszystkie podstawowe działania arytmetyczne: dodawanie, odejmowanie, mnoŜe-

nie 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, nazy-wane komparatorami oraz uniwersalne układy arytmetyczno - logiczne, realizujące róŜne ope-racje 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:

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

Wynik dodawania musi być przedsta-wiony przy uŜyciu dwóch bitów. Młodszy bit wyniku wyprowadzany jest na wyjście S, starszy bit wyniku na wyjście C. Wyjście S znajduje się w stanie 1 gdy jedno z wejść (A lub B) znajduje się w stanie 0 a drugie w sta-nie 1. Wyjście S związane jest zatem z wej-ściami A i B funkcją nierówności ALBO (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:

A i + 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:

C

B A

S

Wej ścia Wyjścia

B A C S 0 0 0 0 0 1 0 1 1 0 0 1 1 1 1 0

b) a) A B c)

C=AB

S=A⊕B

Rys. 1.1.1. Schemat (a), tabela stanów (b) i sposób realizacji (c) układu do dodawania dwóch liczb jedno-

bitowych (pólsumatora).

Page 2: Uklady arytmetyczne

Układy arytmetyczne

2

S A B C A B C A B C A B Ci i i i i i i i i i i i i= + + + ;

C A B C A B C A B C A B Ci i i i i i i i i i i i i+ −= + + +1 1 . które moŜna przekształcić do postaci:

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

S Ci i= ⊕ + ⊕ = ⊕ ⊕C A B A B A B Ci i i i i i i i( ) ( ) ; oraz:

C A B C A B C A B C A B Ci i i i i i i i i i i i i+ = + + +1 ;

C C A B A B A B C C A B C A Bi i i i i i i i i i i i i i i+ = + + + = + ⊕1 ( ) ( ) ( ) 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, Rys. 1.1.3). Wadą takiego po-łączenia jest ustalanie wyniku n-tego sumatora dopiero po ustaleniu kolejnych stanów wszystkich poprzedzających sumatorów, co opóźnia otrzy-manie wyniku. Lepszym roz-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ół

Wejścia WyjściaBi Ai Ci Ci+1 Si

0 0 0 0 00 0 1 0 10 1 0 0 10 1 1 1 01 0 0 0 11 0 1 1 01 1 0 1 01 1 1 1 1

b)a) c)

Ci

C=AiBi

BiAi

S=Ai⊕Bi

Półsumator

Si = Ai⊕Bi⊕Ci

C=Ci(Ai⊕Bi)Półsumator

Ci+1 = AiBi + Ci(Ai⊕Bi)

Ci+1 Ci

BiAi

Si

ΣΣΣΣ

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).

Cn+1 Cn

BnAn

Sn

ΣΣΣΣC2 C1

B1A1

S1

ΣΣΣΣC1 C0

B0A0

S0

ΣΣΣΣ

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

Page 3: Uklady arytmetyczne

Układy arytmetyczne

3

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

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 przenie-sieniami równoległymi). Symbol takiego sumatora przedstawiono na Rys. 1.1.5. Tab. 1.1.1 przed-stawia fragment tabeli stanów układu.

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

Cn+1

Cn

BnAn

Sn

ΣΣΣΣC1

B1A1

S1

ΣΣΣΣC0

B0A0

S0

ΣΣΣΣ

BnAn B1A1 B0A0

C0 blok generacji przeniesień

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

S2

B3A3

CIΣΣΣΣ

B2A2 B1A1 B0A0

S1 S0S3

CO

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

Page 4: Uklady arytmetyczne

Układy arytmetyczne

4

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 się 1 gdy bit ai = bi. Na wyjściu y występuje 1 gdy bity na wszystkich pozycjach są sobie równe.

Informację o relacjach a>b lub a<b dwóch liczb jednobitowych uzyskać moŜna za pomocą funkcji:

( )a b ab> = ; ( )a b ab< = 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 dwuwejściowej bramki AND i negacji. Relacje A>B lub A<B liczb wielobitowych określają relacje a>b lub a<b między bitami na najwyŜ-szej pozycji, na której wartości bitów są róŜne. Relacje między bitami niŜszych pozycji są nieistotne.

Scalonym komparatorem, wyznaczającym re-lacje:

A<B, A=B lub A>B dla dwóch 4-bitowych liczb A i B jest układ 74LS85 o symbolu przedstawionym na Rys. 1.1.8. Wynik porównania znaczony jest stanem 1 na jednym z trzech osobnych wyjść.

Układ wyposaŜony jest w wejścia I A B< , I A B= ,

I A B> , umoŜliwiające kaskadowe łączenie kilku komparatorów w celu porównywania liczb o więk-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 komparatorze porównującym bity na najniŜszych

y

a2b2

a1b1

a0b0

Rys. 1.1.6. Przykład reali-zacji komparatora 3-

bitowego.

A<BA=BA>B

IA<B

IA=B

IA>B

B0

B1

B2

B3

A0

A1

A2

A3

A<BA=BA>B

IA<B

IA=B

IA>B

B4

B5

B6

B7

A4

A5

A6

A7"1"

74LS8574LS85

Rys. 1.1.7. Komparator liczb 8-bitowych z dwóch połączonych kaskadowo układów

74LS85.

A<BA=BA>B

IA<B

IA=B

IA>B

B0

B1

B2

B3

A0

A1

A2

A3

Wejścia komparacyjneWejścia do połączeń

kaskadowych Wyjścia

A3 , B3 A2 , B2 A1 , B1 A0 , B0 A<B A=B A>B A<B A=B A>BA3<B3 x x x x x x 1 0 0A3>B3 x x x x x x 0 0 1A3=B3 A2<B2 x x x x x 1 0 0A3=B3 A2>B2 x x x x x 0 0 1A3=B3 A2=B2 A1<B1 x x x x 1 0 1A3=B3 A2=B2 A1>B1 x x x x 0 0 1A3=B3 A2=B2 A1=B1 A0<B0 x x x 1 0 1A3=B3 A2=B2 A1=B1 A0<B0 x x x 0 0 1A3=B3 A2=B2 A1=B1 A0=B0 1 0 0 1 0 0A3=B3 A2=B2 A1=B1 A0=B0 0 1 0 0 1 0A3=B3 A2=B2 A1=B1 A0=B0 0 0 1 0 0 1

b)a)

74LS85

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

Page 5: Uklady arytmetyczne

Układy arytmetyczne

5

pozycjach wejścia te ustawia się na stałe w stan: I A B< = 0 , I A B= = 1, I A B> = 0 ,

co neutralizuje wpływ tych wejść na wynik porównania. Stan wejść I A B< , I A B= , I A B> wpływa na 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 aryt-

metyczno-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 wyko-

nywane są operacje logiczne, przy M=0 wykonywane są operacje arytmetyczne. Rodzaj operacji określa stan wejść S3..S0. Cztery linie wejściowe S3..S0 umoŜ-liwiają wybór 16-tu róŜnych funkcji. Układ wykonuje zatem 16 róŜnych funkcji logicznych i 16 róŜnych funkcji arytmetycznych (łącznie 32 róŜne funkcje). Wynik operacji ustawiany jest na wyjściach F3..F0 i

wyjściu przeniesienia Co . Podstawowe wykonywane funkcje logiczne to:

negacja A lub B , suma logiczna A B∨ , iloczyn lo-giczny A B∧ , róŜnica symetryczna A B⊕ i róŜne

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

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 arytme-

tyczna 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 Ci , a zatem funkcje te re-

alizowane są jako A+B+Ci lub A-B-1+Ci . Za pomocą funkcji A-B-1(+Ci ) moŜna uzyskać bezpo-ś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 Ci =0) która daje wynik F3F2F1F0 = 1111

(dziesiętnie -1) przy równości A=B. Przy wykorzystaniu wyjścia Co za pomocą tej samej funkcji 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 Ci układu operującego

F2

B3A3

ALU74LS181

B2A2 B1A1 B0A0

F1 F0F3

CO

A=B

GP

Ci

MS3

S2

S1

S0

Rys. 1.1.9. Uniwersalna jednostka arytme-tyczno - logiczna (ALU) 74LS181.

Page 6: Uklady arytmetyczne

Układy arytmetyczne

6

na starszych czterech bitach liczby łączy się przy tym z wyjściem Co układu operującego na młod-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ń