麻烦大家解释下这是为什么?
时间:10-02
整理:3721RD
点击:
在某个always语句里面,用以下两句
data_buf=data<<1;
data=data_buf;
而不是
data<=data<<1;
而资料中解释说是:“移位运算是可以综合的,但不是RTL级代码,直接用data<=data<<1这样的写法会令综合其产生误解”,请问这是为什么?
data_buf=data<<1;
data=data_buf;
而不是
data<=data<<1;
而资料中解释说是:“移位运算是可以综合的,但不是RTL级代码,直接用data<=data<<1这样的写法会令综合其产生误解”,请问这是为什么?
应该是移位操作需要寄存器,而直接写不能完成 可能和综合工具相关
谢谢您的回答!但是,data本身就是reg类型的呀?自己进行以为就可以了!
我也学了一课!
组合还是时序?
时序的话感觉完全可以
组合就有问题
是不是阻塞赋值和非阻塞赋值冲突了?
应该把data_buf=data<<1;语句放在ALWAYS外面
是时序逻辑电路 !
这个代码是有问题的。
要用阻塞语句才可以
路过!
学习了......
