完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
2个回答
|
|
在 FPGA 的设计中分频器是使用频率较高的基本设计,在很多的设计中也会经常用到芯片集成的锁相环资源,如用 Xilinx 的 DLL 以及 Altera的PLL 来进行时钟的分频、倍频与相移。在一些对时钟精度不高的场合,会经常利用硬件描述语言来对时钟源进行时钟分频。
分频器是一种基本电路,一般包括数字分频器、模拟分频器和射频分频器。根据不同设计的需要,有时还会要求等占空比。数字分频器采用的是计数器的原理,权值为分频系数。模拟分频器就是一个频率分配器,用带阻带通实现(比如音箱上高中低喇叭的分配器)。射频分频器也是滤波器原理,用带内外衰减,阻抗匹配实现。 随着 FPGA 技术的发展,基于 FPGA 技术的硬件设计数字分频器已成为数字系统设计的研究重点。数字分频器通常分为整数分频器和小数分频器。在有些需求下还要分数分频器。 本设计是基于 FPGA 的数字分频器,通过 VHDL 硬件设计语言,在 Modelsim6.5 上对设计的分频器进行仿真验证。 2.数字分频器的设计 数字分频器的设计与模拟分频器的设计不同,数字分频器可以使用触发器设计电路对时钟脉冲进行时钟分频。分频器的一个重要指标就是占空比,即在一个周期中高电平脉冲在整个周期中所占的比例。占空比一般会有 1:1,1: N 等不同比例的要求,由于占空比的比例要求不一样,所以采用的时钟分频原理也各不同。在 FPGA 的数字分频器设计中,主要分为整数分频器、小数分频器和分数分频器。现在分别介绍整数分频器的设计、小数分频器的设计和分数分频器的设计。 2.1整数分频器的设计 整数分频器是指基准时钟与所需的时钟频率成整数倍关系。整数分频器的分频种类一般包括奇数分频和偶数分频。虽然时钟分频原理会根据时钟分频的要求不同而不同,但均可采用标准计数器原理来实现。 偶数分频器的设计原理较为简单,主要是利用计数器来实现。假设要进行n(n为偶数)分频,设定一个在分频时钟上升沿触发的计数器循环计数来实现。当计数器值为0-((n/2)-1)时,输出时钟信号进行翻转,同时给计数器一个复位信号,使下一个时钟上升沿到来时,计数器重新开始计数,由此不断循环。 奇数分频器的设计原理与偶数分频的设计方法很相似,都是通过计数器来实现的。如果要进行 n(n为奇数) 分频,直接设计n进制的计数器即可。还有一种方法就是选择两个计数器 cnt1 和 cnt2 ,分别在时钟上升沿和下降沿触发计数。 cnt1 和 cnt2 均当计数器值为0-((n/2)-1)时,输出时钟信号进行翻转,同时给计数器一个时钟复位信号,使下一个时钟上升沿到来时,计数器重新开始计数,如此进行循环下去。由此可知,计数器 cnt1 和 cnt2 的实现方法一样,只是翻转边沿不一样,最终输出的时钟为 clkout = clk1 + clk2。 2.2小数分频器的设计 小数分频的基本原理是采用脉冲吞吐计数器和锁相环技术先设计两个不同分频比的整数分频器,然后通过控制单位时间内两种分频比出现的不同次数来获得所需的小数分频值,分频系数为 N-0.5(N为整数) 时,可控制扣除脉冲的时间,以使输出成为一个稳定的脉冲频率,而不是一次 N 分频,一次 N-1 分频。 小数分频器有很多种设计方案,但其基本原理是一样的,都是在若干个分频周期中采取某种方法使几个周期多计一个数或少计一个数,从而在整个计数周期的总体平均意义上获得一个小数分频比。还有一种分频方法就是,利用状态机和计数器。假设时钟信号的频率为 1khz,需要产生 750khz 的分频信号,其分频系数为6/8。基本设计思想是,在8个时钟信号中保留6个时钟信号。这种方法是需要预先设定状态机的个数,主要用于已经知道需要使用哪一个小数分频系数的情况下。如果分频系数发生变化,则需要在程序内部进行修改。 双模前置小数分频的设计方法是,假设要进行 m,n 时钟分频(其中 m、n 都是整数,且n<10),因为只有一位小数,所以总共要进行10次分频。总的规律是:进行 n 次 m+1 分频,10-n 次 m 分频。例如,设计一个分频系数为3.6的分频器,将小数部分的6按倍累加,假设累加的值为a,如果a<10,则进行3分频,如果 a<10 下一次则加上6。此后,如果 a>=10 ,则进行4分频,4分频过后再将累加值减去4后与10比较以决定下一次分频是4分频还是3分频,这样分频器设计成6次4分频,4次3分频,总的分频值为(6×4+4×3)/(6+4) = 3.6。 2.3分数分频器的设计 分数分频器的数据输入部分与小数分频基本相同,差别仅在于数码管显示部分显示三位分频系数。由于分数在一定情况下可以转化为小数进行计算,所以分数分频的设计思想与小数分频的很相似。假设进行分频,总分频数由分母 m 决定,规律是进行 n 次 j+1 分频和 m-n 次j分频。两种分频交替进行的计算方法和小数分频的很类似。累加分结果是大于等于分母还是小于分母决定是进行j分频还是j+1分频。 |
|
|
|
3.数字分频器的 FPGA 设计及仿真
利用 FPGA 对 8192kHz 的基准时钟进行时钟分频,分别得到 1024kHz 、512kHz 、 256kHz 和1kHz 的时钟频率,需要分别进行8分频、16分频、32分频和8192分频。在利用 FPGA 进行设计整数分频器时,通过 VHDL 硬件描述语言利用计数器方式来实现。 3.1 1024kHz 时钟分频 根据所需的时钟频率为 1024kHz 的时钟,而晶振时钟的频率为 8192kHz,晶振时钟与所需的时钟频率恰巧是8倍的整数倍关系,因此需要对 8192kHz 的晶振时钟进行8分频来获得所需要的时钟。根据整数倍分频器的设计方法原理,通过 ISE9.1 逻辑设计工具,利用 VHDL 硬件描述语言来进行8分频的分频器设计。然而8又是偶数,所以需要设计的是偶数分频器。对设计的内容通过 Modelsim6.5 仿真软件进行仿真验证,结果如图3-1所示。 图3-1 由图3-1得知,当 8192kHz 的晶振时钟输入8个时钟,系统输出1个时钟,即一个 1024kHz 频率的时钟。程序设计中采用计数器来实现,当计数器值为0-((n/2)-1)=-3时,输出时钟信号进行翻转,同时给计数器一个复位信号,使下一个时钟上升沿到来时,计数器重新开始计数,不断循环下去。 3.2 512kHz 时钟分频 根据所需的时钟频率为 512kHz 的时钟,而晶振时钟的频率为 8192kHz ,晶振时钟与所需的时钟频率恰巧是16倍的整数倍关系,因此需要对 8192kHz 的晶振时钟进行16分频来获得所需要的时钟。根据整数倍分频器的设计方法原理,通过 ISE9.1 逻辑设计工具,利用 VHDL 硬件描述语言来进行16分频的分频器设计。然而16又是偶数,所以需要设计的是偶数分频器。对设计的内容通过 Modelsim6.5 仿真软件进行仿真验证,结果如图3-2所示。 图3-2 512kHz 时钟分频 由图3-2得知,当 8192kHz 的晶振时钟输入16个时钟,系统输出1个时钟,即一个 512kHz 频率的时钟。程序设计中采用计数器来实现,当计数器值为0-((n/2)-1)=-7时,输出时钟信号进行翻转,同时给计数器一个复位信号,使下一个时钟上升沿到来时,计数器重新开始计数,不断循环下去。 3.3 256kHz 时钟分频 根据所需的时钟频率为 256kHz 的时钟,而晶振时钟的频率为 8192kHz ,晶振时钟与所需的时钟频率恰巧是32倍的整数倍关系,因此需要对 8192kHz 的晶振时钟进行32分频来获得所需要的时钟。根据整数倍分频器的设计方法原理,通过 ISE9.1 逻辑设计工具,利用 VHDL 硬件描述语言来进行32分频的分频器设计。然而32又是偶数,所以需要设计的是偶数分频器。对设计的内容通过 Modelsim6.5 仿真软件进行仿真验证,结果如图3-3所示。 图3-3 256kHz时钟分频 由图3-3得知,当 8192kHz 的晶振时钟输入32个时钟,系统输出1个时钟,即一个 256kHz 频率的时钟。程序设计中采用计数器来实现,当计数器值为0-((n/2)-1)=-15时,输出时钟信号进行翻转,同时给计数器一个复位信号,使下一个时钟上升沿到来时,计数器重新开始计数,不断循环下去。 3.4 1kHz 时钟分频 根据所需的时钟频率为 1kHz 的时钟,而晶振时钟的频率为 8192kHz ,晶振时钟与所需的时钟频率恰巧是8192倍的整数倍关系,因此需要对 8192kHz 的晶振时钟进行8192分频来获得所需要的时钟。根据整数倍分频器的设计方法原理,通过 ISE9.1 逻辑设计工具,利用 VHDL 硬件描述语言来进行8192分频的分频器设计。然而8192又是偶数,所以需要设计的是偶数分频器。对设计的内容通过 Modelsim6.5 仿真软件进行仿真验证,结果如图3-4所示。 图3-4 1kHz时钟分频 由图3-4得知,当 8192kHz 的晶振时钟输入8个时钟,系统输出1个时钟,即一个 1kHz 频率的时钟。程序设计中采用计数器来实现,当计数器值为0-((n/2)-1)=-4095时,输出时钟信号进行翻转,同时给计数器一个复位信号,使下一个时钟上升沿到来时,计数器重新开始计数,不断循环下去。 4.结束语 本文给出了基于 FPGA 的数字分频器设计方法。采用计数器设计方法实现了对 8192kHz 的基准时钟进行分频,分别得到 1024kHz 、 512kHz 、256kHz 和 1kHz 的时钟频率。其他的偶数倍分频也可采用类似的方法分频的到需要的频率时钟。通过在 Modelsim6.5 仿真工具验证了设计的正确性。 |
|
|
|
只有小组成员才能发言,加入小组>>
2867 浏览 3 评论
27633 浏览 2 评论
3441 浏览 2 评论
3963 浏览 4 评论
基于采用FPGA控制MV-D1024E系列相机的图像采集系统设计
2306 浏览 3 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-24 15:15 , Processed in 0.752858 second(s), Total 81, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号