关于Verilog HDL位操作的问题
我想实现如下功能:有data,每次时钟沿到来更新data:
左移一位,最低位为data+data+data+data。
原来是这样写的:
data<={data,(data+data+data+data)};
,但是仿真出来不对,
改为
reg temp;
temp<=(data+data+data+data);
data<={data,temp};
就对了。
请问这是什么原因,谢谢大大~
还有就是,如果我想用第一种方式(不引入temp)实现这个功能,要怎么修改代码? LZ不要把Verilog当c语言写、
至于为什么第一种方式仿真不对、打开RTL一看便知 蓝色风暴@FPGA 发表于 2013-5-20 22:17 static/image/common/back.gif
LZ不要把Verilog当c语言写、
至于为什么第一种方式仿真不对、打开RTL一看便知 ...
好吧,那能不能告诉我要实现那个功能要怎么写? 把加改成异或不知道行不 dashashi 发表于 2013-5-20 22:35 static/image/common/back.gif
把加改成异或不知道行不
谢谢~
改成
data<={data,(data^data^data^data)};
就对了,
那个temp不改的话好像也不对 loyoan 发表于 2013-5-20 22:51
谢谢~
改成
data
reg temp;
temp=(data+data+data+data);
data<={data,temp};
这样就对了,但是很不推荐。
页:
[1]