smallwind1 发表于 2011-3-6 15:48:25

最近帮新手看程序,发现的一个小问题,请大家也帮忙看看

module hello(clk,out,div);

input clk;
output out;
output div;

reg div;
reg out;


always@(posedge clk)
begin
    if(div==2)
       out <= 1;
    else if(div==5)
       out <= 0;
    else
      div <= div +1;
   
end

endmodule

为啥用modesim仿真的时候clk信号变化,但是输出信号就是没变化呢?
我改成
module hello(clk,out);

input clk;
output out;



reg out;


always@(posedge clk)
begin
out = ~out;
end

endmodule

还是看不到out输出波形的变化,是不是说不能用clk时钟直接去控制输出信号呢?

njithjw 发表于 2011-3-6 20:34:45

你没有对out和div信号赋初始值。

smallwind1 发表于 2011-3-6 21:12:18

回复 2# njithjw


    不是你说的原因,就是给赋了初值还是不对,我试过了

邱老师 发表于 2011-3-6 22:43:41

always@(posedge clkor   negedge    rst_n)
if(!rst_n)
   div<=0;
else if(div==2)
       out <= 1;
else if(div==5)
       out <= 0;
else
      div <= div +1;
通过异步复位给div信号一个初始值,否则无法计数
页: [1]
查看完整版本: 最近帮新手看程序,发现的一个小问题,请大家也帮忙看看