基于FPGA的分频器设计研究
一种基于FPGA的任意分频器设计与实现

一种基于FPGA的任意分频器设计与实现李炯【期刊名称】《现代电子技术》【年(卷),期】2012(035)024【摘要】根据直接数字频率合成器(DDS)工作原理,介绍了一种基于FPGA的任意分频系数的分频器的设计,该分频器能实现分频系数和占空比.通过Verilog语言进行了编译并且给出了仿真图.该设计中的分频器没有竞争冒险,可移植性强,占用的FPGA资源少.本设计在友晶公司DE0的开发板上可完全实现,结果表明设计是正确和可行的.分频器在FPGA开发设计中应用非常广泛,故本设计具有很强的实用价值.%The design of a FPGA-based frequency divider with arbitrary frequency coefficients is introduced on the basis of the direct digital frequency synthesizer ( DDS ) principle, the divider can realize frequency coefficient and duty ratio. The compilation is achieved with Verilog language. The simulation diagrams are provided in this paper. The design of the frequency divider is no competition risk adventure. It has strong portability and less occupancy of FPGA resource. The design can be fully realized on the DEO development board made by Youjing Company. The application result shows that the design is correct and feasible. The frequency divider in FPGA development design is widely used, so this design has a certain practical value.【总页数】3页(P185-186,190)【作者】李炯【作者单位】湖北大学物理学与电子技术学院,湖北武汉430062【正文语种】中文【中图分类】TN919-34【相关文献】1.基于CPLD/FPGA的任意分频器设计研究与仿真 [J], 王耀琦;王小鹏;王静2.基于FPGA的中频电源的任意占空比的n分频器设计 [J], 孔宏江3.基于FPGA的任意整数分频器的设计 [J], 黄国达4.浅谈基于FPGA任意倍数分频器 [J], 陈姣5.基于FPGA的任意数值分频器的设计 [J], 周殿凤;康素成;王俊华因版权原因,仅展示原文概要,查看原文内容请购买。
基于FPGA的奇偶分频器的设计与实现

内蒙古科技大学本科生毕业设计说明书(毕业论文)题目:基于FPGA的奇偶分频器的设计与实现学生姓名:学号:专业:电子信息工程班级:电信10-1班指导教师:基于FPGA的奇偶分频器的设计与实现摘要分频器作为一种最基本的数字电路,广泛的应用在各种复杂的逻辑电路设计中,对于FPGA芯片来说,虽然能用自带的锁相环来产生一部分我们所需的频率,但是,用VHDL语言实现分频能从同一时钟较为方便、快捷的生成多个所需要的频率,同时能够实现信号的同步,因此,分频器的应用非常广泛。
本设计应用软件为开发平台,运用VHDL语言编程实现整数的奇偶分频的设计,在本设计中实现了0、2、4、6、8、10、12、14偶数的整数分频器设计和1、3、5、7、9、11、13、15奇数的整数分频器设计。
通过仿真结果,验证了设计的正确性。
关键词:FPGA;分频器;VHDL语言;Quartus ⅡDesign and implementation of FPGA-based parity dividerAbstractDivider as a basic digital circuits, widely used in a variety of complex logic circuit design, the FPGA chip, although able to own a part of our phase-locked loop to produce the desired frequency, but using VHDL language divide from the same clock frequency is more convenient and efficient to generate multiple needs, while able to achieve synchronization signal, and therefore, the divider is widely used.The design of application software development platform, the use of VHDL language programming odd integer divider design, the design is implemented in an even integer divider 0,2,4,6,8,10,12,14 design and 1,3,5,7,9,11,13,15 odd integer divider design. The simulation results verify the correctness of the design.Key words: FPGA; divider; VHDL language;Quartus Ⅱ目录摘要 (I)Abstract...................................................................................................................... I I 第一章绪论. (1)1.1 课题来源 (1)1.2 选题的意义和目的 (2)1.3 课题研究现状 (3)1.4 本文组织结构 (4)第二章EDA技术 (6)2.1 FPGA技术 (6)2.2 Quartus Ⅱ软件简介 (7)2.3 VHDL语言 (8)2.3.1 VHDL简介 (8)2.3.2 VHDL特点 (9)2.3.3 VHDL组成 (10)第三章奇偶分频器设计与仿真 (12)3.1 偶数分频 (12)3.1.1 原理分析 (12)3.1.2 设计与仿真 (12)3.2 奇数分频 (17)3.2.1 原理分析 (17)3.2.2 设计与仿真 (18)第四章系统设计 (23)4.1 设计的任务 (23)4.2 系统设计 (23)4.3 其余模块设计 (27)4.3.1 encoder_12模块 (27)4.3.2 mux21模块 (29)4.3.3 数码管显示驱动模块 (30)第五章下载与测试 (35)5.1 BTYG-EDA实验概述 (35)5.2 BTYG-EDA实验开发系统特点 (35)5.3 引脚分配 (35)5.4 验证 (36)第六章结论与展望 (37)6.1 结论 (37)6.2 展望 (37)参考文献 (39)致谢 (40)第一章绪论1.1课题来源分频器作为数字系统设计中一类重要的电子电路,在数字电路的迅速发展历程中,通常要运用分频器来实现设计中希望获取的时钟频率。
基于FPGA分频器的研究与设计

