1 / 3
文档名称:

FPGA时钟分频.doc

格式:doc   大小:24KB   页数:3页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

FPGA时钟分频.doc

上传人:小辰GG1 2021/7/18 文件大小:24 KB

下载得到文件列表

FPGA时钟分频.doc

文档介绍

文档介绍:: .
FPGA时钟分频
技术2010-05-16 23:50:09 阅读135评论0字号:大中小 订阅
FPGA分频相信是FPGA中使用比较频繁、比较基础的一项技术。下面讲具体来讲解 FPGA的时钟分频。
概念:
FPGA时钟分频即对FPGA的系统时钟根据自己所需进行频率处理,使之达到
原来的1/N倍频率。根据N的值,通常可分为偶数分频和奇数分频。
偶分频:
偶分频即N为偶数的对系统时钟分频。该设计主要通过一个计数器来实现。设
计原理为:以系统参考时钟为触发条件做一个加计数器,当计数器值为 (n/2 - 1)
时,输出时钟发生跳转。如要实现一个 4分频程序如下:
module div_4(clk,clr_n,clk_o );
in put clk;
in put clr_ n;
output clk_o;
reg [1:0] cnt_div;
reg clk_o_1;
always @ (posedge clk or n egedge clr_ n)
begi n
if( !clr_n)
cn t_div <= 0;
else if(cnt_div == 2'b01)
cn t_div <= 0;
else
cnt_div <= cn t_div+1;
end
always @ (posedge clk or n egedge clr_ n)
begi n
if(!clr_n)
clk_o_1<=0;
else if (cnt_div == 2'b01)
clk_o_1 <= ~clk_o_1;
end
assign clk_o=clk_o_1;
endmodule
奇分频:
奇数倍分频方法即当 N 为奇数时的系统时钟分频。其原理为:设置两个相同的 最大值为(n-1)的计数器,其中一个以系统时钟上升沿为触发条件,另一个以系 统时钟下降沿为触发条件;输出时钟在计数器值为 (n-1)/2和(n-1)时分别进行翻
转,得到两个占空比非 50%的时钟,最后把两个输出时钟进行相或运算,即可 得到一个占空比为 50%的奇数分频时钟。如要实现一个 5 分频时钟的参考代码 如下:
module div_5(clk,clr_n,clk_o);
input clk;
input clr_n;
output clk_o;
reg [2:0] cnt_div1;
reg [2:0] cnt_div2;
reg clk_o_1;
reg clk_o_2;
always @ (posedge clk or negedge clr_n)
begin
if( !clr_n)
cnt_div1 <= 0;
else if(cnt_div1 == 3'b100)
cnt_div1 <= 0;
else
cnt_div1 <= cnt_div1+1;
end
always@ (posedge clk