基于FPGA分频器的设计.docx

上传人:b****5 文档编号:5669144 上传时间:2022-12-31 格式:DOCX 页数:22 大小:290.65KB
下载 相关 举报
基于FPGA分频器的设计.docx_第1页
第1页 / 共22页
基于FPGA分频器的设计.docx_第2页
第2页 / 共22页
基于FPGA分频器的设计.docx_第3页
第3页 / 共22页
基于FPGA分频器的设计.docx_第4页
第4页 / 共22页
基于FPGA分频器的设计.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

基于FPGA分频器的设计.docx

《基于FPGA分频器的设计.docx》由会员分享,可在线阅读,更多相关《基于FPGA分频器的设计.docx(22页珍藏版)》请在冰豆网上搜索。

基于FPGA分频器的设计.docx

基于FPGA分频器的设计

基于FPGA分频器的设计

摘要:

分频器是数字系统设计中的基本电路,在复杂数字逻辑电路设计中,根据不同设计的需要,会遇到偶数分频、奇数分频、半整数分频等,有时要求等占空比,也有要求非等占空比。

在同一个设计中有时要求多种形式的分频,通常由计数器或计数器的级联构成各种形式的偶数分频和奇数分频,实现较为简单,但是对半整数分频实现较为困难。

设计师希望有一种比较方便实用的设计方法,根据情况的需要,在实验室就能设计分频器并且可以马上检测使用,只需要更改频率系数而不修改其他器件或是电路板。

因此,本文利用verilog硬件描述语言,通过开发平台,使用FPGA,设计了一种能满足上述情况的通用分频器。

只要在分频器的输入端输入相应的分频系数,就可以得到所需的频率。

关键词:

分频器;偶数;奇数;半整数;分频系数;FPGA

 

SeparatefrequencyinverterbasedonFPGAdesign

Abstract:

Pointsarethefrequencyofandigitalsystemdesign,thebasiccircuitincomplexdigitallogiccircuitdesign,accordingtodifferentdesignneeds,willmeetevenpointsfrequency,anoddnumberofpointsfrequency,halfintegerpointsfrequencyetc,sometimesrequire390v,suchastherequest390v.Inthesamedesignsometimesrequiremultipleformsofpointsfrequency,usuallybyacounterorcountercascadeconstitutevariousformsofthefrequencyandtheoddpointsevenpoints,toachievecomparativelysimplefrequency,buthalf-and-halfintegerpointsfrequencydivisionfrequencyrealizemoredifficult.Designershopetohaveamoreconvenientandpracticaldesignmethods,accordingtotheneedsofthelaboratorycondition,candesignpointsfrequencydeviceandcanimmediatelydetectionusing,onlyneedtochangefrequencycoefficientsandnotmodifyotherdeviceorcircuitboard.Therefore,thispaperuseveriloghardwaredescriptionlanguage,throughthedevelopmentplatform,usetheFPGA,designakindofcanmeettheabovesituationofpracticalpointsfrequencydevice.Aslongasthefrequencyofaninpointscorrespondingpointsinputinputfrequencycoefficients,cangetfrequencyrequired.

Keywords:

Points,frequency,manometers,Even,Odd,Halfaninteger,Pointsfrequencycoefficients,FPGA

 

 

第一章绪论

1.1FPGA简介

FPGA是现场可编程门阵列的简称,是可编程逻辑器件(PLD)问世以来的第四代产品,适合于时序、组合等逻辑电路的应用。

它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。

它是作为专用集成电路领域中的一种半定制电路而出现的,即解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。

它是当今数字系统设计的主要软件平台,其主要特点就是完全由用户通过软件进行配置和编程,从而完成某种特定的功能,且可以反复擦写。

在修改和升级时,不需要额外的改变PCB电路板,只是在计算机上修改和更新程序,使硬件设计工作成为软件开发工作,缩短了系统的设计周期,提高了实现的灵活性并降低了成本,因此获得了广大硬件工程师的青睐。

