[問題] 關於 4-bits的加減法器

看板Electronics作者 (認 同 請 按 2 )時間2年前 (2021/07/21 17:54), 2年前編輯推噓3(308)
留言11則, 4人參與, 2年前最新討論串1/1
(代po) 最近在讀一些數位邏輯的東西,並用verilog模擬 目前遇到一個加減法器的問題,是關於overflow 假設A=4'b0010 B=4'b0011 要做相減A-B 正常來說應該是sum=4'b1111,overflow=1 https://imgur.com/ISSguYn.jpg
但是如果用網路上的電路圖Adder_Substractor看也沒辦法算出overflow(輸出v)=1 想請問一下加減法器的overflow還有別種接法嗎? 我也有用verilog 做四個Full_Adder照著接但結果一樣 感恩 -- 補上simulation圖: https://imgur.com/tEXo0J6.jpg
(上面電路圖的verilog) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.218.40.13 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Electronics/M.1626861278.A.C48.html

07/21 21:23, 2年前 , 1F
2-3=-1不會overflow
07/21 21:23, 1F

07/21 21:24, 2年前 , 2F
減法是加二補數的意思 A-B=A+(~B+1)
07/21 21:24, 2F

07/21 21:25, 2年前 , 3F
以你的例子就會變成 0010+1101=1111
07/21 21:25, 3F
了解,感激不盡 還有個問題是,3+5應該overflow=0,但是卻出現=1,感覺怪怪的 https://imgur.com/0Frjepj
此外還有個問題是,我如果verilog改寫法 https://imgur.com/28J98L7
overflow就會是1 是因為直接用behavior減法,會導致跟第五個bits borrow所以才是1嗎? 附上simulation圖https://imgur.com/GmWNrhj

07/21 23:58, 2年前 , 4F
3+5肯定overflow啊,4bit有號數上限是7欸
07/21 23:58, 4F
大概了解了目前上面這個電路圖應該是有號2補數 加法大於7就會有overflow=1; 減法的話如果沒有超出-8就是正常的2補數,所以2-3 overflow=0 sum=1111即可表示 ※ 編輯: kingfsg7326 (61.218.40.13 臺灣), 07/22/2021 01:09:26

07/23 09:54, 2年前 , 5F
其實問題是 你想要的電路架構是signed還是unsigned
07/23 09:54, 5F

07/23 09:56, 2年前 , 6F
如果你想要4bit表達數字,你的加法器就要5bit
07/23 09:56, 6F

07/23 09:58, 2年前 , 7F
Verilog的behavior減法,result都會多出一個bit
07/23 09:58, 7F

07/23 11:02, 2年前 , 8F
4bit是-8~+7
07/23 11:02, 8F

07/23 15:08, 2年前 , 9F
黑白寫orz
07/23 15:08, 9F

07/23 15:09, 2年前 , 10F
Verilog op 是unsigned
07/23 15:09, 10F

07/23 15:11, 2年前 , 11F
先sign extension 再做就好了
07/23 15:11, 11F
文章代碼(AID): #1Wz-xUn8 (Electronics)