发明名称 基于FPGA的任意数值分频器实现方法
摘要 本发明属于电子设计自动化(EDA)领域,具体涉及通过FPGA芯片和VHDL编程语言实现任意数值分频器的一种方法。本发明的目的是这样实现的:以FPGA芯片为核心,加上矩阵键盘,成功设计出任意数值分频器;矩阵键盘用于分频系数和占空比的输入;FPGA芯片完成整数分频、小数分频和分数分频的设计与选择。由于采用上述技术方案,本发明所具有的优点和积极效果是:开发周期短、开发成本低、针对的分频需求多种多样,适合于解决不同的分频问题;整个设计只用了225个LE,大部分低廉的CPLD或者FPGA都可以实现;既可以实现整数分频,也可以实现小数分频和分数分频;不仅分频系数可以调节,占空比也可以调整。
申请公布号 CN101789781A 申请公布日期 2010.07.28
申请号 CN201010003266.3 申请日期 2010.01.08
申请人 盐城师范学院 发明人 周殿凤
分类号 H03K23/68(2006.01)I 主分类号 H03K23/68(2006.01)I
代理机构 代理人
主权项 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、分数分频模块:分数分频器的设计思想与小数分频器类似,假设进行<img file="F2010100032663C00021.GIF" wi="87" he="100" />分频,总分频次数由分母m决定,规律是进行n次j+1分频和m-n次j分频,两种分频交替进行的计算方法也和小数分频类似,分数分频的分频系数和占空比也可以根据需要任意调节。
地址 224002 江苏省盐城市开放大道50号盐城师范学院