分频的
Verilog
实现
1.
分频:在实际应用中,自己设计的开发板上不会去装多个晶振来产生不
同频率的时钟信号,这就要我们在已有的基础上自己来创造设计电路
中所需要的时钟信号来,有时候所需要的频率并不是在已有的频率上
直接进行简单的整数分频就可以得到的,有时需要进行小数的分频。
2.
在分频的过程中,偶数分频并不困难,若要进行
2N
次分频的话,只需
要计数到
N
的时候,波形进行翻转就行了,或者在最后一级加一个
2
分频也可以实现。
下面是我写的一个
偶数分频
的代码:
module div2n(rst,clk,cnt,clk_2n);//
偶数次分频
input rst,clk;
output clk_2n,cnt;
reg
[3:0]
cnt;//
刚开始没有定义计数的位宽仿真的时候老是出现输
出为
0
的现象,看似很简单的程序搞的有些纠结啊
reg
clk_2n;
always @(posedge clk )
begin
if(rst) //
若复位信号为高电平则计数清零和输出清零
begin
cnt<=0;
clk_2n<=0;
end
else
if(cnt==3)//
进行
8
分频,
这里的
cnt
取不同的值进行其他
的分频,若计数到达
4
时从
0
开始的输出电平翻转
begin
clk_2n<=~clk_2n;
cnt<=0;
end
else
cnt<=cnt+1;
end
endmodule
功能仿真波形以及后仿真波形如下: