Altifigence Academy

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 就產生進位。

RTL 程式碼節錄
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。

此選擇適用於本瀏覽器,隨時可從頁尾變更。