[問題] 二補數運算全加器 carry out 的問題
4-bit 對 4-bit 二補數的加法運算
也就是 input a[3:0], b[3:0]
和 output sum[3:0] 都是二補數表示法
另外還有 input carry_in 和 output carry_ou, overflow
想請問 carry_out 的定義以及如何工作?
overflow 就是當 sum 不在 -8 ~ 7 之間時要顯示 overflow = 1
當 overflow 發生時,計算結果應該把 carry_out 一起拿來看
也就是 {carry_out,sum}
那如果沒有發生 overflow 時的 carry_out 應該如何顯示呢?
是否不用理它(顯示0或1都OK)?
我有在網路找過一些電路圖
譬如說 ripple carry adder
它就直接把最後一個的 full adder 的 c_out 當作 carry_out
可是當 3+(-1) 時
加法器做的其實是 a = 0011, b = 1111, c_in = 0
carry 1 1 1 1
a 0 0 1 1
b 1 1 1 1
+) c_in 0
----------------------------
sum 0 0 1 0
也就是會使 carry_out = 1
這樣是正確的嗎?
還是應該讓它為 0 (因為計算結果2是正數)
感激不盡
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.114.123.122
※ 編輯: DerekJeter 來自: 140.114.123.122 (04/30 23:24)
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):