一种基于CPLD/FPGA的时钟分频模块设计方法与流程

文档序号:13422205阅读:1033来源:国知局
一种基于CPLD/FPGA的时钟分频模块设计方法与流程

本发明涉及分频方法技术领域,更具体的说是涉及一种基于cpld/fpga的时钟分频模块设计方法。



背景技术:

随着集成电路的发展,对时钟要求越来越高,时钟优劣直接影响整个系统性能,甚至影响系统稳定性。对于高端cpld/fpga芯片可通过例化pllip核得到期望频率的时钟,但存在硬件资源消耗较多的问题。且对于不同型号的cpld/fpga芯片,pllip核一般不能移植。因此设计通用、硬件资源消耗少、易于应用的分频器具有重要意义。

在现有的设计中,大多数直接例化pllip核得到期望分频时钟,这种方式硬件资源消耗较多;有的基于单片机或可编程器件与外围电路构成分频器,但这种设计无法应用于硬件电路,且电路复杂、硬件资源消耗多,不易于广泛应用。服务器等企业为减少成本,应用的cpld/fpga芯片资源相对较少,或者不支持相应的pllip核,因此无法直接应用集成的pllip核。cpld/fpga芯片通过计数输出脉冲进行时序控制,这种脉冲占空比不是50%,不能作为逻辑运算时钟,只有当时钟占空比为50%,才能充分提高系统时钟频率,进而提高系统的快速性。基于系统时钟的单一性严重限制了cpld/fpga在服务器等领域的应用。

cpld/fpga是半定制的专用集成电路,具有可编程、易于验证的特点,在工程开发前期验证领域具有广泛的应用。基于cpld/fpga的任意整数分频器包括两部分:偶数分频器与奇数分频器,偶数分频器易于实现50%占空比的分频时钟,但奇数分频器得到的分频时钟50%占空比较难实现。



技术实现要素:

针对上述缺陷,本发明的目的在于提供一种基于cpld/fpga的时钟分频模块设计方法,用以解决cpld/fpga中例化pllip核硬件资源消耗多与奇数分频非50%占空比问题。

本发明为实现上述目的,通过以下技术方案实现:

一种基于cpld/fpga的时钟分频模块设计方法,其特征在于,包括如下步骤:

步骤1:将主板上系统时钟作为时钟分频模块的基准输入时钟,输入分频基数n;

步骤2:判断分频基数n的奇偶性,选择使用偶数分频模块或基数分频模块进行分频,选定分频模块,关闭另一模块;

步骤3:对基准输入时钟采样并分频,得到期望的分频时钟;

步骤4:输出时钟。

进一步,采用偶数分频模块进行分频,对基准输入时钟进行模值为n的计数,并在n/2与n计数处,分别翻转分频时钟得到占空比为50%的n分频时钟。

进一步,采用奇数分频模块进行分频,分别对基准输入时钟的上升沿与下降沿采样,通过两个计数器分别对时钟上升沿与下降沿进行模值为n的计数,并在设定值与n计数处,分别翻转分频时钟得到两个非50%占空比的n分频时钟,然后将两个分频时钟进行逻辑运算得到占空比为50%的分频n时钟。

进一步,所述的奇数分频模块进行分频,对基准输入时钟上升沿与下降沿进行模值为n的计数,两个计数器对应的子分频时钟分别为初始电平为0的clk_1和clk_2,并在(n+1)/2与n计数处分别翻转clk_1和clk_2,最后对两个非50%占空比的clk_1、clk_2进行逻辑“或”运算得到占空比为50%的分频n时钟。

进一步,所述的奇数分频模块进行分频,对基准输入时钟上升沿与下降沿进行模值为n的计数,两个计数器对应的子分频时钟分别为初始电平为0的clk_1和clk_2,并在(n+1)/2与n计数处分别翻转clk_1和clk_2,最后对两个非50%占空比的clk_1、clk_2进行逻辑“或”运算得到占空比为50%的n分频时钟。

进一步,步骤4中:根据分频基数n的奇偶性选择偶数分频模块输出时钟或奇数分频模块得出的分频时钟作为时钟分频模块的输出时钟。

进一步,本方法可以通过基于cpld/fpga的分频器实现,输入引脚连接系统时钟引脚,输出引脚连接其它模块的时钟输入引脚。

进一步,通过verilog代码实现基于cpld/fpga的时钟分频模块设计。

