求助!!基于verilog描述的计数器在行为仿真时没有输出信号??

2019-03-25 08:00发布


输入时钟为 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 [7:0] 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

我的问题出在 行为仿真时 输出没有信号,
本人初学者,不知道我的代码是否有问题??
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。