对PROM、EPROM、E2PROM熟悉的人都知道这些可编程器件的可编程原理是通过加高压或紫外线导致三极管或者MOS管内部的载流子密度发生变化,实现所谓的可编程,但是这些器件或只能实现单次可编程或编程状态难以稳定。

FPGA则不同,它采用了逻辑单元阵列这样一个概念,内部包括可配置逻辑模块CLB、输出输入模块IOB和内部连线三个部分。

FPGA的可编程实际上是改变了CLB和IOB的触发器状态。

这样就可以实现多次重复的编程,由于FPGA需要被反复烧写,它实现组合逻辑的基本结构不可能像ASIC那样通过固定的与非门来完成,而只能采用一种易于反复配置的结构。

查找表可以很好的满足这一要求,目前主流FPGA都采用了基于SRAM工艺的查找结构,也有一些军品和宇航级FPGA采用Flash或者熔丝与反熔丝工艺的查找表结构。

通过烧写文件改变查找表内容的方法来实现对FPGA的重复配置。

根据数字电路的基本知识可以知道,对于一个N输入的逻辑运算,不管是与或运算还是异或运算等等,最多只可能存在2N种结果。

所以如果事先将相应的结果存放于一个存贮单元,就相当于实现了与非门电路的功能。

FPGA的原理也是如此,它通过烧写文件区配置查找表的内容,从而在相同的电路情况下实现了不同的逻辑功能【11】。

FPGA作为未来数字系统的基础之一,是目前硬件设计研究的重点,它可以代替几十甚至上百种通用IC芯片,具有可编程和实现方案容易改动等特点。

由于FPGA的现场可编程性及高密度性,使电路设计的大部分工作在微机上进行,FPGA的功能完全由用户编制的配置程序所决定,不改变其电路的逻辑功能。

同时具有设计开发周期短、设计制造成本低、开发工具先进、标准产品无需测试、质量稳定以及实时在线检验等优点,因此,可广泛应用于产品的原理设计和产品生产之中。

在现代电子系统中,数字系统所占的比例越来越大。

系统发展的优势是数字化和集成化,而FPGA作为可编程ASIC(专用集成电路)器件,它将在数字逻辑系统中发挥越来越重要的作用。

1.2选题的意义和目的

自电子产品诞生之日起,电子产品开发流程和方法就随着电子元器件的不断演进而变化,从最早的电子管器件到晶体管再到集成电路,工程师在设计产品时,所采用的工具和方法都有所不同,但是总的来说贯穿电子设计的统一思路是:

使用印刷电路板上的分立、现成元件、连接器或者IC创建物理平台实现所需要的功能。

例如:

在60年代,如果要设计一个收音机,工程师必须通过在PCB板上通过晶体管、电阻、电容、电感、电线、滤波器、二极管等电路搭建出一个物理平台,实现对RF信号的调谐、滤波、放大等,最后实现收音机的功能。

基础电路出现以后,一些分立器件被集成到一颗芯片上,但是总的设计思路没有变化,还是要在一个PCB板上通过无源器件和IC搭建出一个物理平台,实现信号的接收、处理和输出。

但是,随着FPGA等可编程器件的诞生,设计思路正发生着微妙的变化,随着更多功能从分立器件移到可编程领域,各种不同的设计流程交汇到了一起。

现在,有效的电子设计是将板卡设计、可编程逻辑设计和软件开发融合在一起,未来,随着FPGA融合处理、储存于一体,板卡设计将融合进可编程逻辑设计中,电子产品设计将演变为可编程逻辑设计和嵌入式软件设计。

那时,电子设计将更体现为一种软设计,一种通过开发语言和工具实现的设计。

而FPGA将成为这种软设计的载体,以FPGA形式存在的低成本、大规模可编程器件可以随时的获得,这使设计者有可能将所有系统核心功能都转移到软件设计中,并利用这种设计的优势【3】。

分频器是FPGA设计中使用频率非常高的基本设计之一,尽管在目前大部分设计中,广泛使用芯片厂家集成的锁相环资源,如altera的PLL,Xilinx的DLL.来进行时钟的分频,倍频以及相移。

