基于FPGA的任意数值分频器实现方法转让专利

申请号 : CN201010003266.3

文献号 : CN101789781A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 周殿凤

申请人 : 盐城师范学院

摘要 :

本发明属于电子设计自动化(EDA)领域,具体涉及通过FPGA芯片和VHDL编程语言实现任意数值分频器的一种方法。本发明的目的是这样实现的:以FPGA芯片为核心,加上矩阵键盘,成功设计出任意数值分频器;矩阵键盘用于分频系数和占空比的输入;FPGA芯片完成整数分频、小数分频和分数分频的设计与选择。由于采用上述技术方案,本发明所具有的优点和积极效果是:开发周期短、开发成本低、针对的分频需求多种多样,适合于解决不同的分频问题;整个设计只用了225个LE,大部分低廉的CPLD或者FPGA都可以实现;既可以实现整数分频,也可以实现小数分频和分数分频;不仅分频系数可以调节,占空比也可以调整。

权利要求 :

1.一种基于FPGA的任意数值分频器实现方法,键盘和FPGA开发平台通过数据线相连,键盘部分由数字和字母组成,用来完成系数的选择与输入;FPGA开发平台部分完成分频工作,其中:m、j分别控制整数分频的分频系数和占空比;小数分频时m、n分别调整整数部分和小数部分;分数分频时j调整整数部分,而m、n用于调节分母和分子值;n1和n2用于调节分数和小数分频的占空比;y是频率输出端;

具体实现的方法是:

a、键盘输入模块:由4×4矩阵键盘组成,可以输入0~9,当A键按下时,输入的值给m,B键按下时输入的值给n,C键按下时输入的值给j,D键按下时输入的值给n1,E键按下时输入的值给n2,F键按下时输出清零;

b、选择模块:当输入的二进制数control=00时实现偶数和占空比不等于50%的奇数分频,control=01时实现占空比为50%的奇数分频,control=10和11时分别实现小数和分数分频;

c、整数分频模块:此模块可以实现任意数值的偶数分频,占空比可以根据需要进行调节,也可以实现占空比不等于50%的奇数分频,主要采用计数器实现,分频系数和占空比均可以进行调节;

d、占空比为50%的奇数分频模块:假设要实现占空比为50%的m=2n+1分频,选择两个2n+1进制计数器控制两个中间时钟clk1和clk2,1号计数器在输入时钟clk的上升沿计数,2号计数器在clk的下降沿计数;当计数器1输出为0~n-1时clk1为1,输出为n~2n时clk1为0;计数器1输出为2n时计数器1清0,如此循环下去;clk2的实现类似于clk1,只是在clk的下降沿运作而已;最终输出的时钟clkout=clk1+clk2;

e、小数分频模块:小数分频器是通过可变分频和多次平均的方法得到的,假设要进行m.n分频,如果小数是一位小数,则总共要进行10次分频,总的规律是进行n次m+1分频,10-n次m分频;如果小数是2位,需要进行100次分频,分频的规律是进行n次m+1分频,100-n次m分频;以此类推可得到多位小数的分频规律;不管是几位小数总要进行两种系数的分频,两种分频究竟如何交差进行,可以根据一定的规律计算出来;下面以3.6分频为例进行讲解;3.6分频要进行6次4分频,4次3分频,将小数部分6按倍累加,假设累加的值为a,如果a小于10则进行3分频,a小于10的话下一次则加上6,此后如果a大于等于10则进行4分频,4分频过后再将累加值减去4后与10比较以决定下一次分频是4分频还是3分频;如此计算下去即可;

f、分数分频模块:分数分频器的设计思想与小数分频器类似,假设进行分频,总分频次数由分母m决定,规律是进行n次j+1分频和m-n次j分频,两种分频交替进行的计算方法也和小数分频类似,分数分频的分频系数和占空比也可以根据需要任意调节。

说明书 :

技术领域

本发明属于电子设计自动化(EDA)领域,具体涉及通过FPGA芯片和VHDL编程语言实现任意数值分频器的一种方法。

背景技术

FPGA作为未来数字系统的三大基石(FPGA、DSP、CPU)之一,成为目前硬件设计研究的重点。在数字系统的设计中,设计人员会遇到各种形式的分频需求,如偶数分频、奇数分频、半整数分频、小数分频和分数分频等,在某些设计中,系统不仅对频率有要求,而且对占空比也有严格的要求。由计数器或计数器的级联构成各种形式的偶数分频及非等占空比的奇数分频实现起来较为简单,但对半整数分频及等占空比的奇数分频实现较为困难,小数分频和分数分频更困难。大部分技术人员设计出的通用分频器,分频系数基本上不可以调节,或者即使分频系数可调,占空比也不可以调整,应用起来有所不便。

