verilog对信号二分频 时钟分频信号作为时钟使能信号

 module erfenpin(
    clk    ,
    rst_n  ,
    //其他信号,举例dout
 
    dout

    );

    //参数定义
    parameter      DATA_W =         8;

    //输入信号定义
    input               clk    ;
    input               rst_n  ;
 
    //输出信号定义
    output              dout   ;

    //输出信号reg定义
    reg                 dout   ;
 
    //时序逻辑写法
    always@(posedge clk or negedge rst_n)begin
        if(rst_n==1'b0)begin
            dout<=0;
        end
        else begin
            dout<=~dout;
        end
    end
endmodule

tb

`timescale 1 ns/1 ns

module testbench_name();

        //时钟和复位
    reg clk  ;
    reg rst_n;
 
    //uut的输出信号
    wire      dout ;
 

        //时钟周期,单位为ns,可在此修改时钟周期。
    parameter CYCLE    = 20;

        //复位时间,此时表示复位3个时钟周期的时间。
    parameter RST_TIME = 3 ;
 


   erfenpin U1(
     .clk    (clk     ), 
     .rst_n  (rst_n   ), 
     .dout  (dout   )
     );

 
       //生成本地时钟50M
     initial begin
         clk = 0;
         forever
         #(CYCLE/2)
         clk=~clk;
     end

     //产生复位信号
     initial begin
         rst_n = 1;
         #2;
         rst_n = 0;
         #(CYCLE*RST_TIME);
         rst_n = 1;
     end
 
endmodule

在这里插入图片描述
在这里插入图片描述
而不能将分频信号作为新的时钟信号

//cnt计数器
always  @(posedge clk or negedge rst_n)begin
    if(rst_n==1'b0)begin
        cnt<=1'b0;
    end
    else if(cnt==2)begin
        cnt<=1'b0;
    end
    else begin
        cnt<=cnt+1;
    end
end
//en使能信号
always  @(posedge clk or negedge rst_n)begin
    if(rst_n==1'b0)begin
        en<=1'b0;
    end
    else if(cnt==2)begin
        en<=1'b1;
    end
    else begin
        en<=1'b0;
    end
end
//使用en信号
always  @(posedge clk or negedge rst_n)begin//错always  @(posedge en or negedge rst_n)
    if(rst_n==1'b0)begin
    end
    else if(en==1)begin
    end
    else begin
    end
end

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值