完整请移步: (原創) 如何處理signed integer的加法運算與overflow? (SOC) (Verilog)
二進位Signed加法運算Summary
根據之前三個實際的例子,我們得到以下結論
- m bit + m bit => (m+1) bit
- m bit + n bit => (m+1) bit,其中n < m
- m bit與n bit都必須先做signed extension到(m+1) bit才能相加
- 若結果有到(m+2) bit則忽略之,實際的結果為(m+1) bit
- 若Sum[m+1] ^ Sum[m]為1,表示有overflow
- 若Sum[m+1]為0且Sum[m]為1,則為正overflow
- 若Sum[m+1]為1且Sum[m]為0,則為負overflow