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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3577|回复: 6

[求助] 求助

[复制链接]
发表于 2010-11-1 13:26:25 | 显示全部楼层 |阅读模式

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

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

x
module compare(a,b,dout);
     input a;
     input b;
     output dout;
     //wire dout;
     assign dout=(a==b)?1:0;
endmodule

综合后有一个warning:signed to unsigned assignment occurs.是针对那条assign赋值语句的
请问这个warning对最后会有影响吗?
这里似乎涉及到无符号和有符号的问题,哪位大侠可以详解下?
 楼主| 发表于 2010-11-1 13:36:22 | 显示全部楼层
发现把assign dout=(a==b)?1:0;改成ssign dout=(a==b)?1'b1:1'b0;之后就没有warning了
发表于 2010-11-1 14:52:21 | 显示全部楼层
0:默认32bit
dout 1bit
32bit 赋值给1bit会有warning
发表于 2010-11-1 16:10:59 | 显示全部楼层
如果不写明位宽,大部分编译器会默认为32位,建议在写代码的时候都注明位宽
发表于 2010-11-1 17:47:12 | 显示全部楼层
不是位宽的问题。Verilog 2001标准之后,Verilog开始区分有符号数和无符号数
在Verilog2001之前,所有数都被认为无符号
Verilog2001之后,默认为有符号,和C是一样的
基本这样的warning可以忽略
发表于 2010-11-1 21:09:47 | 显示全部楼层
回复 1# shxr


    没啥关系,
 楼主| 发表于 2010-11-2 13:11:13 | 显示全部楼层
谢谢楼上各位大侠的解说,,
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

X

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

GMT+8, 2025-6-29 03:37 , Processed in 0.035252 second(s), 10 queries , Gzip On, MemCached On.

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