基于FPGA分频器的设计摘要:分频器是数字系统设计中的基本电路,在复杂数字逻辑电路设计中,根据不同设计的需要,会遇到偶数分频、奇数分频、半整数分频等,有时要求等占空比,也有要求非等占空比。
在同一个设计中有时要求多种形式的分频,通常由计数器或计数器的级联构成各种形式的偶数分频和奇数分频,实现较为简单,但是对半整数分频实现较为困难。
设计师希望有一种比较方便实用的设计方法,根据情况的需要,在实验室就能设计分频器并且可以马上检测使用,只需要更改频率系数而不修改其他器件或是电路板。
因此,本文利用verilog硬件描述语言,通过开发平台,使用FPGA,设计了一种能满足上述情况的通用分频器。
只要在分频器的输入端输入相应的分频系数,就可以得到所需的频率。
关键词:分频器;偶数;奇数;半整数;分频系数;FPGASeparate frequency inverter based on FPGA designAbstract:Points are the frequency of an digital system design, the basic circuit in complex digital logic circuit design, according to different design needs, will meet even points frequency, an odd number of points frequency, half integer points frequency etc, sometimes require 390v, such as the request 390v. In the same design sometimes require multiple forms of points frequency, usually by a counter or counter cascade constitute various forms of the frequency and the odd points even points, to achieve comparatively simple frequency, but half-and-half integer points frequency division frequency realize more difficult. Designers hope to have a more convenient and practical design methods, according to the needs of the laboratory condition, can design points frequency device and can immediately detection using, only need to change frequency coefficients and not modify other device or circuit board. Therefore, this paper use verilog hardware description language, through the development platform, use the FPGA, design a kind of can meet the above situation of practical points frequency device. As long as the frequency of an in points corresponding points input input frequency coefficients, can get frequency required.Keywords: Points, frequency, manometers, Even, Odd, Half an integer, Points frequency coefficients, FPGA目录第一章绪论 (1)1.1 FPGA简介 (1)1.2 选题的意义和目的 (2)1.3 国内外应用现状及研究现状 (3)1.3.1 应用现状 (3)1.3.2 研究现状 (4)1.4 本文组织结构 (5)第二章几类分频器的设计及其分频原理 (7)2.1 偶数倍分频 (7)2.1.1 分频原理 (7)2.1.2 软件简介 (7)2.1.3 软件仿真 (7)2.2 奇数倍分频 (9)2.2.1 分频原理 (9)2.2.2 软件仿真 (10)2.3 半整数分频 (12)2.4 小数分频器 (13)2.4.1 积分分频器 (13)2.4.2 累加器分频 (14)2.4.3 小数分频器的应用 (15)2.5 本章小结 (17)第三章通用分频器的设计 (18)3.1 设计方案 (18)3.1.1 设计方案一 (18)3.1.2 设计方案二 (18)3.2 系统设计 (19)3.2.1 电路工作流程图及部分程序 (20)3.2.2时钟输出流程图及部分程序 (23)3.3 通用分频器的应用 (25)3.3.1 等占空比的奇数分频器 (25)3.3.2 任意占空比的奇、偶数分频 (25)3.3.3 等占空比的偶数分频器 (26)3.3.4 半整数分频器 (26)3.4 本章小结 (26)结论 (27)致谢 (28)参考文献 (29)第一章绪论1.1 FPGA简介FPGA是现场可编程门阵列的简称,是可编程逻辑器件(PLD)问世以来的第四代产品,适合于时序、组合等逻辑电路的应用。
一种基于FPGA的分频方法研究

