verilog分频模块设计
Posted yskn
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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
以上是关于verilog分频模块设计的主要内容,如果未能解决你的问题,请参考以下文章