发明内容

本发明的目的是提供一种基于FPGA的任意数值分频器实现方法,该方法能以大规模可编程逻辑器件FPGA为核心,不仅可以实现任意数值的分频,占空比也可以根据需要进行调节,而且算法简单高效,具有高度可行性,易于硬件实现。
本发明的目的是这样实现的:以FPGA芯片为核心,加上矩阵键盘,成功设计出任意数值分频器;矩阵键盘用于分频系数和占空比的输入;FPGA芯片完成整数分频、小数分频和分数分频的设计与选择。
由于采用上述技术方案,本发明所具有的优点和积极效果是:开发周期短、开发成本低、针对的分频需求多种多样,适合于解决不同的分频问题;整个设计只用了225个LE,大部分低廉的CPLD或者FPGA都可以实现;既可以实现整数分频,也可以实现小数分频和分数分频;不仅分频系数可以调节,占空比也可以调整。
下面结合附图对本发明作进一步说明。
图1是本发明的原理示意图。
图2是本发明的核心单元分频器算法流程图。
具体实施方案
在图1中,键盘和FPGA开发平台通过数据线相连,键盘部分由数字和字母组成,用来完成系数的选择与输入;FPGA开发平台部分完成分频工作,其中:m、j分别控制整数分频的分频系数和占空比;小数分频时m、n分别调整整数部分和小数部分;分数分频时j调整整数部分,而m、n用于调节分母和分子值;n1和n2用于调节分数和小数分频的占空比;y是频率输出端;
具体实现的方法是:
a、键盘输入模块:由4×4矩阵键盘组成,可以输入0~9,当A键按下时,输入的值给m,B键按下时输入的值给n,C键按下时输入的值给j,D键按下时输入的值给n1,E键按下时输入的值给n2,F键按下时输出清零;
b、选择模块:当输入的二进制数control=00时实现偶数和占空比不等于50%的奇数分频,control=01时实现占空比为50%的奇数分频,control=10和11时分别实现小数和分数分频;
c、整数分频模块:此模块可以实现任意数值的偶数分频,占空比可以根据需要进行调节,也可以实现占空比不等于50%的奇数分频,主要采用计数器实现,分频系数和占空比均可以调节;
d、占空比为50%的奇数分频模块:假设要实现占空比为50%的m=2n+1分频,选择两个2n+1进制计数器控制两个中间时钟clk1和clk2,1号计数器在输入时钟clk的上升沿计数,2号计数器在clk的下降沿计数;当计数器1输出为0~n-1时clk1为1,输出为n~2n时clk1为0;计数器1输出为2n时计数器1清0,如此循环下去;clk2的实现类似于clk1,只是在clk的下降沿运作而已;最终输出的时钟clkout=clk1+clk2;
e、小数分频模块:小数分频器是通过可变分频和多次平均的方法得到的,假设要进行m.n分频,如果小数是一位小数,则总共要进行10次分频,总的规律是进行n次m+1分频,10-n次m分频;如果小数是2位,需要进行100次分频,分频的规律是进行n次m+1分频,100-n次m分频;以此类推可得到多位小数的分频规律;不管是几位小数总要进行两种系数的分频,两种分频究竟如何交差进行,可以根据一定的规律计算出来;下面以3.6分频为例进行讲解;3.6分频要进行6次4分频,4次3分频,将小数部分6按倍累加,假设累加的值为a,如果a小于10则进行3分频,a小于10的话下一次则加上6,此后如果a大于等于10则进行4分频,4分频过后再将累加值减去4后与10比较以决定下一次分频是4分频还是3分频;如此计算下去即可;分频系数和占空比可以根据需要任意调节;
f、分数分频模块:分数分频器的设计思想与小数分频器类似,假设进行分频,总分频次数由分母m决定,规律是进行n次j+1分频和m-n次j分频,两种分频交替进行的计算方法也和小数分频类似,分数分频的分频系数和占空比也可以根据需要任意调节。
在图2中,控制模块发出命令,由control的值判断是何种形式的分频,4个分频模块是平行的关系,条件满足立即运作。当control=00时实现偶数和占空比不等于50%的奇数分频,control=01时实现占空比为50%的奇数分频,control=10和11时分别实现小数和分数分频。