o p ut ut uto :
t go e ur
rl ii : c ut - ; e tz 0 o n rO  ̄ se ] e- a as ( gded ) l y@ n eg k w e
b g“ ei
因 此 。 何 对 程 序 语 句 进 行 综 合 和 调 整 。 之 产 生 所 需 的频 如 使 率 . 时 又 占用 较少 的逻 辑 单 元 . 本 文 讨论 的一 个 重 要 内容 。 同 是 2 设 计 思 想 及 实 现 . N 分频 电 路 的设 计 思 想 是 对 输 入 脉 冲 每 N2个 周 期 响应 一 , 次 , 用 简单 的 边 沿 触 发 来 控 制 输 出 . 利 即对 输 入 脉 冲 进 行 计 数 。 每 输入 N2个 脉 冲 . 出翻 转 一 次 . 输 出 脉 冲 频 率 是 输 入 脉 冲 I 输 则
用 n, C U ) G P 的几 个 逻 辑单 元 。 谓参 数 化就 是 把程 序 中 的某 所 些 参 数 设 计 成 可 以改 变 的 量 . 用 户 可 以根 据 需 要 设 定 参 数 的 使 值 . 满 足 不 同 的 需 求 以 。在 分频 器 的设 计 过 程 中 , 用 参 数 化 的 采 设 计 思 想 。 以使 分 频 程 序 具 有 更 大 的 灵 活 性 和 通 用性 。 可 在 F G / P D上 . 用 V m0 L设 计 的 分 频 器 可 以嵌 P AC L 采 e g HD 入 在 一 个 系 统 中 。 用 不 同 的 V ro D 采 ei g H L程 序 语 句 . 以实 现 l 可 相 同 的 分频 功 能 。 综 合 后 . 所 占用 的 逻 辑 单 元 CE 数 却 差 别 但 其 L)
基于FPGA的多种形式分频器设计与实现

基于FPGA的多种形式分频器设计与实现摘要FPGA(现场可编程门阵列),它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。
它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
本文通过VHDL语言编程在FPGA上实现多种形式的分频器的设计。
包括偶数分频,奇数分频,半整数分频,占空比可调分频,小数分频,并在这基础上实现了五种分频的集成。
并举例说明了分频器的应用。
关键词:FPGA,VHDL,分频器设计;the design and implement of various formsof points on the frequency based on FPFAAbstractFPGA(Field Programmable Gata Array),it is the future development product based on programmable devices, such as PAL,GAL,CPLD and so on. It is half a custom circuit in the field of ASIC. It not only solves the shortage of custom circuit, but also overcomes the limited defect of the existing programmable device gate circuit. This article realize the design and implement of various forms of points on the frequency through VHDL language.It Includes the even points frequency, an odd points frequency, half integer points frequency, occupies emptiescompared adjustable points frequency, decimal points frequency, And achieves the integration of five points frequency on this basis.It also illustrates the application of frequency device.目录第一章绪论 (1)第一节FPGA概述 (1)第二节VHDL语言的概述 (1)第三节分频器的概述 (2)第四节本文研究内容 (2)第二章VHDL语言 (3)第一节VHDL语言结构 (3)一、实体(ENTITY) (3)二、结构体(ARCHITECTURE) (3)三、程序包、库及配置 (4)第二节VHDL的数据类型与描述语言 (4)一、VHDL语言的对象 (4)二、VHDL语言的主要描述语句 (5)第三章多种形式分频器设计 (6)第一节设计任务 (6)一、设计的任务 (6)第二节系统设计与仿真 (6)一、顶层框图设计 (6)二、顶层文件设计 (7)三、模块设计 (8)第三节分频器的应用 (34)结论 (35)谢辞 (36)参考资料 (37)第一章绪论第一节 FPGA概述FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。
基于FPGA的小数分频器设计

