您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 基于FPGA的多功能信号发生器
个人收集整理资料,仅供交流学习,勿作商业用途1/18基于FPGA的多功能信号发生器一.实验目的:1.了解GW48-CK综合实验箱结构2.熟悉VHDL语言3.了解FPGA芯片EP1K30TC144-3)结构及引脚4.了解D/A芯片DAC0832)结构[5.熟悉FPGA设计软件quartusii9.0的使用6.掌握产生三角波,锯齿波,梯形波的原理7.学会用FPGA设计多功能信号发生器二.实验仪器及设备:1.pc机2.GW48-CK型FPGA综合实验箱3.FPGA芯片:EP1K30TC144-34.D/A芯片:DAC08325.示波器6.quartusii9.0仿真软件三.实验要求:.设计基于FPGA的多功能信号发生器,此信号发生器可产生的波形有:正弦波,方波,三角波,斜升锯齿波,斜降锯齿波,梯形波,阶梯波,双阶梯波中的六种。F1NgHcUqUBb5E2RGbCAP个人收集整理资料,仅供交流学习,勿作商业用途2/18设计软件要求用quartusii,先用该软件仿真,再接上FPGA实验箱,编译,运行并下载到实验箱,用示波器观察期指定输出端波形。F1NgHcUqUBp1EanqFDPw四.实验原理:1.基于QUASTUSII9.0平台,利用DDS直接数字信号合成)技术,采用VHDL语言,设计一波形信号发生器。首先根据对各波形的幅度进行采样,获得各波形的波形数据表,然后FPGA根据输入的时钟频率可根据要求可变)作为地址信号,从FPGA数据线上输出相应的波形数据,再送入GW48-CK实验板上的D/A转换芯片进行转换为模拟信号,最后送入滤波电路滤波后输出。F1NgHcUqUBDXDiTa9E3d2.实验整体框图如下:由方波模块niushengli_fb)、阶梯波模块niushengli_jtb)、正弦波模块niushengli_sin)、三角波模块niushengli_sjb)、斜升锯齿波模块niushengli_xsjcb)、斜降锯齿波模块niushengli_xjjcb)、6选1选择器niushengli_mux61)以及反向器not)组成。F1NgHcUqUBRTCrpUDGiT个人收集整理资料,仅供交流学习,勿作商业用途3/18VCCsel[2..0]INPUTVCCclkINPUTVCCresetINPUTq[7..0]OUTPUTclkresetq[7..0]niushengli_fbinstsel[2..0]d0[7..0]d1[7..0]d2[7..0]d3[7..0]d4[7..0]d5[7..0]q[7..0]niushengli_MUX61inst2clkresetq[7..0]niushengli_sininst3clkresetq[7..0]niushengli_sjbinst4clkresetq[7..0]niushengli_xjcinst5clkresetq[7..0]niushengli_xsjcbinst6clkresetq[7..0]niushengli_jtbinst1NOTinst7PIN_126PIN_72PIN_70PIN_69PIN_68PIN_67PIN_65PIN_42PIN_41PIN_19PIN_10PIN_9PIN_8五.实验步骤:a)在桌面上双击quartusii9.0图标或在开始中→程序→Alera→quartusii9.0)启动设计软件。F1NgHcUqUB5PCzVD7HxAb)新建工程命名(niushengli_xhfsq,在新建VHDL文本文件,分别输入正弦波、方波、三角波、斜升锯齿波,梯形波,斜降锯齿波以及6选1选择器程序。F1NgHcUqUBjLBHrnAILg个人收集整理资料,仅供交流学习,勿作商业用途4/18c)点击保存并命名注意:命名应与程序实体名相同,后缀为:.vhd),编译,若有错误,则调试程序直至编译成功F1NgHcUqUBxHAQX74J0Xd)新建模块/原理图输入方式文件,用编译后生成的各信号模块编写原理图文件并设置为顶层文件命名为niushengli_xhfsq.bdf)保存F1NgHcUqUBLDAYtRyKfEe)新建一个仿真波形文件,添加输入/输出信号节点,编辑信号节点波形并保存命名为:niushengli_xhfsq.vwf)F1NgHcUqUBZzz6ZB2Ltkf)点击Assignments菜单,选择目标芯片EP1K30TC144-3)并进行管脚配置详情见附录3)F1NgHcUqUBdvzfvkwMI1g)点击编译器processing/StartCompilation,再点击StartSimulation命令启动仿真器,查看仿真波形并记录F1NgHcUqUBrqyn14ZNXIh)连接好pc机和GW48-CK实验箱,下载编译好的程序到实验箱,用示波器观察输出端波形,检验设计的信号发生器功能并记录F1NgHcUqUBEmxvxOtOco六.实验结果:a)当键3、键2、键1组合为000时,输出方波仿真图形记录如下:b)当键3、键2、键1组合为001时,输出阶梯波仿真图形记录如下:个人收集整理资料,仅供交流学习,勿作商业用途5/18c)当键3、键2、键1组合为010时,输出正弦波仿真图形记录如下:d)当键3、键2、键1组合为011时,输出三角波仿真图形记录如下:e)当键3、键2、键1组合为100时,输出斜降锯齿波仿真图形记录如下:f)当键3、键2、键1组合为101时,输出斜升锯齿波仿真图形记录如下:七.实验心的体会:通过俩周的设计,我的设计较好地完成了既定目标,能够产生正弦波、方波、三角波、锯齿波等6种波形,并能改变波形发生的频率。通过三个按键组合,可在6种波形中任意切换,使所设计系统容易使用。成功的实现了系统的功能。F1NgHcUqUBSixE2yXPq5在实验中也有失败,如当经过几天的努力把各个信号模块做好后进行了整体的运作后,波形怎么也不出现。后来才知道原来我们设计的电路只有在特定的实验箱特定的参数设置后才能实验成功,多亏老师的指导让我们少走很多弯路。也从中发现自己还有很多知识不懂,最终把波形弄出来了!在这次设计中,我更进一步地了解了开发工程该如何组织进行,对正弦波信号发生器、方波信号发生器、三角波信号发生器、锯齿波信号发生器的实现有了更好的理解。同时也提高了查阅文档解决问题的能力,对EDA个人收集整理资料,仅供交流学习,勿作商业用途6/18技术的运用有了深一层的认识,对VHDL程序语言设计有了更深的理解,并熟练掌握了杭州康芯硬件结构动态可配置型EDA+SOPC实验箱、北京达盛公司全开方式EDA+SOPC实验箱的用法。F1NgHcUqUB6ewMyirQFL通过本实验设计更增加了我对电子技术的热爱,对专业知识有了更透彻的认识!有因掌握了这一技术而更加自信。相信通过今后的学习会更成为一个科技含量高的技术人才!在实验过程中,充分体会到团队精神的重要,我们很默契很团结,才最终把实验做成功。通过实验也给自己一个成就感,让平时所学的知识有了实用的机会,达到了理论与实际相结合的目的,不仅学到了不少知识,而且锻炼了自己的能力,让我以后更有信心,无论遇到什么困难都要勇于克服,遇到问题要善于思考并虚心请教。F1NgHcUqUBkavU42VRUs附录:1).多功能信号发生器FPGA芯片配置说明:本次多功能信号发生器设计采用VHDL语言设计并通过QUARTUSII软件编译、仿真完成后,需将生成的配置文件下载到EDA实验箱中测试输出波形。有关配制情况说明如下:F1NgHcUqUBy6v3ALoS891.实验平台:GW48系列EDA/SOC实验开发系统2.FPGA芯片型号:AlteraEP1K30TC144-33.芯片管脚分配:实验模式设置:5)个人收集整理资料,仅供交流学习,勿作商业用途7/18信号名称EP1K30TC144-3引脚信号含义实验箱按键clk126时钟reset19复位键8sel08状态选择0键1sel19状态选择1键2sel210状态选择2键3q041数据输出位0q142数据输出位1q265数据输出位2q367数据输出位3q468数据输出位4q569数据输出位5q670数据输出位6q772数据输出位7(二.程序:1.--锯齿波斜升)LIBRARYIEEE。USEIEEE.STD_LOGIC_1164.ALL。USEIEEE.STD_LOGIC_UNSIGNED.ALL。ENTITYniushengli_xsjcbIS--牛胜利40604030109)PORT(clk,reset:INSTD_LOGIC。q:OUTSTD_LOGIC_VECTOR(7DOWNTO0。ENDniushengli_xsjcb。ARCHITECTUREbehaveOFniushengli_xsjcbISBEGINPROCESS(clk,resetVARIABLEtmp:STD_LOGIC_VECTOR(7DOWNTO0。个人收集整理资料,仅供交流学习,勿作商业用途8/18BEGINIFreset='0'THENtmp:=00000000。ELSIFclk'EVENTANDclk='1'THENIFtmp=11111111THENtmp:=00000000。ELSEtmp:=tmp+1。ENDIF。ENDIF。q=tmp。ENDPROCESS。ENDbehave。2.--方波LIBRARYIEEE。USEIEEE.STD_LOGIC_1164.ALL。ENTITYniushengli_fbIS--牛胜利40604030109)PORT(clk,reset:INSTD_LOGIC。q:OUTINTEGERRANGE0TO255。ENDniushengli_fb。ARCHITECTUREbehaveOFniushengli_fbISSIGNALa:BIT。个人收集整理资料,仅供交流学习,勿作商业用途9/18BEGINPROCESS(clk,resetVARIABLEcnt:INTEGER。BEGINIFreset='0'THENA='0'。ELSIFclk'EVENTANDclk='1'THENIFcnt63THENCnt:=cnt+1。ELSEcnt:=0。a=NOTa。ENDIF。ENDIF。ENDPROCESS。Process(clk,aBEGINIFclk'EVENTANDclk='1'THENIFa='1'THENQ=255。ELSEQ=0。个人收集整理资料,仅供交流学习,勿作商业用途10/18ENDIF。ENDIF。ENDPROCESS。ENDbehave。3.--双阶梯波libraryieee。useieee.std_logic_1164.all。useieee.std_logic_unsigned.all。entityniushengli_jtbisport(clk,reset:instd_logic。q:outstd_logic_vector(7downto0。endniushengli_jtb。architectureaofniushengli_jtbisbeginprocess(clk,resetvariabletmp:std_logic_vector(7downto0。beginifreset='0'thentmp:=00000000。elseifclk'eventandclk='1'theniftmp=11111111thentmp:=00000000。个人收集整理资料,仅供交流学习,勿作商业用途11/18elsetmp:=tmp+16。endif。endif。endif。q=tmp。endprocess。enda。4.--正弦波libraryieee。useieee.std_logic_arith.all。useieee.std_logic_1164.all。useieee.std_logic_unsigned.all。entityniushen
本文标题:基于FPGA的多功能信号发生器
链接地址:https://www.777doc.com/doc-5666046 .html