基于FPGA的任意小数分频器的设计正文Word文档格式.docx
《基于FPGA的任意小数分频器的设计正文Word文档格式.docx》由会员分享,可在线阅读,更多相关《基于FPGA的任意小数分频器的设计正文Word文档格式.docx(15页珍藏版)》请在冰豆网上搜索。
另一方面也可以是我们更好地巩固和加深对基础知识的理解,学会设计中小型数字系统的方法,独立完成调试过程,增强我们理论联系实际的能力,提高电路分析和设计能力。
通过实践引导我们在理论指导下有所创新,为专业课的学习和日后工程实践奠定基础。
通过设计,一方面可以加深我们对理论知识的理解,另一方面也可以提高我们考虑问题的全面性,将理论知识上升到一个实践的阶段。
1.3EDA的发展历程及应用
1.3.1EDA的发展历程
随着集成电路和计算机技术的飞速发展,EDA(ElectronicDesignAutomation)应运而生,它是一种高级、快速、有效的电子设计自动化技术。
EDA技术以计算机为工具,代替人完成数字系统的逻辑综合、布局布线和设计仿真等工作。
设计者只需要完成对系统功能的描述,然后就可以由计算机来处理这些描述,得到设计结果,修改设计也很方便。
利用EDA工具进行设计,可以极大的提高设计效率。
EDA技术的发展经历了一个由浅到深的过程。
20世纪70年代,随着中小规模集成电路的开发与应用,传统的手工制图设计电路板和集成电路的方法已经无法满足设计精度和效率的要求,因此人们开始进行二维平面图形的计算机辅助设计,以便解脱繁杂、机械的版图设计工作,这就是第一代的EDA工具。
到了20世纪80年代,为了适应电子产品在规模和制作上的要求,出现了以计算机仿真和自动布线为核心技术的第二代EDA技术,其特点是以软件工具为核心,通过这些软件完成产品开发的设计、分析、仿真、测试等各项工作。
20世纪90年代后,随着EDA技术继续发展,出现了以高级语言描述、系统级仿真和综合技术为特征的第三代EDA技术,通常也称为ESDA(ElectronicSystemDesignAutomation)阶段。
在这个阶段,人们开始追求贯彻整个设计过程的自动化,可以从繁重的设计工作中彻底解放出来,把精力集中在创造性的方案与概念构思上,从而可以提高设计效率,缩短产品的研制周期。
1.3.2EDA技术的概念
EDA是电子设计自动化(ElectronicDesignAutomation)的缩写,在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。
EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动的完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。
1.3.3EDA的应用
图1.1EDA技术应用范围
EDA技术应用范围见图1.1。
当代的EDA技术应用于电子设计的方方面面。
从一个角度来看,EDA技术可粗略分为系统级、电路级和物理实现级三个层次的辅助设计过程;
从另一个角度来看,EDA技术应包括电子设计的各个领域:
从低频电路到高频电路、从线形电路到非线形电路、从模拟电路到数字电路、从分立元件电路到集成电路的全部设计过程。
具体来说,EDA技术大体分为三方面的应用:
(1)ASIC(ApplicationSpecificIntegratedCircuit,专用集成电路)设计。
(2)SOC(SystemOnaChip,系统芯片)设计。
(3)PCB(PrintedCircuitBoard,印刷电路板)设计。
可以说如果没有EDA技术,今天的电子设计就没办法进行。
1.3.4Verilog硬件描述语言
随着EDA技术的飞速发展,也由于集成电路大规模、高密度、高速度的要求,产生了一种新的设计方法,那就是采用硬件描述语言来设计数字电路。
VerilogHDL(VerilogHardwareDescriptionLanguage)作为IEEE工业标准的硬件描述语言的一种,不仅定义了语法,而且对每个语法结构都定义了清晰的模拟、仿真语义,而且Verilog语言从C语言中继承了多种操作符和结构。
所以如果有C语言的基础,那么可以非常快的掌握VerilogHDL的设计方法。
因此对于初学者来说,使用VerilogHDL进行电子设计是比较好的。
通过使用结构级或行为级描述可以在不同的抽象层次描述设计。
VerilogHDL采用自顶向下的数字电路设计方法主要包括行为领域、结构领域、物理领域这三个领域和系统级、算法级、积存器传输级、逻辑级和电路级这五个抽象层次。
VerilogHDL是并发的,即具有在同一时刻执行多任务的能力。
一般来讲编程语言是非并行的,但在实际硬件中,很多操作都是在同一时刻发生的,所以VerilogHDL具有并发的特征。
VerilogHDL有时序的概念,一般来讲编程语言是没有时序概念的,但在硬件电路中从输入到输出总是有延迟存在的。
为描述这些特征,VerilogHDL语言需要建立时序的概念,因此使用VerilogHDL除了可以描述硬件电路的功能外,还可以描述其时序要求。
1.4基于EDA的FPGA/CPLD开发
随着数字集成电路和EDA技术的发展,设计与制造集成电路的任务已不完全由半导体厂商来独立承担。
系统设计师们更愿意自己设计专用集成电路(ASIC)芯片,而且希望ASIC的设计周期尽可能短,最好是在实验室里就能设计出合适的ASIC芯片,并且立即投入实际应用之中,因而出现了现场可编程逻辑器件,其中应用最广泛的属现场可编程门阵列和复杂可编程逻辑器件。
现场可编程门阵列FPGA(FieldProgrammableGateArray)是20世纪80年代中期,由美国Xilinx公司首先推出的大规模可编程逻辑器件。
由于FPGA器件采用标准化结构,体积小、集成度高、功耗低、速度快,可无限次反复编程,已成为开发电子产品的首选器件。
运算器、乘法器、数字滤波器等具有复杂算法的逻辑单元和信号处理单元的逻辑设计都可选用FPGA来实现。
Xilinx公司和Altera公司最新开发的先进IPCORE(IP核),使FPGA在EDA和DSP技术领域的应用更加方便。
复杂可编程逻辑器件CPLD(ComplexProgrammableLogicDevice)是20世纪90年代可擦除的可编程逻辑器件EPLD(ErasableProgrammableLogicDevice)的改进器件。
其具有更大的与阵列和或阵列,有大量的宏单元和布线资源。
高速的译码器、多位计数器、寄存器、时序状态机、网络适配器、总线控制器等较大规模的逻辑设计可用CPLD来实现。
FPGA/CPLD本身作为一种新器件,可以由用户自行规定器件的逻辑功能,将大量的电路功能集成到一个芯片中,提高了系统的集成度和可靠性。
另一方面,FPGA/CPLD的设计方法又是采用EDA的设计方式,是从手工设计到电子设计自动化的变换桥梁。
1.5本课题研究内容
FPGA/CPLD现在应用的非常广泛,其作为集成电路的一个研究方向,非常重要,而我们在这方面开展的学习并不多。
本文作为一个探讨性的论文,为以后进行更深入的研究打下基础,本课题主要研究以下一些内容。
首先,学习并基本掌握VerilogHDL的设计方法。
然后,研究掌握任意小数的分频器设计基本工作原理与设计方案。
第2章设计方案分析论证
2.1本课题的研究内容
分频器是指使输出信号频率为输入信号频率整数数分之一的电子电路。
在许多电子设备中如电子钟、频率合成器等,需要各种不同频率的信号协同工作,常用的方法是以稳定度高的晶体振荡器为主振源,通过变换得到所需要的各种频率成分,分频器是一种主要变换手段。
早期的分频器多为正弦分频器,随着数字集成电路的发展,脉冲分频器(又称数字分频器)逐渐取代了正弦分频器,即使在输入输出信号均为正弦波时也往往采用模数转换-数字分频-数模转换的方法来实现分频。
正弦分频器除在输入信噪比低和频率极高的场合已很少使用。
对于任何一个N次分频器,在输入信号不变的情况下,输出信号可以有N种间隔为2π/N的相位。
这种现象是分频作用所固有的,与分频器的具体电路无关,称为分频器输出相位多值性。
2.2设计思路
频率合成技术是现代通讯系统的重要组成部分,是对一个高精度和高稳定度的基准频率进行加、减、乘、除四则运算,产生具有同样稳定度和基准度的频率。
分频器是数字逻辑电路设计中经常使用的一个基本电路。
通常,整数分频可以很容易地用计数器或状态机来实现[1]。
但在某些场合下,时钟源与所需要的频率并不成整数关系,此时便需要采用小数分频器进行分频。
对于小数分频的FPGA设计,目前广泛采用的方法是双模前置小数分频,以及一种由双模前置小数分频改进而得到的小数分频——用一个半整数分频器和一个整数分频器代替双模前置小数分频中的两个整数分频器[s-s]。
虽然这两种方案输出时钟的占空比误差和抖动性能方面有所差别,但其工作原理却是一致的。
双模前置小数分频器在理论上可以实现任意小数分频,但在实际的电路设计中,不可能真正实现任意小数分频,文献在其结论中就指出过,小数分频器的精度受控制计数器的影响,而控制计数器的设计会受硬件资源的限制,尽管FPGA有相当丰富的硬件资源。
另外,基于FPGA实现的双模前置小数分频器在两个整数分频时钟之间的切换点上,有时候会出现毛刺。
而时钟是不应该有毛刺存在的。
下面将结合脉冲删除技术,提出一种可以进行任意小数分频且不会出现毛刺的小数分频方案,并通过编程实现。
第3章系统硬件设计
3.1双模前置小数分频器
假设时钟源的频率为Fo,期望得到的频率为Fi,则其分频比X有X=F0·
F1,其中,X>
1。
当分频比X为无限小数时,例如把13MHz的时钟信号分频11MHz时,x=1.18181818⋯,此时,尽管在理论上可以设计这样的多位累加器,但在实际电路中却是不可实现的。
因此,实际所设计的双模前置小数分频器的分频比,有时候与实际期望得到的分频比存在一个微小的偏差,当分频器长时间工作,就会导致累计误差。
3.2双模前置小数分频器的电路组成
双模前置小数分频器的电路如图3.1所示,此电路主要由两个整数分频器、一个选择器和一个控制逻辑电路组成。
其中,两个整数分频器的分频比分别为M和M+1,而控制电路依据公式而设计,交替选择M分频器或M+1分频器的时钟输出。
它的具体控制过程是:
先选择让M分频器输出N,个脉冲之后,接着选择让M+1分频器输出N2个脉冲,然后再选择让M分频器输出Nt个脉冲,如此循环。
这样的设计在理论上是可行的,但在实际的电路设计中,却由于硬件电路的微小延时,在选择M分频和M+1分频时钟输出的切换点上,就可能存在竞争冒险而产生毛刺,这是时钟信号所不能容忍的。
图3.1控制逻辑电路
3.3一种改进的小数分频器的设计
利用脉冲删除电路,有规律地删除时钟源中的一些脉冲,从而实现平均意义上的小数分频。
在硬件电路的设计过程中,利用脉冲删除电路,就不会出现上述竞争冒险和毛刺的问题,而且可以很容易地用硬件实