Tricky Circuit

全加算器:三つの入力

桁上がりを次へ送る

全加算器は二つのビット、つまり二進数字0か1と、Cin(Carry input、前の桁から届く桁上がり入力)を足します。現在の和ビットと次へ送る桁上がり出力を作ります。

インタラクティブな実験を開く

実験台

回路の設定を変え、測定値を予想してから課題を確認しましょう。教材用のモデルで、各レッスンに仮定を説明しています。

ログインして進捗を保存. ゲストの進捗はこの端末に保存されます.

実験室を全画面のウィンドウで開く

動作の仕組み

理想的な二進論理です。0は低、1は高で、測定電圧ではありません。電源、電流、出力負荷、応答の遅れは省略し、図は機能を示してチップの端子配置は示しません。

AとBはデータ、CinはCarry input(桁上がり入力)、Sは和、Coutは桁上がり出力です。T = A + B + Cin、T = S + 2Coutです。XORはExclusive OR、排他的論理和で、異なる入力ビットなら1です。⊕と=1がこの関数を示します。桁上がりは届いた桁の一単位で、追加電圧ではありません。

難易度
  1. 組み立て · 組み立てる

    A = 0、B = 0、Cin = 1で通電し、S = 1、Cout = 0にします。

    ヒントを見る

    A = 0; B = 0; Cin = 1 → S = 1; Cout = 0

  2. 探究 · 入力を変える

    A = 1、B = 1、Cin = 0にし、S = 0、Cout = 1にします。

    ヒントを見る

    A = 1; B = 1; Cin = 0 → S = 0; Cout = 1

  3. 自力で解く · 課題を解く

    A = 1、B = 1、Cin = 1にし、S = 1、Cout = 1にします。

    ヒントを見る

    A = 1; B = 1; Cin = 1 → S = 1; Cout = 1

追加の読み物と回路レシピ

桁上がりを次へ送る

計算器はこのブロックを多くの桁で繰り返します。それぞれ小さく加算し、桁上がりを大きい桁へ送ります。

T = A + B + Cin; T = S + 2Cout; S = A ⊕ B ⊕ Cin

和は合計が奇数かを示し、桁上がりは二以上かを示します。二つで零から三を表します。

役立つ法則

三入力が全部高いと合計三、二進11です。和ビット一つだけでは足りません。

モデルの外では

二つの半加算器と論理和で全加算器を作れます。論理和は少なくとも一入力が1なら1、論理積は両方が1のときだけ1です。図では≥1と&です。実物の伝達には時間がかかり、モデルは即時です。

避けたい落とし穴

CinとCoutは別の信号です。Cinは記憶ではなく、Coutもいつもそのコピーではありません。

A = 0、B = 0でCinを0から1に変えます。結果は…

  1. S = 1, Cout = 0
  2. S = 0, Cout = 1
  3. S = 1, Cout = 1
詳しく読む

合計が零から一になるので、一の位だけで足ります。

組み立てる

A = 0、B = 0、Cin = 1。桁上がり入力だけで合計1です。

T = 1; S = 1; Cout = 0

入力を変える

A = 1、B = 1、Cin = 1。合計3は和1と桁上がり1です。

T = 3; S = 1; Cout = 1

別の道を試す

Cinを固定してAとBを交換します。その後AとBを高く保ちCinを変え、和と桁上がりを比べます。

bob.cs.sonoma.edu