作者kingfsg7326 (认 同 请 按 2 )
看板Electronics
标题[问题] 关於 4-bits的加减法器
时间Wed Jul 21 17:54:35 2021
(代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://webptt.com/cn.aspx?n=bbs/Electronics/M.1626861278.A.C48.html
1F:→ r901042004: 2-3=-1不会overflow 07/21 21:23
2F:→ r901042004: 减法是加二补数的意思 A-B=A+(~B+1) 07/21 21:24
3F:→ r901042004: 以你的例子就会变成 0010+1101=1111 07/21 21:25
了解,感激不尽
还有个问题是,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
4F:推 Max112358: 3+5肯定overflow啊,4bit有号数上限是7欸 07/21 23:58
大概了解了目前上面这个电路图应该是有号2补数
加法大於7就会有overflow=1;
减法的话如果没有超出-8就是正常的2补数,所以2-3 overflow=0 sum=1111即可表示
※ 编辑: kingfsg7326 (61.218.40.13 台湾), 07/22/2021 01:09:26
5F:推 r901042004: 其实问题是 你想要的电路架构是signed还是unsigned 07/23 09:54
6F:→ r901042004: 如果你想要4bit表达数字,你的加法器就要5bit 07/23 09:56
7F:→ r901042004: Verilog的behavior减法,result都会多出一个bit 07/23 09:58
8F:→ HenryLin123: 4bit是-8~+7 07/23 11:02
9F:推 mmonkeyboyy: 黑白写orz 07/23 15:08
10F:→ mmonkeyboyy: Verilog op 是unsigned 07/23 15:09
11F:→ mmonkeyboyy: 先sign extension 再做就好了 07/23 15:11