zoukankan      html  css  js  c++  java
  • verilog分频模块设计

    verilog设计:

    分频器的设计:

      分频器就是将一个时钟源的频率降低的过程(可以通过观察分频之后周期中包含几个原时钟周期来看是几分频),分频分为基数分频也分为偶数分频,

    偶数分频的代码如下:(其中就是计数器翻转的过程)

     1 module div(clk,rst_n);
     2     input clk,rst_n;
     3     
     4     reg clk_1k;//1k Hz的时钟
     5     reg [20:0] count; //计数器
     6     parameter div = 6;//这个分频为了方便仿真,随意定了个较小的值,10分分频
     7     parameter flag=div/2-1;
     8     
     9     always @(posedge clk or negedge rst_n)
    10     begin
    11         if(!rst_n)
    12         begin 
    13             clk_1k <= 1;
    14             count <= flag;
    15         end
    16         else
    17            if(count < flag)
    18                count  <= count + 1;
    19            else
    20            begin
    21                count <= 0 ;
    22                clk_1k <= ~clk_1k;
    23             end
    24     end
    25 endmodule

    奇数分频(计数不用以整个周期为单位)

     1 module intec(clk,rst_n);
     2     input clk,rst_n;
     3     
     4     reg clk_1k;//1k Hz的时钟
     5     reg [20:0] count; //计数器
     6     parameter div = 3;//这个分频为了方便仿真,随意定了个较小的值,10分分频
     7     parameter flag=div-1;
     8     
     9     always @(clk or negedge rst_n)
    10     begin
    11         if(!rst_n)
    12         begin 
    13             clk_1k <= 1;
    14             count <= flag;
    15         end
    16         else
    17            if(count < flag)
    18                count  <= count + 1;
    19            else
    20            begin
    21                count <= 0 ;
    22                clk_1k <= ~clk_1k;
    23             end
    24     end
    25 endmodule
  • 相关阅读:
    sublime text3安装package control插件图文教程
    conda创建新环境
    常用的vscode插件安装
    数组合并组合
    内核软死锁
    Ubuntu分区格式化并挂载新增磁盘方法
    Linux如何列出svn一个文件夹下的所有文件
    C++ UTF-8和GBK相互转化
    Linux shell如何用正则表达式匹配分组数据
    如何对接jsoncpp?
  • 原文地址:https://www.cnblogs.com/yskn/p/9309655.html
Copyright © 2011-2022 走看看