2.3
Binární sčítačka
Definice
Binární sčítačka je kombinační logický obvod, který umožňuje provést součet dvou čísel vyjádřených v binární soustavě. Pokud uvažujeme vyjádření záporných čísel v binární soustavě pomocí tzv. dvojkového doplňku, umožňuje sčítačka provést rovněž operaci odečítání. Binární sčítačka je jedním ze základů aritmeticko-logických jednotek (ALU) v procesorech.
Poznámka
Dvojkový doplněk (angl. two’s complement) je jeden ze způsobů pro vyjádření záporných čísel v binární soustavě. Pomocí něho rozdělíme dostupný prostor pro vyjádření čísel s daným počtem řádových míst na kladný a záporný a ten posuneme o 1. Jedná se v současné době o nejrozšířenější způsob práce se zápornými čísly v aritmeticko-logických jednotkách.
Uvažujme nyní nejjednodušší případ binárního sčítání, tedy součet dvou jednobitových (jednořádových) binárních čísel a, b, jejichž součet je jednobitový výstup s a také tzv. přenos do vyššího řádu cout (z anglického carry-out). Na základě toho, zda sčítačka obsahuje rovněž vstup pro přenos z nižšího řádu cin (z anglického carry-in) nebo nikoliv, rozlišujeme tzv. úplnouneúplnou (poloviční) sčítačku.
Definice
Neúplná (poloviční) binární sčítačka neobsahuje vstup pro přenos z nižšího sčítaného řádového místa, úplná sčítačka ano.
2.3.1
Neúplná (poloviční) sčítačka
Neúplná (poloviční) binární sčítačka obsahuje dvě jednobitová binární čísla a, b na vstupu, výstupem je jejich jednobitový součet s a jednobitový přenos do vyššího řádového místa cout. Neúplnou sčítačku můžeme popsat její pravdivostní tabulkou 8.
Tabulka 8. Pravdivostní tabulka neúplné (poloviční) jednobitové sčítačky.
b
a
cout
s
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
0
Přenos do vyššího řádu cout se uplatní pouze, pokud obě vstupní čísla a = b1.
Zajímavost
Můžeme si povšimnout, že pokud bychom považovali výstup sčítačky za dvoubitové binární číslo, kde vyšší řádové pozici odpovídá hodnota cout a nižší pozici hodnota s, odpovídala by tato hodnota výsledku součtu čísel ab. Např. pokud a = 1, b = 1, součet 1 + 1 = 2(10) = 10(2), tedy cout = 1 a s = 0.
Z tabulky 8 můžeme pak vyjádřit výstupní funkce pro oba výstupy sčítačky:
cout=ab ,
s=a¯bab¯=ab .
Z algebraického vyjádření vyplývá i zapojení neúplné sčítačky pomocí jednoho hradla AND a jednoho hradla XOR, jak ukazuje obrázek 11.
+
11. Realizace neúplné sčítačky pomocí hradla AND a XOR.
Obr. 11. Realizace neúplné sčítačky pomocí hradla AND a XOR.
2.3.2
Úplná sčítačka
Úplná binární sčítačka na rozdíl od neúplné počítá i se vstupem přenosu z předchozího řádového místa. Tato situace může například nastat, pokud je realizován součet více řádových míst a z nižšího je potřeba přenést přenos do vyššího. Vstupem úplné sčítačky je tak kromě jednobitových čísel a, b i jednobitový přenos cin. Výstupy zůstávají opět jednobitový součet s a jednobitový přenos do vyššího řádového místa cout. Pro popis funkce úplné sčítačky můžeme sestavit její pravdivostní tabulku 9.
Tabulka 9. Pravdivostní tabulka úplné jednobitové sčítačky.
cin
b
a
cout
s
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
1
1
1
0
1
0
0
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
Zajímavost
Opět si můžeme povšimnout, že dvoubitové binární číslo, kde vyšší řádové pozici odpovídá hodnota cout a nižší pozici hodnota s, představuje hodnotu výsledku součtu čísel ab + cin. Např. pokud a = 1, b = 1, cin = 1, součet 1 + 1 + 1 = 3(10) = 11(2), tedy cout = 1 a s = 1.
Pro další vyjádření a úpravy výstupních funkcí úplné sčítačky zapíšeme výstupní hodnoty pro s a cout do Karnaughových map, jak ukazuje obrázek 12.
+
12. Zápis výstupních funkcí úplné binární sčítačky pomocí Karnaughových map.
Obr. 12. Zápis výstupních funkcí úplné binární sčítačky pomocí Karnaughových map.
Z nich můžeme upravit a algebraicky vyjádřit výstupní funkce úplné sčítačky:
cout=abacinbcin=ababb¯cinbaa¯cin=abcin(ab) ,
s=a¯b¯cinab¯cin¯abcina¯bcin¯=abcin .
Uvedená úprava vyjádření výstupních funkcí úplné binární sčítačky má zásadní výhodu.
Definice
Výstup přenosu cout úplné sčítačky může být realizován jako logický součet přenosu z první poloviny sčítačky (a·b) a logického součinu vstupu přenosu cin a součtu s z první poloviny sčítačky.
Díky této úpravě vyjádření může být úplná sčítačka realizována pomocí dvou polovičních sčítaček, jak ukazuje obrázek 13.
+
13. Realizace úplné binární sčítačky pomocí dvou polovičních (neúplných).
Obr. 13. Realizace úplné binární sčítačky pomocí dvou polovičních (neúplných).
Zajímavost
Úplnou binární sčítačku nalezneme v katalogu součástek řady 7400 jako integrovaný obvod 7480 v řadě TTL. Sčítačka má kromě standardního součtu s i invertovaný součet a invertovaný je rovněž přenos cout.
2.3.3
Vícebitové binární sčítačky
V úvodu této kapitoly jsme se omezili pouze na jednobitová čísla. Úplnou binární sčítačku však můžeme použít pro realizaci obecné n-bitové sčítačky.
Nejjednodušší n-bitová sčítačka je tzv. varianta paralelní sčítačky s postupným přenosem (v angličtině ripple carry). Ta vznikne tak, že zřetězíme do kaskády n úplných jednobitových sčítaček pomocí jejich přenosů cincout tak, že výstup přenosu ze součtu z jednoho řádu cout připojíme do vstupu přenosu další sčítačky ve vyšším řádu cin a takto stejně až do realizace požadované n-bitové sčítačky, jak ukazuje obrázek 14 pro čtyřbitovou sčítačku.
+
14. Čtyřbitová paralelní sčítačka s postupným přenosem.
Obr. 14. Čtyřbitová paralelní sčítačka s postupným přenosem.
Vstupní n-bitová čísla rozdělíme na n samostatných řádových míst, a odpovídající si řádová místa obou čísel postupně sčítáme a přenášíme mezi nimi příslušné přenosy. Tímto způsobem lze realizovat sčítačku pro libovolná n-bitová čísla.
Nevýhody
Zásadní nevýhodou uvedeného kaskádního zapojení paralelní sčítačky s postupným přenosem je fakt, že dochází ke kumulaci zpoždění vlivem postupného přenosu z nejnižšího řádového místa až do nejvyššího. S rostoucím počtem sčítaných řádových míst tak lineárně narůstá zpoždění celé sčítačky, což při sčítání velkých čísel a požadavku na rychlost součtu může značně limitovat použitelnost tohoto zapojení.
Odstranění této nevýhody přináší tzv. paralelní sčítačka s predikcí přenosu (carry look-ahead). Jedná se opět o kaskádu tvořenou z n úplných sčítaček, tentokrát je ale přenos (příznak přenosu) počítán ve zvláštním kombinačním obvodu, a jednotlivé sčítačky tak nejsou navzájem propojeny (zřetězeny) tímto přenosem. Tento samostatný obvod pro predikci přenosu pak na každém sčítaném řádovém místě provede určení příznaku, což vede k rychlejšímu nastavení při samotném sčítání.
Nevýhody
Nevýhodou paralelní sčítačky s predikcí přenosu je potřeba samostatného obvodu pro predikci přenosu. Jeho realizace je značně náročná co do počtu logických hradel a od určitého počtu bitů sčítaných čísel je obvod prakticky nerealizovatelný. V praxi se tak často kombinují obě varianty sčítaček pro realizaci n-bitového paralelního sčítání s ohledem na rychlost sčítání i nároky na realizaci.
Zajímavost
V katalogu obvodů řady 7400 nalezneme i několik integrovaných obvodů vícebitových binárních sčítaček. Například obvod 7482 představuje dvoubitovou paralelní sčítačku s postupným přenosem, zatímco obvod 74LS83A pak dvoubitovou paralelní sčítačku s predikcí přenosu. Obvod 74LS283 je pak čtyřbitová paralelní sčítačka s predikcí přenosu.