zoukankan      html  css  js  c++  java
  • 计数器设计模板

    所需计数的个数:num

    计数器位宽:width

    开始计数:wire start_cnt;

    停止计数:wire end_cnt;

    计数器:reg  [width-1:0]   cnt;

    always @(posedge sclk or negedge rst_n)
    begin
      if(rst_n == 1'b0)begin
        cnt <= 'd0;
      end
      else if(start_cnt)begin
        if(end_cnt)begin
          cnt <= 'd0;
        end
        else begin
          cnt <= cnt + 1'b1;
        end
      end
    end

    assign start_cnt = 1;
    assign end_cnt = start_cnt && cnt==num-1;

    /////////////////////////////////////////////////////////////////////////////////////////

    例如:

    reg [3:0] cnt0,cnt1;

    wire start_cnt0,start_cnt1;

    wire end_cnt0,end_cnt1;

    always @(posedge sclk or negedge rst_n)
    begin
      if(rst_n == 1'b0)begin
        cnt0 <= 'd0;
      end
      else if(start_cnt0)begin
        if(end_cnt0)begin
          cnt0 <= 'd0;
        end
        else begin
          cnt0 <= cnt0 + 1'b1;
        end
      end
    end

    assign start_cnt0 = 1;
    assign end_cnt0 = start_cnt0 && cnt0==2-1;

    always @(posedge sclk or negedge rst_n)
    begin
       if(rst_n == 1'b0)begin
        cnt1 <= 'd0;
      end
      else if(start_cnt1)begin
        if(end_cnt1)begin
          cnt1 <= 'd0;
        end
        else begin
          cnt1 <= cnt1 + 1'b1;
        end
      end
    end

    assign start_cnt1 = end_cnt0;
    assign end_cnt1 = start_cnt1 && cnt1==4-1;

  • 相关阅读:
    makedown
    前端
    关于阅读与自我认同
    Win10任务栏透明工具 TranslucentTB
    Linux文件属性
    解决vscode出现两个光标的问题
    一文搞懂vim复制粘贴
    解决vim选中文字不能复制的问题
    简单配置让iterm2用得更爽
    区块链相关在线加解密工具(非对称加密/hash)
  • 原文地址:https://www.cnblogs.com/MAQI/p/7693332.html
Copyright © 2011-2022 走看看