Sčítačka (elektronika) - Adder (electronics)

Zmije je digitální obvod , který provádí sčítání čísel. V mnoha počítačích a dalších druzích procesorů se používají přídavné moduly v aritmetických logických jednotkách nebo ALU . Používají se také v jiných částech procesoru, kde slouží k výpočtu adres , tabulkových indexů, operátorů přírůstku a snižování a podobných operací.

Ačkoli sčítače lze zkonstruovat pro mnoho reprezentací čísel , jako jsou binárně kódované desítkové nebo nadbytečné 3 , nejběžnější sčítače fungují na binárních číslech . V případech, kdy se k vyjádření záporných čísel používá doplněk dvou nebo doplněk jedniček , je triviální upravit sčítač na sčítač – odečítač . Ostatní reprezentace podepsaných čísel vyžadují více logiky kolem základní sčítačky.

Binární sčítače

Poloviční sčítačka

Logický diagram poloviční sčítačky
Poloviční zmije v akci

Polovina zmije dodává dva single binárních čísel A a B . Má dva výstupy, součet ( S ) a carry ( C ). Přenosový signál představuje přetečení do další číslice víceciferného sčítání. Hodnota součtu je 2 C + S . Nejjednodušší poloviční sčítačka design, na snímku vpravo, obsahuje s XOR bránu pro S a a branka pro C . Booleovská logika pro součet (v tomto případě S ) bude A'B + AB ', zatímco pro přenos ( C ) bude AB . S přidáním brány NEBO ke kombinaci jejich přenosových výstupů lze kombinovat dvě poloviční sčítače, aby se vytvořil úplný sčítač. Poloviční sčítač přidá dva vstupní bity a vygeneruje přenos a součet, což jsou dva výstupy poloviční sčítačky. Vstupní proměnné poloviční sčítačky se nazývají bity augend a addend. Výstupními proměnnými jsou součet a nést. Pravdivostní tabulka pro polovinu zmije je:

Vstupy Výstupy
A B C S
0 0 0 0
0 1 0 1
1 0 0 1
1 1 1 0
poloviční sčítací obvod pouze pomocí bran NAND
Poloviční sčítač využívající pouze brány NAND.

Úplný sčítač

Logický diagram pro úplný sčítač.
Úplný zmije v akci. Úplná sčítačka udává počet 1 s na vstupu v binární reprezentaci.
Schematický symbol pro 1bitovou úplnou sčítačku s C in a C out nakreslenými po stranách bloku, aby bylo zdůrazněno jejich použití ve vícebitové sčítačce
Plná sčítačka postavená z devíti bran NAND.

Plný sčítač přidává binární čísla a účty pro hodnoty provedených v stejně jako ven. Jeden-bit full-zmije přidává tři jedno-bitových čísel, často psaný jako A , B a C v ; A a B jsou operandy a C in je trochu přeneseno z předchozí méně významné fáze. Úplný sčítač je obvykle součástí kaskády sčítačů, které přidávají 8, 16, 32 atd. Bitová binární čísla. Obvod produkuje dvoubitový výstup. Výstup na přenášení a součet Typickým signálů C ven a S , přičemž součet se rovná 2 C ven + S .

Plnou sčítačku lze implementovat mnoha různými způsoby, například pomocí vlastního obvodu na úrovni tranzistoru nebo složeného z jiných bran. Jedním příkladem implementace je S = ABC in a C out = ( AB ) + ( C in ⋅ ( AB )) .

V této implementaci může být konečná brána OR před provedením výstupu nahrazena bránou XOR, aniž by došlo ke změně výsledné logiky. Použití pouze dvou typů bran je výhodné, pokud je obvod implementován pomocí jednoduchých čipů s integrovanými obvody, které obsahují pouze jeden typ brány na čip.

Kompletní zmije mohou být také konstruovány z dvou polovičních výbavy připojením A a B na vstup půl sčítačky, pak při jeho součtu výstupního S jako jeden ze vstupů do druhé poloviny sčítačky a C, v jako svůj druhý vstup, a nakonec jsou přenosové výstupy ze dvou polovičních sčítačů připojeny k bráně OR. Součet výstupu ze sčítače druhé poloviny je konečný součet výstupu ( S ) plného sčítače a výstup z brány OR je konečný výstup přenosu ( C out ). Kritická cesta úplného sčítače prochází oběma branami XOR a končí součtem bitů s . Za předpokladu, že brána XOR absolvuje 1 zpoždění, zpoždění uložené kritickou cestou úplného sčítače se rovná

Kritická cesta přenosu probíhá přes jednu bránu XOR v sčítači a přes 2 brány (AND a OR) v přenosovém bloku, a proto pokud brány AND nebo OR absolvují 1 zpoždění, má zpoždění

Plnou sčítačku lze implementovat pomocí devíti bran NAND .

Pravdivostní tabulka pro celý zmije je:

Vstupy Výstupy
A B C v C ven 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

Invertováním všech vstupů úplného sčítače se invertují také všechny jeho výstupy, které lze použít při návrhu rychlých sběračů přenosu zvlnění, protože není nutné invertovat přenos

Příklad úplného sčítače s převrácenými výstupy v CMOS

Sčítače podporující více bitů

Ripple-carry sčítač

Zobrazen 4bitový sčítač s logickým blokovým diagramem
Zobrazen 4bitový sčítač s logickým blokovým diagramem
Desítkový 4místný sčítač zvlnění. FA = plná sčítačka, HA = poloviční sčítačka.

