求助!!基于verilog描述的计数器在行为仿真时没有输出信号??
输入时钟为 1MHz即1us,需要产生如下图所示的周期信号
20us 10us 20us
____
________ ________
我的思路是通过计数器 分别计数20,30,50
复位时 输出‘0’
计数器 == 20:输出‘1’
计数器 == 30:输出‘0’
计数器 == 50:计数器清零。
以下是我的代码:
module div(clk_in, rst, clk_out);
input clk_in;
input rst;
output clk_out;
reg clk_out;
reg cnt;
always @(posedge clk_in) //clk_in = 1MHz
begin
if(!rst)
begin
clk_out <= 0;
cnt <= 0;
end
else
begin
if(cnt == 49) //50us周期
cnt <= 0;
else if(cnt == 29) //30us 电平跳变
clk_out <= ~clk_out;
else if(cnt == 19) //20us 电平跳变
clk_out <= ~clk_out;
else
cnt <=cnt + 1;
end
end
endmodule
我的问题出在 行为仿真时 输出没有信号,
本人初学者,不知道我的代码是否有问题??
仿真时有木有加激励信号? 从编程语法上看、如果想要clk_out有信号输出、在每一个if~else的文法中有需要有和clk_out有关的描述。
页:
[1]