下载
加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 2011年华中科技大学xilinx-依元素科技FPGA电子设计大赛文档

2011年华中科技大学xilinx-依元素科技FPGA电子设计大赛文档.doc

2011年华中科技大学xilinx-依元素科技FPGA电子设计…

请你离开我的世界_
2018-04-05 0人阅读 举报 0 0 暂无简介

简介:本文档为《2011年华中科技大学xilinx-依元素科技FPGA电子设计大赛文档doc》,可适用于综合领域

年华中科技大学xilinx依元素科技FPGA电子设计大赛文档年华中科技大学xilinx依元素科技FPGA电子设计大赛文档基于DDS产生波形班级:华中科技大学测控班成员:U肖承东学号:U谢胜文U陈洋指导叶斌老师:摘要:通过verilog编程实现正弦波、三角波、锯齿波的波形产生在basys上产生模拟信号输出通过此开发板能实现频率显示模拟信号输出可以依据此原理开发出一套便携式波形发生器。关键词:DDS正弦波BASYS板目录一、系统设计目标基本设计目标发挥与拓展二、系统方案设计与论证系统方案选择与比较系统框图和方案描述三、理论分析计算四、单元电路设计与功能实现说明、单元电路设计(模块)流程图、模块实现错误~未定义书签。扩展电路设计电路原理错误~未定义书签。Pcb版图错误~未定义书签。电路元器件清单错误~未定义书签。五、电路仿真六、测试方案与测试结果测试方案错误~未定义书签。测试仪器错误~未定义书签。测试结果错误~未定义书签。七、收获、体会与建议八、结语错误~未定义书签。九、致谢附录一:参考文献错误~未定义书签。附录二:系统框图错误~未定义书签。附录三:系统流程图错误~未定义书签。附录四:系统源码清单错误~未定义书签。一、系统设计目标基本设计目标)使用DigilentBasys开发板可产生HZ正弦波数字化样值信号并通过ise集成仿真工具仿真确认设计结果。)产生数字化正弦波信号的同时可输出同频方波信号并用示波器验证。)可对该信号进行计数并在DigilentBasys开发板上用数码管显示频率计数结果(精确到Hz)。发挥与拓展)实现输出信号的DA转换(附加必要外围电路))增加输出波形的种类(如三角波、锯齿波等)。)幅度可调二、系统方案设计与论证系统方案选择与比较同传统的频率合成技术相比DDS技术具有极高的频率分辨率、极快的变频速度变频相位连续、相位噪声低易于功能扩展和全数字化便于集成容易实现对输出信号的多种调制等优点满足了现代电子系统的许多要求。传统基于FPGA的DDS设计方法是利用硬件描述语言VHDL或Verilog来设计相位累加器、LUT(数据查表)以及控制逻辑。此方式程序代码量较大、设计DDS效率偏低且使用较多FPGA资源。基于Xilinx公司系列FPGAIPCORE的设计方法,直接从CoreGenerator中调用DDSIPCORE即可实现DDS核心功能,无需编写内部代码设计简单方便。系统框图和方案描述三、理论分析计算一个纯净的单频信号可表示为:()ut,Usin,ft,oo只要它的幅度U和初始相位不变它的频谱就是位于的一条谱线。为了分,foo析简化起见可令U==这将不会影响对频率的研究。即:,o()ut,sin,ft,sin,to如果对()的信号进行采样采样周期为(即采样频率为)则可得到Tfcc离散的波形序列:()un,sin,fnTn,,,oc相应的离散相位序列为:(),n,,fnT,,,,nn,,,oc式中:fo,,,,fT,,()ocfc是连续两次采样之间的相位增量。根据采样定理:f,f()oc只要从()出来的离散序列即可唯一的恢复出()的模拟信号。从()可知是相位函数的斜率决定了信号的频率从()可知决定相位函数斜率的,,是两次采样之间的相位增量。因此只要控制这个相位增量就可以控制合成,,信号的频率。现将整个周期的相分成M份每一份为,若每次的相位,M,增量选择为的K倍即可得到信号的频率:,KK()f,,foc,TMc相应的模拟信号为:K,,()ut,sin,ft,,cM,,式中K和M都是正整数根据采样定理的要求K的最大值应小于M的。综上所述在采样频率一定的情况下可以通过控制两次采样之间的相位增量(不得大于π)来控制所得离散序列的频率经保持、滤波之后可唯一的恢复出此频率的模拟信号。四、单元电路设计与功能实现说明、单元电路设计(模块)topwaveoutDataproTestwaveDataprFreq模块模块(将cess模ocess模块位输出转为块模块位到DAC)扩展电路设计电路仿真:Dataprocess模块(计算最大值和最小值)dataprocess(生成测试脉冲信号testclk)freq模块(计算频率并译码显示)五、收获、体会与建议收获和体会:通过本次比赛我对FPGA编程有了深入的了解。虽然我们是从零起步开始学习FPGA和verilog语言我们做的也不是特别好但在做的过程中真真切切体会到了理论与时间的距离。学硬件描述语言只有当你自己亲自去写的时候你才会掌握它。用FPGA做波形发生器拓展了我们的思维方式。建议:建议大赛委员会多组织一些培训提供一些有用的资料对于参加比赛的同学进行统一的培训。让我们能把精力和脑力放在最需要创新的地方比如可以在竞赛初提供相关书籍如:FPGA数字逻辑设计教程Verilog里面有很多针对Basys的例子非常适合入门。八、致谢万分感谢大赛委员会的提供了宝贵的机会~感谢老师全力指导~感谢本组全体成员~附录一:源码清单topvmoduletop(inputclk,inputreset,input:switch,output:segdat,output:sl,outputdp,output:dataouttemp,outputtestclk)wire:datamaxtemp,datamintemp,datatempinitialdatatemp='hinitialdatamaxtemp='hinitialdatamintemp='hwireenableassigndp='btestwaveU(clk(clk),reset(reset),switch(switch),dataout(datatemp))freqU(clk(clk),reset(reset),clktest(testclk),enout(enable),sl(sl),segdat(segdat))dataprocessU(clk(clk),reset(reset),enable(enable),datain(datatemp),datamaxout(datamaxtemp),dataminout(datamintemp))dataprocessU(clk(clk),reset(reset),enable(enable),datain(datatemp),datamax(datamaxtemp),datamin(datamintemp),testclk(testclk))waveoutU(clk(clk),reset(reset),wavein(datatemp),waveout(dataouttemp))endmoduletestwavevmoduletestwave(inputclk,inputreset,input:switch,output:dataout)reg:datatempwire:sinedatareg:dataouttempwirerdygenddsU(clk(clk),inputclkrdy(rdy),ouputrdysine(sinedata))ouput:sinealways(posedgeclkorposedgereset)beginif(reset)datatemp='helsedatatemp=datatempendalways(posedgeclkorposedgereset)beginif(reset)dataouttemp='helseif(switch=='b)锯齿波dataouttemp=datatemp:elseif(switch=='b)正弦波beginif(sinedata<'b)dataouttemp=sinedata'belsedataouttemp=sinedata'bendelse三角波beginif(datatemp=='b)dataouttemp='b^datatemp:elsedataouttemp=datatemp:endendassigndataout=dataouttempendmoduleFreqc`modulefreq(inputclk,inputreset,inputclktest,outputenout,output:sl,output:segdat)reg:countreg:fosc频率寄存变量reg:foscflash更新频率reg:segdatregreg:slregreg:dispdat要显示的数据regflagflash提示更新regsecondregen,enwireenalways(posedgeclkorposedgereset)beginif(reset)beginen<='ben<='bendelsebeginen<=clktesten<=enendendassignen=en(!en)always(posedgeclkorposedgereset)产生秒的闸门信号beginif(reset)begincount=second=endelsebegincount=countif(count=='d)beginsecond=~secondcount='dendendendalways(count:)scantooutputdatafromregbegincase(count:)'b:dispdat=fosc:'b:dispdat=fosc:'b:dispdat=fosc:'b:dispdat=fosc:endcaseendalways(dispdat)begincase(dispdat)'h:segdatreg='b'h:segdatreg='b'h:segdatreg='b'h:segdatreg='b'h:segdatreg='b'h:segdatreg='b'h:segdatreg='b'h:segdatreg='b'h:segdatreg='b'h:segdatreg='bdefault:segdatreg='bendcaseendalways(count:)begincase(count:)'b:slreg='bscangewei'b:slreg='bscanshiwei'b:slreg='bscanbaiwei'b:slreg='bscanqianweiendcaseendalways(posedgeclkorposedgereset)beginif(reset)beginfoscflash:='hfosc='hendelseif(!seconden)beginflagflash=foscflash:=foscflash:if(foscflash:>'h)beginfoscflash:='hfoscflash:=foscflash:if(foscflash:>'h)beginfoscflash:='hfoscflash:=foscflash:if(foscflash:>'h)beginfoscflash:='hfoscflash:=foscflash:if(foscflash:>'h)foscflash:='hendendendendelseif((second)(flagflash))beginflagflash=fosc:=foscflash:foscflash='hendendassignsegdat=segdatregassignsl=slregassignenout=secondendmoduledataprocess`timescalenspsCompany:Engineer:CreateDate:::DesignName:ModuleName:dataprocessProjectName:TargetDevices:Toolversions:Description:Dependencies:Revision:RevisionFileCreatedAdditionalComments:moduledataprocess(inputclk,inputreset,inputenable,input:datain,outputreg:datamaxout,outputreg:dataminout)reg:datamax,datamin,temp,tempregen,enwireenalways(posedgeclkorposedgereset)beginif(reset)复位处理begindatamax<='bdatamin<='bendelseif(!enable)时钟计数if(en)begindatamax<='bdatamin<='bendelse在en为低阶段begintemp<=dataintemp<=dataindatamax<=tempdatamin<=tempif(temp<='b)if(temp>datamax)datamax<=temp找最大值elsedatamax<=datamaxif(temp>='b)if(temp<datamin)找最小值datamin<=tempelsedatamin<=dataminendendalways(posedgeclkorposedgereset)beginif(reset)beginen<='ben<='bendelsebeginen<=enableen<=enendendassignen=(!en)(en)always(posedgeclkorposedgereset)beginif(reset)begindatamaxout<='bdataminout<='bendelseif(en)begindatamaxout<=datamaxdataminout<=dataminendendendmoduledataprocess`timescalenspsCompany:Engineer:CreateDate:::DesignName:ModuleName:dataprocessProjectName:TargetDevices:Toolversions:Description:Dependencies:Revision:RevisionFileCreatedAdditionalComments:moduledataprocess(inputclk,inputreset,inputenable,input:datain,input:datamax,input:datamin,outputtestclk)regenwirerfdreg:divisor='bwire:fracwire:temp,temp,temp,dataaverageassigntemp:=datamaxassigntemp:=dataminassigntemp='bassigntemp='bassigntemp=(temptemp)temp:<={'b,datamaxtemp:}temp:<={'b,datamintemp:}assigntemp={'b,datamax:}{'b,datamin:}求和freqchufaqiU(clk(clk),inputclkrfd(rfd),ouputrfddividend(temp),input:dividenddivisor(divisor),input:divisorquotient(dataaverage),ouput:quotientfractional(frac))ouput:fractionalalways(posedgeclkorposedgereset)beginif(reset)en='belseif(!enable)if(datain>=dataaverage)en='belseen='bendassigntestclk=enendmodulewaveoutvmodulewaveout(inputclk,inputreset,input:wavein,output:waveout)wire:waveintempreg:waveouttempassignwaveintemp=waveinalways(posedgeclkorposedgereset)beginif(reset)waveouttemp='helsewaveouttemp=waveintemp:endassignwaveout=waveouttempendmodule管脚约束:Topucf#MCLKmmmNET"clk"LOC=B#NET"clk"LOC=M#UCLKNET"clk"TNMNET="clk"TIMESPECTSclk=PERIOD"clk"nsHIGH#SWNET"reset"LOC=P#SWNET"switch"LOC=LNET"switch"LOC=K#ANNET"sl"LOC=K#ANNET"sl"LOC=M#ANNET"sl"LOC=J#ANNET"sl"LOC=F#DPNET"dp"LOC=N#CGNET"segdat"LOC=M#CFNET"segdat"LOC=L#CENET"segdat"LOC=P#CDNET"segdat"LOC=N#CCNET"segdat"LOC=N#CBNET"segdat"LOC=H#CANET"segdat"LOC=LNET"dp"IOSTANDARD=LVCMOSNET"segdat"IOSTANDARD=LVCMOSNET"segdat"IOSTANDARD=LVCMOSNET"segdat"IOSTANDARD=LVCMOSNET"segdat"IOSTANDARD=LVCMOSNET"segdat"IOSTANDARD=LVCMOSNET"segdat"IOSTANDARD=LVCMOSNET"segdat"IOSTANDARD=LVCMOSNET"sl"IOSTANDARD=LVCMOSNET"sl"IOSTANDARD=LVCMOSNET"sl"IOSTANDARD=LVCMOSNET"sl"IOSTANDARD=LVCMOSNET"clk"IOSTANDARD=LVCMOSNET"reset"IOSTANDARD=LVCMOSNET"dataouttemp"LOC=BNET"dataouttemp"LOC=CNET"dataouttemp"LOC=BNET"dataouttemp"LOC=CNET"dataouttemp"LOC=BNET"dataouttemp"LOC=JNET"dataouttemp"LOC=ANET"dataouttemp"LOC=BNET"testclk"LOC=ANET"dataouttemp"IOSTANDARD=LVCMOSNET"dataouttemp"IOSTANDARD=LVCMOSNET"dataouttemp"IOSTANDARD=LVCMOSNET"dataouttemp"IOSTANDARD=LVCMOSNET"dataouttemp"IOSTANDARD=LVCMOSNET"dataouttemp"IOSTANDARD=LVCMOSNET"dataouttemp"IOSTANDARD=LVCMOSNET"dataouttemp"IOSTANDARD=LVCMOSNET"testclk"IOSTANDARD=LVCMOS

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/29

2011年华中科技大学xilinx-依元素科技FPGA电子设计大赛文档

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利