Je možné vytvořit logický obvod pomocí několika úplných sčítačů pro přidání N -bitových čísel. Každý úplný sčítač zadá C in , což je C z předchozího sčítače. Tento druh sčítače se nazývá sčítač nesoucí zvlnění (RCA), protože každý přenosový bit se „vlní“ do dalšího úplného sčítače. Všimněte si, že první (a pouze první) úplná sčítačka může být nahrazena poloviční sčítačkou (za předpokladu, že C v = 0).

Rozložení sčítače přenosu zvlnění je jednoduché, což umožňuje rychlý návrhový čas; sčítač přenášení zvlnění je však relativně pomalý, protože každý úplný sčítač musí počkat, než se vypočítá přenosový bit z předchozího úplného sčítače. Zpoždění brána lze snadno vypočítat pomocí kontroly úplného sčítacího obvodu. Každý úplný sčítač vyžaduje tři úrovně logiky. V 32bitové sčítačce zvlnění je k dispozici 32 úplných sčítačů, takže zpoždění kritické cesty (nejhorší případ) je 3 (od vstupu k přenosu v prvním sčítači) + 31 × 2 (pro šíření přenosu v pozdějších sčítačích) = 65 zpoždění brány. Obecná rovnice pro zpoždění nejhoršího případu pro n -bitovou sčítací vlnu přenosu, zahrnující součet i přenosové bity, je

Konstrukce se střídavou polaritou přenosu a optimalizovanými branami typu AND-OR-Invert může být zhruba dvakrát tak rychlá.

4bitový sčítací modul s hledáčkem pro přenášení

Carry-lookahead sčítač

Aby se zkrátil čas výpočtu, inženýři vymysleli rychlejší způsoby, jak přidat dvě binární čísla pomocí sčítacích modulů CLA ( carry-lookahead ). Fungují tak, že pro každou bitovou pozici vytvoří dva signály ( P a G ) podle toho, zda se přenos šíří z méně významné bitové pozice (alespoň jeden vstup je 1), generované v této bitové pozici (oba vstupy jsou 1 ), nebo zabito v této bitové pozici (oba vstupy jsou 0). Ve většině případů je P jednoduše součtový výstup poloviční sčítačky a G je přenosový výkon stejného sčítače. Poté, co jsou generovány P a G, jsou vytvořeny přenosy pro každou bitovou pozici. Některé pokročilé architektury carry-lookahead jsou Manchester carry chain , Brent – ​​Kung adder (BKA) a Kogge – Stone adder (KSA).

Některé další architektury vícebitových sčítačů rozdělují sčítač do bloků. Je možné měnit délku těchto bloků na základě zpoždění šíření obvodů za účelem optimalizace doby výpočtu. Tyto sčítače založené na blocích zahrnují sčítač carry-skip (nebo carry-bypass), který bude určovat hodnoty P a G pro každý blok, nikoli pro každý bit, a sčítač pro výběr carry, který předem vygeneruje hodnoty součtu a přenosu pro oba možné přenosy vstup (0 nebo 1) do bloku, pomocí multiplexerů vyberte příslušný výsledek, když je znám přenosový bit.

64bitová sčítačka

Zkombinováním více přídavných modulů pro nošení na pohled lze vytvořit ještě větší. Toho lze využít na více úrovních, abyste vytvořili ještě větší přidávače. Například následující sčítač je 64bitový sčítač, který používá čtyři 16bitové CLA se dvěma úrovněmi jednotek pro přenos Lookahead .

Jiné designy výbavu patří carry-select výbavu , podmíněné součet sčítač , carry-přeskočit výbavu a carry-kompletní výbavu.

Carry-save adders

Pokud má sčítací obvod vypočítat součet tří nebo více čísel, může být výhodné nešířit výsledek přenosu. Místo toho se používají sčítače se třemi vstupy, které generují dva výsledky: součet a přenos. Součet a přenos mohou být přiváděny do dvou vstupů následujícího sčítače 3 čísel, aniž by bylo nutné čekat na šíření přenosového signálu. Po všech fázích sčítání však musí být ke spojení konečného součtu a výsledků přenosu použit konvenční sčítač (například zvlnění nebo hledač).

Kompresory 3: 2

Úplnou sčítačku lze považovat za ztrátový kompresor 3: 2 : sečte tři jednobitové vstupy a vrátí výsledek jako jediné dvoubitové číslo; to znamená, že mapuje 8 vstupních hodnot na 4 výstupní hodnoty. Například binární vstup 101 má za následek výstup 1 + 0 + 1 = 10 (desetinné číslo 2). Provedení představuje bit jedna z výsledku, zatímco součet představuje bit nula. Podobně může být poloviční sčítač použit jako ztrátový kompresor 2: 2 , který komprimuje čtyři možné vstupy do tří možných výstupů.

Takové kompresory lze použít k urychlení součtu tří nebo více přídavků. Pokud jsou přídavky přesně tři, je rozvržení známé jako sčítač carry-save . Pokud jsou aditiva čtyři nebo více, je nutná více než jedna vrstva kompresorů a pro okruh existují různé možné konstrukce: nejběžnější jsou stromy Dadda a Wallace . Tento druh obvodu se používá zejména v multiplikátorech , a proto jsou tyto obvody známé také jako multiplikátory Dadda a Wallace.

Kvantová plná sčítačka

Quantum Full Adder, pomocí Toffoli a Cne brány. Bránu CNOT, která je na tomto obrázku obklopena tečkovaným čtvercem, lze vynechat, pokud není vyžadován výpočet pro obnovení výstupu B.

Použití pouze Toffoli a Cne kvantová logická hradla , že je možné vyrobit kvantový obvod, který provádí sčítání.

Stejný obvod lze také použít v klasických reverzibilních výpočtech .

Viz také

Reference

Další čtení

externí odkazy