verilog如何对付负数?
时间:10-02
整理:3721RD
点击:
verilog如何对付负数?
比如C语言中的
if ( |a| > b )
......
......
比如C语言中的
if ( |a| > b )
......
......
reg signed [7:0] a;
reg signed [7:0] b;
if (a < -8'sd32)
if (b > 8'sd1)
......
符号位+原码
或
补码
不建议用代码中符号数,各个综合工具的结果可能有差别。
符号位和数据单独比较。
if ( |a| > b ) ......
假设a的位宽为8则上述表达式改写为
if(a[6:0]>b)....
这样可以么?
同意qqqyb,建议分开比较,或者用microblaze。
qqqyb开玩笑,照这么说Verilog-2001就白定义了。Synopses DC Datapath设计建议中明确规范不要人工枚举有符号数,用signed.
就直接用补码好了
用补码,或扩展符号位。
用补数来解决,很简单
如果是定点小数的四舍五入该怎么处理呢?
正确
非常同意,用signed好,综合时可以综合出补码专用的乘法器等。
非常同意,用signed好,综合时可以综合出补码优化的乘法器等。
感觉有点迷糊,谁能详细讲一下
可采用查表法
学习了
呵呵 新手表示不懂
我也不知道,现在看了有点明白了
做有符号数的加减