但是对于时钟要求不高的基本设计,通过语言进行时钟的分频相移仍然非常流行。

首先这种方法可以节省芯片内部的锁相环资源;再者,消耗不多的逻辑单元就可以达到对时钟操作的目的。

另一方面,通过语言设计进行时钟分频,可以看出设计者对设计语言的理解程度。

分频器是数字系统设计中的基本电路,根据不同设计的需要,会遇到偶数分频、奇数分频、半整数分频等,有时要求等占空比,也有要求非等占空比。

在同一个设计中有时要求多种形式的分频。

通常由计数器或计数器的级联构成各种形式的偶数分频及非等占空比得到奇数分频,实现较为简单。

但对半整数分频、等占空比的奇数分频及小数分频实现较为困难。

本文利用Verilog硬件描述语言,通过开发平台,使用FPGA,设计了一种能满足上述要求的分频器。

只要在分频器的输入端输入相应的分频系数,就可以得到所需的频率。

随着各种先进电子产品的推出,无线通讯网络的广泛应用,使得对晶源的要求越来越高。

特别是在现在电子对抗站中,我们要求各种器件工作在其固定的频率下。

产品的工作频率在产品的研发阶段必须经过反复的调试才能确定,它既要能保证产品的工作效率又需要保证产品的稳定性。

有些产品由于其工作区域比较广,我们还希望它在不同的工作环境下能够采用不同的工作频率,在恶劣的环境下保证其工作的稳定性,在环境比较好的情况下我们希望它的工作效率得到更好的提高。

这就需要我们的工作频率能够随着我们环境的变化而变化。

对于一个晶振源我们只能得到一个工作频率,但如果集成大量晶振来实现多频率输出,一方面要投入很大的成本,另一方面不同晶振间的相位延迟无法预测,而且在一个区间中集成大量晶振也容易引起串扰。

如果我们仅通过分频,对较高的晶振源进行分频就能很容易的得到比较丰富的频率,有利于我们对产品的测试和应用

在传统的FPGA设计方法中,为了能实现等占空比的奇数分频,常常采用对输入频率进行二倍频的电路,以及对倍频后的频率F进行偶数分频,这样就降低设计电路的最高工作频率,提高对硬件的要求。

本设计在不改变设计要求的前提下,对常规的设计方法进行改进,实现了在不需要对输入频率进行二倍频的条件下实现等占空比分频,从而更好的利用频率资源,同时降低了设计的复杂性【2】。

众所周知,分频器是FPGA设计中使用频率非常高的基本设计之一,尽管在目前大部分设计中,广泛使用芯片厂家集成的锁相环资源,如altera的PLL,Xilinx的DLL.来进行时钟的分频,倍频以及相移。

但是对于时钟要求不高的基本设计,通过语言进行时钟的分频相移仍然非常流行,首先这种方法可以节省芯片内部的锁相环资源,再者,消耗不多的逻辑单元就可以达到对时钟进行操作的目的。

1.3国内外应用现状及研究现状

1.3.1应用现状

随着人类社会信息化进程的加快,在现代电子系统设计中,数字电子系统所占的比例越来越大,现代电子系统发展的趋势是数字化和集成化。

而在数字系统中,时钟是各模块协同工作的根本保障,特别是时序数字系统,没有时钟根本无从工作。

在数字系统设计中,经常需要对基准时钟进行不同倍数的分频而得到各模块所需的时钟频率,分频器是数字系统设计中最常见的基本电路之一。

在此前提下,低功耗的高速通信电路设计近年来在集成电路研究领域受到越来越多的关注。

分频器作为通信系统的核心部件之一,广泛应用于频率合成器、正交信号生成以及时钟恢复电路中。

如图1-1所示分频器用于无线接收机:

图1-1

分频器是频率合成器中工作在最高频率的模块之一。

其工作速度往往决定了整个系统的最高工作速度,而且其性能往往对系统性能有决定性的影响,因此,许多科研单位都对分频器展开了广泛的研究。

当前主要应用的分频器结构有以下三种:

触发器结构,Miler再生环路结构,以及注入锁定结构。

目前在通信系统中,大多数分频器都采用数字触发器结构。

这种分频器虽然具有全宽带工作的优势,但是在系统中它们功耗往往是不能忽视的,而且其功耗随着系统工作频率的提高而增加。

在一些应用中,为了降低功耗,甚至会使用分立的分频器作为分频器组的第一级。

1.3.2研究现状

在数字逻辑电路设计中,分频器是一种基本电路,通常用来对某个给定频率的时钟进行分频,得到所需的时钟。

时序电路设计中需要各种各样的分频器来获得不同频率的时钟,其中以整数分频器最为常见。

整数分频可以简单的使用模N计数器实现,即随驱动时钟跳变N次后就输出一个进位脉冲,然后立即被清零或置位,再开始新一轮的循环的计数。

模N计数器的进位脉冲的宽度一般与驱动时钟相同,这对于边沿驱动的时序逻辑并不会带来什么问题。

但是在某些需要使用电平逻辑的设计中,我们更希望分频时钟拥有50%,或者与驱动时钟有相同的占空比。

这时就需要通过另外的逻辑方法来进行分频,或者使用PLL。

在基于CPLD(复杂可编程逻辑器件)/FPGA(现场可编程门阵列)的数字系统设计中,很容易实现由计数器或其级联构成各种形式的偶数分频及非等占空比的奇数分频,但对等占空比的奇数分频及半整数分频的实现较为容易。

对于分频器的研究,Adler最早对注入锁定分频器进行研究,他在注入信号强度很弱的情况下对此进行了精确的推导,并且在小注入情况下得到了注入锁定范围比较精确的表达式,由此可以推导出在弱注入锁定现象发生的范围。

但是这个模型是不完善的,它的前提是注入信号的强度很弱,而在实际应用中,这个前提往往是不成立的。

Stanford大学的ThomasH.Lee等人对其做出了改进,提高了模型的精度,重新推导了Adler的经典公式。

由于注入锁定分频器各种优点,使之非常适合在毫米波通信领域担任分频角色,因此,近年来受到学术界的广泛重视。

许多科研单位,如加州大学洛杉矶分校,斯坦福大学,明呢苏达双城分校,佛罗里达大学,香港科技大学,韩国科技大学,田纳西大学,台湾大学,东京大学等知名高校都纷纷加入关于此研究的行列。

相比之下,国内对此的研究还比较少,主要集中在清华大学和浙江大学等高校。

因此,为了缩小与国外研究的差距,在以后毫米通信的核心技术竞争上占据主动位置,积极展开这方面的研究显得很有必要。

在应用研究方面,科研人员针对目前注入锁定分频器在应用中出现的主要问题进行了广泛的研究,主要的方向有:

扩大锁定范围,提高正交多相输出的精度,降低源电压和功耗,研究多模分频以及提高工作速度。

多模分频的研究:

在应用中,常常需要分频器有灵活的分频模式,比如小数频率合成器中就需要用到双模或多模的分频器。

这种技术在数字触发器实现的分频器中已经比较成熟,但是在注入锁定分频器领域仍然需要深入研究【9】。

1.4本文组织结构

本文讲述了一种可用于FPGA实现的可完成偶数分频、奇数分频、半整数分频和小数分频的分类设计和可以完成任意数分频的通用分频器,并通过FPGA实现证明其可行性。

论文共分为三章,具体的组织结构如下:

第一章绪论主要对FPGA进行了简单介绍,介绍了课题的研究背景,国内外研究现状及应用现状,并且提出了文章的组织结构。

第二章几类分频器的设计及其分频原理介绍了各种独立的分频器的分配原理,对偶数分频和奇数分频举例进行如何仿真,并介绍分频器在日常生活中的一些应用实例。

第三章通用分频器的设计首先对通用分频器设计方案的提出并进行分析,最终选择可以实施的方案。

方案选定后对通用分频器进行系统的设计,最后分析通用分频器的应用。

 

第二章几类分频器的设计及其分频原理

