在数字逻辑电路设计中,分频器是一种基本电路,通常用来对某个给定频率进行分频,从而得到所需的频率。数字分频器一般有两大类:一类是脉冲波形均匀分布的分频器,即常规分频器;另一类是脉冲波形非分布均匀的分频器。常规分频器只能进行整数或半整数分频,即分频倍数只能是整数或半整数。但在某些应用场合,时钟源与所需的频率不一定成整数或半整数倍关系,这时就需要脉冲波形非均匀分布的分频器,这种分频器不仅能实现整数或半整数分频,还应能进行任意小数倍分频。文献[1,2]给出了实现整数和半整数分频的常规分频器的两种设计方法,文献[3]则提出了一种可实现任意小数分频的设计方法——双模前置小数分频的实现方法。在文献[1-3]研究的基础上,文献[4]总结归纳了实现任意数分频的设计方法。
在文献[1-3]研究的基础上,本文提出了一种改进的小数分频器设计方法,相对双模前置小数分频器,该方法使总体意义上与小数分频比等效的计数周期减小一半,并进一步减小了分频后得到的信号的相位抖动。 1 整数和半整数分频 对于N整数倍分频,可以方便地用模N的计数器来简单实现分频输出,其设计方法常用数字电子技术教程都有相关论述,这里就不赘述。对于半整数分频N/2 (N为奇数),可以采用“脉冲周期剔除法”来进行设计,即让触发前移半个周期的方式来剔除半个脉冲周期[4]。假定输入计数脉冲周期为T,则当计数器计数到第(N+1)/2个周期时,只计数半个周期,即下一个计数循环到来时改变计数器的脉冲触发沿极性,这样一来,一个计数循环持续时间为计数脉冲周期的(N+1)/2-0.5 = N/2倍,即(N/2)T,从而输出信号频率为输入信号频率的1/(N/2)。只要将整数和半整数分频器与一个T’触发器(二分频器)级联,就可以实现任意占空比为50%的整数倍分频。 2 双模前置小数分频[3] 2.1 分频原理 在若干个分频周期中采取某种方法使某几个周期多计或少计一个脉冲,从而在整个计数周期的总体平均意义上获得一个小数分频比。设要进行分频比为K的小数分频,K可表示为: K = M / Q (1) 式中,M为分频器输入脉冲数;Q为输出脉冲数。 令Q=10n,则 (2) 式中,n为分频比K小数点后的数字位数,则M为正整数。 取,即N为分频比K的整数部分,则易推得M为N、N + 1的线性组合。令 (3) 进一步令p + q=10n,并与式(3)联立,可解得 显然,N+1-K、K-N皆为正纯小数,且小数点后的数字位数仍然为n,从而p、q皆为小于10n的正整数。若定义10n次K分频为一个统计周期,则式(3)说明,在一个统计周期内,K分频在总体平均意义上可等效为p次N分频和q次N + 1分频。此即为双模前置小数分频器的分频原理。 2.2 算法实现 双模前置小数分频器的电路组成如图1所示。由图1可知,双模前置小数分频器由÷N / N+1双模分频器、控制计数器和控制逻辑三部分组成,每个周期分频K。假定a点电平为1时,进行N分频,a点电平为0时进行N+1分频,则通过适当设计控制逻辑,使在一个统计周期内分频器有次进行N分频,有进行N+1分频,这样,当从fo输出10n个脉冲时,在fi处输入了 . N + . (N + 1)个脉冲,也就是10n.K个脉冲。 图1 双模前置小数分频器的原理图 由前述分析可知,从N分频切换到N+1分频以及从N+1分频切换到N分频都会产生一个随时间增长的相位移,若简单地先进行10n (N + 1-K)次N分频后作10n (K - N)次N + 1分频,则分频后得到的信号会产生很大的相位波动,应设法将两种分频器混合均匀,这种“均匀”工作通过控制计数器来完成。 以分频比后为一位小数为例,“均匀”方法如下:在一个统计周期内,每进行一次分频,计数值为10减去分频比的小数部分,各次计数值累加。若累加结果小于10,则进行N + 1分频;若大于10或等于10,则进行N分频,并让累加结果的十位数自然溢出。如进行5.3倍分频,则在一个计数周期内,每进行一次分频,计数值为(10-3)= 7,显然,只有第1、4、7次累加结果小于10,所以为6分频,其余的累加结果均大于或等于10,则进行5分频,同时去掉累加结果的十位数,为下一次累加作好准备,表1给出了该分频器的分频过程。 表1 双模前置小数分频器的分频过程分频比5.3 | ||
序号 | 累加结果 | 分频比 |
1 | 7 | 6 |
2 | 14 -> 4 | 5 |
3 | 11 -> 1 | 5 |
4 | 8 | 6 |
5 | 15 -> 5 | 5 |
6 | 12 -> 2 | 5 |
7 | 9 | 6 |
8 | 16 -> 6 | 5 |
9 | 13 -> 3 | 5 |
10 | 10 -> 0 | 5 |
分频系数5.3 | |||
序号 | 计数方向 | 累加结果 | 分频比 |
1 | 减 | 5-2=3 | 5.5 |
2 | 加 | 3+3=6 | 5 |
3 | 减 | 6-2=4 | 5.5 |
4 | 加 | 4+3=7 | 5 |
5 | 减 | 7-2=5 | 5.5 |
图3 双模前置小数分频器时序仿真图 图4 改进双模前置小数分频器时序仿真图
图中clk为输入时钟信号,fclk为分频输出信号,a为电平控制信号。从图3可以看出,当a为1时,进行5分频,当a为0时,进行6分频,在10个分频周期内达到等效的小数分频输出;从图4可以看出,当a为1时,进行5分频,当a为0时,进行5.5分频,只需5个分频周期内即达到等效的小数分频输出。 采用Atera公司的MAX7000S系列CPLD器件EPM7032SLC44-5芯片进行实现,该芯片包含32个逻辑宏单元,则双模前置小数分频器共使用了19个逻辑宏单元,资源利用率为59%,改进双模前置小数分频器共使用了26个逻辑宏单元,资源利用率为81%,较双模前置小数分频器多利用7个逻辑宏单元,硬件开销增加36.8%。 4.2 性能分析 假定分频输出的初始相位为0,令T为分频输入信号周期,则对于表1双模前置小数分频器,可得各次分频输出的相位偏移分别为 0,-0.7T,-0.4T,-0.1T,-0.8T, -0.5T,-0.2T,-0.9T,-0.6T,-0.3T。 对于表2的改进双模前置小数分频器,可得各次分频输出的相位偏移分别为 0,-0.2T,0.1T,-0.1T,0.2T。 显然,双模前置小数分频器在一个计数循环内的相位平均偏差不等于0,一个计数循环内的分频输出各脉冲的相位平均偏差为-0.45T,相位抖动均方差为0.3028T;而改进双模前置小数分频器在一个计数循环内的相位平均偏差等于0,相位抖动均方差为0.1581T。故相对于双模前置小数分频器,改进双模前置小数分频器分频后得到信号的相位抖动要小得多。因而其性能要远优于双模前置小数分频器。 5 结束语 本文在分析整数和半整数分频以及双模前置小数分频原理的基础上,提出了一种改进的双模前置小数分频算法。采用该改进算法设计的任意小数分频器,可以在一个计数循环内达到相位平均偏差等于0,其相位抖动均方差要远小于双模前置小数分频器。此外,不像用锁相环来实现非整数分频时大多需采用数模混合电路,改进的双模前置小数分频算法是一种全数字设计方法,采用CPLD或FPGA等大规模可编程逻辑器件,可以很方便地予以实现。但相比双模前置小数分频器,其唯一缺点是硬件开销增加较大,因而在实际应用中应根据需要加以选择。 参考文献: [1] 高博,龚敏.基于FPGA的可控分频器研究与设计[J].电子工程师,2003,29(6):44-46. [2] 古良玲,杨永明,郭巧惠.基于FPGA的半整数及整数分频器的参数化设计[J].电子器件,2005,28(2):404-406. [3] 刘亚海,林争辉.基于FPGA的小数分频器的实现[J].现代电子技术,2005,28(3):113-114. [4] 许德成.任意数分频设计方法[J].科技广场,2007,(11):219-220.