基于FPGA多功能波形发生器的设计毕业设计说明书.docx
- 文档编号:26243041
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:44
- 大小:332.85KB
基于FPGA多功能波形发生器的设计毕业设计说明书.docx
《基于FPGA多功能波形发生器的设计毕业设计说明书.docx》由会员分享,可在线阅读,更多相关《基于FPGA多功能波形发生器的设计毕业设计说明书.docx(44页珍藏版)》请在冰豆网上搜索。
基于FPGA多功能波形发生器的设计毕业设计说明书
毕业设计说明书
基于FPGA多功能波形发生器的设计
基于FPGA的多功能波形发生器的设计
摘要
数字信号发生器是数字信号处理中不可缺少的调试设备,在生产生活中的应用非常广泛。
本文所设计的内容就是基于FPGA实现数字信号发生器的设计,FPGA具有密度高,功耗低,体积小,可靠性高等特点,设计时可以不必过多考虑具体硬件连接;本设计中应用VHDL硬件描述语言进行描述,使该数字信号发生器可以产生正弦波、方波、三角波、三个独立的波形,并能对所产生的三种波形的频率和幅度进行调节。
关键词:
直接数字频率合成;数字波形发生器;FPGA;DDS;VHDL
1绪论
1.1背景与意义
在电子技术领域,常常需要波形、频率、幅度都可调的电信号,用于产生这种电信号的电子仪器称作信号发生器。
信号发生器是一种常用的信号源,广泛运用于科学研究、生产实践和教学试验等领域。
特别是在通信系统的科研实验中,常常需要用到不同频率和幅度的信号,如正弦波、三角波、方波和锯齿波等。
作为一种为电子测量和计量提供电信号的设备,它和万用表、示波器、频率计等仪器一样,是最普通、最基本,也是运用最广泛的电子仪器之一,几乎所有电参量的测量都需要用到信号发生器。
传统的波形发生器多采用模拟分立元件实现,产生的波形种类要受到电路硬件的限制,体积大、灵活性和稳定性也相对较差。
近年来,以数字技术为基础的数字信号发生器得到了飞速的发展,性能指标都达到了一个新的水平。
现场可编程门阵列器件具有容量大、运算速度快、现场可编程等优点,使得许多复杂的电路有了新的实现途径,越来越被广泛地应用到实际系统中。
而且随着当今电子系统的越来越复杂,毫无疑问,数字信号发生器正在成为模拟复杂信号的事实标准。
凡是能产生测试信号的仪器,统称为信号源,也称为信号发生器,它用于产生被测电路所需特定参数的电测试信号。
信号源是根据用户对其波形的命令来产生信号的电子仪器。
信号源主要给被测电路提供所需要的已知信号(各种波形),然后用其它仪表进行测量的参数。
信号源有很多种分类方法,其中一种方法可分为混和信号源和逻辑信号源两种。
其中混和信号源主要输出模拟波形;逻辑信号源输出数字码形。
混和信号源又可分为函数信号发生器和任意波形/函数发生器,其中函数信号发生器输出标准波形,如正弦波、方波等,任意波/函数发生器输出用户自定义的任意波形;逻辑信号发生器又可分为脉冲信号发生器和码型发生器,其中脉冲信号发生器驱动较小个数的方波或脉冲波输出,码型发生器生成许多通道的数字码型。
1.2国内外发展现状
采用可变时钟和计数器寻址波形存储器的任意波形发生器[4]在一段时期内曾得到广泛的应用,其取样时钟频率较高且可调节,然而这种波形发生器对硬件要求比较高,需要高性能的锁相环和截止频率可调的低通滤波器,且频率分辨率低,频率切换速度较慢,已经逐步退出市场。
目前市场上的数字信号发生器主要采用直接数字合成(DirectDigitalsynthesizer,DDS)技术,这种波形发生器不仅可以产生可变频的载频信号、各种调制信号,同时还能和计算机配合产生用户自定义的有限带宽的任意信号,可以为多领域的测试提供宽带宽、高分辨率的测试信号。
从目前发展状况来看,国外数字信号发生器的研制和生产技术已经较为成熟。
以安捷伦(Agilent)和泰克(Tektronix)为代表的国际电子测量仪器公司在此领域进行了卓有成效的研究和开发,其产品无论在技术上还是市场占有率方面在国际上都享有盛誉,但其价格也相当昂贵,高端型号每台价格都在几万美金左右,低端的也要几万人民币。
Tektronix公司的独立结构任意波形发生器AFG3000系列功能完善,人机界面友好,操作方便,可以以多种方式连接到PC机上,其最高采样率能达到2GS/s,输出正弦信号最高频率为240MHz,任意波频率最高能达到50MHz,并配备的强大的波形编辑软件Arbexpress,用户可以方便地创建和编辑自己的波形。
Agilent公司的PXI模块任意波形发生器采样率已经能达到1.25GS/s,最高输出频率500MHz。
我国研制任意波形发生器是从上世纪90年代开始的,近年来有一批本土厂商奋起直追,取得了可喜的成果。
例如南京盛普科技电子有限公司的SPF120型信号发生器的主波输出频率达到了120MHz,任意波最高频率为100KHz;北京普源精电科技有限公司(RIGOL)生产的DG1000/2000/3000系列任意波形发生器,在性能上已经大略相当于国外中低端产品。
本课题的主要研究内容是参考直接数字频率合成原理(DDS)技术[6],利用QuartusII5.1软件作为平台,VHDL语言作为开发语言,基于FPGA配合相应外围电路实现一个数字信号发生器,其电路结构简单,容易扩展,具有极大的灵活性和方便性,实现了产生频率、幅度可调的正弦波、三角波、方波的信号发生器。
2.设计简介
2.1DDS技术
DDS与大多数的数字信号处理技术一样,它的基础仍然是奈圭斯特采定理。
奈圭斯特采样定理是任何模拟信号进行数字化处理的基础,它描述的是一个带限的模拟信号经抽样变成离散序列后可不可以由这些离散序列恢复出原始模拟信号的问题。
奈圭斯特采样定理告诉我们,当抽样频率大于或者等于模拟信号最高频率的两倍时,可以由抽样得到的离散序列无失真地恢复出原始模拟信号。
只不过在DDS技术中,这个过程被颠倒过来了。
DDS不是对模拟信号进行抽样,而是一个假定抽样过程已经发生且抽样值已经量化完成,如何通过某种方法把已经量化的数值重建原始信号的问题。
DDS电路一般由参考时钟、相位累加器、波形存通滤波器(LPF)组成。
其结构如图2.1所示。
图2.1DDS基本结构框图
其中,fc为参考时钟频率,K为频率控制字,N为相位累加器位数,A为波形存储器地址位数,D为波形存储器的数据位字长和D/A转换器位数。
DDS系统中的参考时钟通常由一个高稳定度的晶体振荡器来产生,用来作为整个系统各个组成部分的同步时钟。
频率控制字(FrequencyControlWord,FCW)实际上是二进制编码的相位增量值,它作为相位累加器的输入。
相位累加器由加法器和寄存器级联而成,它将寄存器的输出反馈到加法器的输入端实现累加的功能。
在每一个时钟脉冲fc,相位累加器把频率字K累加一次,累加器的输出相应增加一个步长的相位增量,由此可以看出,相位累加器的输出数据实质上是以K为步长的线性递增序列(在相位累加器产生溢出以前),它反映了合成信号的相位信息。
相位累加器的输出与波形存储器的地址线相连,相当于对波形存储器进行查表,这样就可以把存储在波形存储器中的信号抽样值(二进制编码值)查出。
在系统时钟脉冲的作用下,相位累加器不停的累加,即不停的查表。
波形存储器的输出数据送到D/A转换器,D/A转换器将数字量形式的波形幅度值转换成一定频率的模拟信号,从而将波形重新合成出来。
若波形存储器中存放的是正弦波幅度量化数据,那么D/A转换器的输出是近似正弦波的阶梯波,还需要后级的低通平滑滤波器进一步抑制不必要的杂波就可以得到频谱比较纯净的正弦波信号。
图2.2所示为DDS各个部分的输出信号。
由于受到字长的限制,相位累加器累加到一定值后,就会产生一次累加溢出,这样波形存储器的地址就会循环一次,输出波形循环一周。
相位累加器的溢出频率即为合成信号的频率。
可见,频率控制字K越大,相位累加器产生溢出的速度越快,输出频率也就越高。
故改变频率字(即相位增量),就可以改变相位累加器的溢出时间,在参考频率不变的条件下就可以改变输出信号的频率。
图2.2DDS各部分输出波形
2.2FPGA简介
数字集成电路从产生到现在,经过了早期的电子管、晶体管、小中规模集成电路,到大规模、超大规模集成电路(VLSIC)以及许多既有特定功能的专用集成电路的发展过程。
但是,随着为电子技术的发展,设计与制造集成电路的任务已不完全由半导体厂商来独立承担。
系统设计师们更愿意自己设计专用集成电路(ApplicationSpecialIntegratedCircuit,ASIC)芯片,而且希望ASIC的设计周期尽可能短,最好是在实验室里就能设计出合适的ASIC芯片,并且立即投入实际应用之中,因而出现了现场可编程逻辑器件(FieldProgrammableLogicDevice,FPLD),其中应用最广泛的当属CPLD和FPGA[1]。
CPLD是复杂可编程逻辑器件(ComplexProgrammableLogicDevice)的简称,FPGA是现场可编程门阵列(FieldProgrammableGateArray)的简称。
两者的功能基本相同,只是实现原理略有不同,但有时可以忽略这两者的区别。
不同厂家对可编程逻辑器件的叫法也不尽相同。
Altera公司把自己的可编程逻辑器件产品中的MAX系列(乘积项技术,EEPROM技术)、FLEX系列(查找表技术,SRAM工艺)都叫做CPLD;而把也是SRAM工艺、基于查找表技术、要外挂配置用的FLEX系列的EPROM叫做FPGA。
早期的可编程逻辑器件都属于低密度PLD(ProgrammableLogicDevice),结构简单,设计灵活,但规模小,难以实现复杂的逻辑功能。
1985年Xilinx公司首先推出了现场可编程门阵列FPGA,这是一种新型的高密度PLD,采用CMOS-SRAM工艺制作,其结构和阵列型PLD不同,内部由许多独立的可编程模块组成,逻辑模块之间可以灵活地相互连接,具有密度高、编程速度快,设计灵活和可再配置设计能力等许多优点。
FPGA一般由6部分组成,分别为可编程输入/输出单元、基本可编程逻辑单元、嵌入式块RAM、丰富的布线资源、底层嵌入功能单元和内嵌专用硬核等。
每个单元简介如下:
(1)可编程输入/输出单元(I/O单元)。
目前大多数FPGA的I/O单元被设计为可编程模式,即通过软件的灵活配置,可适应不同的电气标准与I/O物理特性;可以调整匹配阻抗特性,上下拉电阻;可以调整输出驱动电流的大小等;
(2)基本可编程逻辑单元。
FPGA的基本可编程逻辑单元是由查找表(LUT)和寄存器(Register)组成的,查找表完成纯组合逻辑功能。
FPGA内部寄存器可配置为带同步/异步复位和置位、时钟使能的触发器,也可以配置成为锁存器。
FPGA一般依赖寄存器完成同步时序逻辑设计。
一般来说,比较经典的基本可编程单元的配置是一个寄存器加一个查找表,但不同厂商的寄存器和查找表的内部结构有一定的差异,而且寄存器和查找表的组合模式也不同。
(3)嵌入式块RAM。
目前大多数FPGA都有内嵌的块RAM。
嵌入式块RAM可以配置为单端口RAM、双端口RAM、伪双端口RAM、CAM、FIFO等存储结构。
(4)丰富的布线资源。
布线资源连通FPGA内部所有单元,连线的长度和工艺决定着信号在连线上的驱动能力和传输速度。
布线资源的划分:
A全局性的专用布线资源:
以完成器件内部的全局时钟和全局复位/置位的布线;
B长线资源:
用以完成器件Bank间的一些高速信号和一些第二全局时钟信号的布线;
C短线资源:
用来完成基本逻辑单元间的逻辑互连与布线;
D其他:
在逻辑单元内部还有着各种布线资源和专用时钟、复位等控制信号线。
(5)底层嵌入功能单元。
由厂商及芯片型号决定。
(6)内嵌专用硬核。
与“底层嵌入单元”有区别,这里指的硬核主要是那些通用性相对较弱的芯片,不是所有FPGA芯片都包含硬核。
FPGA的基本特点主要有:
(1)采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片。
(2)FPGA可做其它全定制或半定制ASIC电路的中试样片。
(3)FPGA内部有丰富的触发器和I/O引脚。
(4)FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。
(5)FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。
使用FPGA时,可以根据不同的配置模式,采用不同的编程方式。
加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。
掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。
FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。
当需要修改FPGA功能时,只需换一片EPROM即可。
这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。
因此,FPGA的使用非常灵活。
FPGA有多种配置模式:
并行主模式为一片FPGA加一片EPROM的方式;主从模式可以支持一片PROM编程多片FPGA;串行模式可以采用串行PROM编程FPGA;外设模式可以将FPGA作为微处理器的外设,由微处理器对其编程。
2.3VHDL简介
VHDL的全称是Very-High-SpeedIntegratedCircuitHardwareDescriptionLanguage,诞生于1982年。
1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言。
VHDL主要用于描述数字系统的结构,行为,功能和接口。
除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。
VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可是部分,及端口)和内部(或称可视部分),既涉及实体的内部功能和算法完成部分。
在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。
这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。
VHDL语言能够成为标准化的硬件描述语言并获得广泛应用,它自身必然具有很多其他硬件描述语言所不具备的优点。
归纳起来,VHDL语言主要具有以下优点:
(1)VHDL语言功能强大,设计方式多样。
VHDL语言具有强大的语言结构,只需采用简单明确的VHDL语言程序就可以描述十分复杂的硬件电路。
同时,它还具有多层次的电路设计描述功能。
此外,VHDL语言能够同时支持同步电路、异步电路和随机电路的设计实现,这是其他硬件描述语言所不能比拟的。
VHDL语言设计方法灵活多样,既支持自顶向下的设计方式,也支持自底向上的设计方法;既支持模块化设计方法,也支持层次化设计方法。
(2)VHDL语言具有强大的硬件描述能力。
VHDL语言具有多层次的电路设计描述功能,既可描述系统级电路,也可以描述门级电路;描述方式既可以采用行为描述、寄存器传输描述或者结构描述,也可以采用三者的混合描述方式。
同时,VHDL语言也支持惯性延迟和传输延迟,这样可以准确地建立硬件电路的模型。
VHDL语言的强大描述能力还体现在它具有丰富的数据类型。
VHDL语言既支持标准定义的数据类型,也支持用户定义的数据类型,这样便会给硬件描述带来较大的自由度。
(3)VHDL语言具有很强的移植能力。
VHDL语言很强的移植能力主要体现在:
对于同一个硬件电路的VHDL语言描述,它可以从一个模拟器移植到另一个模拟器上、从一个综合器移植到另一个综合器上或者从一个工作平台移植到另一个工作平台上去执行。
(4)VHDL语言的设计描述与器件无关。
采用VHDL语言描述硬件电路时,设计人员并不需要首先考虑选择进行设计的器件。
这样做的好处是可以使设计人员集中精力进行电路设计的优化,而不需要考虑其他的问题。
当硬件电路的设计描述完成以后,VHDL语言允许采用多种不同的器件结构来实现。
(5)VHDL语言程序易于共享和复用。
VHDL语言采用基于库(library)的设计方法。
在设计过程中,设计人员可以建立各种可再次利用的模块,一个大规模的硬件电路的设计不可能从门级电路开始一步地进行设计,而是一些模块的累加。
这些模块可以预先设计或者使用以前设计中的存档模块,将这些模块存放在库中,就可以在以后的设计中进行复用。
由于VHDL语言是一种描述、模拟、综合、优化和布线的标准硬件描述语言,因此它可以使设计成果在设计人员之间方便地进行交流和共享,从而减小硬件电路设计的工作量,缩短开发周期。
2.4QuartusⅡ简介
QuartusII是Altera公司的综合性PLD开发软件,支持原理图、VHDL以及AHDL(AlteraHardwareDescriptionLanguage)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。
QuartusII可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。
具有运行速度快,界面统一,功能集中,易学易用等特点。
QuartusII支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。
对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。
此外,QuartusII通过和DSPBuilder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。
MaxplusII作为Altera的上一代PLD设计软件,由于其出色的易用性而得到了广泛的应用。
目前Altera已经停止了对MaxplusII的更新支持,QuartusII与之相比不仅仅是支持器件类型的丰富和图形界面的改变。
Altera在QuartusII中包含了许多诸如SignalTapII、ChipEditor和RTLViewer的设计辅助工具,集成了SOPC和HardCopy设计流程,并且继承了MaxplusII友好的图形界面及简便的使用方法。
AlteraQuartusII作为一种可编程逻辑的设计环境,由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。
Altera的QuartusII可编程逻辑软件属于第四代PLD开发平台。
该平台支持一个工作组环境下的设计要求,其中包括支持基于Internet的协作设计。
Quartus平台与Cadence、ExemplarLogic、MentorGraphics、Synopsys和Synplicity等EDA供应商的开发工具相兼容。
改进了软件的LogicLock模块设计功能,增添了FastFit编译选项,推进了网络编辑性能,而且提升了调试能力。
图2.3EDA工具设计流程图
3.系统硬件电路设计
3.1数字信号发生器的系统组成
该数字信号发生器系统主要由输入部分、FPGA部分、D/A转换部分、频率、幅值调节和波形转换部分组成。
如图3.1所示。
图3.1数字信号发生器系统组成
3.2设计原理及要求
在本设计中,利用FPGA,采用EDA(ElectronicDesignAutomation)中自顶向下(top-to-down)的设计方法,选用基于相位累加器的直接数字合成/DDS技术来完成数字信号发生器各功能模块的设计。
DDS这种结构主要由相位累加器、相位调制器、波形ROM查找表、D/A构成。
其中相位累加器、相位调制器、波形ROM查找表是DDS结构中的数字部分,由于具有数控频率合成的功能,又合称为NCO[2]。
它的工作原理是:
将要产生的波形数据存入波形存储器,然后在参考时钟的作用下,对输入的频率数据进行累加,并且将累加器的输出一部分作为读取波形存储器的地址,将读出的波形数据经D/A转换为相应的模拟电压信号。
本研究的重点就是用VHDL来实现DDS的功能,能够达到高精度的输出,同时标准波形数据生成存放在ROM中,可以简化运算过程,提高运算速度,加快反应时间。
本设计主要通过VHDL语言实现频率控制、波形控制、波形数据的提取、波形的产生工作。
其中,波形数据运用VHDL语言编写。
控制部分主要采用产生高低电平的拨码开关控制。
程序下载到FPGA上实现,经过D/A输出波形。
并通过Altera公司QuartusII5.1软件进行波形的仿真,从而完成整个设计。
本设计的任务是设计一个基于FPGA的数字信号发生器,根据任务书要求必须达到以下要求:
1.利用EDA开发系统、QuartusII5.1软件实现数字信号发生器的设计;
2.根据整体电路的工作原理,完成各个子模块的设计及实现;
3.对数字信号发生器完成VHDL语言描述;
4.该数字信号发生器能够产生正弦波、方波、三角波、锯齿波信号;
5.产生的波形信号频率和幅度可通过按键进行调节;
6.用按键调节实现各种波形的转换。
3.3输入部分
输入部分包含以下功能按键:
时钟、复位、波形、调幅、调频。
1.时钟:
标准的50MHZ时钟输入。
2.复位:
低电平复位。
3.波形:
为波形输出选择开关,可以选择单波形的输出。
4.调幅:
可以递增和递减正弦波、三角波、方波的幅度。
5.调频:
可以递增和递减正弦波、三角波、方波的频率。
3.3.1频率、幅值和波形转换部分
由于采用DDS,在ROM中存有波形一个周期的n个等间隔归一化采样数据,改变相位累加器步进,从而改变对ROM中数据的读取速度,即可合成不同频率波形,存储器中存入过量的采样值,使得采样点数较少时,依然能够得到较好波形输出,从而得到较高频率输出。
否则,采样点数太少会使产生波形严重失真。
输出波形频率计算:
(式3.1)
式中
是晶振频率
K分频系数
N相位累加器位数
S相位累加器步长
若取
代入式(3.1)得到。
因此,只要控制S的值就可准确实现频率步进为10Hz的等步进调频。
如采用32MHz的晶振,也能得到10Hz精确的等步进调节,但牺牲了波形质量。
通过实验测试和比较,可用下式计算频率:
(式3.2)
因为65306不是一个2N的数,这样波形会漏掉少量采样点。
即使这样,得到波形依然平滑,可满足设计要求。
若要使频率调节步进减小到1Hz,对晶振有特殊要求,它的振荡频率必须是2的N次幂。
由式(3.1)举例说明累加器位数不同产生差异:
(式3.3)
(式3.4)
式(3.4)产生的波形优于式(3.3),最高频率也高出几倍。
由于DAC0832的电流建立时间是1μs,因此输出波形的最高频率受下式限制:
(式3.5)
因此,要得到更高频率的波形需使用更高速的D/A转换器。
频率和幅值调节和波形转换电路如图3.2所示。
八个按键一端接1KΩ排阻(上拉电阻)后接VCC,一端接FPGA控制信号引脚输入端,按键有八个,分别为复位键SW1,控制波形转换键SW2,控制幅度步进键SW3,控制幅度步减键SW4,控制频率步进键SW5,控制频率步减键SW6,控制幅值步进键SW7,控制幅值步进键SW8。
图3.2输入按键电路
3.3.2系统时钟电路
系统即FPGA运行时所需的时钟,采用50MHZ的有源晶振产生,电路如图3.3所示。
其中C5为高频旁路电容,以滤除不良的高档次谐波,对时钟波形进行整形,CLK1为输入时钟信号源。
图3.3系统时钟电路
3.3.3电源电路的设计
电源是电路正常工作的保证,直接影响着系统的稳定。
如下图3.4所示,U2为5V直流电源输入端,为USB供电,D2为
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 FPGA 多功能 波形 发生器 设计 毕业设计 说明书