如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
技术创新与生产实践文章编号:1006-3269(2010)03-0059-04一种基于Verilog的FPGA分频设计郭振铎,刘洲峰,徐庆伟,朱永胜(中原工学院,河南郑州450007)摘要:给出了一种基于FPGA的分频电路的设计使用芯片厂家集成的锁相环资源,如altera的PLL,方法.根据FPGA器件的特点和应用范围,提出了基于Xilinx的DLL来进行时钟的分频,倍频以及相移.Verilog的分频方法.该方法对于在FPGA硬件平台上设计但是FPGA内部的PLL资源一般有限,对于时钟常用的任意偶数分频、奇数分频、半整数分频和任意整数带要求不高的基本设计,如果采用Verilog语言编程小数分频提供了一种思路.在QuartusII软件上的仿真结果来实现,既可节省芯片内部的锁相环资源,又可实现表明,本文给出的分频方法简单实用,效果良好.消耗较少逻辑单元就达到对时钟操作的目的.Ver-关键词:FPGA;计数;分频;Verilog是一种允许设计者进行各种级别的逻辑设计中图分类号:TP332.12文献标识码:Ailog,进行数字逻辑系统的仿真验证、时序分析、逻辑综合doi:10.3969/j.issn.1006-3269.2010.03.013的硬件描述语言,易于理解,便于实现[4-6].FPGA(FieldProgrammableGateArray)即现1偶数倍分频场可编程门阵列,它是在PAL、GAL等可编程器件的基础上进一步发展的产物[1,2].它是作为专用集偶数倍分频是数字电路设计中最常用的分频之成电路(ASIC)领域中的一种半定制电路而出现的,一,如进行N倍偶数分频,则可以通过由待分频的既解决了定制电路的不足,又克服了原有可编程器时钟触发计数器计数,当计数器从0计数到N/2-1件门电路数有限的缺点.FPGA的使用非常灵活,时,输出时钟进行翻转,并给计数器一个复位信号,同一片FPGA通过不同的编程数据可以产生不同使得下一个时钟从零开始计数.以此循环下去.这的电路功能.FPGA在通信、数据处理、网络、仪器、种方法可以实现任意的偶数分频.下面为10分频工业控制、军事和航空航天等众多领域得到了广泛的Verilog实现代码.应用.在现代电子系统中,数字系统所占的比例越moduleten_fp_2(clk,clk_fp)来越大.系统发展的趋势是数字化和集成化,而inputclk;//输入原始时钟FPGA作为可编程ASIC(专用集成电路)器件,在outputclk_fp;//分频所要得到的时钟信号数字逻辑系统中发挥越来越重要的作用.分频器是regcp;数字系统设计中的基本电路,根据不同设计的需要,reg[2B0]n;//定义计数器所需的寄存器我们会遇到偶数分频、奇数分频、半整数分频等,有assignclk_fp=cp;时要求等占空比,有时要求非等占空比[3].在用always@(posedgeclk)FPGA进行实现时,尽管在目前大部分设计中,广泛begin//进行计数收稿日期:2010-06-24if(n<3'd4)作者简介:郭振铎(1982-),男,河南泌阳人,硕士,主要研究方向n<=n+1;为智能信息与处理.elseGroupTechnology&ProductionModernizationVol.27,No.3,2010#59#技术创新与生产实践beginendn<=0;endmodulecp<=~cp;波形的仿真结果如图1所示.end图1占空比为50%的10分频仿真波形由图1中clk与clk_fp的仿真波形可以看出,进行奇数倍n分频时钟,首先进行n/2分频(带小clk_fp会在clk每隔5个周期处产生一次翻转,从数,即等于(n-1)/2+0.5),然后再进行二分频得而实现分频系数为为10的整数倍分频器.到.得到占空比为50%的奇数倍分频.下面是用第一种方法实现任意奇数分频的Verilog代码的2奇数倍分频实现.奇数倍分频有2种实现方法.首先,完全可以modulejishu_fenpin(clk,rst,count1,count2,通过计数器来实现,如进行三分频,通过待分频时钟clk_even);上升沿触发计数器进行模三计数,当计数器计数到inputclk,rst;邻近值进行2次翻转,比如可以在计数器计数到1output[3B0]count1,count2;时,输出时钟进行翻转,计数到2时再次进行翻转.outputclk_even;即在计数值在邻近的1和2进行了2次翻转.这样reg[3B0]count1,count2;实现的三分频占空比为1/3或者2/3.如果要实现regclkA,cl