13 / 36 · 概念
半加算器と全加算器
和と桁上がりを別々に計算してつなぎます。
レッスンは無料で読めます。受講登録すると進捗を保存できます。
学習目標
- 和と桁上がりを別々に計算してつなぎます。
和と桁上がり
半加算器はsum=a^b、carry=a&bです。1+1=10なのでsum=0、carry=1です。全加算器はcinも加え、sum=a^b^cin、cout=(a&b) OR (a&cin) OR (b&cin)です。3入力中2個以上が1なら桁上がりが1になります。
assign sum = a ^ b ^ cin;
assign cout = (a & b) | (a & cin) | (b & cin);入力を変えて確認
次の桁につなぐ
ビット0のcoutをビット1のcinにつなぎます。Nビット入力二つの最上位桁上がりまで保存するにはN+1ビット必要です。{1'b0,a}+{1'b0,b}のように先に拡張します。リップルキャリーには実遅延があり、数式だけでは速度検証になりません。
自分で考えてみましょう
a=1、b=0、cin=1のsumとcoutは?
解説を見る
合計2は二進数10なのでsum=0、cout=1です。
✓ 学習済み