Sčítačka – odečítač - Adder–subtractor
Část série na | |||||||
aritmetické logické obvody | |||||||
---|---|---|---|---|---|---|---|
Rychlá navigace | |||||||
Součásti
|
|||||||
Viz také |
|||||||
V digitálních obvodech je sčítač-odečítač obvod, který je schopen sčítat nebo odečítat čísla (zejména binární ). Níže je obvod, který přidává nebo odečítá v závislosti na řídicím signálu. Je také možné zkonstruovat obvod, který provádí sčítání i odčítání současně.
Konstrukce
Má n bitový navýšení pro A a B , pak S = + B . Pak předpokládejme, že čísla jsou v komplementu dvou . Pak k provedení B - A říká teorie dvou komplementů, že každý bit A invertuje pomocí brány NOT a pak přidá jeden. Tím se získá S = B + A + 1 , což je snadné u mírně upraveného sčítače.
Předcházením každého vstupního bitu A na sčítači pomocí multiplexeru 2 na 1, kde:
- Vstup 0 ( I 0 ) je A.
- Vstup 1 ( I 1 ) je A.
který má řídicí vstup D, který je také připojen k počátečnímu přenosu, pak provede upravenou sčítačku
- přidání, když D = 0 , nebo
- odečtení, když D = 1 .
To funguje proto, že když D = 1 vstup sčítačky je skutečně a přenášení v je 1. Přidání B na A a 1 se získá požadovaná odečtení B - A .
Způsob, jak můžete označit číslo A jako kladné nebo záporné bez použití multiplexeru na každém bitu, je použít místo toho před každým bitem bránu XOR .
- První vstup do brány XOR je skutečný vstupní bit
- Druhým vstupem do brány XOR pro každý je řídicí vstup D
To vytváří stejnou pravdivostní tabulku pro bit přijíždějící na sčítač jako řešení multiplexeru, protože výstup brány XOR bude takový, jaký je vstupní bit, když D = 0 a obrácený vstupní bit, když D = 1 .
Role v aritmetické logické jednotce
Doplňky jsou součástí jádra aritmetické logické jednotky (ALU). Řídicí jednotka rozhodne, které úkony ALU je třeba provést (založený na operační kód být vykonán) a nastaví operaci ALU. Vstup D do sčítače a odečítače výše by byl jeden takový ovládací řádek z řídicí jednotky.
Výše uvedený sčítač a odečítač lze snadno rozšířit tak, aby zahrnoval více funkcí. Například, multiplexer 2-k-1 by mohly být zavedeny na každý B i , které by přepínání mezi nulou a B i ; to by mohl být použit (ve spojení s D = 1 ), čímž se získá doplněk dvojkového z A , protože - A = A + 1 .
Dalším krokem by byla změna multiplexu 2 na 1 na A na 4 na 1 s třetím vstupem nulovým, pak replikace na B i, čímž se získá následující výstupní funkce:
- 0 (s oběma vstupy A i a B i nastavenými na nulu a D = 0 )
- 1 (s oběma vstupy A i a B i nastavenými na nulu a D = 1 )
- A (se vstupem B i nastaveným na nulu)
- B (se vstupem A i nastaveným na nulu)
- A + 1 (se vstupem B i nastaveným na nulu a D = 1 )
- B + 1 (se vstupem A i nastaveným na nulu a D = 1 )
- A + B
- A - B
- B - A
- A (s A i nastaveným na inverzi; B i nastaveným na nulu; a D = 0 )
- - A (s A i nastaveným na inverzi; B i na nulu; a D = 1 )
- B (s B i nastaven na invert; A i nastaven na nulu; a D = 0 )
- - B (s B i nastavenou na invert; A i nastavenou na nulu; a D = 1 )
Přidáním další logiky před sčítač lze jeden sčítač převést na mnohem víc než jen sčítač - ALU.