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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 7308|回复: 11

[原创] 麻烦大家解释下这是为什么?

[复制链接]
发表于 2010-3-21 14:48:37 | 显示全部楼层 |阅读模式

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

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

x
在某个always语句里面,用以下两句
data_buf=data<<1;
data=data_buf;
而不是
data<=data<<1;
而资料中解释说是:“移位运算是可以综合的,但不是RTL级代码,直接用data<=data<<1这样的写法会令综合其产生误解”,请问这是为什么?
发表于 2010-3-21 14:53:56 | 显示全部楼层
应该是移位操作需要寄存器,而直接写不能完成 可能和综合工具相关
 楼主| 发表于 2010-3-21 15:18:37 | 显示全部楼层
谢谢您的回答!但是,data本身就是reg类型的呀?自己进行以为就可以了!
头像被屏蔽
发表于 2010-3-21 17:25:19 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2010-3-22 16:11:13 | 显示全部楼层
这个主要是寄存器的影响,时钟上升沿内部寄存器保存数据,不能及时传输,等待下一时刻的到来!其实也可以从状态方面来理解,需要考虑延时的问题;上面的“小富人”说的对!关键自己编程在软件对比就出来了!
发表于 2010-3-22 16:23:01 | 显示全部楼层
我也学了一课!
发表于 2010-3-22 16:23:45 | 显示全部楼层
组合还是时序?
时序的话感觉完全可以
组合就有问题
发表于 2010-3-22 16:23:47 | 显示全部楼层
是不是阻塞赋值和非阻塞赋值冲突了?
应该把data_buf=data<<1;语句放在ALWAYS外面
 楼主| 发表于 2010-3-27 15:38:08 | 显示全部楼层
是时序逻辑电路 !
发表于 2010-3-27 20:56:59 | 显示全部楼层
这个代码是有问题的。
要用阻塞语句才可以
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-12-23 11:31 , Processed in 0.027698 second(s), 9 queries , Gzip On, Redis On.

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