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
  • 相关阅读:
    mysql案例 ~ 监控以及如何避免从库延迟问题
    mysql基础~开发规范
    k8s系列~mgr的应用
    k8s系列~docker mysql
    常用知识点(一)
    Windows下查看进程状态/信息
    Lua入门(一)
    Lua简介
    .NET&C#的异常处理
    数据库中的锁
  • 原文地址:https://www.cnblogs.com/yskn/p/9309655.html
Copyright © 2011-2022 走看看