版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程设计基于FPGA的任意波形发生器EDA课程设计__基于FPGA的任意波形发生器学院:通信与电子工程学院摘要本文主要探索了应用FPGA灵活可重复编程和方便在系统重构的特性,以VerilogHDL为设计语言,运用QuarrtusII软件,将硬件功能以软件设计来描述,提高了产品的集成度,缩短开发周期。所设计的波形发生器可产生正弦波(sina_wave)、锯齿波(swat_wave)、矩形波(squr_wave)、三角波(trig_wave)四种信号,能够实现信号的转换并且频率可调;关键字:任意波形发生器FPGAVerilogHDLQuartusII
AbstractThispaperexploredtheapplicationofflexibleandreprogrammableFPGAandconveniencefeaturesinthesystemreconfigurationtoVerilogHDLdesignlanguage,thehardwarefunctionstosoftwaredesigntodescribeandimprovetheintegrationofproductsandshortenthedevelopmentcycle.Waveformgeneratordesignedtoproducesinewave(sina_wave),ramp(swat_wave),rectangularwave(squr_wave),triangularwave(trig_wave)foursignals,toachievesignalconversionandfrequencyadjustable;Keywords:ArbitraryWaveformGeneratorFPGAVerilogHDLQuartusII
目录摘要 IAbstract II目录 III第1章绪论 11.1概述 11.2任意波形发生器的功能 11.3国内外发展现状 2第2章 波形发生器的基本理论 42.1FPGA简介 42.2Verilog语言简介 42.2.1Verilog语言概述 42.2.2 VerilogHDL基本结构 52.3QuarrtusII概述 6第3章方案设计 83.1系统介绍 83.2波形发生器各个模块设计 93.2.1Wave_gen模块 93.2.2波形数据存储ROM模块 9第4章波形发生器软件仿真 114.1设计平台及仿真工具 114.2仿真过程 11结论 14附录 16第1章绪论1.1概述波形发生器是一种常用的信号源,广泛应用于电子电路,自动控制系统,教学实验等领域,目前使用出现了大量能够产生多种波形且性能稳定的任意波形发生器,但大多数方案都是基于串行或并行总线进行数据的传输,这种方案虽然成本较低,但系统的实时性较差,难以满足复杂波形的大数据量的传输要求。我们设计了一种基于FPGA芯片的任意波形发生器,充分利用了FPGA强大的逻辑功能,实现了利用单片FPGA芯片控制整个系统的方案。1.2任意波形发生器的功能任意波形发生器既具有其他信号源的信号生成能力,又可以通过各种编辑手段生成任意的波形采样数据,方便地合成其他信号源所不能生成的任意波形,从而满足测试和仿真实验的要求。任意波形发生器的主要功能包括:(1)函数发生功能基础实验中,为了验证电路功能、稳定性和可靠性,需要给它施加理想波形,任意波形发生器能替代函数发生器提供正弦波、方波、三角波、锯齿波等波形,还具有各种调制和扫频能力。利用任意波形发生器的这一基础功能就能满足一般实验的信号需求。(2)任意波形生成运行在实际电子环境中的设备,由于各种干扰的存在以及环境的变化,实际电路中往往存在各种信号缺陷和瞬变信号,例如过脉冲、尖峰、阻尼瞬变、频率突变等。任意波形发生器可以模拟这些特殊信号,以测试系统的实际性能。(3)信号还原功能在一些军事、航空等领域,有些电路运行环境很难估计,在设计完成之后,在现实环境中还需要更进一步的实验验证,而有些实验的成本很高或者风险性很大(如飞机试飞时发动机的运行情况),人们不可能重复作实验来判断所设计产品的可行性和稳定性。此时,可以利用任意波形发生器的信号还原功能。在做一些高耗费、高风险实验时,可以通过数字示波器把实际中用到的实际波形记录下来,再通过计算机接口下载到任意波形发生器,通过任意波形发生器还原实验中的实际波形并加到设计电路中,做进一步的实验验证工作。1.3国内外发展现状采用可变时钟和计数器寻址波形存储器的任意波形发生器在一段时期内曾得到广泛的应用,其取样时钟频率较高且可调节,但其对硬件要求比较高,需要高性能的锁相环和截止频率可调的低通滤波器(或者多个低通滤波器),且频率分辨率低,频率切换速度较慢,已经逐步退出市场。目前市场上的任意波形发生器主要采用直接数字合成(DirectDigitalSynthesuzer,DDS)技术,这种波形发生器不仅可以产生可变频的载频信号、各种调制信号,同时还能和计算机配合产生用户自定义的有限带宽的任意信号,可以为多种领域的测试提供宽带宽、高分辨率的测试信号[1]。任意波形发生器发展到今天,从产品结构形式来划分,主要包含三种:(1)独立仪器结构形式独立仪器结构形式是把任意波形发生器设计成单台仪器的形式,其优点是精度高,可独立工作。(2)PC总线式PC(PersonalComputer)总线式是将任意波形发生器板卡直接插在PC机的总线扩展槽或通过外部接口连接到PC总线上,利用PC机来控制任意波形发生器的工作状态,其优点是可以充分利用PC机的软硬件资源,在波形数据处理、波形参数修改方面,计算机有明显的优势。(3)VXI模块式VXI模块是一种新型的模块化仪器,它必须插在VXI总线机箱上才能使用,VXI总线机箱通过GPIB或者RS-232C等接口与计算机相连,VXI模块仪器对组成自动测试系统特别有用,各个公司的VXI卡式仪器模块可以自由组合使用。从发展状况来看,国外任意波形发生器的研制及生产技术已经较为成熟。以安捷伦(Agilent)和泰克(Tektronix)为代表的国际电子测量仪器公司在此领域进行了卓有成效的研究和开发,其产品无论在技术上还是市场占有率方面在国际上都享有盛誉,但其价格也是相当昂贵,高端型号每台价格都在几万美金左右,低端的也要几万人民币。Tektronix公司的独立结构任意波形发生器AFG3000系列功能完善,人机界面友好,操作方便,可以以多种方式连接到PC机上,其最高采样率能达到2GS/s,输出信号最高频率为240MHz,任意波频率50MHz,并配备的强大的波形编辑软件ArbExpress,用户可以方面地创建和编辑自己的波形。Agilent公司的PXI模块任意波形发生器采样率已经能达到1.25GS/s,最高输出频率500MHz。我国研制任意波形发生器是从上世纪90年代开始的,近年来有一批本土厂商奋起直追,并取得了可喜的成果。例如南京盛普科技电子有限公司的SPF120型信号发生器的主波输出频率达到了120MHz,任意波最高频率为100KHz;北京普源精电科技有限公司(RIGOL)生产的DG1000/2000/3000系列任意波形发生器,在性能上已经大略相当于国外中低端产品。以FPGA自身资源为基础,制作一个简易综合电子实验仪,具有信号源、测量仪表等功能。波形发生器的基本理论2.1FPGA简介FPGA由可编程逻辑单元阵列、布线资源和可编程的I/O单元阵列构成,一个FPGA包含丰富的逻辑门、寄存器和I/O资源。一片FPGA芯片就可以实现数百片甚至更多个标准数字集成电路所实现的系统。FPGA的结构灵活,其逻辑单元、可编程内部连线和I/O单元都可以由用户编程,可以实现任何逻辑功能,满足各种设计需求。其速度快,功耗低,通用性强,特别适用于复杂系统的设计。使用FPGA还可以实现动态配置、在线系统重构(可以在系统运行的不同时刻,按需要改变电路的功能,使系统具备多种空间相关或时间相关的任务)及硬件软化、软件硬化等功能。鉴于高频疲劳试验机控制器控制规模比较大,功能复杂,故我们在研制过程中,在传统试验机控制器的基础上,通过FPGA技术及微机技术两者的结合,来全面提升控制器系统的性能,使整机的工作效率、控制精度和电气系统可靠性得到了提高,且操作方便而又不乏技术的先进性。2.2Verilog语言简介2.2.1Verilog语言概述VerilogHDL是一种硬件描述语言(hardwaredescriptionlanguage),为了制作数字电路而用来描述ASICs和FPGA的设计之用[2]。VerilogHDL可以用来进行各种层次的逻辑设计,也可以进行数字系统的逻辑综合,仿真验证和时序分析,VerilogHDL进行设计最大的优点是其工艺无关性.这使得工程师在功能设计,逻辑验证阶段可以不必过多考虑门级及工艺实现的具体细节,只需根据系统设计的要求施加不同的约束条件,即可设计出实际电路.Verilog是由en:GatewayDesignAutomation公司于大约1984年开始发展。GatewayDesignAutomation公司后来被CadenceDesignSystems于1990年所购并。现在Cadence对于Gateway公司的Verilog和Verilog-XL模拟器拥有全部的财产权。VerilogHDL基本结构(1)基本逻辑门,例如and、or和nand等都内置在语言中。(2)用户定义原语(UDP)创建的灵活性。用户定义的原语既可以是组合逻辑原语,也可以是时序逻辑原语。(3)开关级基本结构模型,例如pmos和nmos等也被内置在语言中。(4)提供显式语言结构指定设计中的端口到端口的时延及路径时延和设计的时序检查。(5)可采用三种不同方式或混合方式对设计建模。这些方式包括:行为描述方式—使用过程化结构建模;数据流方式—使用连续赋值语句方式建模;结构化方式—使用门和模块实例语句描述建模。*VerilogHDL中有两类数据类型:线网数据类型和寄存器数据类型。线网类型表示构件间的物理连线,而寄存器类型表示抽象的数据存储元件。*能够描述层次设计,可使用模块实例结构描述任何层次。*设计的规模可以是任意的;语言不对设计的规模(大小)施加任何限制。*VerilogHDL不再是某些公司的专有语言而是IEEE标准。*人和机器都可阅读Verilog语言,因此它可作为EDA的工具和设计者之间的交互语言。*VerilogHDL语言的描述能力能够通过使用编程语言接口(PLI)机制进一步扩展。PLI是允许外部函数访问Verilog模块内信息、允许设计者与模拟器交互的例程集合。*设计能够在多个层次上加以描述,从开关级、门级、寄存器传送级(RTL)到算法级,包括进程和队列级。*能够使用内置开关级原语在开关级对设计完整建模。*同一语言可用于生成模拟激励和指定测试的验证约束条件,例如输入值的指定。*VerilogHDL能够监控模拟验证的执行,即模拟验证执行过程中设计的值能够被监控和显示。这些值也能够用于与期望值比较,在不匹配的情况下,打印报告消息。*在行为级描述中,VerilogHDL不仅能够在RTL级上进行设计描述,而且能够在体系结构级描述及其算法级行为上进行设计描述。*能够使用门和模块实例化语句在结构级进行结构描述。*VerilogHDL的混合方式建模能力,即在一个设计中每个模块均可以在不同设计层次上建模。*VerilogHDL还具有内置逻辑函数,例如&(按位与)和|(按位或)。*对高级编程语言结构,例如条件语句、情况语句和循环语句,语言中都可以使用。*可以显式地对并发和定时进行建模。*提供强有力的文件读写能力。*语言在特定情况下是非确定性的,即在不同的模拟器上模型可以产生不同的结果;例如,事件队列上的事件顺序在标准中没有定义。2.3QuarrtusII概述QuartusII是Altera公司的综合性PLD开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(AlteraHardwareDescriptionLanguage)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程[4]。QuartusII可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。QuartusII支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。此外,QuartusII通过和DSPBuilder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。图1:QuarrtusII图标图2:Quarrtus界面第3章方案设计3.1系统介绍任意波形发生器的实现采用模块设计,这样很好的利用了QuartusII软件中的LPM_ROM模块,能够达到最优设计;频率计的功能完全采用HDL语言描述,最后的顶层文件采用模块设计来完成。最终的顶层文件如下图所示:图3.1顶层文件模块图Wave_genTop顶层设计数据存储ROM地址指针D/A转换波形输出要实现的功能:可产生正弦波(sina_wave)、锯齿波(swat_wave)、矩形波(squr_wave)、三角波(trig_wave)四种信号,能够实现信号的转换(select)并且频率可调。主要由三部分组成:地址指针控制模块,四种波形数据存储模块,D/A转换模块。前面2个模块在FPGA中实现,D/A转换通过外围电路实现。该部分的实现框图如下:Wave_genTop顶层设计数据存储ROM地址指针D/A转换波形输出图3.2外围电路实现3.2波形发生器各个模块设计3.2.1Wave_gen模块图3.3Wave_gen模块图Wave_gen模块各引脚说明:INCLK:输入的待测信号。SELECT[1..0]:波形选择输入。FREQ[3..0]:控制输出波形的频率。ADDRESS[8..0]:输出地址指针。3.2.2波形数据存储ROM模块图3.4波形数据存储ROM模块波形数据存储ROM模块个引脚说明:Clock:输入时钟信号。Address[8..0]:输入地址指针。Q[7..0]:输出信号。第4章波形发生器软件仿真4.1设计平台及仿真工具我们选择QuarrtusII9.0作为波形发生器仿真工具,结合Verilog硬件描述语言,该模块的功能采用VerilogHDL来描述,程序Wave_gen.v请见附件。程序实现的主要功能是:根据不同的波形选择(select[1:0]),来改变送入ROM中的地址指针address。四种波形一个周期的数据各占不同的16B,每次波形改变使address指向各段数据首地址。编译正确后将其创建为Wave_gen.bsf模块(见顶层文件中所示),然后采用图形编辑方式,完成波形发生器这部分电路的设计。4.2仿真过程首先,我们需要在QuarrtusII9.0建立一个工程文件名为wave_gen,如图:图4.1建立工程文件其次,我们需要在File/New/VerilogHDLfile,文件名为Wave_gen.v,保存在当前工程里,如图:图4.2Wave_gen.v然后在Processing/startcomlication进行调试与仿真结果如图:图4.3仿真结果=1\*GB3①产生正弦波(sina_wave)时送到DAC0832的数据:=2\*GB3②产生锯齿波(swat_wave)时送到DAC0832的数据:=3\*GB3③产生矩形波(squr_wave)时送到DAC0832的数据:=4\*GB3④产生三角波(trig_wave)时送到DAC0832的数据:由仿真结果可知,改变select[1:0]的值,能够正确的将对应的波形数据送到DAC0832,从而完成了整体设计结论在研究的过程中,通过学习和参阅过内外相关的文献,并从网络上获取最新的硬件开发指南和芯片开发手册,同时不断向身边的老师请教和学习,通过系统的学习和实际工作的锻炼,积累了必要的基础知识,培养了实际的开发技能。通过本设计工作,基本掌握了QuartusII的使用技术,进一步加深了对数字信号处理技术的理解,提高了使用可编程逻辑器件设计数字系统的能力和软件编程的能力,为将来从事科研工作打下了良好的基础。参考文献[1]黄晓翰.基于FPGA的多功能波形发生器的设计.电信科学.2010年09期[2]王金明.VerilogHDL程序设计教程.北京.人民邮电出版社,2004[3]王文华.基于DDS技术的任意波形发生器研究.浙江大学,2002.[4]Altera公司.QuartusII.简易用户使用入门指南[5]王金明.数字系统设计与VerilogHDL教程.第二版,2005
附录Wave_gen.v程序如下:moduleWave_gen(address,inclk,select,freq);output[8:0] address;//输出控制ROM的地址input inclk;//系统始终,时间应该保证D/A能转换完毕input[1:0] select;//波形选择,具体值代表的波形见下面定义input[3:0] freq;//控制输出波形的频率reg[7:0] Qout;reg[8:0] address;reg[7:0] k,m;parameter sina_wave=2'b00,swat_wave=2'b01, squr_wave=2'b10,trig_wave=2'b11;always@(posedgeinclk)begin case(select) sina_wave:begin if(select==1)address<=128; if(select==2)address<=256; if(select==3)address<=384; if(freq==0||freq==1) begin if(address>=127)address<=0; else address<=address+1; end else begin k<=127/freq; m<=freq*k; if(address>=m) address<=0; else address<=address+freq; end end swat_wave:begin if(select==0)address<=0; if(select==2)address<=256; if(select==3)address<=384; if(address<128)address<=128; else begin if(freq==0||freq==1) begin if(address>=255)address<=128; else address<=address+1; end else begin k<=127/freq; m<=freq*k; if
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年商州区工会人员招聘考试参考试题及答案详解
- 2026年马鞍山市金家庄区工会人员招聘笔试模拟试题及答案详解
- 2026年大同市南郊区工会人员招聘考试备考试题及答案详解
- 2026年贵州省铜仁市政务服务中心(窗口人员)招聘笔试模拟试题及答案详解
- 门禁系统合同
- 2026年绵阳市游仙区工会人员招聘考试参考题库及答案详解
- 2026贵州力搏人力资源服务有限公司面向社会招聘大量工人!考试备考试题及答案详解
- 2026年兰州市西固区政务服务中心(窗口人员)招聘笔试参考试题及答案详解
- 2026年桂林市雁山区政务服务中心(窗口人员)招聘考试参考试题及答案详解
- 2026年广东省佛山市医疗系统事业编人员招聘笔试参考题库及答案详解
- 2024年女性私护品市场调查报告
- 《MySQL数据库应用与管理(第3版)》 课件 10.3 权限管理
- 产线物料员培训课件
- 创业过程中的法律风险防范
- 劳动保护知识培训课件
- 建筑劳务公司管理制度(很好很全面)
- 美的空调制造工艺手册
- 大粒径透水性沥青混合料lsm施工工法
- 3500A 手持式综合测试仪操作指导培训
- 毕业设计论文计算说明书闸阀
- 公司接待管理制度(新版)
评论
0/150
提交评论