314613767 发表于 2014-7-7 21:04

求助!!基于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

我的问题出在 行为仿真时 输出没有信号,
本人初学者,不知道我的代码是否有问题??

以撒 发表于 2014-8-26 20:22

仿真时有木有加激励信号?

WangXiaoHe 发表于 2024-3-25 21:26

从编程语法上看、如果想要clk_out有信号输出、在每一个if~else的文法中有需要有和clk_out有关的描述。
页: [1]
查看完整版本: 求助!!基于verilog描述的计数器在行为仿真时没有输出信号??