guojun 发表于 2010-11-5 15:40:59

求助,我是入门级别

非常简单的程序;
module blocking(
               din,      //数据输入信号
               dout      //数据输出信号
                );
input          din;
output         dout;

wire         din;
reg            dout;   //数据缓冲
reg       temp;   

always@(din)
begin
   
   dout=temp;
   temp=din;
   temp=temp;
endmodule               
Warning (10235): Verilog HDL Always Construct warning at blocking.v(15): variable "temp" is read inside the Always Construct but isn't in the Always Construct's Event Control
这个Warning 是什么意思啊,怎么解决?

njithjw 发表于 2010-11-6 22:17:52

always 进程里面的信号变量没有放进行信号的敏感列表。

可以试着改成下面的
always@(*)
或者
always@(din or temp)

liyujie 发表于 2010-11-8 10:29:38

用非阻塞赋值看一下

weibode01 发表于 2010-11-14 09:35:31

endmodule 前不应该有个 end吗、、、、、、

weibode01 发表于 2010-11-14 09:38:14

不行,我帮你试了,用非阻塞也是会有那个警告,可能不是大问题吧,如果仿真出来的波形跟你想像中的是一样的。。。求高手

247891933hao 发表于 2010-11-18 22:11:31

module blocking(
               din,      //数据输入信号
               dout      //数据输出信号
                );
input          din;
output         dout;

//wire         din;//可以省掉 默认的数据类型位wire
reg            dout;   //数据缓冲
reg       temp;   

always@(*)
begin
   
   dout <= temp;
   temp<=din;
   temp<=temp;
   end//you forget it
endmodule

weibode01 发表于 2010-11-20 00:37:21

楼上正解啊。。。

guojun 发表于 2010-11-21 09:06:41

感谢,            感谢。

weibode01 发表于 2010-11-22 11:00:39

呵呵,要仔细看程序

395170771 发表于 2010-11-23 12:55:55

学习了,很好
页: [1] 2
查看完整版本: 求助,我是入门级别