在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 13519|回复: 19

[原创] verilog如何对付负数?

[复制链接]
发表于 2011-10-13 08:12:05 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
verilog如何对付负数?
比如C语言中的
                   if ( |a| > b )
                       ......
                          ......
发表于 2011-10-13 08:54:21 | 显示全部楼层
reg signed [7:0] a;
reg signed [7:0] b;

if (a < -8'sd32)

if (b > 8'sd1)

......
发表于 2011-10-13 08:59:13 | 显示全部楼层
符号位+原码

补码
发表于 2011-10-13 09:08:44 | 显示全部楼层
不建议用代码中符号数,各个综合工具的结果可能有差别。
符号位和数据单独比较。
 楼主| 发表于 2011-10-13 16:59:51 | 显示全部楼层
if ( |a| > b ) ......
假设a的位宽为8则上述表达式改写为
if(a[6:0]>b)....

这样可以么?
发表于 2011-10-13 20:04:44 | 显示全部楼层
同意qqqyb,建议分开比较,或者用microblaze。
发表于 2011-10-14 10:46:10 | 显示全部楼层
qqqyb开玩笑,照这么说Verilog-2001就白定义了。Synopses DC Datapath设计建议中明确规范不要人工枚举有符号数,用signed.
发表于 2011-10-14 16:19:02 | 显示全部楼层
就直接用补码好了
发表于 2011-10-15 00:16:52 | 显示全部楼层
用补码,或扩展符号位。
发表于 2011-10-15 11:14:19 | 显示全部楼层
用补数来解决,很简单
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-7-1 03:16 , Processed in 0.160042 second(s), 9 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表