Sčítač – odečítač - Adder–subtractor - Wikipedia

v digitální obvody, an sčítač – odečítač je obvod, který je schopen přidávání nebo odečítání čísla (zejména binární ). Níže je uveden obvod, který přidává nebo odečítání 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

4bitový sčítač s odečítáním zvlnění na základě 4bitového sčítače, který funguje doplněk dvou na A když D = 1 poddat se S = BA.

Mít n-bitová zmije pro A a B, pak S = A + B. Pak předpokládejme, že čísla jsou v doplněk dvou. Pak provést BA, teorie dvou komplementů říká, že invertuje každý bit A s NENÍ brána pak jeden přidejte. To přináší S = B + A + 1, což je u mírně upraveného sčítače snadné.

Předcházením každého A vstupní bit na sčítačce s 2: 1 multiplexer kde:

  • Vstup 0 (0) je A
  • Vstup 1 (1) je A

který má řídicí vstup D který je také spojen s počátečním přenosem, pak provede upravenou sčítačku

  • doplněk, když D = 0nebo
  • odčítání, když D = 1.

To funguje, protože když D = 1 the A vstup do sčítačky je opravdu A a přenos je 1. Přidávání B na A a 1 získá požadované odečtení BA.

Způsob, jak můžete označit číslo A jako pozitivní nebo negativní bez použití multiplexeru na každém bitu je použití XOR brána místo toho předcházet každý bit.

  • 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 produkuje totéž pravdivostní tabulka 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 invertovaný vstupní bit, když D = 1.

Role v aritmetické logické jednotce

Přidávače jsou součástí jádra aritmetická logická jednotka (ALU). The řídící jednotka rozhoduje, které operace by ALU měla provádět (na základě operační kód prováděna) a nastavuje operaci ALU. The D vstup do sčítače – odečítače výše by byl jeden takový ovládací řádek z řídicí jednotky.

Sčítač-odečítač výše lze snadno rozšířit tak, aby zahrnoval více funkcí. Například na každém by mohl být zaveden multiplexor 2: 1 Bi to by přepínalo mezi nulou a Bi; toto by mohlo být použito (ve spojení s D = 1) k získání doplněk dvou z A od té doby A = A + 1.

Dalším krokem by byla změna multiplexu 2 na 1 A na 4: 1, přičemž třetí vstup je nulový, a poté to replikuje Bi čímž se získá následující výstupní funkce:

  • 0 (s oběma Ai a Bi vstupy nastaveny na nulu a D = 0)
  • 1 (s oběma Ai a Bi vstupy nastaveny na nulu a D = 1)
  • A (s Bi vstup nastaven na nulu)
  • B (s Ai vstup nastaven na nulu)
  • A + 1 (s Bi vstup nastaven na nulu a D = 1)
  • B + 1 (s Ai vstup nastaven na nulu a D = 1)
  • A + B
  • AB
  • BA
  • A (s Ai nastavit invertovat; Bi nastaven na nulu; a D = 0)
  • A (s Ai nastavit invertovat; Bi nastaven na nulu; a D = 1)
  • B (s Bi nastavit invertovat; Ai nastaven na nulu; a D = 0)
  • B (s Bi nastavit invertovat; Ai nastaven 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.

Viz také