EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
, Z$ J& U; N1 A" O! p' V. l, j+ H程序问题分析解决方案分享 刚入门的朋友编写了一个简单的程序,出现如下问题: module blocking(" z1 Y% K7 `# k
din, //数据输入信号0 w0 q O7 f. s1 W- @- @2 {' O
dout //数据输出信号/ A, y" N; V+ _( Z4 E* c8 |
);
3 j* l' }+ I! f& o% e Y4 R input din;% K3 p- u9 l1 W$ k! Z% g
output dout;
- G# T; i. W2 P: T; v
& C* |' }4 q: }8 T! _/ }( ~ wire din;
9 ~7 s! e6 M2 Q reg dout; //数据缓冲
$ P4 T! [) S+ l e reg [1:0] temp; Y _" x7 M$ E
. b& z. C) o6 B( z! f# } always @(din)9 m% K, ^" ~) g* ?! ?* e" ]& F- N
begin
' b. \' G; U1 D$ M; F
% O( a# I6 ?' @! ^7 {! H3 F dout=temp[1];: N( Q4 W7 T+ p7 |* l9 W" t! p" ?
temp[0]=din;
5 s/ i: E( a" w3 C- j: n temp[1]=temp[0]; 3 L5 ]8 R7 ]) H }
endmodule
3 ^; N3 u& B* L' ~, J$ ZWarning (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
2 O, ]& U+ m# U0 k: ^程序编译完全通过,出现警告。 警告的意思:变量temp 在always 语句中总是读,但是没有在always的敏感变量中。 # X- r/ ~3 V" O
解决方案:always @(din,temp)
- m. o# T, C2 T( O1 n6 m0 m8 [always模块要求所有的敏感变量都要出现在@后面,避免锁存器出现! 7 C L4 e# w' o" i# l- A. T
|