2.1偶数倍分频

2.1.1分频原理

偶数分频应该是大家都比较熟悉的分频,通过计数器计数是完全可以实现的。

如进行N倍偶数分频,若要实现占空比为50%的偶数N分频,那么可以通过由待分频的时钟触发计数器计数,当计数器从0计数到N/2-1时,输出时钟进行翻转,并给计数器一个复位信号,使得下一个时钟从零开始计数。

以此循环下去,这种方法可以实现任意的偶数分频。

2.1.2软件简介【5】

Libero开发软件是一个非常人性化的开发环境,整个界面以流程图的方式指明了开发的步骤,它集合了众多第三方先进的EDA工具,包括Mentor公司提供的仿真工具ModeSim、Synplicity公司提供的综合工具Synplify,还有Aynapticad公司提供的波形激励生成工具WaveformerLite等。

Actel的Libero设计文件生成可以有四种方式:

HDL语言生成、smartDesign输入、CoreConsole输入和ViewDraw原理图输入。

其中应该还有一种输入就是SmartGen输入,它已经集成在Libero开发环境左侧的Catlog窗口中。

在这些输入方式中,HDL语言生成是最常用也是移植性最好的。

如果想到Actel公司一些现成的模块就需要用到SmartGen,例如:

RAM、FIFO、加法器等;对于HDL语言不熟悉或者习惯于用原理图来搭建顶层设计的用户可以使用原理图输入,例如:

smartDesign、ViewDraw;如果想搭建系统级的平台,如8051、ARM7、CorexM1可以用CoreConsole作为输入。

2.1.3软件仿真

下面以十二分频为例进行介绍如何在Libero8.5软件下进行仿真。

点击HDLEditor进入HDL输入方式,在弹出文件类型选择框中选择VerilogSourceFile,如果用VHDL的用户可以选择VHDLSourceFile,然后在右边输入文件名称66。

在弹出的新文件中,输入HDL代码。

输入源文件后可以对刚才的程序进行功能仿真。

首先要创建仿真用的激励文件,激励文件可以采用HDL文本输入或者画波形图的方式得到。

然后点击WaveFormer图标打开WaveFomer,点击clk48M,从右键菜单中选择“SignalClock“把这个信号设为时钟信号,再继续双击clk48M信号,从弹出的菜单中选择”ClockPropeties“把信号的时钟频率改成为48MHz,选中信号,先把HIGH图标选中,画一段高电平信号,再把LOW图标选中,画一段低电平。

画完好以后点击保存图标,保存类型选为Verilogw/TopLevelTestBench(*.V)类型,文件名不要更改,采用默认就就可以。

保存.V类型的文件后再点击保存图标,把文件保存为.btim格式的文件。

最后关闭WaveFormer,右击SimulusEditor,选择Organizestimulus,在弹出的窗口点击Add按钮把测试文件导入,如下图2-1所示:

图2-1

当把仿真激励文件加入后,WaveFormer会变成绿色,说明已经通过,然后点击ModelSim仿真就可以了,ModelSim的工程在调用的时候自动会建立。

最后得到的十二分频等占空比的仿真效果图如图2-2下:

图2-2

2.2奇数倍分频

2.2.1分频原理【7】

奇数倍分频有两种实现方法,其中之一完全可以通过计数器来实现,如进行三分频,就可通过待分频时钟上升沿触发计数器来进行模三计数,当计数器计数到邻近值时进行两次翻转。

比如可以在计数器计数到1时,输出时钟进行翻转,计数到2时再次进行翻转。

这样,就在计数值邻近的1和2进行了两次翻转。

如此便实现了三分频,其占空比为1/3或2/3。

如果要实现占空比为50%的三分频时钟,则可通过待分频时钟下降沿触发计数,并以和上升沿同样的方法计数进行三分频,然后对下降沿产生的三分频时钟和上升沿产生的时钟进行相或运算。

即可得到占空比为50%的三分频时钟,这是奇数分频的三种方法。

这种方法可以实现任意的奇数分频。

如将其归类为一般的方法:

