基于FPGA的函数信号发生器设计毕业设计

上传人:沈*** 文档编号:41318003 上传时间:2021-11-19 格式:DOC 页数:47 大小:920KB
返回 下载 相关 举报
基于FPGA的函数信号发生器设计毕业设计_第1页
第1页 / 共47页
基于FPGA的函数信号发生器设计毕业设计_第2页
第2页 / 共47页
基于FPGA的函数信号发生器设计毕业设计_第3页
第3页 / 共47页
点击查看更多>>
资源描述
徐州工程学院毕业设计(论文)基于FPGA的函数信号发生器设计摘要函数信号发生器是各种测试和实验过程中不可缺少的工具,在通信、测量、雷达、控制、教学等领域应用十分广泛。随着我国经济和科技的发展,对相应的测试仪器和测试手段也提出了更高的要求,信号发生器己成为测试仪器中至关重要的一类。本文在探讨函数信号发生器几种实现方式的基础上,采用直接数字频率合成(DDS)技术实现函数信号发生器。在对直接数字频率合成(DDS)技术充分了解后,本文选择以Altera公司生产的FPGA芯片为核心,以硬件描述语言Verilog HDL为开发语言,设计实现了可以产生任意波形(以正弦波为例)和固定波形的(以方波和锯齿波为例)的函数信号发生器。文中详细阐述了直接数字频率合成(DDS)、波形产生以及调幅模块的设计,并给出了相应的仿真结果。本文最后给出了整个系统的仿真结果,即正弦波、方波、锯齿波的波形输出。实验表明,用现场可编程门阵列(FPGA)设计实现的采用直接数字频率合成(DDS)技术的函数信号发生器,克服了传统方法的局限,实现了信号发生器多波形输出以及方便调频、调幅的功能。关键词 函数信号发生器;直接数字频率合成;现场可编程门阵列;Verilog HDLAbstractFunction Generator is an indispensable tool in a process of various tests and experiments. It is widely used in communication, measurement, radar, control, teaching and other fields. With the development of China's economic and technological, the corresponding test equipment and test methods are also put forward higher requirements, and the signal generator has become a 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 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 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 function 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 Synthesizer 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.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并添加模块电路163.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徐州工程学院毕业设计(论文)1绪论1.1背景及意义函数信号发生器是各种测试和实验过程中不可缺少的工具,在通信、测量、雷达、控制、教学等领域应用十分广泛。不论是在生产、科研还是教学上,信号发生器都是电子工程师信号仿真实验的最佳工具。而且,信号发生器的设计方法多,设计技术也越来越先进。随着我国经济和科技的发展,对相应的测试仪器和测试手段也提出了更高的要求,信号发生器己成为测试仪器中至关重要的一类,因此开发信号发生器具有重大意义。传统的信号发生器大多采用专用芯片或单片机或模拟电路,成本高或控制方式不灵活或波形种类较少等不能满足要求。本课题的目的是研究函数信号发生器的设计方法,克服传统方法的缺点,用更好的方法设计出比较复杂的调频、调幅功能的函数信号发生器。1.2波形发生器研究现状1.2.1波形发生器的发展状况波形发生器是能够产生大量的标准信号和用户定义信号,并保证高精度、高稳定性、可重复性和易操作性的电子仪器。函数波形发生器具有连续的相位变换和频率稳定性等优点,不仅可以模拟各种复杂信号,还可对频率、幅值、相移、波形进行动态及时的控制,并能够与其它仪器进行通讯,组成自动测试系统,因此被广泛用于自动控制系统、振动激励、通讯和仪器仪表领域。在70年代前,信号发生器主要有两类:正弦波和脉冲波,而函数发生器介于两类之间,能够提供正弦波、余弦波、方波、三角波、上弦波等几种常用标准波形,产生其它波形时,需要采用较复杂的电路和机电结合的方法。这个时期的波形发生器多采用模拟电子技术,而且模拟器件构成的电路存在着尺寸大、价格贵、功耗大等缺点,并且要产生较为复杂的信号波形,则电路结构非常复杂。这种情况,主要表现为两个突出问题,一是通过电位器的调节来实现输出频率的调节,因此很难将频率调到某一固定值;二是脉冲的占空比不可调节。在70年代后,微处理器的出现,可以利用处理器、A/D和D/A,硬件和软件使波形发生器的功能扩大,产生更加复杂的波形。这时期的波形发生器多以软件为主,实质是采用微处理器对DAC的程序控制,就可以得到各种简单的波形。90年代末,出现几种真正高性能、高价格的函数发生器,但是HP公司推出了型号为HP77OS的信号模拟装置系统,它由HP877OA任意波形数字化和HP1776A波形发生软件组成。HP877OA实际上也只能产生8种波形,而且价格昂贵。不久以后,Analogic公司推出了型号为Data-2020的多波形合成器,Lecroy公司生产的型号为9100的任意波形发生器等。到了二十一世纪,随着集成电路技术的高速发展,出现了多种工作频率可过GHz的DDS芯片,同时也推动了函数波形发生器的发展。2003年,Agilent的产品33220A能够产生17种波形,最高频率可达20M。2005年的产品N6030A能够产生高达500MHz的频率,采样的频率可达1.25GHz。由上面的产品可以看出,函数波形发生器发展很快。.近几年来,国际上波形发生器技术发展主要体现在以下几个方面:1.过去由于频率很低应用的范围比较狭小,输出波形频率的提高,使得波形发生器能应用于越来越广的领域。波形发生器软件的开发正使波形数据的输入变得更加方便和容易。波形发生器通常允许用一系列的点、直线和固定的函数段把波形数据存入存储器。同时可以利用一种强有力的数学方程输入方式,复杂的波形可以由几个比较简单的公式复合成v=f(t)形式的波形方程的数学表达式产生。从而促进了函数波形发生器向任意波形发生器的发展,各种计算机语言的飞速发展也对任意波形发生器软件技术起到了推动作用。目前可以利用可视化编程语言(如 Visual Basic,VisualC等等)编写任意波形发生器的软面板,这样允许从计算机显示屏上输入任意波形,来实现波形的输入。2.与VXI资源结合。目前,波形发生器由独立的台式仪器和适用于个人计算机的插卡以及新近开发的VXI模块。由于VXI总线的逐渐成熟和对测量仪器的高要求,在很多领域需要使用VXI系统测量产生复杂的波形,VXI的系统资源提供了明显的优越性,但由于开发VXI模块的周期长,而且需要专门的VXI机箱的配套使用,使得波形发生器VXI模块仅限于航空、军事及国防等大型领域。在民用方面,VXI模块远远不如台式仪器更为方便。3.随着信息技术蓬勃发展,台式仪器在走了一段下坡路之后,又重新繁荣起来。不过现在新的台式仪器的形态,和几年前的己有很大的不同。这些新一代台式仪器具有多种特性,可以执行多种功能。而且外形尺寸与价格,都比过去的类似产品减少了一半。1.2.2国外波形发生器产品介绍早在1978年,由美国Wavetek公司和日本东亚电波工业公司公布了最高取样频率为5MHz,可以形成256点(存储长度)波形数据,垂直分辨率为8bit,主要用于振动、医疗、材料等领域的第一代高性能信号源。经过将近30年的发展,伴随着电子元器件、电路、及生产设备的高速化、高集成化,波形发生器的性能有了飞速的提高,其变得操作越来越简单,而输出波形的能力越来越强。波形操作方法的好坏,是由波形发生器控制软件质量保证的,编辑功能增加的越多,波形形成的操作性越好。1.3本设计的主要工作本文在广泛收集相关资料的基础上,对直接数字频率合成技术进行了深入研究,采用可编程逻辑器件完成了本次设计。主要工作如下:1.基于FPGA的DDS模块设计采用Altera公司的的EP2C35F672C8芯片作为产生波形数据的主芯片,通过硬件编程语言实现DDS模块电路,这部分工作需要熟悉DDS原理,FPGA的开发流程,Verilog语言编程以及Quartus开发环境。2.信号波形调幅模块设计利用硬件编程语言设计乘法器,实现波形的幅度调制功能。3.正弦信号数据ROM设计ROM的初始化文件设计,利用MegaWizard Plug-In Manager定制正弦信号数据ROM。2系统基本原理2.1函数信号发生器的几种实现方式任意波形发生器的实现方案主要有程序控制输出、DMA输出、可变时钟计数器寻址和直接数字频率合成等多种方式。2.1.1程序控制输出方式计算机根据波形的函数表达式,计算出一系列波形数据瞬时值,并定时地逐个传送给D/A转换器,合成出所需要的波形。这种方式具有电路简单、实现方便等特点。但数据输出定时不准确,会影响信号的频率和相位。波形数据输出依靠指令的执行来完成,当需要同时输出多个信号时,相邻信号通道的输出存在时间差,受计算机运行速度的限制,输出信号的频率较低。2.1.2 DMA输出方式DMA(direct memory aecess)方式输出不依赖于程序的执行,由DMA控制器申请总线控制权,通过地址总线给出存储器的地址信号,同时选通存储器和D/A转换器,在两者之间建立直接的数据通道,使存储器相应单元中的波形数据传送给D/A转换器转换后输出信号。DMA方式输出信号,可以大大提高信号的数据输出速率。但也存在一些问题,如波形输出期间,微处理器因为失去了总线控制权,无法进行其他操作。在一个DMA操作中,只能在一个D/A转换器和存储器之间传送数据,无法实现多通道的信号输出。2.1.3可变时钟计数器寻址方式采用可变时钟计数器寻址波形存储器表,该方法是一种传统型任意波形发生器。原理框图如图2-1所示。图2-1可变时钟计数器寻址的任意波形发生器图中的计数器实际上是一个地址发生器,计数器的触发时钟脉冲由一个频率可以控制的频率发生器产生,通过改变频率发生器的频率设置值,实现调整计数器产生的地址变化速率,从而改变输出的任意波形的频率。计数器产生的地址码提供读出存储器中波形数据所需要的地址信号,波形数据依次读出后送至高速D/A转换器,将之转变为模拟量,经低通滤波器后输出所需的波形。可见传统的任意波形发生器采用可变时钟和计数器寻址波形存储器表,此方法的优点是产生的地址连续,输出波形质量高。但其取样时频率较高,对硬件的要求也较高,而且常需多级分频或采用高性能的锁相环,其中分频式的任意波形发生器频率分辨率低,锁相式的任意波形发生器频率切换速度慢。2.1.4直接数字频率合成方式DDS(direct digital synthesizer)是在一组存储器单元中按照信号波形数据点的输出次序存储了将要输出波形的数据,在控制电路的协调控制下,以一定的速率,周而复始地将波形数据依次发送给D/A转换器转换成相应的模拟信号。由于用硬件电路取代了计算机的控制,信号输出稳定度高。如需更新输出信号,不必改动任何线路和元器件,只需改写存储器中的波形数据即可。更主要的是,可以将微处理器从信号输出的负担中解脱出来。如图2-2为其工作流程图。图2-2直接数字频率合成方式的任意波形发生器基于对函数信号发生器的几种实现方式的了解,本文选择方便调频、调幅的直接频率合成DDS技术来实现函数信号发生器。2.2频率合成器简介2.2.1频率合成技术概述频率合成器是现代电子系统的重要组成部分,它作为电子系统的“心脏”,在通信、雷达、电子对抗、导航、仪器仪表等许多领域中得到广泛的应用。频率合成理论早在30年代就开始提出,迄今为止已有70年的发展历史。所谓的频率合成就是将一个高精度和高稳定度的标准参考频率,经过混频、倍频与分频等对它进行加、减、乘、除的四则运算,最终产生大量的具有同样精确度和稳定度的频率源。频率合成大致经历了三个主要阶段:直接频率合成、采用锁相技术的间接频率合成、直接数字频率合成。早期的频率合成方法称为直接频率合成。它利用混频器、倍频器、分频器与带通滤波器来完成四则运算。直接频率合成能实现快速频率变换、几乎任意高的频率分辨力、低相位噪声及很高的输出频率。缺点是直接合成由于使用了大量硬件设备如混频器、倍频器、分频器、带通滤波器等,因而体积大、造价高。此外寄生输出大,这是由于带通滤波器无法将混频器产生的无用频率分量滤尽。而且频率范围越宽,寄生分量也就越多。而这些足以抵消其所有优点。直接频率合成技术的固有缺点在间接频率合成技术中得到了很好的改善。间接频率合成又称锁相频率合成,采用锁相环路(PLL)技术对频率进行四则运算,产生所需频率。锁相环路(PLL)是一个能够跟踪输入信号相位的闭环自动控制系统。早在1932年DeBellescize提出的同步检波理论中首次公布发表了对锁相环路的描述。但是由于其复杂的技术原理直到1947年锁相环路才第一次用于电视接收机水平和垂直的同步扫描。它的跟踪性能及低噪声性能得到人们的重视得到迅速发展。它在无线电技术的各个领域得到了很广泛的应用。但是锁相频率合成器也存在一些问题,以致难于满足合成器多方面的性能要求,主要表现在高频率分辨率与快速转换频率之间的矛盾。直接数字频率合成即DDS,它是目前最新的产生频率源的频率合成技术。这种技术是用数字计算机和数模变换器来产生信号完成直接数字频率合成的办法,其是目前最新的产生频率源的频率合成技术。这种技术是用数字计算机和数模变换器来产生信号,完成直接数字频率合成的办法或者是用计算机求解一个数字递推关系式,或者是查阅表格上所存储的波形值。目前用的最多的是查表法。这种合成技术具有相对带宽很宽,频率切换时间短(ns级),分辨率高(uHz),相位变化连续,低相位噪声和低漂移,数字调制功能,可编程及数字化易于集成,易于调整等一系列性能指标远远超过了传统频率合成技术所能达到的水平,为各种电子系统提供了优于模拟信号源性能的高质量的频率源。目前它正朝着系统化,小型化、模块化和工程化的方向发展,性能越来越好,使用越来越方便,是目前应用最广泛的频率合成器之一。2.2.2频率合成器主要指标信号源的一个重要指标就是能输出频率准确可调的所需信号。一般传统的信号发生器采用谐振法,即用具有频率选择性的正反馈回路来产生正弦振荡,获得所需频率信号,但难以产生大量的具有同一稳定度和准确度的不同频率。利用频率合成技术制成的信号发生器,通常被称为频率合成器。频率合成器既要产生所需要的频率,又要获得纯净的信号。频率合成器的主要指标如下:1.输出频率范围(fminfmax):指的是输出的最小频率和最大频率之间的变化范围。2.频率稳定度:指的是输出频率在一定时间间隔内和标准频率偏差的数值,它分长期、短期和瞬时稳定度三种。3.频率分辨率:指的是输出频率的最小间隔。4.频率转换时间:指的是输出由一种频率转换成另一频率的时间。5.频谱纯度:频谱纯度以杂散分量和相位噪声来衡量,杂散分量为谐波分量和非谐波分量两种,主要由频率合成过程中的非线性失真产生,相位噪声是衡量输出信号相位抖动大小的参数。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相位累加器结构其中,相位累加器字长为N,DDS控制时钟频率为fc,频率控制字为K。DDS直接从“相位”的概念出发进行频率合成。相位累加器由加法器与累加寄存器级联构成。每来一个时钟脉冲fc,加法器将频率控制字K与累加寄存器输出的累加相位数据相加,把相加后的结果送至累加寄存器的数据输入端。累加寄存器将加法器在上一个时钟脉冲作用后所产生的新相位数据反馈到加法器的输入端,以使加法器在下一个时钟脉冲的作用下继续与频率控制字相加。这样,相位累加器在每一个时钟脉冲输入时,把频率控制字累加一次,相位累加器输出的数据就是合成信号的相位,相位累加器的溢出频率就是DDS输出的信号频率。DDS的核心就是相位累加器,利用它来产生信号递增的相位信息,整个DDS系统在统一的参考时钟下工作,每个时钟周期相位累加器作加法运算一次。加法运算的步进越大,相应合成的相位值变化越快,输出信号的频率也就越高。对于幅值归一化的正弦波信号的瞬时幅值完全由瞬时相位来决定,因为,所以相位变化越快,信号的频率越高。相位累加器利用Nbit二进制加法器的溢出特性来模拟理想正弦波的相位周期。相位累加器输出和ROM输出可分别理解为理想正弦波相位信号和时域波形的时钟抽样。假设,相位累加器字长为N,DDS控制时钟频率为,时钟周期为,频率控制字为K。系统工作时,累加器的单个时钟周期的增量值为,相应角频率 ,所以DDS的输出频率为,DDS输出频率步进间隔为。因DDS输出信号是对正弦波的抽样合成的,所以应满足Niqust定理要求,即,也就是要求,根据频谱性能要求,一般取。当DDS相位累加器采用32位字长,时钟频率为50MHz时,它的输出频率间隔可达到。可见,DDS基于累加器相位控制方式给它带来了微步进的优势。2.3.2波形ROMROM表完成将累加器相位信息转换为幅值信息的功能。再由D/A完成数字抽样信号到连续时域信号的转换,D/A输出的台阶信号再经低通滤波器平滑可以得到精确的连续正弦信号波形。波形ROM示意图如图2-5所示。图2-5波形ROM示意图用相位累加器输出的数据作为波形存储器的相位取样地址,这样就可以把存储在波形存储器内的波形抽样值(二进制编码)经查找表查出,完成相位到幅值转换。波形存储器的输出送到D/A转换器,D/A转换器将数字量形式的波形幅值转换成所要求合成频率的模拟量形式信号。低通滤波器用于滤除不需要的取样分量,以便输出频谱纯净的正弦波信号。2.3.3 DDS频率合成器优缺点DDS频率合成器具有以下优点:(1)频率分辨率高,输出频点多,可达2N个频点(假设DDS相位累加器的字长是N);(2)频率切换速度快,可达us量级;(3)频率切换时相位连续;(4)可以输出宽带正交信号;(5)输出相位噪声低,对参考频率源的相位噪声有改善作用;(6)可以产生任意波形;(7)全数字化实现,便于集成,体积小,重量轻。但DDS也有比较明显的缺点:(l)输出信号的杂散比较大;(2)输出信号的带宽受到限制。DDS输出杂散比较大,这是由于信号合成过程中的相位截断误差、D/A转换器的截断误差和D/A转换器的非线性造成的。当然随着技术的发展,这些问题正在逐步得到解决。如通过增加波形ROM的长度以减小相位截断误差,通过增加波形ROM的字长和D/A转换器的精度以减小D/A量化误差等。在比较新的DDS芯片中普遍都采用了12bit的D/A转换器。当然一味靠增加波形ROM的深度和字长的方法来减小杂散对性能的提高总是有限的。已有研究在对DDS输出的频谱做了大量的分析后,总结出了误差的领域分布规律建立了误差模型,在分析DDS频谱特性的基础上又提出了一些降低杂散功率的方法。可以通过采样的方法降低带内误差功率,可以通过随机抖动法提高无杂散动态范围,在D/A转换器的低位上加扰打破DDS输出的周期性,从而把周期性的杂散分量打散使之均匀化。2.4现场可编程门阵列(FPGA)2.4.1 FPGA简介 FPGA是英文Field Programmable Gate Array的缩写,即现场可编程门阵列,它是在PAL、GAL、EPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。FPGA采用了逻辑单元数组 LCA(Logic Cell Array)这样一个新概念,内部包括可配置逻辑模块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内部结构图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实际应用中,设计的保密和设计的可升级是十分重要的,用单片机来配置FPGA可以很好的解决上述问题。用单片机配置FPGA器件时,关键在于产生合适的时序。单片机可选用常用的如MCS51系列、MCS96系列、AVR系列等均可。Cyclone-II系列FPGA主要由输入输出单元IOE、掩埋数组EAB、逻辑数组LAB及内部联机组成。EAB是在输入和输出埠加有寄存器的RAM块,其容量可灵活变化。所以,EAB不仅可以用于内存,还可以事先写入查表值来用它构成如乘法器、纠错逻辑等电路。当用于RAM时,EAB可配制成多种形式的字宽和容量。Altera公司FPGA器件Cyclone-II系列的组成主要包括:(l)逻辑数组,由多个逻辑数组块(Logic Array Blocks,LABs)排列而成,用于实现大部分逻辑功能;(2)在芯片四周分布着可编程的输入输出单元(InPut/OutPut Elements,IOEs),提供封装引脚与内部逻辑之间的连接接口;(3)丰富的多层互连结构的可编程联机;(4)片上的随机存取块状RAM;(5)锁相环(PLL),用于时钟的锁定与同步、能够实现时钟的倍频和分频;(6)高速的硬件乘法器,有助于实现高性能的DSP功能。2.4.3 FPGA工作状态FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成以后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。FPGA的编程无须专用的FPGA编程器,只需用通用的EPROM、PROM编程器即可。当需要修改FPGA功能时,只需换一片EPROM即可。这样,同一片FPGA,不同的编程数据,可以产生不同的的电路功能。因此,FPGA的使用灵活。2.4.4 FPGA的编程技术目前有三种基本的FPGA编程技术:SRAM、反熔丝、Flash。其中,SRAM是迄今为止应用范围最广的架构,主要因为它速度快且具有可重编程能力,而反熔丝FPGA只具有一次可编程(one Time Programmabfe,OTP)能力。基于Flash的FPGA是FPGA领域比较新的技术,也能提供可重编程功能。基于SRAM的FPGA器件经常带来一些其他的成本,包括:启动PROMS支持安全和保密应用的备用电池等等。基于Flash和反熔丝的FPGA没有这些隐含成本,因此可保证较低的总系统成本。2.4.5 FPGA器件配置方式Aletra公司的FPGA器件配置的方式组要分为两大类:主动方式和被动方式。主动方式由FPGA器件引导操作过程,它控制外部存储器的数据传输以及初始化过程,这种方式需要一个串行存储器件,用来存储配置信息。基于SRAM编程方式的FPGA器件多采用主动方式配置,每次重新上电后,FPGA器件可以控制专用的串行配置存储器件对其进行配置。被动方式由外部计算机或控制器控制配置过程,CPLD器件以及为FPGA器件提供配置信息的专用配置器件通常采用这种编程方法。根据数据线的多少又可以将FPGA器件配置分为并行和串行配置两类。将前述方式进行不同组合可得到5种配置方式:主动串行(AS)、被动串行(PS)、被动并行同步(PPS)、被动并行异步(PPA)和边界扫描(JTAG)方式。2.4.6使用FPGA器件进行开发的优点使用FPGA器件设计数字电路,不仅可以简化设计过程,而且可以降低整个系统的体积和成本,增加系统的可靠性。它们无需花费传统意义下制造集成电路所需大量时间和精力,避免了投资风险,成为电子器件行业中发展最快的一族。使用FPGA器件设计数字系统电路的主要优点如下:1.设计灵活。2.增大功能密集度。3.提高可靠性。4.缩短设计周期。5.工作速度快。6.增加系统的保密性能。7.降低成本。2.5 Verilog HDL语言简介Verilog HDL是一种硬件描述语言,于1995年被接纳为IEEE标准,标准编号为IEEE Std 1364-1995。Verilog HDL可用于从算法级、门级到开关级的多种抽象层次的数字系统建模。它使各种设计工具(包括验证仿真、时序分析、测试分析以及综合)能够在多个抽象层次上以标准文本格式描述数字系统,简单、直观并富有效率。由于Verilog HDL既是机器可读的语言也是人类可读的语言,因此它支持硬件设计的开发、验证、综合和测试;硬件数据之间的通信;硬件的设计、维护和修改。现在,Verilog HDL已经成为数字系统设计的首选语言,并成为综合、验证和布局布线技术的基础。Verilog HDL包含了丰富的内建原语,包括逻辑门、用户定义的原语、开关以及线逻辑。它还具有器件管脚间的时延和时序检查功能。从本质上讲,Verilog所具有的混合抽象层次由两种数据类型所提供,这两种数据类型是线网(net)和变量(variable)。对于连续赋值,变量和线网的表达式能够连续地将值驱动到线网,它提供了基本的结构级建模方法。对于过程赋值,变量和网络值的计算结果可以存储于变量当中,它提供了基本的行为级建模方法。一个用Verilog HDL描述的设计包含一组模块,每一个模块都包含一个I/O接口和一个功能描述。模块的功能描述可以是结构级的、行为级的、也可以是结构级和行为级的混合。这些模块组成一个层次化结构并使用线网进行互连。一个完整的VerilogHDL设计模块包括端口定义、I/O声明、信号类型声明和功能描述四部分。Verilog语言可以通过使用编程语言(Programming Language Interface,PLI)和Verilog程序接口(Verilog Procedural Interface,VPI)进行扩展。PLI/VPI是一些例程的集合,它使得外部函数能够访问包含在Verilog HDL描述内部的信息,推动了与仿真之间的动态交互。PLI/VPI的应用包括将Verilog HDL仿真器与其它仿真和CAD系统、用户定制的调试任务、时延计算以及标注器相连接。用Verilog HDL语言开发FPGA的完整流程为:1.文本编辑:用任何文本编辑器都可以进行,也可以用专用的HDL编辑环境。通常Verilog文件保存为.v文件。2.功能仿真:将文件调入HDL仿真软件进行功能仿真,检查逻辑功能是否正确(也叫前仿真,对简单的设计可以跳过这一步,只在布线完成以后,进行时序仿真)。3.逻辑综合:将源文件调入逻辑综合软件进行综合,即把语言综合成最简的布尔表达式和信号的连接关系。逻辑综合软件会生成.edf(edif)的EDA工业标准文件。4.布局布线:将.edf文件调入PLD厂家提供的软件中进行布线,即把设计好的逻辑安放到PLD/FPGA内。5.时序仿真:需要利用在布局布线中获得的精确参数,用仿真软件验证电路的时序。6.编程下载:确认仿真无误后,将文件下载到芯片。3系统软件设计FPGA软件电路设计主要是通过软件编程实现FPGA内部的电路的形成。本章主要是利用VerilogHDL,把数字电路系统从上层到下层(从抽象到具体)逐层描述设计思想,用一系列分层次的模块来表示极其复杂的数字系统。然后,利用Quartus II工具,逐层进行仿真验证,再把其中需要变为实际电路的模块组合,经过自动综合工具转换到门级电路网表。接下去,再用现场可编程门阵列FPGA自动布局布线工具,把网表转换为要实现的具体电路布线结构。3.1编程软件的介绍3.1.1 Quartus II简介Quartus II是Altera公司推出的CPLD/FPGA开发工具,Quartus II提供了完全集成且与电路结构无关的开发包环境,具有数字逻辑设计的全部特性,包括:1.可利用原理图、结构框图、VerilogHDL、AHDL和VHDL完成电路描述,并将其保存为设计实体文件。2.芯片(电路)平面布局连线编辑。3.LogicLock增量设计方法,用户可建立并优化系统,然后添加对原始系统的性能影响较小或无影响的后续模块。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.综合:包括分析和综合器件、辅助工具和RTL查看器等工具。3.布局连线:将设计综合后的网表文件映射到实体器件的过程,包括 Fitter工具、约束编辑器、布局图编辑器、芯片编辑器和增量布局连线工具。4.时序分析;进行时序分析,可查看时序分析结果报告。5.仿真:Quartus II提供了功能仿真和时序仿真两种工具。6.器件编程与配置:包括四种编程模式,即被动串行模式、JTAG模式、主动串行模式和插座内编程模式。3.2 Quartus II系统工程设计Quartus II 软件是可编程逻辑器件集成开发环境。用于完成波形发生器的分析综合、硬件优化、适配、配置文件编辑下载以及硬件系统测试等。3.2.1创建工程任何一项设计都是一项工程,都必须首先为此工程建立一个放与此工程相关的所有文件的文件夹,此文件夹将被EDA软件默认为工作库(Work Libray)。1.指定项目目录、名称和顶层实体。在图3-1中设当文本框内设置路径、名称和顶层实体名,名称和顶层实体名必须相同,且不能用中文名。设置好后单击Next按钮。图3-1指定项目目录、名称和顶层实体2.包含设计文件,执行默认操作,单击Next按钮。3.指定本设计的Altera器件系列。本设计采用Cyclone-系列的EP2C35F672C8芯片。4.指定用于本工程的其它EDA工具,默认操作,单击Next按钮。5.审查工程设定。确认无误后,单击Finish按钮,结束新建工程向导,如图3-2所示。图3-2审查工程3.2.2新建Verilog源文件选择FileNew命令,显示如图3-4界面,选择Verilog HDL File,单击OK按钮,进入源文件编辑区,输入源程序并保存文件,将Verilog源程序添加进工程,即Add Current File To Project。3.2.3工程编译Quartus II编译器是由一系列处理模块构成的,这些模块负责对设计项目的检错、逻辑综合和结构综合。即将设计项目适配进FPGA/CPLD目标器中,同时产生多种用途的输出文件,如功能和时序仿真文件、器件编程的目标文件等。编译器首先从工程设计文件间的层次结构描述中提取信息,包括每个低层次文件中的错误信息,供设计者排除,然后将这些层次构建产生一个结构化的以网表文件表达的电路原理图文件,并把各层次中所有的文件结合成一个数据包,以便更有效的处理。首先选择Processing菜单中的Start Compilation选项,启动全程编译,或者直接单击工具栏上的编译按钮。注意这里所谓的编译(Compilation)包括Quartus II对设计输入的多项处理操作,其中包括排错、数据网表文件提取、逻辑综合、适配、装配文件(仿真文件与编程配置文件)生成,以及基于目标器件的工程时序分析等。3.2.4生成模块电路源程序工程编译无误后,可生成模块电路。选择FileCreate/UpdateCreate Symbol Files For Current File,例如图3-3所示的是一个由Verilog源程序生成的乘法器。图3-3乘法器3.2.5新建Block Diagram/Schematic File并添加模块电路1.在Quartus II软件里选择FileNew打开新建文件夹对话框,选择Block Diagram/Schematic File,单击OK,即建立了一个空的顶层模块。2.在空白处右击,选择InsertSymbol,打开一个Symbol对话框,如图3-4所示,选择已有模块,则可将其添加到顶层模块中。将各模块连接后,则可得系统的完整模块图。图3-4 Symbol对话框3.2.6设计Vector Waveform File1.新建波形文件,选择FileNewOthers打开对话框,选择Vector Waveform File,新建波形文件。2.编辑输入波形文件,设置仿真时间,EditEnd Time打开如图3-5对话框。设置时钟信号周期、占空比,在波形文件中单击时钟信号(clk),选择ValueClock,弹出如图3-5所示对话框。图3-5设置仿真时间3.3函数信号发生器的系统设计早期的DDS系统使用分离的数字器件搭接,随着整个电路系统运行频率的升高,采用分离器件构建的DDS电路有其自身无法克服的缺点,主要表现在电磁兼容和系统工作频率上。后来出现的专用DDS芯片极大的推动了DDS技术的发展,但专用DDS芯片价格昂贵,且无法实现任意波形输出。近来,CPLD及FPGA的发展为实现DDS提供了更好的技术手段。FPGA的应用不仅使得数字电路系统的设计非常方便,并且还大大缩短了系统研制的周期,缩小了数字电路系统的体积和所用芯片的品种。而且它的时钟频率已可达到几百兆赫兹,加上它的灵活性和高可靠性,非常适合用于实现波形发生器的数字电路部分。用FPGA设计DDS电路比采用专用DDS芯片更为灵活。因为,只要改变FPGA中的ROM数据,DDS就可以产生任意波形,因而具有相当大的灵活性。相比之下FPGA的功能完全取决于设计需求,可以复杂也可以简单,而且FPGA芯片还支持在系统现场升级,虽然在精度和速度上略有不足,但也能基本满足绝大多数系统的使用要求。另外,将DDS设计嵌入到FPGA芯片所构成的系统中,其系统成本并不会增加多少,而购买专用芯片的价格则是前者的很多倍。因此,采用FPGA来设计DDS系统具有很高的性价比。用FPGA可以非常方便的实现DDS系统的数字电路环节,且可现场编程进行电路的修改。本系统是在基于DDS技术的基础上,产生3种信号波形,分别为正弦波、方波、锯齿波。其中,正弦波采用查找表法产生其基本波形。方波以DDS相位累加器的溢出信号为输入,计算得出其基本波形。锯齿波以DDS相位累加器输出信号的高8位为输入,得到其基本波形。本系统通过输入频率控制字控制输出波形的频率实现调频功能;通过改变乘法器的倍乘输入数据,控制波形幅度的改变,实现调幅功能。3.3.1系统总体设计本系统采用Altera公司生产的FPGA器件Cyclone-II系列芯片EP2C35F672C8,该芯片存储器密度为33216个逻辑单元(LE),总的RAM空间为483840位,包括了18×18位乘法器,105个M4K RAM块,有16个全局时钟网络,内嵌4个锁相环电路,最大用户I/O引脚数为475个,并且支持多种不同的单端和高速差分I/O标准。本系统由FPGA芯片、键盘、数码管、数模转换以及低通滤波和后级放大电路组成。设计时分两大部分进行,波形模块和外围电路模块。其中DDS频率合成模块、波形产生模块、调幅模块为数字电路,由FPGA芯片实现。外围电路模块为模拟电路,主要完成输出波形的低通滤波及增益放大功能。本系统主要实现数字电路部分的设计。系统的总体硬件结构如图3-6所示。图3-6系统硬件框图3.3.2 FPGA系统设计流程图3-7 FPGA设计框图FPGA实现的主要功能是:(1)保存频率控制字,并构成相位累加器,用相位累加器输出信号产生波形;(2)用内部存储模块构成存放正弦波数据的ROM数据表;(3)实现乘法器设计,幅度控制字输入,用于波形的幅度调节。本系统可实现固定波形和任意波形的输出。DDS模块中的由一个32位的加法器和一个相位寄存器构成,加法器以频率控制字K作为步长进行加法运算,和满时清零,重新进行计算。相位累加器高8位作为地址进行ROM表查询,本设计ROM表中存储正弦数据,用于生成正弦波形,ROM表中也可存储其它波形数据,生成任意波形。同时相位累加器高8位作为地址送入方波产生模块,输出方波。累加器高十位输出同时送入锯齿波发生模块,生成锯齿波和三角波模块。本设计是在同步时钟clk信号下协调工作的。3.3.3 FPGA系统模块设计系统模块设计如图3-8所示。图3-8 FPGA设计模块图整个设计有一个顶层模块设计,按照功能要求划分为三个模块,即DDS控制模块、波形产生模块、调幅模块。函数信号的选择模块,主要是由用FPGA设计的DDS模块控制的,其由加法器及相位寄存器构成的相位累加器和ROM数据表构成。系统整体原理图如图3-9所示。如图3-9所示,系统共有多个输入信号和1个输出信号。5个输入信号分别是时钟信号、复位信号、频率控制字、频率锁存信号、调幅信号,调幅模式选择信号,波形选择信号。1个输出信号是最终波形的输出,本系统实现信号波形输出,方便调频、调幅。输入信号端口说明如下:clk:时钟信号,为系统提供50MHZ的时钟信号。rstn:复位信号,低电平有效。Fcw31.0:频率控制字,控制输出波形频率,实现系统的调频功能。LOAD:频率锁存信号,上升沿到来时刻,对频率控制字进行锁存后,将其送入DDS模块,经相位累加,实现频率合成。Set_fudu2.0:调幅信号,实现波形的幅度调节。此信号用3位二进制表示,当max位高电平的时候进行放大,相仿的情况下位缩小。输出信号端口说明如下:DA19.0:波形输出。图3-9系统整体原理图4系统模块设计及仿真4.1频率寄存器模块设计该模块主要功能是锁存频率控制字,LOAD信号上升沿到来时刻,锁存频率控制字,将频率控制字送入DDS模块,进行相位累加,实现频率合成,确定输出波形频率。该模块的结构框图如图4-1所示。图4-1频率寄存器模块结构框图各端口说明如下:Rstn:复位信号,低电平有效。FCW31.0:频率控制字输入。lLOAD:频率锁存信号,上升沿时刻锁存频率控制字。DATA31.0:频率控制字输出,送入DDS模块,确定输出波形频率。频率寄存器模块功能设计的VerilogHDL程序如下:library ieee;use ieee.std_logic_1164.all; use ieee.std_logic_signed.all;entity reg_fcw is port (-Host Sideclk:IN STD_LOGIC;rstn,LOAD:in std_logic;FCW: in std_logic_vector(31 downto 0); DATA:OUT std_logic_vector(31 downto 0) );end reg_fcw ;ARCHITECTURE one of reg_fcw isBEGIN PROCESS(clk,rstn)begin if rstn='0' then DATA<=X"00000000"elsif clk'event and clk='1' then if LOAD='1' THEN DATA<=FCW; END IF;END IF;END PROCESS;end one;在软件工具Quartus II的编译和波形仿真后得到的波形如图4-2所示。图4-2频率寄存器模块仿真波形图4.2 DDS模块设计DDS模块主要功能是由频率控制字合成所要产生的波形频率,并且产生ROM波形数据表的的地址。DDS核心模块由32位加法器和相位寄存器构成,加法器输入为前一次的累加和与频率控制字,累加后结果送入相位寄存器。相位寄存器将累加和送回加法器输入端用于下一次计算,取高8位作为ROM地址,同时送入锯齿波模块、方波模块和三角波模块。4.2.1 32位加法器该模块主要功能是实现相位累加,以频率控制字为步长进行累加,最终得到ROM数据表的地址。该模块的结构框图如图4-3所示。图4-3 32位加法器各端口说明如
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!