基于FPGA的双模前置小数分频器的设计 毕业设计
- 格式:docx
- 大小:89.19 KB
- 文档页数:6
一、课程设计原理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(现场可编程门阵列),它是在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四个端口是置数端,用以控制比例乘法器输出脉冲序列的个数。
图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的分频器设计预习内容阅读《电工电子实验教程》第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中实现计数器和比较器来完成。
郑州航空工业管理学院毕业论文(设计)2012 届通信工程专业0813073 班题目基于FPGA分频器的设计姓名刘洋学号081307317指导教师张松炜职称讲师二О一二年五月二十日内容提要分频器是数字系统设计中的基本电路,在复杂数字逻辑电路设计中,根据不同设计的需要,会遇到偶数分频、奇数分频、半整数分频、小数分频等,有时要求等占空比,也有要求非等占空比。
在同一个设计中有时要求多种形式的分频,通常由计数器或计数器的级联构成各种形式的偶数分频和奇数分频,实现较为简单,但在某些场合下,时钟源与所需要的频率并不成整数关系,此时便需要采用小数分频器进行分频。
这时设计师希望有一种比较方便实用的设计方法,根据情况的需要,在实验室就能设计分频器并且可以马上检测使用,只需要更改分频系数而不修改其他器件或是电路板。
此次设计利用V erilog HDL硬件描述语言的设计方式,采用频率合成技术,通过QuartusⅡ5.0开发平台,使用Altera公司的FPGA器件,设计并实现了一种使小数分频“掺匀”更均匀的任意小数分频器。
只需在输入端更改分频系数,便可以得到所需的频率。
关键词分频器;整数;小数;分频系数; FPGAResearch and design of FPGA-based dividerAuthor: Liu Y ang Tutor: Zhang SongweiAbstractThe frequency divider is a basic circuit design of digital systems. In complex digital logic circuit design, according to different design needs, will meet the even number of odd divider, half integer divider, fractional divider and so on . Sometimes requirements so occupies emptiescompared, also have the required v. In the same design sometimes require various forms of points frequency, usually by a counter or counter of a cascade of all forms of frequency and odd number even points separate frequency, achieve comparatively simple,but in some cases, the clock frequency of the source and need not into integer relationship, at this time will need to adopt the decimal prescaler for points frequency.Designers hope to have a more convenient and practical design methods, according to the needs of the laboratory condition, can design frequency device and can immediately detection using, only need to change frequency coefficients and not modify other device or circuit board.This design using Verilog HDL hardware description language design methods, the frequency synthesis technology, through the Quartus Ⅱ5.0 development platform, and use of Altera company FPGA device, we design and implement a decimal points frequency "mixed well" more uniform any decimal prescaler. Just in the input frequency coefficient change points, and have a frequency required.KeywordsFrequency divider;Integer;Decimal,;Frequency coefficient ;FPGA目录内容提要 (1)目录 (III)第一章绪论 (1)1.1FPGA简介 (1)1.2选题的意义和目的 (3)1.3国内外应用现状及研究现状 (6)1.3.1应用现状 (6)1.3.2研究现状 (7)第二章整数分频器的设计及其分频原理 (10)2.1偶数分频 (10)2.1.1分频原理 (10)2.1.2软件仿真 (10)2.2奇数分频 (12)2.2.1分频原理 (12)2.2.2软件仿真 (13)第三章小数分频器的设计 (14)3.1小数分频器基本原理 (14)3.2小数分频器的设计方案及功能实现 (16)3.2.1半整数分频 (16)3.2.2任意小数分频器的设计与实现 (17)3.2.3小数分频器的应用 (20)致谢 (24)参考文献 (25)附录 (26)基于FPGA分频器的研究与设计081307317刘洋指导教师:张松炜讲师第一章绪论1.1FPGA简介FPGA是现场可编程门阵列的简称,是可编程逻辑器件(PLD)问世以来的第四代产品,适合于时序、组合等逻辑电路的应用。
基于FPGA的小数频率合成器的设计徐琪;刘祖深【期刊名称】《电子质量》【年(卷),期】2012(000)003【摘要】小数分频是实现高分辨率低噪声频率合成器的主要技术手段。
在分析了小数频率合成以及杂散抑制技术的基础上,采用高阶Σ-Δ调制技术可以将量化噪声功率的绝大部分移到信号频带之外,从而可通过滤波有效抑制噪声。
仿真结果表明,该高阶数字Σ-Δ调制可以很好地抑制小数分频频率合成器中的杂散问题,具有很高的实用性。
%The fractional-N frequency synthesis is one of the most important techniques to realizing the frequency synthesizer with fine frequency resolution and low phase noise.In this paper,the higher-order sigma-delta modulator is proposed.It can suppress noise by the loop filter of the phase-locked-loop.The simulation show that the noise is suppressed and it is highly practicable.【总页数】3页(P20-22)【作者】徐琪;刘祖深【作者单位】中国电子科技集团公司第41研究所,山东青岛266555;中国电子科技集团公司第41研究所,山东青岛266555【正文语种】中文【中图分类】TN74【相关文献】1.基于FPGA小数分频频率合成器的设计 [J], 张横云2.基于小数分频锁相的X波段频率合成器设计 [J], 代传堂;柴文乾3.一种基于Σ-Δ调制小数分频PLL的低杂散宽带频率合成器设计 [J], 叶宝盛;符明飞;王晓安4.基于FPGA的小数频率合成器 [J], 李娜;杨文荣;曹家麟5.基于FPGA的小数分频频率合成器设计 [J], 周冬成;王永斌;郑亚平因版权原因,仅展示原文概要,查看原文内容请购买。
前言:众所周知,分频器是FPGA设计中使用频率非常高的基本设计之一,尽管在目前大部分设计中,广泛使用芯片厂家集成的锁相环资源,如altera 的PLL,Xilinx的DLL.来进行时钟的分频,倍频以及相移。
但是对于时钟要求不高的基本设计,通过语言进行时钟的分频相移仍然非常流行,首先这种方法可以节省芯片内部的锁相环资源,再者,消耗不多的逻辑单元就可以达到对时钟操作的目的。
另一方面,通过语言设计进行时钟分频,可以看出设计者对设计语言的理解程度。
在数字系统的设计中,设计人员会遇到各种形式的分频需求,如偶数分频、奇数分频、半整数分频、小数分频和分数分频等。
在某些设计中,系统不仅对频率有要求,而且对占空比也有严格的要求。
由计数器或计数器的级联构成各种形式的偶数分频及非等占空比的奇数分频实现起来较为简单, 但对半整数分频及等占空比的奇数分频实现较为困难,小数分频和分数分频更困难。
整数分频器偶数分频器的设计较为简单,可以利用计数器实现。
假设要实现m = 2 n分频,当计数器的值为0 ~j - 1时,输出时钟为1,计数器的值为j~2n - 1时,输出时钟为0,在计数器值为2n - 1时复位计数器,如此循环下去,即可实现占空比为j/2n的分频,m 和j都是预置数, j用于调节占空比, m 调节分频系数。
m 的值不同,分频系数也就不同,如果预置数m 是奇数则可实现占空比不等于50%的奇数分频。
占空比为50%的奇数分频实现起来较为困难,实现的方法较多,主要有三种办法:1:对两个相差为90的占空比最接近50%的N分频计数器输出进行或运算。
假设要实现占空比为50%的m = 2n + 1分频, 选择两个2n + 1进制计数器控制两个中间时钟clk1和clk2, 1号计数器在输入时钟clk的上升沿计数, 2号在clk的下降沿计数。
当计数器1输出为0~n - 1时clk1为1, 输出为n~2n时clk1为0且计数器1输出为2n 时计数器1清0 ,如此循环下去; 当计数器2输出为0 ~n - 1时clk2为1, 输出为n~2n时clk2为0且计数器2输出为2n时计数器2清0,如此循环下去。
第1章绪论1.1课题背景当今社会是数字化的社会,是数字集成电路广泛应用的社会。
数字集成电路本身在不断地进行更新换代。
它由早期的电子管、晶体管、小中规模集成电路,发展到超大规模集成电路(VLSIC,几万门以上)以及许多具有特定功能的专用集成电路。
但是,随着微电子技术的发展,设计与制造集成电路的任务已不完全由半导体厂商来独立承担。
系统设计师们更愿意自己设计专用集成电路(ASIC)芯片,而且希望ASIC 的设计周期尽可能短,最好是在实验室里就能设计出合适的ASIC芯片,并且立即投入实际应用之中,因而出现了现场可编程逻辑器件(FPLD),其中应用最广泛的当属现场可编程门阵列(FPGA)和复杂可编程逻辑器件(CPLD)。
1.2研究的目的及意义目的是一方面使我们能够进一步理解课程内容,基本掌握EDA技术和系统知识,增加集成电路应用知识,培养我们的实际动手能力以及分析、解决问题的能力。
另一方面也可以是我们更好地巩固和加深对基础知识的理解,学会设计中小型数字系统的方法,独立完成调试过程,增强我们理论联系实际的能力,提高电路分析和设计能力。
通过实践引导我们在理论指导下有所创新,为专业课的学习和日后工程实践奠定基础。
通过设计,一方面可以加深我们对理论知识的理解,另一方面也可以提高我们考虑问题的全面性,将理论知识上升到一个实践的阶段。
1.3EDA的发展历程及应用1.3.1 EDA的发展历程随着集成电路和计算机技术的飞速发展,EDA(Electronic Design Automation)应运而生,它是一种高级、快速、有效的电子设计自动化技术。
EDA技术以计算机为工具,代替人完成数字系统的逻辑综合、布局布线和设计仿真等工作。
设计者只需要完成对系统功能的描述,然后就可以由计算机来处理这些描述,得到设计结果,修改设计也很方便。
利用EDA工具进行设计,可以极大的提高设计效率。
EDA技术的发展经历了一个由浅到深的过程。
20世纪70年代,随着中小规模集成电路的开发与应用,传统的手工制图设计电路板和集成电路的方法已经无法满足设计精度和效率的要求,因此人们开始进行二维平面图形的计算机辅助设计,以便解脱繁杂、机械的版图设计工作,这就是第一代的EDA工具。
1、半整数分频占空比不为50%//说明:我设计的史上最好用的半整数分频占空比不为50%,包含设计思路module div_5(clk,clk_div,cnt1,cnt2,temp1,temp2);//N+0.5input clk;output clk_div;output reg[31:0]cnt1,cnt2;output reg temp1,temp2;initial begin temp1=0;temp2=1;end //首先进行初始化,temp1=0;temp2=1 parameter N=5; //设定分频系数为N+0.5always @(posedge clk) //temp1上升沿跳变beginif(cnt1==2*N) //2*Nbegin cnt1[31:0]<=32'd0;endelse begin cnt1[31:0]<=cnt1[31:0]+32'd1;endif(cnt1==32'd0) begin temp1<=1;end //高电平时间为N+1;if(cnt1==N+1) begin temp1<=0;end//低电平时间为N;endalways@(negedge clk) //temp2下降沿跳变beginif(cnt2==2*N) //2*Nbegin cnt2[31:0]<=32'd0;endelse begin cnt2[31:0]<=cnt2[31:0]+32'd1;endif(cnt2==32'd0) begin temp2<=0;end //低电平时间为N;if(cnt2==N) begin temp2<=1;end //高电平时间为N+1;endassign clk_div=temp1&&temp2; //逻辑与endmodule//如果要进行N+0.5分频//思路:总的来说要进行N+1+N=2N+1次分频//在时钟的上升沿和下降沿都进行跳变//上升沿进行占空比为N+1比N的时钟temp1;//下降沿进行占空比为N比N+1的时钟temp2;//最后div=temp1&&temp2 即可得到所需要的半整数分频分频5.5仿真结果2、奇数分频占空比为50%//说明:奇数分频。
基于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。
这种小数分频器得到了广泛的应用,例如,对图象采集系统中的行分频和列分频的设计,就可以应用本分频器电路作为时钟发生器。