基于FPGA的双模前置小数分频器的设计 毕业设计
FPGA频率计设计毕业设计(论文)

一、课程设计原理1、测频原理及误差分析本次课程设计采用直接测频法。
直接测频法就是在确定的闸门时间内,记录被测信号的脉冲个数。
这种方法的计数值也会产生最大为±1个脉冲误差。
进一步分析测量准确度。
设待测信号脉冲周期为T1,频率为F1,当闸门时间为T=1s 时,测量准确度为&=T1/T=1/F1。
由此可知直接测频法的测量准确度与信号的频率有关。
当待测信号频率较高时,测量准确度也较高,反之测量准确度也较低。
2、占空比测量原理占空比:占空比是指高电平在一个周期之内所占的时间比率。
方波的占空比为50%,占空比为0.5,说明正电平所占时间为0.5个周期。
在1S的闸门时间之内,只要我们利用50Mhz的时钟脉冲,对待测信号的高电平时间进行计数,得到一个num值。
最后num*20ns就是所求信号的占空比了。
二、系统的设计1、分频模块分频模块我们采用50Mhz的时钟频率产生待测的信号,和三个控制信号。
此程序要求将50Mhz分出1Mhz的频率,再产生1hz作为控制信号的标准输入时钟。
该模块产生的3个控制信号,分别为EN,LOAD,CLR。
CLR信号用于在每次测量开始时,对计数器进行复位,以清除上次测量的结果,该复位信号高电平有效。
EN为计数允许信号,在EN信号的上升沿时刻计数模块开始对输入信号的频率进行测量,在此1S时间里被测信号的脉冲数进行计数,即为信号的频率。
然后将值锁存,并送到数码管显示出来。
设置锁存器的好处是使显示的数据稳定,不会由于周期性的清零信号而不断闪烁。
在每一次测量开始时,都必须重新对计数器清0。
另外,也设计出另外一个进程process,产生同样地三个控制信号给占空比测量时提供使能,锁存和清零的能力。
部分程序如下:process(clk)beginif clk'event and clk = '1' thentemp1<=temp1+1;end if;end process;freq<=temp1(16); --381Hz=50Mhz/2^172、计数模块计数模块分为2个子模块。
基于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的任意小数分频器的设计

桂林航天工业高等专科学校学报
( 总第 53 期) JOURN AL OF GU IL IN COLL EGE OF A EROSPACE T ECHN OLOGY 毛为勇 祁中洋 王兰/ 文
时钟信号所不能够容忍的。
图 1 双模前置小数分频器
2 一种改进的小数分频器的设计
利用脉冲删除电路, 有规律 地删除时 钟源中 的一些 脉
对于小数分频的 FP GA 设计, 目前 广泛采 用的方 法是 双模前置小 数分频[ 2] , 以及一种 由双模前 置小数分频 改进 而得到的小数分频 用一个半整数分频器和一个整数分 频器代替双模前置小数分频中的两个整数分 频器[3- 5] 。虽 然这两种方案输出时钟的占空比误差和抖动性能方面有所 差别, 但其工作原理 却是一致 的。双模 前置小 数分频器 在 理论上可以实现任意小数分频, 但在实际的电 路设计中, 不 可能真正实现 任意 小数 分频, 文 献[ 2] 在其 结论 中 就指 出 过, 小数分频器的精度受控制计数器的影响, 而控制计数器 的设计会受硬件资源的限制, 尽管 F PG A 有相 当丰富 的硬 件资源。另外, 基于 F PG A 实现的双模 前置小 数分频 器在 两个整数分频时钟之间的切换点上, 有时候会 出现毛刺, 而 时钟是 不 应该 有 毛 刺 存 在 的。 下 面 将 结 合 脉 冲 删 除 技 术[6] , 提 出一种可以 进行任意小 数分频且 不会出现毛 刺的 小数分频方案, 并通过编程实现。
a3 = 1。显 然, 当分 频比 X 为无 限小 数时, 例如 把 13M H z
的时钟信号 分频为 11M Hz 时, x = 1 18181818 %, 此 时, 尽
管在理论上 可以设计这样的 多位累 加器, 但在实 际电路 中
基于FPGA的小数分频器设计

图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 月所示。
实验5指导书 基于FPGA的分频器的设计

