微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > verilog 运算中 溢出检测的问题

verilog 运算中 溢出检测的问题

时间:10-02 整理:3721RD 点击:
二进制加法中 如果出现溢出的情况,应该怎么处理?
例如: 1111 + 0001 = 10000  运算结果的位数 要求与输入相同, 即10000要用4位数来表示。
请问有什么办法来检测 加法的输出结果是否溢出?溢出的话,在不增加位数的条件下,如何尽可能的保证数据精度?

进位链吧,我记得好像是这个

”进位链“百度了下 貌似不想关呢 =。=

溢出保护,进行截位处理就行,判断最高位的符号位,对应的截位就可以了

改变换编码方式

这是你的Coding style 不是很严密,比较严密的做法是参与运算的结果定义的时候要比运算的多一位。如reg [4:0]result;reg [3:0]a,b;如果你要检测溢出的问题,用nLint可以检测出来报warnning!

我有个帖子:http://bbs.eetop.cn/viewthread.php?tid=130245&highlight=



    3x,不增加位数的话,只有你这种办法了。 不过感觉这种方法 误差会很大呢。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top