最近帮新手看程序,发现的一个小问题,请大家也帮忙看看
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时钟直接去控制输出信号呢? 你没有对out和div信号赋初始值。 回复 2# njithjw
不是你说的原因,就是给赋了初值还是不对,我试过了 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]