デジタル論理

2ビット・リップルキャリー加算器

全加算器は1桁の加算を行います。下位桁の桁上がりを上位桁に渡すと、2ビットの数同士を加算できます。

キャリーで接続した2ビット加算器

2ビット・リップルキャリー加算器 FA0がA0、B0、Cinを加算し、C1をFA1へ渡します。FA1はA1、B1、C1からS1とCoutを出力します。 A1=0 B1=0 A0=0 B0=0 FA1 2の位 FA0 1の位 Cin=0 C1=0 Cout=0 S1=0 S0=0

入力ボタンを切り替えると、1の配線がオレンジになります。結果は2進数と10進数で表示します。

AとBは加算する数、Cinは入力キャリー

A1は2の位、A0は1の位です。A1=1、A0=0ならAは 10₂、つまり10進数の2です。A0/B0はFA0へ、A1/B1はFA1へ入ります。

Cinは外部からの桁上がりです。単独の加算では通常0にします。加算器の連結や、2の補数による減算の+1にも使います。

A=11(3), B=01(1), Cin=0。1の位:1+1+0=10₂ → S0=0,C1=1。2の位:1+0+1=10₂ → S1=0,Cout=1。結果:100₂=4。

連結すれば多ビットの加算も可能

各全加算器はその桁のA、B、キャリーを加算し、次へキャリーを渡します。n個でnビット同士を加算できます。3ビットなら最大7+7+1=15となり、結果は4ビットです。

上位桁は下位桁のキャリーを待つため、桁数が増えると遅延も増えます。キャリールックアヘッドなどは先にキャリーを計算して遅延を減らします。