对比现有技术,本发明有益效果在于:基于cpld/fpga设计时钟分频模块,可以基于基准输入时钟输出期望分频时钟,硬件资源消耗少,克服了pllip核对硬件资源需求大的问题。在已有工程的基础上,通过verilog代码实现整数分频器的模块化设计;由于采用模块化设计,可以单独实现偶数分频器或奇数分频器,从而节省资源,便于移植。在工程顶层中例化分频器模块,根据需求给定任意分频数n,连接输入时钟引脚,并将得到的分频时钟引脚连接其它模块的时钟输入引脚。本发明采用参数化设计,可以根据需要灵活调整分频基数进行任意整数分频,便于应用于不同领域。

同时,该发明能够在线灵活裁减、扩充、升级,适应了目前产品更新速度快的现状,便于快速验证。

附图说明

附图1是本发明的流程图。

附图2是本发明的原理示意图。

附图3是偶数分频模块分频原理图。

附图4是“或”逻辑实现奇数分频模块分频原理图。

附图5是“与”逻辑实现奇数分频模块分频原理图。

附图6是整数分频器实现的4分频仿真结果图。

附图7是整数分频器实现的5分频仿真结果图。

具体实施方式

下面结合附图对本发明的具体实施方式做出说明。

实施例一:

如图2所示,将主板上系统时钟作为整数分频模块的基准输入时钟,根据实际需要,给定模块输入参数作为整数分频模块的分频基数n。根据分频基数n选择偶数分频模块或奇数分频模块,同时,关断另一分频模块,对基准输入时钟采样并分频,得到期望的分频时钟;根据分频基数n,选择偶数分频模块或奇数分频模块得到的n分频时钟作为输出分频时钟,作为其它模块的输入时钟。

偶数分频模块:

为对基准时钟进行偶数分频,设计偶数分频模块,其分频原理如图3所示。侦测时钟上升沿,对基准时钟进行模值为n(为分析方便,n=4)的计数,当计数为n/2(2)时,翻转分频时钟;当计数到n(4)时,再次翻转分频时钟,同时复位计数器,并重复上述步骤;如此循环,最终得到占空比为50%的n分频时钟。

奇数分频模块:

为对基准时钟进行奇数分频,设计奇数分频模块,其一个奇数分频周期内的示意图分别如图4、图5所示两种实现方式,其中图4为“或”逻辑实现奇数分频模块分频原理图,分别侦测时钟上升沿与下降沿,通过两个计数器对基准时钟的上升沿与下降沿同时进行模值为n(为分析方便,n=5)的计数,在复位操作后,两个计数器同时复位为0,clk_1与clk_2也为低电平0,维持(n+1)/2基准时钟周期,即经过3个基准时钟周期后,clk_1所在的对上升沿采样的时钟变为高电平,clk_2所在的对下降沿采样的时钟变为高电平;然后两个计数器计数为n(5)时,再次翻转clk_1与clk_2电平得到两个占空比非50%占空比的5分频时钟,即此时clk_1、clk_2先后变为低电平0,与此同时,将两个计数器再次置位为0,经过上述运算后,clk_1、clk_2分别为2个基准时钟高电平与3个基准时钟低电平相位差为半个时钟周期的的周期方波;最后对两个非50%占空比的clk_1、clk_2进行逻辑“或”运算得到占空比为50%的5分频时钟;按照上述步骤循环操作,最后得到占空比为50%的5分频时钟。图5“与”逻辑实现奇数分频模块分频原理图,同样,分别通过两个计数器分别对时钟上升沿与下降沿进行周期为n的计数,同样为讨论方便,取n=5,和“或”操作相同,在复位和计数为0时,clk_1、clk_2为低电平0,维持(n-1)/2个时钟低电平,然后clk_1、clk_2变为高电平1;然后两个计数器计数为n(5)时,clk_1、clk_2再次分别翻转电平,即此时clk_1、clk_2先后变为低电平0,与此同时,两个计数器再次置位为0,经过上述运算后,clk_1、clk_2分别为3个基准时钟高电平与2个基准时钟低电平相位差为半个时钟周期的的周期方波;最后对两个非50%占空比的5分频时钟进行逻辑“与”运算得到占空比为50%的5分频时钟;按照上述步骤循环操作,最后得到占空比为50%的5分频时钟。

实施例二:

为验证基于cpld/fpga任意整数分频器的有效性,在modelsim环境下,通过给定不同分频数n,对分频器进行了验证,整数分频器实现的4(n是偶数)分频仿真结果如图6所示,整数分频器实现的5(n是奇数)分频仿真结果如图7所示。由仿真结果看出,本发明基于cpld/fpga面向任意整数50%占空比分频时钟的模块化实现方法能够根据n值输出高质量分频时钟,验证了本发明基于cpld或fpga面向任意整数50%占空比分频时钟的有效性。

结合附图和具体实施例,对本发明作进一步说明。应理解,这些实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所限定的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1