版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGEPAGE6EDA课程设计报告DDS直接数字合成器设计姓名:班级:学号:指导老师:日期:华南农业大学电子工程学院电子信息工程系摘要本文主要研究了基于直接数字合成器(DirectDigitalSynthesizer)技术的波形发生器(ArbitraryWaveformGenerator)的整体方案和核心部分的硬软件设计。同时,对整个系统的性能进行了理论分析。文中讨论了DDS的基本概念和理论,在理论研究的基础上,设计了整个系统的完成方案,用复杂可变成逻辑器件(CPLD)完成了DDS主要部分的设计,其中涉及到软件设计的部分都进行了仿真和说明,从完成电路的性能和综合指标看,基本达到了课题的要求。关键字:直接数字合成波形发生器目录1方案比较与选择 21.1方案选择 21.2方案比较 22DDS原理 22.1DDS基本结构 22.1DDS工作原理 33DDS硬件设计 53.1创龙FPGA开发板 5 3.2TL5724-DAC模块 54DDS软件设计 64.1DDS驱动代码编程 64.2Testbench与ISIM仿真 75仿真及下载 75.1调试 75.2仿真 75.3下载 76讨论及进一步研究建议 87课程设计心得 9Abstract 10参考文献 10附录 111.方案比较与选择1.1方案选择(1)CPLD,FPGA实现。(2)采用分立IC电路系统实现,一般有CPU,RAM,ROM,D/A,CPLD,模拟滤波器等组成。(3)采用高性能DDS单片电路的解决方案。1.2方案比较因为本次实验要求是:(1)实现锯齿波、正弦波、方波的输出。(2)实现频率可调,如调节频率倍数10。(3)用VerilogHDL语言对此DDS发生器进行建模。(4)用XilinxISE14.7开发套件进行仿真测试。基于广州创龙公司提供的FPGA开发板,我们选择使用上述方案一。2.DDS原理2.1DDS基本结构直接合成法是用一个或多个石英晶体振荡器的振荡频率作为基准频率,由这些基准频率产生一系列的谐波,这些谐波具有与石英晶体振荡器同样的频率稳定度和准确度;然后,从这一系列的谐波中取出两个或两个以上的频率进行组合,得出这些频率的和或差,经过适当方式处理(如经过滤波)后,获得所需要的频率。DDS是直接数字式频率合成器(DirectDigitalSynthesizer)的英文缩写。直接数字式频率合成器(DDS)是从相位概念出发直接合成所需波形的一种新的频率合成技术,由相位累加器、波形ROM、D/A转换器和低通滤波器构成。时钟频率给定后,输出信号的频率取决于频率控制字,频率分辨率取决于累加器位数,相位分辨率取决于ROM的地址线位数,幅度量化噪声取决于ROM的数据位字长和D/A转换器位数。结构框图如图1所示。图12.2DDS工作原理 DDS的基本原理是利用采样定理,通过查表法产生波形[1]。由于, (2-1) 其中Δθ为一个采样间隔T之间的相位增量,采样周期,即:(2-2) 控制Δθ就可以控制不同的频率输出。Δθ是由频率控制字M控制的,即: (2-3)所以改变M就可以得到不同的输出频率。该DDS系统的核心是相位累加器,它由一个N位加法器和一个N位相位寄存器级联构成。它的作用是在基准时钟源的作用下进行线性累加,当产生溢出时便完成一个周期,即DDS的一个频率周期。加法器将频率控制字M与累加寄存器输出的累加相位数据相加,把相加后的结果送至累加寄存器的数据输入端。累加寄存器将加法器在上一个时钟脉冲作用后所产生的新相位数据反馈到加法器的输入端,以使加法器在下一个时钟脉冲的作用下继续与频率控制字相加。这样,相位累加器在时钟作用下,不断对频率控制字进行线性相位累加。由此,可以看出,相位累加器在每一个时钟脉冲输入时,把频率控制字累加一次,相位累加器输出的数据就是合成信号的相位,相位累加器的溢出频率就是DDS输出的信号频率。用相位累加器输出的数据作为波形存储器(ROM)的相位取样地址,然后输入到正弦查询表地址上。正弦查询表包含一个周期正弦波的数字幅度信息,每个地址对应正弦波中的0~360°范围的一个相位点。查询表把输入的地址相位信息映射成正弦波幅度的数字量信号,驱动DAC,输出模拟量。相位寄存器每经过2N/M(其中N是相位累加器的字长,对于AD9834芯片,N=28)个fc时钟后基本回到初始状态,相应地正弦查询表经过一个循环也基本回到初始位置,于是整个DDS系统输出一个正弦波周期。在图2-1中,相位累加器输出位并不全部加到查询表,而是只截取高12位。相位截断减小了查询表长度,但并不影响频率分辨率,对最终输出仅增加一个很小的相位噪声。DAC分辨率一般比查询表长度还要小2~4位。图中的参考时钟是一个稳定的晶体振荡器,用来同步整个合成器的各个组成部分,AD9834用的是50MHz的石英晶体振荡器。D/A变换器把数字量变成模拟量,正弦幅度量化序列S(n)经D/A转换后变成了包络为正弦波的阶梯波S(t),D/A转换器的分辨率越高,合成的正弦波S(t)台阶数就越多,输出的波形的精度也就越高。低通滤波器滤除高次谐波和杂散信号,得到所需的信号波形。 DDS的输出频率fout和参考时钟fc、相位累加器长度N以及频率控制字M的关系为:(2-4)DDS的频率分辨率为:(2-5)由于DDS的输出最大频率受奈奎斯特抽样定理限制,为了保证信号的输出质量,输出频率不要高于时钟频率的33%,以避免混叠或谐波落入有用输出频带内。所以,一般取[2]。3.DDS硬件设计3.1创龙FPGA开发板 本设计的硬件开发板采用广州创龙电子科技有限公司的FPGA开发板,选择使用FPGA的原因有以下几点: (1)性能:利用硬件并行的优势,FPGA打破了顺序执行的模式,在每个时钟周期内完成更多的处理任务。 (2)上市时间:尽管上市的限制条件越来越多,FPGA技术仍提供了灵活性和快速原型的能力。用户可以测试一个想法或概念,并在硬件中完成验证,而无需经过自定制ASIC设计漫长的制造过程。 (3)成本:自定制ASIC设计的非经常性工程(NRE)费用远远超过基于FPGA的硬件解决方案所产生的费用。 (4)稳定性:FPGA电路是真正的编程“硬”执行过程对于任何给定的处理器内核,一次只能执行一个指令,且基于处理器的系统时刻面临着严格限时的任务相互取占的风险。而FPGA不使用操作系统,拥有真正的并行执行和专注于每一项任务的确定性硬件,可减少稳定性方面出现问题的可能。 (5)长期维护:FPGA芯片是现场可升级的,无需重新设计ASIC所涉及的时间与费用投入。 开发板外观图如图2所示:图23.2TL5724-DAC模块 ADC(Digitalanalogtoconverter),即数模转换器,是将时间离散、幅值也离散的数字信号转换为时间连续、幅值也连续的模拟量;精度指标主要有转换精度、转换时间。 TL5724是广州创龙基于AD5724开发的快速评估模块,与广州创龙OMAP-L138/AM1808/TMS320C6748等开发板配套使用,用于多路DA串行输出,在电力行业应用广泛,以下为此模块的特点:(1)12位,4通道,SPI串行读取方式,高达30MHz刷新速率;(2)板载/外部模拟电源可选;(3)支持单/双电源,供电方式灵活;(4)pintopin兼容AD5734(14位)、AD5754(16位);(5)软件可调输出范围:0~+5V、0~+10V、0~+10.8V、±5V、±10V、±10.8V;(6)-40℃~+85℃,工业级设计,稳定性强,精度高。模块外观图如图3所示:图34DDS软件设计4.1DDS驱动代码编程 DDS驱动代码如下:moduledds#(parameterPHASE_W=24,parameterDATA_W=12,parameterTABLE_AW=12,parameterMEM_FILE="SineTable.dat")(input[PHASE_W-1:0]FreqWord,input[PHASE_W-1:0]PhaseShift,inputClock,inputClkEn,outputregsigned[DATA_W-1:0]Out);regsigned[DATA_W-1:0]sinTable[2**TABLE_AW-1:0];//SinetableROMreg[PHASE_W-1:0]phase;//PhaseAccumulaterwire[PHASE_W-1:0]addr=phase+PhaseShift;//PhaseShiftinitialbeginphase=0;$readmemh(MEM_FILE,sinTable);//InitializetheROMendalways@(posedgeClock)beginif(ClkEn)phase<=phase+FreqWord;endalways@(posedgeClock)beginOut<=sinTable[addr[PHASE_W-1:PHASE_W-TABLE_AW]];//Lookupthetableendendmodule FPGA建模效果图如图4所示:图44.2Testbench与ISIM仿真timescale1ns/1psmoduletestbench;regclk;reg[23:0]freq;wire[23:0]phaseShift=24'b0;wireclkEn=1'b1;wiresigned[11:0]out;initialbeginclk=1'b1;freq=24'h04_0000;#10010freq=24'h08_0000;#20000freq=24'h0C_0000;#30000freq=24'h10_0000;#40000freq=24'h18_0000;#50000freq=24'h20_0000;#60000freq=24'h30_0000;#70000$stop();endalwaysbegin#10clk=~clk;endDDSdds_inst(.FreqWord(freq),.PhaseShift(phaseShift),.Clock(clk),.ClkEn(clkEn),.Out(out));endmodule仿真波形如图5所示:图54.仿真及下载4.1调试 先保存,将上述电路以字母输入方式输入并保存在工程文件夹中。再将文件置顶,最后进行编译,在主菜单中选择processing项,在弹出的对话框中选择Startcomplication键,则编译开始。在编译过程中,若有任何信息、错误和警告消息,都将显示在自动打开的Message-Compiler窗口中;若由于文件出错而没有通过,则需要返回原文件进行修改,修改后存盘,再编译直至文件通过。4.2仿真 新建一个“VectorWaveformfile”文件,并在下拉列表中选.vwf扩展名,生成波形文件。右键单击,在弹出的菜单中选EnterNodesFromeSNF,在弹出的对话框中选择要观测的节点。选Option\GridSize和File\EndTime,设置相应选项,并给输入引脚加上适当的信号。然后,选File\Save保存。接着选择主菜单中的Simulator项,打开模拟器,点击Start开始仿真。4.3下载1.在主菜单Assignments中选择Device项,在弹出的对话框中选择相应的器件EP1C12Q240C8。2.在主菜单Assignments选“Pins”,打开平面布置图编辑器窗口,将设计的电路图中的各输入输出锁定在相应的管脚上。具体管脚号参见《课程设计参考资料》附录五。3.在主菜单选File\Save保存文件,再次编译项目,生成.sof文件,以用于下载。4.在主菜单Tools选Programmer,在弹出的对话框中单击start,即可完成下载。5.要注意在实验的不同阶段,系统板上各短路帽、跳线帽的插拔与否。5.讨论及进一步研究建议本次实验设计所要求的能输出正余弦、三角波、锯齿波、方波四种波形,经过D/A转换之后能在示波器上显示,而且能通过SerialDebug.exe软件人工改变输出波形的频率。讨论进一步建议是本次实验头一次使用veiloghdl语言编写DDS,一星期的学习一种新的语言比较困难,造成在编写DDS运行程序时遇到各种错误,所以建议使用Vhdl语言编写程序,毕竟这学期有学习VHDL这门课,能够更好的理解编写的程序。6.课程设计心得1、经过近一个星期的课程设计,我们基本掌握了DDS的基本原理及用FPGA实现DDS的方法,学会基本的VerilogHDL语言,熟练掌握了示波器的使用,掌握了用QuartusII进行仿真的方法。2、通过实验我们对DDS产生正弦信号有了较深刻的了解,对信号量化编码有一定理解,对Nyquist抽样定理有了更加直观的理解。3、虽然没有亲自设计制作实验板,但是通过对FPGA管脚的配置,了解了一个DDS信号发生器的硬件组成及各部分参数的相互影响。4、通过实验大大提高了自己的动手能力,对以后的工作有一定的帮助。Abstract Thistextmainlystudiedaccordingtothehardsoftwaredesignofthewholeprojectandthecorepartthatthedirectnumeralsynthesizesaformofmachine(theDirectDigitalSynthesizer)occurrencemachine(theArbitraryWaveformGenerator).Atthesametime,carriedonthetheoriesanalysistothewholefunctionofsystem. ItdiscussedtheDDSbasicconceptandtheoriesesesinthetext,onthefoundationthatthetheoriesstudy,designedthewholesystemtocompletetheproject,usecomplicationsvariablebecomethelogicmachinepiece(CPLD)completedthemainpartofDDSofdesign,amongtheminvolvedthepartsthatthesoftwaredesigntoallcarryontoimitatetrueandelucidation,fromcompletethefunctionandcomprehensiveindexsignsoftheelectriccircuittosee,basiccometoatherequestofthetopic.Keywords:DirectDigitalSynthesizerWaveform参考文献[1].潘松,黄继业.EDA技术实用教程:VHDL版.北京科学出版社.2010=3年.[2].J.Bhasker著;夏宇闻,甘伟译.VerilogHDL入门(第3版).北京航空航天出版社.2008.附录:源程序:`include"romtab.v"`include"claadd8s.v"`include"loadfw.v"`include"loadpw.v"`include"sinlup.v"`include"phasea.v"`include"phasemod.v"`include"pngen.v"/*****************************************************************************************************************************************************************ProjectName:DDS****Author:DanielJ.Morelli**CreationDate:03/04/9621:51:00**VersionNumber:1.0****RevisionHistory:****DateInitialsModification******Description:****ThisisthetopleveloftheDirectDigitalSynthesizer***********************************************************************************/moduledds( RESETN, //globalreset PNCLK, //PNgeneratorclock SYSCLK, //systemclock FREQWORD, //inputfrequencywordfromexternalpins FWWRN, //lowassertedfrequencywordwritestrobe PHASEWORD, //inputphasewordfromexternalpins PWWRN, //lowassertedfrequencywordwritestrobe IDATA, //Iaxisdata QDATA, //Qaxisdata COS, //digitalcosoutput SIN, //digitalsinoutput MCOS, //modulateddigitalcosoutput MSIN, //modulateddigitalsinoutput DACCLK, //DACclocktosignalwhentoloadDDSsinvalue DACOUT); //DACoutputofsinwave//PorttypesinputSYSCLK,PNCLK,RESETN,FWWRN,PWWRN;input[31:0]FREQWORD;input[7:0]PHASEWORD;outputDACCLK,COS,SIN,MCOS,MSIN,IDATA,QDATA;output[7:0]DACOUT;wire[31:0] syncfreq; //synchronousfrequencywordwire[7:0] syncphswd; //synchronousphasewordwire[7:0] phase; //phaseoutputfromphaseaccumulatorwire[7:0] modphase; //modulatedphasevalueafterphasemodblock//designarchitecture assignDACCLK=SYSCLK;////thismoduleisnotpartoftheNCO//thismoduleisusedtogeneraterandomdata//tomodulatetheNCOoutput//pngenU_pngen( RESETN, //globalreset PNCLK, //PNgeneratorclock IDATA, //Iaxisdata QDATA); //Qaxisdata//loadfwU_loadfw( RESETN, //globalreset SYSCLK, //systemclock FREQWORD, //inputfrequencywordfromexternalpins FWWRN, //lowassertedfrequencywordwritestrobe syncfreq); //synchronousfrequencywordloadpwU_loadpw( RESETN, //globalreset SYSCLK, //systemclock PHASEWORD, //inputphasewordfromexternalpins PWWRN, //lowassertedfrequencywordwritestrobe syncphswd); //synchronousphasewordphaseaU_phasea( SYSCLK, //systemclockinput RESETN, //globalreset syncfreq, //synchronousfrequency
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年烟台市福山区街道办人员招聘笔试模拟试题及答案详解
- 2026中煤集团山西有限公司所属煤矿机电副总工程师招聘2人考试备考题库及答案详解
- 2026年伊春市金山屯区工会人员招聘笔试备考题库及答案详解
- 2026年喀什地区中小学教师招聘笔试备考题库及答案详解
- 2026安徽芜湖芜湖市湾沚区消防救援局招聘政府专职消防队员10人笔试模拟试题及答案详解
- 德阳市第六人民医院 2026年面向社会公开招聘编外人员考试模拟试题及答案详解
- 2026年江苏省泰州市工会人员招聘笔试备考题库及答案详解
- 精算师职业资格考试题库(1000题含答案与解析)
- 2026云南临沧云县楚康精神病医院招聘9人考试参考题库及答案详解
- 跨境数字国际武术推手赛事外籍裁判临时签证线上推手规则核验-基于焦作国际太极拳赛实证
- 农作物收割协议合同书
- 《中国金融学》课件 第1章 中国金融体系与改革开放伟大实践 -课件
- 2026年高考英语专项复习:必背近10高考英语高频词汇表
- 单位食堂食材供应及配送服务(肉类)服务方案投标文件(技术方案)
- 铝锭联营合同与合作协议
- DB22∕T 5102-2016 外墙复合保温工程技术规程
- T/CADBM 3-2018竹木纤维集成墙面
- 数控机床装调维修工综合知识理论考试题库
- 布鲁菌病课件
- (正式版)QC∕T 1207-2024 燃料电池发动机用空气压缩机
- 2024年越南自动X射线检测(AXI)行业现状及前景分析2024-2030
评论
0/150
提交评论