200
O
Rya. 5.85. Zastosowanie sumatora do dodawania i odejmowania
taki można zbudować jeszcze inaczej (rys. 5-85c), jeżeli we wzorach (5.1) zamiast zamiany ^ na ^ zamienimy jednocześnie YQ na YQ oraz CQ na
*n © \ © \ = ^ © In @ Bn =
oraz __
*n7n + ^ + V5n = *nTn + <*n + VBn = 5n+1
Układ z rys. 5.85c jest szczególnie korzystny do budowy wielobitowych układów dodająco odejmujących. Wystarczy bowiem zanegować przeniesienie przychodzące na pozycję najmniej znaczącą (przyjąć O0 = 1), aby, po zanegowaniu liczby Y, otrzymać zanegowane pożyczki na wszystkich wyższych bitach. . Pokazano to na rys. 5.86 używając do negowania Y układy 7486 zawierające po cztery bramki EXCLUSIVE-OR.
V7 *»-J *«-»
Rys. 5*86. -8-bitowy sumator/subtraktor liczb binarnych
5.11.2. Dodawanie w kodzie BCD
Zgodnie z definicją, każda dekada liczby BCD jest czterobitową liczbą dwójkową. Podczas sumowania odpowiadające sobie czwórki bitów liczb X i T mogą więc być bezpośrednio podane na wejścia sumatorów 7483.Obliczona suma binarna mole zawierać się w granicach od O do 19 (9 + 9 + 1 z przeniesienia). Dla przedstawienia jej w kodzie BCD niezbędna jest korekcja,której zasady wynikają z porównania kodów binarnych i BCD zestawionych w tabeli na rys. 5«87. Jak widać, korekcja konieczna jest dla sum o wartościach od 10 do 19 1 polega na odjęciu 10 i wygenerowaniu przeniesienia, tzn. dodaniu liczby 16, czyli łącznie polega na dodaniu liczby 6.
SUMA |
DWU |
CYFR |
DZIESIĘTNYCH |
KOREKCJA | |||||
DZIESIĘTNA |
IINARNA (tllESKORYSOWANA) Cm Sj Sf S?Sj |
ICO (SKORYGOWANA) Cm h $9 3ś | |||||||
1 |
d |
9 |
9 |
9 |
9 |
9 |
9 9 |
0 9 | |
4 |
9 |
9 |
9 |
9 |
1 |
0 |
0 9 |
9 I | |
l |
1 |
9 |
9 |
1 |
9 |
9 |
0 9 |
4 9 | |
3 |
1 |
9 |
9 |
1 |
1 |
9 |
9 9 |
4 4 | |
A |
1 |
9 |
1 |
9 |
9 |
9 |
9 1 |
0 9 |
I9YTKINA |
5 |
9 |
9 |
1 |
9 |
1 |
9 |
0 1 |
9 1 | |
S |
9 |
9 |
1 |
1 |
9 |
9 |
9 I |
1 9 | |
7 |
9 |
9 |
4 |
1 |
1 |
9 |
9 4 |
4 4 | |
S |
1 |
1 |
9 |
9 |
9 |
0 |
1 9 |
9 9 | |
s |
9 |
1 |
9 |
9 |
1 |
9 |
< 9 |
• 1 | |
<9 |
3 |
1 |
9 |
1 |
9 |
1 |
0 9 | ||
11 |
9 |
1 |
9 |
1 |
1 |
1 |
9 9 |
9 1 | |
12 |
9 |
1 |
1 |
9 |
9 |
1 |
9 1 |
1 9 |
0DJA.Ć 10 |
u |
9 |
1 |
1 |
9 |
1 |
1 |
0 0 |
1 1 |
i wrrwoRm |
u |
9 |
1 |
1 |
1 |
9 |
1 |
9 1 |
0 0 |
PRZENIESIENIE |
15 |
9 |
1 |
1 |
1 |
1 |
1 |
1 1 |
0 1 |
LUD |
<( |
1 |
9 |
9 |
9 |
3 |
1 |
0 1 |
1 0 |
DODAĆ S |
17 |
1 |
9 |
9 |
9 |
1 |
1 |
9 1 |
1 1 | |
19 |
1 |
9 |
9 |
1 |
9 |
1 |
1 0 |
0 9 | |
19 |
1 |
9 |
9 |
1 |
1 |
1 |
1 0 |
9 1 |
Rys. 5.87* Korekcja sumy przy dodawaniu liczb BCD
Jak łatwo sprawdzić, funkcja wykrywająca liczby od 10 do 19 na postać
Sygnalizuje ona konieczność korekcji i jednocześnie stanowi, przeniesienie do następnej dekady.
Korektor składa się więc z układu realizującego przeniesienie C+1 oraz sumatora 7483 dodającego 6, gdy przeniesienie to jest równe jeden. Całość sumatora BCD pokazana jest na rys. 5*88, gdzie w celu przyśpieszenia generacji przeniesienia zastosowano szybką .bramkę AND-OR.