对于实现占空比为50%的N倍奇数分频,首先要进行上升沿触发以进行模N计数,计数选定到某一个值再进行输出时钟翻转,然后通过(N-1)/2再次进行翻转,就可得到一个占空比非50%的奇数N分频时钟。

再同时进行下降沿触发的模N计数,当其到达与上升沿触发输出时钟翻转选定值相同时,再进行输出时钟翻转,同样,经过(N-1)/2时,输出时钟再次翻转以生成占空比非50%的奇数N分频时钟。

将这两个占空比非50%的N分频时钟相或运算,就可以得到占空比为50%的奇数分频时钟。

原理图见下图2-3:

图2-3

2.2.2软件仿真

在Libero开发软件下,如等占空比三分频的仿真图如图2-4下:

图2-4

仿真结果如下图2-5:

图2-5

2.3半整数分频【1】

首先讲讲如何进行N+0.5分频,这种分频需要对输入时钟进行操作。

基本的设计思想:

对于进行N+0.5分频,首先进行模N的计数,在计数到N-1时,输出时钟赋为1,回到计数0时,又赋为0,因此,可以知道,当计数值为N-1时,输出时钟才为1。

因此,只要保持计数值N-1为半个输入时钟周期,即实现了N+0.5分频时钟,因此保持N-1为半个时钟周期是一个难点。

从中可以发现,因为计数器是通过时钟上升沿计数,因此可以在计数为N-1时对计数触发时钟进行翻转。

那么时钟的下降沿变成了上升沿。

即在计数值为N-1期间的时钟下降沿变成了上升沿,则计数值N-1只保持了半个时钟周期,由于时钟翻转下降沿变成上升沿,因此计数值变为0。

因此,每产生一个N+0.5分频时钟的周期,触发时钟都是要翻转一次。

电路图见下图2-6,原理图见下图2-7:

图2-6

图2-7

2.4小数分频器

小数分频器的实现方法很多,但其基本原理一样:

在若干个分频周期中采取某种方法使某几个周期少计一个或几个数,即吞脉冲原理,从而在整个计数周期的总体平均意义上获得一个小数分频比。

以下简要说明两种比较常用的小数分频电路的原理及设计方法。

积分分频器是比较常见的小数分频器,其基本原理是将小数分频比转换为整数比值,再采用计数器对输入时钟进行计数,根据计数值吞掉一些脉冲,从而得到所需的频率输出;累加器分频则是一种基于相位累加器基本原理的一种分频技术,将累加器最高位作为分频输出,根据送入累加器中不同的累加步长改变分频倍数。

2.4.1积分分频器

积分分频器的设计首先需将小数分频比转换为整数比值,再采用计数器对输入时钟进行计数,根据计数值对输入时钟及插入脉冲进行选择分配,从而得到需要的频率输出脉冲,如图2-8所示。

图2-8

设“1010101010”代表5KHz信号中的一段信号。

在同样长的时间内设法得到另一脉冲串“1010100000”信号,若其‘0’、‘1’宽度与5KHz信号中的‘0’、‘1’宽度相同,即为输入时钟的宽度,则可得到3kHz的时钟信号。

这样,多路选择器可在前三个周期中选择输入时钟直接输出,而在后两个周期选择输出‘0’,就可以得到脉冲串“1010100000”,从而完成3/5倍的分频,得到3KHz的信号。

2.4.2累加器分频

在DDS技术中经常采用相位累加器来进出频率控制,对于频率不变的输入基准时钟,可采用对相位累加器置不同的累加步长来得到不同的寻址速率。

从中得到启示,可采用累加器进行小数分频,如图2-9所示。

图2-9

累加器由加法器与并行数据寄存器组成,频率控制字经数据转换模块转换为累加器的累加步长,将并行数据寄存器的高位作为时钟输出。

设输入时钟为频率Fin,相位累加器的位数为N,输出频率的分辨率(当送入的频率控制字K为1时的输出频率)为F2=Fin/2N从式可看出,在累加器位数足够高时,最小输出频率(频率分辨

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1