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)。三輸入中至少兩個為 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。
✓ 已學習