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