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

 找回密码
 注册

手机号码,快捷登录

手机号码,快捷登录

搜帖子
查看: 2273|回复: 3

[原创] 位宽一定要对齐,要不害死人

[复制链接]
发表于 2013-6-20 22:40:13 | 显示全部楼层 |阅读模式

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

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

×
以前一直觉得VHDL规则这么多,一点都没verilog灵活好用,昨天调试pcie接口时遇到的一个问题让我真真切切的感觉到了规则的威力
synplify下综合下面两种表述的结果是不一样的
表述1:
if((waddr-raddr) <= 1)
     alempty = 1'b1;
else
     alempty = 1'b0;

表述2:
if((waddr-raddr) <= 6'd1)
     alempty = 1'b1;
else
     alempty = 1'b0;

其中waddr和raddr均为6bit
表述1中如果waddr<raddr 例如6'h00 - 6'h3f , alempty为1的条件是不成立的

做fpga的兄弟们,任何时候位宽都要对齐啊
这种如果在vhdl中是会报错的
发表于 2013-6-21 06:06:12 | 显示全部楼层
在verilog里面不会报错
回复 支持 反对

使用道具 举报

发表于 2013-6-21 09:26:27 | 显示全部楼层
以前我写VHDL,也是FIFO地址处理时,通常会加两种判断,
if (addr_a > addr_b + num) or (addr_a < addr_b && addr_a + fifo_deep > addr_b + num)
大致如此,语法现在都印象模糊了。
回复 支持 反对

使用道具 举报

发表于 2013-6-21 11:53:35 | 显示全部楼层
判断要用加法呀,怎么用减法呢
又不是有符号数
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2025-9-13 13:53 , Processed in 0.026462 second(s), 5 queries , Gzip On, Redis On.

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