基于FPGA的分频器设计研究
- 格式:doc
- 大小:500.50 KB
- 文档页数:7
一种基于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的奇偶分频器的设计与实现学生姓名:学号:专业:电子信息工程班级:电信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分频器的设计摘要:分频器是数字系统设计中的基本电路,在复杂数字逻辑电路设计中,根据不同设计的需要,会遇到偶数分频、奇数分频、半整数分频等,有时要求等占空比,也有要求非等占空比。
在同一个设计中有时要求多种形式的分频,通常由计数器或计数器的级联构成各种形式的偶数分频和奇数分频,实现较为简单,但是对半整数分频实现较为困难。
设计师希望有一种比较方便实用的设计方法,根据情况的需要,在实验室就能设计分频器并且可以马上检测使用,只需要更改频率系数而不修改其他器件或是电路板。
因此,本文利用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的多种形式分频器设计与实现摘要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)三个部分。
第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的小数分频器的设计与实现【摘要】本文首先分析了现有小数分频器的优缺点,在此基础上提出了一种改进型小数分频器的设计方法。
同时结合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的等占空比任意整数的分频器设计方法。
首先简要的介绍了整数和半整数分频的原理,在此基础上给出了一种等占空比任意整数分频器的方法。
在文中给出了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 基于FPGA分频器设计关键词突现分析图3 小数分频器的设计方法及实现过程小数分频器的设计方法:IP核实现法(如PLL、DLL、DCM等)、双模交错计数法和步长累加法[10]以下分别对这三种方法的原理和实现过程进行描述,并在QuestaSim软件中对其进行仿真验证。
最后由图2可以看出CLKFX的输出频率为1/0.04μs =25MHz,设计满足需求,实现分频比为1.6的小数分频器设计。
3.2 双模交错计数法(1)实现原理:计数器交错进行模值N计数和模值N+1计数,在分频周期内对N和N+1进行个数平均,实现小数分频器设计[12]。
双模交错计数法的实现原理如图3所示。
该方法的难点是计数器的模值控制逻辑和计数器的累加值修订。
(2)该方法的实现过程:①利用输入时钟频率和输出时钟频率,计算出分频比(输入时钟频率/输出时钟频率),设分频比的小数位数为a。
②选取计数器的两个模值N和N+1,选取原则为N<分频比<N+1。
③在输入时钟的上升沿对计数值进行累加,得到计数器的累加值。
计数值为固定值,具体值为由图4可以看出共进行了10次分频,其中9分频为7次,8分频为3次,分频比为(9×7+8×3)/10=8.7。
clk_out在每个分频周期的平均频率为1/1.0875μs/10=9.1954MHz,设计满足需求,实现分频比为8.7的小数分频器设计。
3.3 步长累加法(1)实现原理:以计数器的模值N为溢出基准,计数器在输入时钟的上升沿依次累加步长STEP,计数器的溢出位即为分频输出时钟[13]。
步长累加法的实现原理如图5所示。
该方法的难点是计数器的模值和步长选择。
(2)该方法的实现过程:①利用输入时钟频率和输出时钟频率,计算出分频比(输入时钟频率/输出时钟频率)。
②根据分频比,选定计数器模值N和计数器累加步长STEP。
选取原则:N越大精度越高,STEP=N/分频比。
③在输入时钟的上升沿依次累加图2 IP核实现法仿真波形图3 双模交错计数法的实现原理图4 双模交错计数法仿真波形图5 步长累加法的实现原理10 集成电路应用 第 38 卷 第 2 期(总第 329 期)2021 年 2 月所示。
基于FPGA任意倍数分频器设计目录1 绪论 (1)1.1课题分析 (1)1.2FPGA概述 (2)1.3VHDL语言和QUARTUS II简介 (4)1.3.1 VHDL语言简介 (4)1.3.2 QUARTUS II简介 (6)2 分频基本原理 (8)2.1等占空比偶数分频方法 (8)2.2等占空比的奇数分频方法 (8)2.3分数分频方法 (9)2.4小数分频方法 (9)2.5任意倍数分频器 (10)3 任意倍数分频器设计 (12)3.1设计思想 (12)3.2顶层框图设计 (13)3.3顶层文件设计 (13)3.4 模块设计 (14)3.4.1 偶数分频模块的设计 (14)3.4.2 奇数分频模块的设计 (15)3.4.3 半整数模块设计 (16)3.4.4 占空比可调的分频模块设计 (17)3.4.5 小数分频模块设计 (18)3.4.6 encoder_35模块的设计 (19)3.4.7 led模块的设计 (20)3.4.8 mux51模块的设计 (21)结论 (23)致 (24)参考文献 (25)附录A VHDL源程序 (26)附录A1:偶数分频实现的程序 (26)附录A2奇数分频实现的程序 (28)附录A3半整数分频实现的程序 (30)附录A4占空比可调的分频实现的程序 (32)附录A5小数分频实现的程序 (34)附录A6 ENCODER_35模块实现的程序 (42)附录A7 LED的实现程序 (43)附录A8 MUX51模块的实现程序 (47)附录B顶层文件设计原理图 (48)1 绪论1.1 课题分析随着电子技术的高速发展,FPGA/CPLD以其高速、高可靠性、串并行工作方式等突出优点在电子设计中受到广泛的应用,而且代表着未来EDA设计的方向。
FPGA/CPLD的设计采用了高级语言,如VHDL语言AHDL语言等,进一步打破了软件与硬件之间的界限,缩短了产品的开发周期。
所以采用先进的FPGA/CPLD取代传统的标准集成电路、接口电路已成为电子技术发展的必然趋势[1]。
实验5 基于FPGA的分频器设计预习内容阅读《电工电子实验教程》第6.6节中触发器及时序逻辑电路的内容。
预先学习Quartus II软件的使用方法。
预习实验的内容,自拟实验步骤和数据表格,选择使用器件,完成电路设计,画出原理电路,手写预习报告。
一、实验目的1.了解EDA软件在电子设计当中的重要作用。
2.熟悉并掌握Quartus II开发软件的基本使用方法。
3.运用图解法设计分频器电路,并进行电路仿真。
二、知识要点FPGA(Field-Programmable Gate Array)是一种可编程器件,即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。
它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
FPGA主要生产厂商有:Altera、Xilinx、Actel、Lattice。
FPGA的开发软件包括Altera公司的Quartus II、Xilinx 公司的ISE、Lattice 公司的isplever Base。
Quartus II是Altera公司的第四代可编程逻辑器件集成开发环境,提供从设计输入到器件编程的全部功能。
Quartus II可以产生并识别EDIF网表文件、VHDL网表文件和Verilog HDL网表文件,为其它EDA工具提供了方便的接口;可以在Quartus II集成环境中自动运行其它EDA工具。
利用Quartus II软件的开发流程可概括为以下几步:设计输入、设计编译、设计定时分析、设计仿真和器件编程。
用户通过开发软件提供的设计工具实现自己的电路设计以及相应的配置,当用户通过仿真验证结论后,便可把设计下载至FPGA中,实现设定功能。
三、实验内容设计一个分频电路(使用74LS161和必要的门电路)。
要求得到8分频(输出频率为输入频率的八分之一)信号和32分频信号。
基于FPGA的分频器设计FPGA(Field-Programmable Gate Array)是一种可编程逻辑设备,它可以在设计过程中根据需求进行编程和配置,实现不同的功能。
在FPGA中实现分频器是一个常见的应用,本文将介绍基于FPGA的分频器设计。
1.分频器的原理分频器用于将输入信号的频率减小到所需的频率。
它包含一个计数器和一个比较器。
计数器根据一个时钟信号进行计数,当达到一个预设值时,比较器会产生一个输出信号,作为分频器的输出。
在FPGA中实现分频器,首先需要选择适当的时钟源作为输入信号。
FPGA通常有一个高频时钟源,我们可以利用这个时钟源生成所需的低频信号。
3.设计步骤(1)确定时钟源:选择一个合适的高频时钟信号作为输入信号。
(2)选择分频器类型:根据需求选择分频器的类型,常见的有可控分频器和固定分频器。
(3)设置分频值:根据需要将输入信号的频率降低到所需的频率,设置分频值。
(4)设置计数器:在FPGA中,使用计数器来实现分频器。
根据所需的分频值,设置计数器的初始值和比较值。
(5)设计比较器:比较器用于判断计数器是否达到比较值,如果达到则产生一个输出信号。
(6)输出信号:比较器产生的输出信号作为分频器的输出信号,可以将其连接到需要的模块或引脚。
4.分频器设计实例下面以一个简单的可控分频器为例进行分频器的设计。
假设需要将输入信号的频率分频为输入频率的1/8,即输入频率为100MHz,输出频率为12.5MHz。
根据步骤,我们可以选择一个100MHz的时钟源作为输入信号。
然后,设置分频值为8,计数器的初始值为0,比较值为7(8-1)。
接下来,在FPGA中使用一个8位计数器来实现分频器。
计数器的输出连接到一个8位比较器,比较器的输出即为分频器的输出信号。
最后,将输出信号连接到需要的模块或引脚,以完成分频器的设计。
5.总结本文介绍了基于FPGA的分频器设计。
分频器是将输入信号的频率降低到所需频率的设备,可通过在FPGA中实现计数器和比较器来完成。
装……订……线基于FPGA的分频器设计一、实验目的1、了解EDA软件在电子设计当中的重要作用EDA:EDA是电子设计自动化(Electronic Design Automation)的缩写,在)的缩写,在20世纪60年代中期从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CA T)和计算机辅助工程(CAE)的概念发展而来的。
EDA技术:就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言VHDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。
EDA技术的出现,极大地提高了电路设计的效率和可操作性。
2、熟悉并掌握MAXPLUS II 或QUARTUS II等开发软件的基本使用方法。
3、运用图解法设计分频器电路,并进行电路仿真。
二、实验内容利用MAXPLUS II开发软件设计分频电路。
1MHz除10除10除10除10除10除10100KHz10KHz1KHz100Hz10Hz1Hz图分频电路框图从图中我们可以看出将1MHZ的脉冲连续6次除10,即可得到我们需要的输出频率。
利用MAXPLUS II 或QUARTUS II等开发软件的器件库,找到一个BCD的计数器:74LS160,(如图)从它的波形图中可看到它具有的逻辑功能:BCD计数,异步清零,有进位输出。
其中CLK—为时钟信号;ENT、ENP—为使能信号,高电平有效;CLRN—异步清零端,电平为高时,计数器清零,电平为低时,允许计数;QD~QA—计数器输出端;RCO—进位输出端。
图74LS160图形符号C O U N T E RCLKE N TABCDLDNE N PCLRNQDQAQBQCR C O74160inst9第1页/共3页装……订……线图 74LS160波形图74LS160是一个对输入时钟进行十分频的器件。
当计数器从0计数到9时,RCO 从低电平跳到高电平,在下一个脉冲到来时,RCO 再回到低电平。
内蒙古科技大学本科生毕业设计说明书(毕业论文)题目:基于FPGA的奇偶分频器的设计与实现基于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 (II)第一章绪论 (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开发平台上通过VHDL文本输入和原理图输入相结合的方式,编程给出了仿真结果。
最后通过对各种分频的分析,利用层次化设计思想,综合设计出了一种基于FPGA的通用数控分频器,通过对可控端口的调节就能够实现不同倍数及占空比的分频器。
1.引言
分频器是数字系统中非常重要的模块之一,被广泛应用于各种控制电路中。
在实际中,设计人员往往需要将一个标准的频率源通过分频技术以满足不同的需求。
常见的分频形式主要有:偶数分频、奇数分频、半整数分频、小数分频、分数分频。
在某些严格的情况下,还有占空比的要求。
其中非等占空比的偶数分频器和奇数分频器其实现比较容易,但对于半整数分频器和占空比为50%的奇数分频器实现比较困难。
本文首先介绍了各种分频器的实现原理,并结合VHDL硬件描述语言对其进行了仿真,最后提出一个可控的通用分频器的设计方法,该方法可实现任意分频,资源消耗低,具有可编程等优点。
2.偶数分频器
偶数分频器比较简单,即利用计数器对需要分频的原始时钟信号进行计数翻转。
例如:要进行M=2N(N为自然数)分频,当计数值为0~k-1时,输出高
电平,当计数值为k-1~2N-1时输出低电平,同时计数值复位,如此循环可实
现任意占空比的偶数分频,其中M和k为预置数,可根据分频倍数和占空比的要求进行置数。
如图1所示,当k=N时,即可实现占空比为50%的偶数分频。
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开发平台,设计了一种能够满足上述各种要求的较为通用的分频器。