实验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的分频器设计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中实现计数器和比较器来完成。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于FPGA的双模前置小数分频器的设计
时间:2010-11-12 10:28:13 来源:作者:
频率合成技术是现代通讯系统的重要组成部分,他将一个高稳定和高准确度的基准频率,经过四则运算,产生同样稳定度和基准度的频率。
分频器是集成电路中最基础也
是最常用的电路。
整数分频器的实现比较简单,可采用标准的计数器或可编程逻辑器件设
计实现。
但在某些场合下,时钟源与所需的频率不成整数倍关系,此时可采用小数分频器
进行分频。
本文利用VerilogHDL硬件描述语言的设计方式,通过ModelSimSE开发软件
进行仿真,设计基于FPGA的双模前置小数分频器。
随着超大规模集成电路的发展,利用FPGA小数分频合成技术解决了单环数字频率合成器中高鉴相频率与小频间隔之间的矛盾。
1 双模前置小数分频原理
小数分频器的实现方法很多,但其基本原理一样,即在若干个分频周期中采取某种方法使
某几个周期多计或少计一个数,从而在整个计数周期的总体平均意义上获得一个小数分频比,设要进行分频比为K的小数分频,K可表示为:
式中:n,N,X均为正整数;n为到X的位数,即K有n位小数。
另一方面,分频比又可以
写成:
式中:M为分频器输入脉冲数;P为输出脉冲数。
令P=10n,则:
以上是小数分频器的一种实现方法,即在进行10n次N分频时,设法多输入X个脉冲。
2 电路组成
每个周期分频N+10-n.X,其电路双模前置小数分频器电路由÷N/N+1双模分频器、控制
计数器和控制逻辑3部分组成。
当a点电平为1时,进行÷N分频;当a点电平为0时进
行÷N+1分频。
适当设计控制逻辑,使在10n个分频周期中分频器有X次进行÷N+1分频,这样,当从fo输出10n个脉冲时,在fi处输入了X.(N+1)+(10n-X).N个脉冲,也就是
10n.N+X个脉冲,其原理如图1所示。
3 小数分频器的Verilog-HDL设计
现通过设计一个分频系数为8.7的分频器来给出使用VerilogHDL语言设计数字逻辑电路
的一般设计方法。
这里使用÷8/9双模前置分频器,按照前面的分析,可以通过计数器计
数先做3次8分频,后做7次9分频,即可得到平均分频系数8.7。
由于从N分频切换到
N+1分频和从N+1分频切换到N分频都会产生一个随时间增长的相位移,如果简单的先
进行3次8分频后做7次9分频将会产生很大的相位波动。
考虑到该小数分频器要进行多
次8分频和9分频,那么就设法将两种分频混合均匀,这种“均匀”工作是通过计数器来完
成的,在这里只讨论一位小数的情况,下面简要介绍这种混合的方法:
每进行一次分频,计数值为10减去分频系数的小数部分,各次计数值累加。
若累加结果小于10,则进行N+1分频,若大于10或等于10,则进行N分频。
该例中计数值为(10-7)=3,前3次累加结果都小于10,所以为9分频,第四次累加结果为12,则去掉十位数后
累加结果变为2,同时进行8分频,表1给出了该分频器的分频过程。
若分频系数后为两位小数,则用100减去分频系数的小数部分。
用VerilogHDL设计÷8/9双模前置分频器的描述程序如下:
4 波形仿真
上述的÷8/9双模前置分频器的描述程序经ModelSim编译、时序模拟后,得到的波形如图2所示。
由图2可见,当reset为0时,分频器复位,当a为1时,进行8分频,当a为0时则进
行9分频。
如图3所示,在前3个时钟,a值为0,则进行9分频,其后一个时钟a为1,进行8分频,后两个脉冲,又进行9分频,后进行一次8分频,然后又进行两次9分频,最后进行一次
8分频。
5 电路实现
FPGA现场可编程门阵列(FieldProgrammableGateArray)是20世纪80年代中期出现的高密度可编程逻辑器件。
FPGA及其软件系统是开发数字电路的最新技术。
他利用EDA技术,以电路原理图、硬件描述语言、状态机等形式输入设计逻辑;他提供功能模拟、时序
仿真等模拟手段,在功能模拟和时序仿真度满足要求后,经过一系列的变换,将输入逻辑
转换成FPGA器件的编程文件,以实现专用集成电路。
本设计选用Xilinx公司推出的
90nm工艺制造的现场可编程门陈列Spartan-3来设计小数分频器,体积减小,可靠性提高。
6 结语
采用前置双频分频器设计的小数分频器,小数分频器的精度受控制计数器的影响,当n值
为100时,小数分频的精度达到1/100;当n值为1000时,小数分频的精度达到1/1000;依此类推。
FPGA有相当丰富的硬件资源,因此可以用FPGA设计高精度的小数分频器。
采用FPGA组成的数字频率合成器,单环鉴相频率达100MHz以上,分辨率可达10-6。
这种小数分频器得到了广泛的应用,例如,对图象采集系统中的行分频和列分频的设计,就可以应用本分频器电路作为时钟发生器。