1、徐州工程学院毕业设计(论文)基于FPGA的函数信号发生器设计摘要函数信号发生器是各种测试和实验过程中不可缺少的工具,在通信、测量、雷达、控制、教学等领域应用十分广泛。随着我国经济和科技的发展,对相应的测试仪器和测试手段也提出了更高的要求,信号发生器己成为测试仪器中至关重要的一类。本文在探讨函数信号发生器几种实现方式的基础上,采用直接数字频率合成(DDS)技术实现函数信号发生器。在对直接数字频率合成(DDS)技术充分了解后,本文选择以Altera公司生产的FPGA芯片为核心,以硬件描述语言Verilog HDL为开发语言,设计实现了可以产生任意波形(以正弦波为例)和固定波形的(以方波和锯齿波为例
2、)的函数信号发生器。文中详细阐述了直接数字频率合成(DDS)、波形产生以及调幅模块的设计,并给出了相应的仿真结果。本文最后给出了整个系统的仿真结果,即正弦波、方波、锯齿波的波形输出。实验表明,用现场可编程门阵列(FPGA)设计实现的采用直接数字频率合成(DDS)技术的函数信号发生器,克服了传统方法的局限,实现了信号发生器多波形输出以及方便调频、调幅的功能。关键词 函数信号发生器;直接数字频率合成;现场可编程门阵列;Verilog HDLAbstractFunction Generator is an indispensable tool in a process of various test
3、s and experiments. It is widely used in communication, measurement, radar, control, teaching and other fields. With the development of Chinas economic and technological, the corresponding test equipment and test methods are also put forward higher requirements, and the signal generator has become a
4、vital test instrument.The article examines the several implementations of the function generator. And it has achieved the function generator which is completed by direct digital frequency synthesis (DDS) technology . Through understanding the direct digital frequency synthesis (DDS) technology, this
5、 paper chose to the Altera Corporations FPGA chips as the core of design. The function generator which can produce sine, square wave, sawtooth wave was designed. It also used hardware description language Verilog HDL as development language. The paper described the design of the main module, such as
6、 direct digital synthesizer (DDS), waveform generation and modulation module. And the corresponding simulation results were also presented.At last, the simulation results of the whole system were presented, that is, sine, square, sawtooth waveform has been carried out. Experiments show that the func
7、tion generator based on FPGA and direct digital frequency synthesis (DDS)technology has overcame the limitations of traditional methods and achieved a signal generator which can generate multiple waveforms and has facilitate FM, AM function.Keywords Function Genenrator Direct Digital Freguency Synth
8、esizer FPGA Verilog HDL- II -目 录1绪论11.1背景及意义11.2波形发生器研究现状11.2.1波形发生器的发展状况11.2.2国外波形发生器产品介绍21.3本设计的主要工作22系统基本原理42.1函数信号发生器的几种实现方式42.1.1程序控制输出方式42.1.2 DMA输出方式42.1.3可变时钟计数器寻址方式42.1.4直接数字频率合成方式42.2频率合成器简介52.2.1频率合成技术概述52.2.2频率合成器主要指标62.3 DDS原理62.3.1相位累加器72.3.2波形ROM82.3.3 DDS频率合成器优缺点82.4现场可编程门阵列(FPGA)92.
9、4.1 FPGA简介92.4.2 FPGA特点92.4.3 FPGA工作状态102.4.4 FPGA的编程技术102.4.5 FPGA器件配置方式112.4.6使用FPGA器件进行开发的优点112.5 Verilog HDL语言简介113系统软件设计133.1编程软件的介绍133.1.1 Quartus II简介133.1.2 Quartus II设计流程133.2 Quartus II系统工程设计143.2.1创建工程143.2.2新建Verilog源文件153.2.3工程编译153.2.4生成模块电路153.2.5新建Block Diagram/Schematic File并添加模块电路1
10、63.2.6设计Vector Waveform File163.3函数信号发生器的系统设计173.3.1系统总体设计183.3.2 FPGA系统设计流程183.3.3 FPGA系统模块设计194系统模块设计及仿真214.1频率寄存器模块设计214.2 DDS模块设计224.2.1 32位加法器224.2.2相位寄存器234.3波形产生模块设计244.3.1正弦波形ROM244.3.2方波模块264.3.3锯齿波模块274.4调幅模块设计285系统调试305.1调试305.2仿真结果30结论32致谢33参考文献34附录35附录1系统整体设计图35附录2各模块源程序35徐州工程学院毕业设计(论文)
11、1绪论1.1背景及意义函数信号发生器是各种测试和实验过程中不可缺少的工具,在通信、测量、雷达、控制、教学等领域应用十分广泛。不论是在生产、科研还是教学上,信号发生器都是电子工程师信号仿真实验的最佳工具。而且,信号发生器的设计方法多,设计技术也越来越先进。随着我国经济和科技的发展,对相应的测试仪器和测试手段也提出了更高的要求,信号发生器己成为测试仪器中至关重要的一类,因此开发信号发生器具有重大意义。传统的信号发生器大多采用专用芯片或单片机或模拟电路,成本高或控制方式不灵活或波形种类较少等不能满足要求。本课题的目的是研究函数信号发生器的设计方法,克服传统方法的缺点,用更好的方法设计出比较复杂的调频
12、、调幅功能的函数信号发生器。1.2波形发生器研究现状1.2.1波形发生器的发展状况波形发生器是能够产生大量的标准信号和用户定义信号,并保证高精度、高稳定性、可重复性和易操作性的电子仪器。函数波形发生器具有连续的相位变换和频率稳定性等优点,不仅可以模拟各种复杂信号,还可对频率、幅值、相移、波形进行动态及时的控制,并能够与其它仪器进行通讯,组成自动测试系统,因此被广泛用于自动控制系统、振动激励、通讯和仪器仪表领域。在70年代前,信号发生器主要有两类:正弦波和脉冲波,而函数发生器介于两类之间,能够提供正弦波、余弦波、方波、三角波、上弦波等几种常用标准波形,产生其它波形时,需要采用较复杂的电路和机电结
13、合的方法。这个时期的波形发生器多采用模拟电子技术,而且模拟器件构成的电路存在着尺寸大、价格贵、功耗大等缺点,并且要产生较为复杂的信号波形,则电路结构非常复杂。这种情况,主要表现为两个突出问题,一是通过电位器的调节来实现输出频率的调节,因此很难将频率调到某一固定值;二是脉冲的占空比不可调节。在70年代后,微处理器的出现,可以利用处理器、A/D和D/A,硬件和软件使波形发生器的功能扩大,产生更加复杂的波形。这时期的波形发生器多以软件为主,实质是采用微处理器对DAC的程序控制,就可以得到各种简单的波形。90年代末,出现几种真正高性能、高价格的函数发生器,但是HP公司推出了型号为HP77OS的信号模拟
14、装置系统,它由HP877OA任意波形数字化和HP1776A波形发生软件组成。HP877OA实际上也只能产生8种波形,而且价格昂贵。不久以后,Analogic公司推出了型号为Data-2020的多波形合成器,Lecroy公司生产的型号为9100的任意波形发生器等。到了二十一世纪,随着集成电路技术的高速发展,出现了多种工作频率可过GHz的DDS芯片,同时也推动了函数波形发生器的发展。2003年,Agilent的产品33220A能够产生17种波形,最高频率可达20M。2005年的产品N6030A能够产生高达500MHz的频率,采样的频率可达1.25GHz。由上面的产品可以看出,函数波形发生器发展很快
15、。.近几年来,国际上波形发生器技术发展主要体现在以下几个方面:1.过去由于频率很低应用的范围比较狭小,输出波形频率的提高,使得波形发生器能应用于越来越广的领域。波形发生器软件的开发正使波形数据的输入变得更加方便和容易。波形发生器通常允许用一系列的点、直线和固定的函数段把波形数据存入存储器。同时可以利用一种强有力的数学方程输入方式,复杂的波形可以由几个比较简单的公式复合成v=f(t)形式的波形方程的数学表达式产生。从而促进了函数波形发生器向任意波形发生器的发展,各种计算机语言的飞速发展也对任意波形发生器软件技术起到了推动作用。目前可以利用可视化编程语言(如 Visual Basic,Visual
16、C等等)编写任意波形发生器的软面板,这样允许从计算机显示屏上输入任意波形,来实现波形的输入。2.与VXI资源结合。目前,波形发生器由独立的台式仪器和适用于个人计算机的插卡以及新近开发的VXI模块。由于VXI总线的逐渐成熟和对测量仪器的高要求,在很多领域需要使用VXI系统测量产生复杂的波形,VXI的系统资源提供了明显的优越性,但由于开发VXI模块的周期长,而且需要专门的VXI机箱的配套使用,使得波形发生器VXI模块仅限于航空、军事及国防等大型领域。在民用方面,VXI模块远远不如台式仪器更为方便。3.随着信息技术蓬勃发展,台式仪器在走了一段下坡路之后,又重新繁荣起来。不过现在新的台式仪器的形态,和
17、几年前的己有很大的不同。这些新一代台式仪器具有多种特性,可以执行多种功能。而且外形尺寸与价格,都比过去的类似产品减少了一半。1.2.2国外波形发生器产品介绍早在1978年,由美国Wavetek公司和日本东亚电波工业公司公布了最高取样频率为5MHz,可以形成256点(存储长度)波形数据,垂直分辨率为8bit,主要用于振动、医疗、材料等领域的第一代高性能信号源。经过将近30年的发展,伴随着电子元器件、电路、及生产设备的高速化、高集成化,波形发生器的性能有了飞速的提高,其变得操作越来越简单,而输出波形的能力越来越强。波形操作方法的好坏,是由波形发生器控制软件质量保证的,编辑功能增加的越多,波形形成的
18、操作性越好。1.3本设计的主要工作本文在广泛收集相关资料的基础上,对直接数字频率合成技术进行了深入研究,采用可编程逻辑器件完成了本次设计。主要工作如下:1.基于FPGA的DDS模块设计采用Altera公司的的EP2C35F672C8芯片作为产生波形数据的主芯片,通过硬件编程语言实现DDS模块电路,这部分工作需要熟悉DDS原理,FPGA的开发流程,Verilog语言编程以及Quartus开发环境。2.信号波形调幅模块设计利用硬件编程语言设计乘法器,实现波形的幅度调制功能。3.正弦信号数据ROM设计ROM的初始化文件设计,利用MegaWizard Plug-In Manager定制正弦信号数据RO
19、M。2系统基本原理2.1函数信号发生器的几种实现方式任意波形发生器的实现方案主要有程序控制输出、DMA输出、可变时钟计数器寻址和直接数字频率合成等多种方式。2.1.1程序控制输出方式计算机根据波形的函数表达式,计算出一系列波形数据瞬时值,并定时地逐个传送给D/A转换器,合成出所需要的波形。这种方式具有电路简单、实现方便等特点。但数据输出定时不准确,会影响信号的频率和相位。波形数据输出依靠指令的执行来完成,当需要同时输出多个信号时,相邻信号通道的输出存在时间差,受计算机运行速度的限制,输出信号的频率较低。2.1.2 DMA输出方式DMA(direct memory aecess)方式输出不依赖于
20、程序的执行,由DMA控制器申请总线控制权,通过地址总线给出存储器的地址信号,同时选通存储器和D/A转换器,在两者之间建立直接的数据通道,使存储器相应单元中的波形数据传送给D/A转换器转换后输出信号。DMA方式输出信号,可以大大提高信号的数据输出速率。但也存在一些问题,如波形输出期间,微处理器因为失去了总线控制权,无法进行其他操作。在一个DMA操作中,只能在一个D/A转换器和存储器之间传送数据,无法实现多通道的信号输出。2.1.3可变时钟计数器寻址方式采用可变时钟计数器寻址波形存储器表,该方法是一种传统型任意波形发生器。原理框图如图2-1所示。图2-1可变时钟计数器寻址的任意波形发生器图中的计数
21、器实际上是一个地址发生器,计数器的触发时钟脉冲由一个频率可以控制的频率发生器产生,通过改变频率发生器的频率设置值,实现调整计数器产生的地址变化速率,从而改变输出的任意波形的频率。计数器产生的地址码提供读出存储器中波形数据所需要的地址信号,波形数据依次读出后送至高速D/A转换器,将之转变为模拟量,经低通滤波器后输出所需的波形。可见传统的任意波形发生器采用可变时钟和计数器寻址波形存储器表,此方法的优点是产生的地址连续,输出波形质量高。但其取样时频率较高,对硬件的要求也较高,而且常需多级分频或采用高性能的锁相环,其中分频式的任意波形发生器频率分辨率低,锁相式的任意波形发生器频率切换速度慢。2.1.4
22、直接数字频率合成方式DDS(direct digital synthesizer)是在一组存储器单元中按照信号波形数据点的输出次序存储了将要输出波形的数据,在控制电路的协调控制下,以一定的速率,周而复始地将波形数据依次发送给D/A转换器转换成相应的模拟信号。由于用硬件电路取代了计算机的控制,信号输出稳定度高。如需更新输出信号,不必改动任何线路和元器件,只需改写存储器中的波形数据即可。更主要的是,可以将微处理器从信号输出的负担中解脱出来。如图2-2为其工作流程图。图2-2直接数字频率合成方式的任意波形发生器基于对函数信号发生器的几种实现方式的了解,本文选择方便调频、调幅的直接频率合成DDS技术来
23、实现函数信号发生器。2.2频率合成器简介2.2.1频率合成技术概述频率合成器是现代电子系统的重要组成部分,它作为电子系统的“心脏”,在通信、雷达、电子对抗、导航、仪器仪表等许多领域中得到广泛的应用。频率合成理论早在30年代就开始提出,迄今为止已有70年的发展历史。所谓的频率合成就是将一个高精度和高稳定度的标准参考频率,经过混频、倍频与分频等对它进行加、减、乘、除的四则运算,最终产生大量的具有同样精确度和稳定度的频率源。频率合成大致经历了三个主要阶段:直接频率合成、采用锁相技术的间接频率合成、直接数字频率合成。早期的频率合成方法称为直接频率合成。它利用混频器、倍频器、分频器与带通滤波器来完成四则
24、运算。直接频率合成能实现快速频率变换、几乎任意高的频率分辨力、低相位噪声及很高的输出频率。缺点是直接合成由于使用了大量硬件设备如混频器、倍频器、分频器、带通滤波器等,因而体积大、造价高。此外寄生输出大,这是由于带通滤波器无法将混频器产生的无用频率分量滤尽。而且频率范围越宽,寄生分量也就越多。而这些足以抵消其所有优点。直接频率合成技术的固有缺点在间接频率合成技术中得到了很好的改善。间接频率合成又称锁相频率合成,采用锁相环路(PLL)技术对频率进行四则运算,产生所需频率。锁相环路(PLL)是一个能够跟踪输入信号相位的闭环自动控制系统。早在1932年DeBellescize提出的同步检波理论中首次公
25、布发表了对锁相环路的描述。但是由于其复杂的技术原理直到1947年锁相环路才第一次用于电视接收机水平和垂直的同步扫描。它的跟踪性能及低噪声性能得到人们的重视得到迅速发展。它在无线电技术的各个领域得到了很广泛的应用。但是锁相频率合成器也存在一些问题,以致难于满足合成器多方面的性能要求,主要表现在高频率分辨率与快速转换频率之间的矛盾。直接数字频率合成即DDS,它是目前最新的产生频率源的频率合成技术。这种技术是用数字计算机和数模变换器来产生信号完成直接数字频率合成的办法,其是目前最新的产生频率源的频率合成技术。这种技术是用数字计算机和数模变换器来产生信号,完成直接数字频率合成的办法或者是用计算机求解一
26、个数字递推关系式,或者是查阅表格上所存储的波形值。目前用的最多的是查表法。这种合成技术具有相对带宽很宽,频率切换时间短(ns级),分辨率高(uHz),相位变化连续,低相位噪声和低漂移,数字调制功能,可编程及数字化易于集成,易于调整等一系列性能指标远远超过了传统频率合成技术所能达到的水平,为各种电子系统提供了优于模拟信号源性能的高质量的频率源。目前它正朝着系统化,小型化、模块化和工程化的方向发展,性能越来越好,使用越来越方便,是目前应用最广泛的频率合成器之一。2.2.2频率合成器主要指标信号源的一个重要指标就是能输出频率准确可调的所需信号。一般传统的信号发生器采用谐振法,即用具有频率选择性的正反
27、馈回路来产生正弦振荡,获得所需频率信号,但难以产生大量的具有同一稳定度和准确度的不同频率。利用频率合成技术制成的信号发生器,通常被称为频率合成器。频率合成器既要产生所需要的频率,又要获得纯净的信号。频率合成器的主要指标如下:1.输出频率范围(fminfmax):指的是输出的最小频率和最大频率之间的变化范围。2.频率稳定度:指的是输出频率在一定时间间隔内和标准频率偏差的数值,它分长期、短期和瞬时稳定度三种。3.频率分辨率:指的是输出频率的最小间隔。4.频率转换时间:指的是输出由一种频率转换成另一频率的时间。5.频谱纯度:频谱纯度以杂散分量和相位噪声来衡量,杂散分量为谐波分量和非谐波分量两种,主要
28、由频率合成过程中的非线性失真产生,相位噪声是衡量输出信号相位抖动大小的参数。6.调制性能:指的是频率合成器是否具有调幅(AM)、调频(FM)、调相(PM)等功能。2.3 DDS原理DDS是一种全数字的频率合成方法,其基本结构主要由相位累加器、波形ROM、D/A转换器和低通滤波器四个部分构成,如图2-3所示。图2-3 DDS结构原理图2.3.1相位累加器相位累加器由一个N位的加法器和一个N位的寄存器构成,通过把上一个时钟的累加结果反馈回加法器的输入端而实现累加功能。从而使输出结果每一个时钟周期递增K。这里N为相位累加器的字长,K称为频率控制字。相位累加器结构如图2-4所示。图2-4相位累加器结构
29、其中,相位累加器字长为N,DDS控制时钟频率为fc,频率控制字为K。DDS直接从“相位”的概念出发进行频率合成。相位累加器由加法器与累加寄存器级联构成。每来一个时钟脉冲fc,加法器将频率控制字K与累加寄存器输出的累加相位数据相加,把相加后的结果送至累加寄存器的数据输入端。累加寄存器将加法器在上一个时钟脉冲作用后所产生的新相位数据反馈到加法器的输入端,以使加法器在下一个时钟脉冲的作用下继续与频率控制字相加。这样,相位累加器在每一个时钟脉冲输入时,把频率控制字累加一次,相位累加器输出的数据就是合成信号的相位,相位累加器的溢出频率就是DDS输出的信号频率。DDS的核心就是相位累加器,利用它来产生信号
30、递增的相位信息,整个DDS系统在统一的参考时钟下工作,每个时钟周期相位累加器作加法运算一次。加法运算的步进越大,相应合成的相位值变化越快,输出信号的频率也就越高。对于幅值归一化的正弦波信号的瞬时幅值完全由瞬时相位来决定,因为,所以相位变化越快,信号的频率越高。相位累加器利用Nbit二进制加法器的溢出特性来模拟理想正弦波的相位周期。相位累加器输出和ROM输出可分别理解为理想正弦波相位信号和时域波形的时钟抽样。假设,相位累加器字长为N,DDS控制时钟频率为,时钟周期为,频率控制字为K。系统工作时,累加器的单个时钟周期的增量值为,相应角频率 ,所以DDS的输出频率为,DDS输出频率步进间隔为。因DD
31、S输出信号是对正弦波的抽样合成的,所以应满足Niqust定理要求,即,也就是要求,根据频谱性能要求,一般取。当DDS相位累加器采用32位字长,时钟频率为50MHz时,它的输出频率间隔可达到。可见,DDS基于累加器相位控制方式给它带来了微步进的优势。2.3.2波形ROMROM表完成将累加器相位信息转换为幅值信息的功能。再由D/A完成数字抽样信号到连续时域信号的转换,D/A输出的台阶信号再经低通滤波器平滑可以得到精确的连续正弦信号波形。波形ROM示意图如图2-5所示。图2-5波形ROM示意图用相位累加器输出的数据作为波形存储器的相位取样地址,这样就可以把存储在波形存储器内的波形抽样值(二进制编码)
32、经查找表查出,完成相位到幅值转换。波形存储器的输出送到D/A转换器,D/A转换器将数字量形式的波形幅值转换成所要求合成频率的模拟量形式信号。低通滤波器用于滤除不需要的取样分量,以便输出频谱纯净的正弦波信号。2.3.3 DDS频率合成器优缺点DDS频率合成器具有以下优点:(1)频率分辨率高,输出频点多,可达2N个频点(假设DDS相位累加器的字长是N);(2)频率切换速度快,可达us量级;(3)频率切换时相位连续;(4)可以输出宽带正交信号;(5)输出相位噪声低,对参考频率源的相位噪声有改善作用;(6)可以产生任意波形;(7)全数字化实现,便于集成,体积小,重量轻。但DDS也有比较明显的缺点:(l
33、)输出信号的杂散比较大;(2)输出信号的带宽受到限制。DDS输出杂散比较大,这是由于信号合成过程中的相位截断误差、D/A转换器的截断误差和D/A转换器的非线性造成的。当然随着技术的发展,这些问题正在逐步得到解决。如通过增加波形ROM的长度以减小相位截断误差,通过增加波形ROM的字长和D/A转换器的精度以减小D/A量化误差等。在比较新的DDS芯片中普遍都采用了12bit的D/A转换器。当然一味靠增加波形ROM的深度和字长的方法来减小杂散对性能的提高总是有限的。已有研究在对DDS输出的频谱做了大量的分析后,总结出了误差的领域分布规律建立了误差模型,在分析DDS频谱特性的基础上又提出了一些降低杂散功
34、率的方法。可以通过采样的方法降低带内误差功率,可以通过随机抖动法提高无杂散动态范围,在D/A转换器的低位上加扰打破DDS输出的周期性,从而把周期性的杂散分量打散使之均匀化。2.4现场可编程门阵列(FPGA)2.4.1 FPGA简介 FPGA是英文Field Programmable Gate Array的缩写,即现场可编程门阵列,它是在PAL、GAL、EPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。FPGA采用了逻辑单元数组 LCA(Logic Cell Array)
35、这样一个新概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出/输入模块IOB(InputBlock.、OutputBlock)和内部联机(Interconnect)三个部分,如图2-6所示。CLB是实现各种逻辑功能的基本单元,包括组合逻辑,时序逻辑,RAM及各种运算功能。CLB以阵列形式分布在FPGA芯片中。IOB是芯片外部引脚数据与内部进行数据交换的接口电路。通过编程可将I/O引脚设置成输入、输出和双向等不同的功能,I/OB分布在芯片的四周。CLB之间的空隙部分是布线通道,布线通道给CLB和IOB的输入输出提供互联的路径。图2-6 FPGA内部结构图
36、2.4.2 FPGA特点FPGA的基本特点主要有:(1)采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片;(2) FPGA可做其他全定制或半定制ASIC电路的合适样片;(3) FPGA内部有丰富的触发器和IO引脚;(4) FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一;(5) FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。因此,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。FPGA具有静态可重复编程和动态在线系统重构的特性,使得硬件功能可以像软件一样通过编程来修改。在FPGA实际应用中,设计的保密和设计的可升
37、级是十分重要的,用单片机来配置FPGA可以很好的解决上述问题。用单片机配置FPGA器件时,关键在于产生合适的时序。单片机可选用常用的如MCS51系列、MCS96系列、AVR系列等均可。Cyclone-II系列FPGA主要由输入输出单元IOE、掩埋数组EAB、逻辑数组LAB及内部联机组成。EAB是在输入和输出埠加有寄存器的RAM块,其容量可灵活变化。所以,EAB不仅可以用于内存,还可以事先写入查表值来用它构成如乘法器、纠错逻辑等电路。当用于RAM时,EAB可配制成多种形式的字宽和容量。Altera公司FPGA器件Cyclone-II系列的组成主要包括:(l)逻辑数组,由多个逻辑数组块(Logic
38、 Array Blocks,LABs)排列而成,用于实现大部分逻辑功能;(2)在芯片四周分布着可编程的输入输出单元(InPut/OutPut Elements,IOEs),提供封装引脚与内部逻辑之间的连接接口;(3)丰富的多层互连结构的可编程联机;(4)片上的随机存取块状RAM;(5)锁相环(PLL),用于时钟的锁定与同步、能够实现时钟的倍频和分频;(6)高速的硬件乘法器,有助于实现高性能的DSP功能。2.4.3 FPGA工作状态FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。加电时,FPGA芯片将
39、EPROM中数据读入片内编程RAM中,配置完成以后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。FPGA的编程无须专用的FPGA编程器,只需用通用的EPROM、PROM编程器即可。当需要修改FPGA功能时,只需换一片EPROM即可。这样,同一片FPGA,不同的编程数据,可以产生不同的的电路功能。因此,FPGA的使用灵活。2.4.4 FPGA的编程技术目前有三种基本的FPGA编程技术:SRAM、反熔丝、Flash。其中,SRAM是迄今为止应用范围最广的架构,主要因为它速度快且具有可重编程能力,而反熔丝FPGA只具有一次可编程(one Time
40、Programmabfe,OTP)能力。基于Flash的FPGA是FPGA领域比较新的技术,也能提供可重编程功能。基于SRAM的FPGA器件经常带来一些其他的成本,包括:启动PROMS支持安全和保密应用的备用电池等等。基于Flash和反熔丝的FPGA没有这些隐含成本,因此可保证较低的总系统成本。2.4.5 FPGA器件配置方式Aletra公司的FPGA器件配置的方式组要分为两大类:主动方式和被动方式。主动方式由FPGA器件引导操作过程,它控制外部存储器的数据传输以及初始化过程,这种方式需要一个串行存储器件,用来存储配置信息。基于SRAM编程方式的FPGA器件多采用主动方式配置,每次重新上电后,
41、FPGA器件可以控制专用的串行配置存储器件对其进行配置。被动方式由外部计算机或控制器控制配置过程,CPLD器件以及为FPGA器件提供配置信息的专用配置器件通常采用这种编程方法。根据数据线的多少又可以将FPGA器件配置分为并行和串行配置两类。将前述方式进行不同组合可得到5种配置方式:主动串行(AS)、被动串行(PS)、被动并行同步(PPS)、被动并行异步(PPA)和边界扫描(JTAG)方式。2.4.6使用FPGA器件进行开发的优点使用FPGA器件设计数字电路,不仅可以简化设计过程,而且可以降低整个系统的体积和成本,增加系统的可靠性。它们无需花费传统意义下制造集成电路所需大量时间和精力,避免了投资
42、风险,成为电子器件行业中发展最快的一族。使用FPGA器件设计数字系统电路的主要优点如下:1.设计灵活。2.增大功能密集度。3.提高可靠性。4.缩短设计周期。5.工作速度快。6.增加系统的保密性能。7.降低成本。2.5 Verilog HDL语言简介Verilog HDL是一种硬件描述语言,于1995年被接纳为IEEE标准,标准编号为IEEE Std 1364-1995。Verilog HDL可用于从算法级、门级到开关级的多种抽象层次的数字系统建模。它使各种设计工具(包括验证仿真、时序分析、测试分析以及综合)能够在多个抽象层次上以标准文本格式描述数字系统,简单、直观并富有效率。由于Verilog
43、 HDL既是机器可读的语言也是人类可读的语言,因此它支持硬件设计的开发、验证、综合和测试;硬件数据之间的通信;硬件的设计、维护和修改。现在,Verilog HDL已经成为数字系统设计的首选语言,并成为综合、验证和布局布线技术的基础。Verilog HDL包含了丰富的内建原语,包括逻辑门、用户定义的原语、开关以及线逻辑。它还具有器件管脚间的时延和时序检查功能。从本质上讲,Verilog所具有的混合抽象层次由两种数据类型所提供,这两种数据类型是线网(net)和变量(variable)。对于连续赋值,变量和线网的表达式能够连续地将值驱动到线网,它提供了基本的结构级建模方法。对于过程赋值,变量和网络值
44、的计算结果可以存储于变量当中,它提供了基本的行为级建模方法。一个用Verilog HDL描述的设计包含一组模块,每一个模块都包含一个I/O接口和一个功能描述。模块的功能描述可以是结构级的、行为级的、也可以是结构级和行为级的混合。这些模块组成一个层次化结构并使用线网进行互连。一个完整的VerilogHDL设计模块包括端口定义、I/O声明、信号类型声明和功能描述四部分。Verilog语言可以通过使用编程语言(Programming Language Interface,PLI)和Verilog程序接口(Verilog Procedural Interface,VPI)进行扩展。PLI/VPI是一些
45、例程的集合,它使得外部函数能够访问包含在Verilog HDL描述内部的信息,推动了与仿真之间的动态交互。PLI/VPI的应用包括将Verilog HDL仿真器与其它仿真和CAD系统、用户定制的调试任务、时延计算以及标注器相连接。用Verilog HDL语言开发FPGA的完整流程为:1.文本编辑:用任何文本编辑器都可以进行,也可以用专用的HDL编辑环境。通常Verilog文件保存为.v文件。2.功能仿真:将文件调入HDL仿真软件进行功能仿真,检查逻辑功能是否正确(也叫前仿真,对简单的设计可以跳过这一步,只在布线完成以后,进行时序仿真)。3.逻辑综合:将源文件调入逻辑综合软件进行综合,即把语言综
46、合成最简的布尔表达式和信号的连接关系。逻辑综合软件会生成.edf(edif)的EDA工业标准文件。4.布局布线:将.edf文件调入PLD厂家提供的软件中进行布线,即把设计好的逻辑安放到PLD/FPGA内。5.时序仿真:需要利用在布局布线中获得的精确参数,用仿真软件验证电路的时序。6.编程下载:确认仿真无误后,将文件下载到芯片。3系统软件设计FPGA软件电路设计主要是通过软件编程实现FPGA内部的电路的形成。本章主要是利用VerilogHDL,把数字电路系统从上层到下层(从抽象到具体)逐层描述设计思想,用一系列分层次的模块来表示极其复杂的数字系统。然后,利用Quartus II工具,逐层进行仿真
47、验证,再把其中需要变为实际电路的模块组合,经过自动综合工具转换到门级电路网表。接下去,再用现场可编程门阵列FPGA自动布局布线工具,把网表转换为要实现的具体电路布线结构。3.1编程软件的介绍3.1.1 Quartus II简介Quartus II是Altera公司推出的CPLD/FPGA开发工具,Quartus II提供了完全集成且与电路结构无关的开发包环境,具有数字逻辑设计的全部特性,包括:1.可利用原理图、结构框图、VerilogHDL、AHDL和VHDL完成电路描述,并将其保存为设计实体文件。2.芯片(电路)平面布局连线编辑。3.LogicLock增量设计方法,用户可建立并优化系统,然后
48、添加对原始系统的性能影响较小或无影响的后续模块。4.功能强大的逻辑综合工具。5.完备的电路功能仿真与时序逻辑仿真工具。6.定时/时序分析与关键路径延时分析。7.可使用SignalTap II逻辑分析工具进行嵌入式的逻辑分析。8.支持软件源文件的添加和创建,并将它们链接起来生成编程文件。9.使用组合编译方式可一次完成整体设计流程。10.自动定位编译错误。11.高效的期间编程与验证工具。12.可读入标准的EDIF网表文件、VHDL网表文件和Verilog网表文件。13.能生成第三方EDA软件使用的VHDL网表文件和Verilog网表文件。3.1.2 Quartus II设计流程1.设计输入:完成器件的硬件描述,包括文本编辑器、块与符号编辑器、MegaWizard插件管理器、约束编辑器和布局编辑器等工具。2.