原创 同一个always中不要对同一个变量赋值

2010-4-1 17:06 3015 10 11 分类: FPGA/CPLD

在同一个变量中,不要对同一个变量赋值,如果对同一变量多次赋值,那么它只执行最后一次赋值操作。


module test(clk,datain,dataout);


input clk;
input [2:0] datain;
output [2:0] dataout;


reg [2:0] dataout;


always@(posedge clk)
begin  
    dataout<=datain<<1;
    dataout[0]<=1'b1;
end


endmodule


上例中,对dataout[0]同时进行了两次赋值,当datain=3'b010时,输出结果dataout[2:0]=101,当然这是我们希望的结果。但再看下面的例子


module test(clk,datain,dataout);


input clk;
input [2:0] datain;
output [2:0] dataout;


reg [2:0] dataout;


always@(posedge clk)
begin
    dataout[0]<=1'b1;
    dataout<=datain<<1;
end


endmodule


当datain=3'b010时,输出结果dataout[2:0]=100,这时不是我们希望的结果,它只执行了后者,就只执行了后面一个dataout[0]补零操作,所以,在同一程序中不要对同一变量赋值。

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

用户614014 2014-2-12 16:01

简直是扯淡!

相关推荐阅读
用户1542249 2010-05-14 14:38
向量文件
      最近在学习DSP,第一次看C语言写的程序,发现在向量文件中,所有的中断都由一个矢量.vectors定义地址,而我以前看的程序,各个中断都有自己的矢量,这个给我的理解造成了冲突。还有,就是有...
用户1542249 2010-04-29 09:21
Modelsim ae 仿真
http://cpld-fpga.spaces.live.com/blog/cns!703E7ADBB8F98B40!336.entry仿真验证是CPLD/FPGA设计中的重要一环,QuartusII...
用户1542249 2010-04-28 22:35
扰码规划
http://www.mscbsc.com/askpro/question.php?qid=5382 移动通信网答:WCDMA扰码的作用:    WCDMA 系统中的扰码规划类似于GSM 系统中的频率...
用户1542249 2010-04-27 10:40
W-CDMA、cdma2000和TD-SCDMA技术比较
W-CDMAcdma2000TD-SCDMA信道带宽5/10/20 MHz1.25/5/10/15/20 MHz1.2 MHzChip速率N×3.84 McpsN×1.2288 Mcps1.28 Mc...
用户1542249 2010-04-15 16:49
频带利用率
频带利用率的概念:所传输的信息速率与系统带宽之比值,单位为bit/s/Hz1) 在部分响应系统中的相关编码不是指卷积编码之类的纠错码。纠错码属于信道编码 (英语里称为 Channel Coding),...
用户1542249 2010-04-13 09:29
verilog 书写规范
来源:http://bbs.ednchina.com/ShowTopic.aspx?id=759052.5.1 信号命名规则 信号命名规则在团队开发中占据着重要地位,统一、有序的命名能大幅减少设计人员...
EE直播间
更多
我要评论
1
10
关闭 站长推荐上一条 /3 下一条