微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > verilog如何对付负数?

verilog如何对付负数?

时间:10-02 整理:3721RD 点击:
verilog如何对付负数?
比如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好,综合时可以综合出补码优化的乘法器等。

感觉有点迷糊,谁能详细讲一下

可采用查表法

学习了

呵呵 新手表示不懂

我也不知道,现在看了有点明白了

做有符号数的加减

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

网站地图

Top