第1章 本课题内容1 课题目的频率合成技术是现代通信系统的重要组成部份,是对一个高精度和高稳固度的基准频率进行加、减、乘、除四那么运算,产生具有一样稳固度和基准度的频率。
分频器是数字逻辑电路设计中常常利用的一个大体电路。
通常,整数分频能够很容易地用计数器或状态机来实现。
但在某些场合下,时钟源与所需要的频率并非成整数关系,现在便需要采纳小数分频器进行分频。
一样来讲,小数分频电路能够分为半整数分频电路和非半整数分频电路两类。
关于小数分频的FPGA 设计,目前普遍采纳的方式是双模前置小数分频,和一种由双模前置小数分频改良而取得的小数分频——用一个半整数分频器和一个整数分频器代替双模前置小数分频中的两个整数分频器。
尽管这两种方案输出时钟的占空比误差和抖动性能方面有所不同,但其工作原理却是一致的。
双模前置小数分频器在理论上能够实现任意小数分频。
但在实际的电路设计中,不可能真正实现任意小数分频。
小数分频器的精度受操纵计数器的阻碍,而操纵计数器的设计会受硬件资源的限制,尽管FPGA 有相当丰硕的硬件资源。
另外,基于FPGA 实现的双模前置小数分频器在两个整数分频时钟之间的切换点上,有时候会显现毛刺,而时钟是不该该有毛刺存在的。
现在,就要结合脉冲删除技术,设计出一种能够进行任意小数分频且可不能显现毛刺的小数分频方案,并通过编程实现。
本文利用VHDL 硬件描述语言的设计方式,通过MAXPLUS II 开发平台,利用Altera 公司的FPGA 器件,设计并实现了一种不同占空比的任意小数分频器。
2 小数分频的大体原理假设时钟源的频率为f 0 ,期望取得的频率为f 1 ,那么其分频比X 为: X=10f f (式1-1) 其中,X>1。
假设M<X<M+1,M 为整数,那么有 X=M+212N N N +=2121)1(N N N M N M +⨯++⨯ (式1-2)其中,N 1和N 2均为整数。
当N 1和N 2取不同的正整数时,从)(212N N N +能够取得任意一个小数,就能够够从理论上实现任意小数分频比的分频。
基于FPGA的小数分频器的设计与实现

基于FPGA的小数分频器的设计与实现【摘要】本文首先分析了现有小数分频器的优缺点,在此基础上提出了一种改进型小数分频器的设计方法。
同时结合VHDL文本输入和原理图输入方式,在FPGA开发平台上进行了电路设计,最后利用EDA设计软件QuartusII对其可行性进行了仿真验证。
仿真结果表明:通过对参数的设置,该方案可实现等占空比的任意小数分频。
【关键词】FPGA;仿真;VHDL引言分频器是控制类电路中常用的模块之一。
在实际应用中,设计人员常常需要将一个基准频率通过加、减、乘、除简单的四则运算进行频率合成,以满足不同的电路需求。
常见的偶数分频、奇数分频等成整数关系的频率合成实现相对比较容易。
但在某些的情况下,这种成整数关系的分频技术无法解决频率调整间隔过大的缺点,在此情况下本文提出了一种基于FPGA的小数分频的设计方法。
一般情况下,小数分频器包括半整数分频器和非半整数分频器。
对于半整数分频器我们在《基于FPGA 的通用数控分频器的设计与实现》[1]中有过详细介绍。
本文主要介绍非半整数分频器的设计和实现,并在FPGA开发平台上,结合VHDL文本输入和原理图输入方式进行了电路设计,同时利用EDA开发软件QuartusII对其可行性进行仿真验证。
仿真结果表明:该方法实现的小数分频,具有精度高、转化速度快、资源消耗低,可编程等优点,同时克服了小数分频中等占空比不易实现的问题。
1.几种常见小数分频器假设分频系数为K,输入频率为fin,输出频率为fout,则有:(1)其中:K>1当分频系数为小数时,则K可以表示为:(2)或:(3)其中,M、N、N1、N2均为正整数,且。
1.1 用BCD比例乘法器4527实现对于公式(2),可以利用十进制BCD比例乘法器的加法级联来实现[4]。
如图1所示,为两个4527 BCD比例乘法器的级联。
CLOCK端输入基准频率信号fin。
A、B、C、D四个端口是置数端,用以控制比例乘法器输出脉冲序列的个数。
基于FPGA的等占空比的整数分频器的设计

基于FPGA的等占空比的整数分频器的设计摘要:本文给出了一种基于FPGA的等占空比任意整数的分频器设计方法。
首先简要的介绍了整数和半整数分频的原理,在此基础上给出了一种等占空比任意整数分频器的方法。
在文中给出了N_in=5时的分频仿真设计结果,证实本设计方法的正确性和可行性。
关键词:等占空比;任意整数;分频器1 引言分频器是数字集成电路和FPGA设计的基础,是使用效率非常高的设计。
在数字电路设计中,经常会遇到分频器的设计。
对于偶整数分频器的设计非常简单,但是对等占空比的奇分频实现较为困难。
本文通过在设计非等占空比的基础上,经过二分频设计出等占空比的奇分频器,并将器与偶整数分频器巧妙结合称可以实现等占空比任意整数的分频器设计。
2 基本设计原理2.1 偶整数分频器设计由于偶整数的半分频仍为整数,所以设计比较简单。
从数字电路的角度来看,单极D触发器便可实现2分频器的设计。
即只要将D触发器的反相输出与输入相连接,便可在输出端输出时钟信号的2分频信号。
最一般的设计是采用模N 计数器和2分频器组合实现等占空比偶整数分频器。
2.2 半整数分频器设计半整数分频器的分频系数为N—0.5,其电路可由一个异或门,一个模N计数器和二分频器组成。
其中,模N计数器可以设置成带预置的计数器,这样可以实现任意分频系数为N-0.5的分频器。
半整数分频器的特点就是当二分频的输出q发生跳变的外部输入时钟clk周期里,模N计数器的状态变化了两次,从原本需要N个clk才能完成的计数循环减少了0.5个clk,使模N计数器变成了(N-0.5)计数器,得到半整数输出。
3电路实现通过上面的偶整数和半整数的原理介绍,我们可以看到两者的区别主要就在于半整数分频器设计中输出信号的反馈回来和时钟信号异或。
所以我们可以设计这样的一个电路,通过外部的控制信号来选择当前所需要的分频类型是偶整数分频还是奇整数分频,从而控制输出信号与输入时钟信号的异或结果。
即当选择偶整数分频时,异或结果仍为输入时钟信号,反之为输出信号与输入时钟信号的异或。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
FPGA结课论文学院:专业:班级:姓名:目录1、引言 (3)2、2N分频器的设计 (3)3、任意整数N分频器的设计 (4)4、半整数分频器设计 (5)5、由分频方法直接获得秒脉冲的设计方法 (6)6、总结 (7)基于FPGA的分频器设计)1 引言分频器是数字系统中常用来对某个给定时钟的频率进行再分频,以得到所需之各种信号频率的常用基本电路之一。
广泛应用于工业控制中的变频需要,电声技术的转化等。
基于FPGA 实现的分频电路一般有两种方法:一是使用FPGA 芯片内部提供的锁相环电路,如 ALTERA 提供的 PLL(Phase Locked Loop),Xilinx 提供的 DLL(Delay Locked Loop);二是使用硬件描述语言,如VHDL、Verilog HDL 等。
使用锁相环电路有许多优点,如可以实现倍频、相位偏移、占空比可调等。
但 FPGA 提供的锁相环个数极为有限,不能灵活满足使用要求。
而用硬件描述语言实现的分频电路消耗不多的逻辑单元就可以实现对时钟的操作,具有成本低、灵活可编程等优点。
2 2N分频器的设计分频系数为2N的分频器的实现最简单,可采用二进制加或减法计数器的设计来实现。
计数器可直接从Altera公司提供的宏功能模块LPM中调用,也可文本输入或原理图输入方式构成。
以一个4bit的二进制加法计数器为例进行分析说明。
以原理图输入方式设计四位二进制加法计数器如图1所示,经编译、时序模拟后得到仿真波形如图2所示:图1 四位二进制加法计数器图2 四位二进制加法计数器仿真波形从仿真波形可以看出分别由Q0、Q1、Q2、Q3得到的脉冲波形频率正是时钟信号CP的1/2、1/4、1/8和1/16。
亦即分频系数是2、4、8和16。
假设FPGA的CP所接石英晶体是20MHz,则不同引脚所得到的频率分别为10 MHz、5 MHz、2.5 MHz和1.25 MHz。
由上讨论推广可知,N位二进制计数器输出端的每一位输出信号其占空比为50%,从低到高排列分频系数正好为21、22、23、24……。
Nbit计数器可获得最高分频系数为2N。
3 任意整数N分频器的设计在很多情况下分频系数往往是任意正整数N,比如说7、10、1999等。
这时上面的方法就无法顺利达到设计要求。
整数分频器则非常方便的实现任意正整数N分频,其原理就是用计数值N可调的加法计数器设计对给定输入时钟信号完成N分频。
加法计数分频电路基本工作原理是先建立一个X位二进制加法计数器,而这个计数器的大小必须符合条件2X N才可以,X为计数器的位宽,N为分频系数。
当计数器在计数值为N 的瞬间,立刻复位至0。
这样在最高位输出端一个周期恰好是脉冲信号的N个周期,实现了N分频的目标。
以设计一个十分频电路为例,先建立一个四位二进制计数器,位宽是4bits(计数的默认范围是0~24-1=15),不过将把这样的计数在计数值为10的瞬间,立即复位改变成0,主要描述进程如下:……port(clk,reset,en:in std_logic; qH:out std_logic);end counter10;architecture behavior of counter10 issignal count:std_logic_vector(3 downto 0);beginprocess(reset,clk)beginif reset='1' then----异步清零count(3 downto 0)<="0000";else if(clk'event and clk='1')thenif(en='1') then----同步使能if(count="1001") then-----计数在计数值为10的瞬间,立即复位改变成0count<="0000"; else count<=count+1;end if; end if; end if; end if;end process;qH<=count(3);----将计数最高位作为分频器输出端口end behavior;经编译、时序模拟后得到仿真波形如图3所示,由此可知时间轴为480ns~580ns范围,恰好是最高位输出qH的一个完整周期包含脉冲时钟信号CLK的十个周期。
所以qH输出就是将脉冲信号频率进行十分频的结果。
图3 十分频电路的仿真波形以上分频设计思路清楚简单,但波形占空比非50%。
如要获得波形占空比为50%的信号则需修改程序另增加电路解决[2][3][4],可参考下面的半整数分频器的设计。
在此基础上如果把分频系数N作为电路外部可预置数处理,则构成数控分频电路[1],在工业中广为应用。
4 半整数分频器设计在有些电路中要用半整数分频器这样的电路[5][6]。
比如由于时钟源信号为50MHz,而电路中需要产生一个20MHz的时钟信号,其分频比为2.5,因此整数分频将不能胜任。
半整数分频的基本原理是采用脉冲吞吐计数器和锁相环技术先设计两个不同分频比的整数分频器,然后通过控制单位时间内两种分频比出现的不同次数来获得所需要的小数分频值。
分频系数为N-0.5的分频器电路可由一个异或门、一个模N计数器和一个二分频器组成。
在实现时,模N计数器可设计成带预置的计数器,这样可以实现任意分频系数为N-0.5的分频器。
图4给出了通用半整数分频器的电路组成。
采用VHDL硬件描述语言,可实现任意模N的计数器。
用原理图输入方式将模N逻辑电路、异或门和D触发器连接起来,便可实现半整数(N-0.5)分频器以及(2N-1)的分频。
现通过设计一个分频系数为2.5的分频器给出用FPGA设计半整数分频器的一般方法。
该2.5分频器由模3计数器、异或门和D触发器组成。
图4 通用半整数分频电路组成由于分频系数为2.5,先用整数N分频器设计方法设计一个可产生分频系数为3的分频器,也即模3计数器,并产生一个默认的逻辑符号COUNTER。
其输入端口为RESET、EN 和CLK;输出端口为QA和QB。
模3计数器VHDL描述结构与前面的N加减计数器的完全相同描述结构完全相同,所不同的仅仅是计数器的状态数。
故此处省略。
图5 2.5分频器顶层原理图将COUNTER、异或门和D触发器通过图5所示的电路逻辑连接关系,并用原理图输入方式调入图形编辑器,然后经逻辑综合即可得到如图6所示的仿真波形。
由图中QB与CP 的波形可以看出,QB会在CP每隔2.5个周期处产生一个上升沿,从而实现分频系数为2.5的分频器。
设CP为20MHz,则QB为8MHz。
因此可见,该电路不仅可得到分频系数为2.5的分频器(QB),而且还可得到分频系数为5,占空比为50%的分频器(Q)。
图6 2.5分频器仿真波形图5由分频方法直接获得秒脉冲的设计方法在数字系统设计中常常要用到秒脉冲信号,而硬件提供的信号源往往是振荡频率很高,通过VHDL程序设计可以用分频的方法很容易得到占空比为50%的秒脉冲信号。
假定时钟频率为XHz,周期则为1/X秒,要获取占空比为50%的秒脉冲,则要在0.5秒时发生高低转换,并且计数的脉冲个数N应满足N⨯1/X=0.5S。
例如,有一信号源频率是4MH Z,则X=4M,为了获得1H Z的秒脉冲信号,N=0.5⨯X=0.5⨯4⨯106=2⨯106,表明计数取值范围是0 to 1999999。
部分源程序如下:……process(clk)variable cnt:integer range 0 to 1999999; -----产生分频的取值范围variable X:std_logic;beginif(clk'event and clk='1')thenif cnt<1999999 then cnt:=cnt+1;else cnt:=0; x:=not x;end if; end if;q<=x;end process;end behavior;经编译、时序模拟后得到仿真波形如图7所示,由此可知时间轴为500ms~1.5s范围,恰好输出端q的一个完整周期是1s,占空比为50%。
此方法可以举一反三,关键在确定产生分频的取值范围。
图7 秒脉冲仿真波形图以上分频器设计采用杭州康芯电子有限公司开发的电子设计应用板(型号: KX-DVP3F)进行对系统的调试与功能验证。
利用ISE软件生成.sof或者.pof编程文件,通过USB下载器将编程文件配置到芯片中,实验结果显示波形稳定,分频系数完全达到设计要求。
通过修改源程序中的某些参数,即可改变分频系数,可移植性好,为电子设计者提供了方便可行的分频设计方法,改变了传统硬件分频成本高,不够灵活的现状。
6总结在数字逻辑电路设计中,分频器是一种基本电路。
我们常会遇到偶数分频、奇数分频、半整数分频等,在同一个设计中有时要求多种形式的分频。
通常由计数器或计数器的级联构成各种形式的偶数分频和奇数分频,实现较为简单。
但对半整数分频分频实现较为困难。
但在某些场合下,时钟源与所需的频率不成整数倍关系,此时可采用小数分频器进行分频。
例如:时钟源信号为130MHz,而电路中需要产生一个20MHz的时钟信号,其分频比为6.5,因此根据不同设计的需要,本文利用Verilog硬件描述语言,通过ISE开发平台,设计了一种能够满足上述各种要求的较为通用的分频器。