1、基于FPGA的多功能信号发生器基于FPGA的多功能信号发生器一实验目的:1.了解GW48-CK综合实验箱结构2.熟悉VHDL语言3.了解FPGA芯片EP1K30TC144-3)结构及引脚4.了解D/A芯片DAC0832)结构5.熟悉FPGA设计软件quartus ii 9.0的使用6.掌握产生三角波,锯齿波,梯形波的原理7.学会用FPGA设计多功能信号发生器二实验仪器及设备:1.pc机 2.GW48-CK型FPGA综合实验箱 3.FPGA芯片:EP1K30TC144-34.D/A芯片:DAC08325.示波器 6.quartus ii 9.0仿真软件 三实验要求:.设计基于FPGA的多功能信号
2、发生器,此信号发生器可产生的波形有:正弦波,方波,三角波,斜升锯齿波,斜降锯齿波,梯形波,阶梯波,双阶梯波中的六种。F1NgHcUqUBb5E2RGbCAP设计软件要求用quartus ii,先用该软件仿真,再接上FPGA实验箱,编译,运行并下载到实验箱,用示波器观察期指定输出端波形。F1NgHcUqUBp1EanqFDPw四实验原理:1.基于QUASTUS II 9.0平台,利用DDS直接数字信号合成)技术,采用VHDL语言,设计一波形信号发生器。首先根据对各波形的幅度进行采样,获得各波形的波形数据表,然后FPGA根据输入的时钟频率可根据要求可变)作为地址信号,从FPGA数据线上输出相应的波
3、形数据,再送入GW48-CK实验板上的D/A转换芯片进行转换为模拟信号,最后送入滤波电路滤波后输出。F1NgHcUqUBDXDiTa9E3d2.实验整体框图如下:由方波模块niushengli_fb)、阶梯波模块niushengli_jtb)、正弦波模块niushengli_sin)、三角波模块niushengli_sjb)、斜升锯齿波模块niushengli_xsjcb)、斜降锯齿波模块niushengli_xjjcb)、6选1选择器niushengli_mux61)以及反向器not)组成。F1NgHcUqUBRTCrpUDGiT五实验步骤:a)在桌面上双击quartus ii 9.0图标,
4、在新建VHDL文本文件,分别输入正弦波、方波、三角波、斜升锯齿波 ,梯形波,斜降锯齿波以及6选1选择器程序。F1NgHcUqUBjLBHrnAILgc)点击保存并命名注意:命名应与程序实体名相同,后缀为:.vhd),编译,若有错误,则调试程序直至编译成功F1NgHcUqUBxHAQX74J0Xd)新建模块/原理图输入方式文件,用编译后生成的各信号模块编写原理图文件并设置为顶层文件命名为niushengli_xhfsq.bdf)保存F1NgHcUqUBLDAYtRyKfEe)新建一个仿真波形文件,添加输入/输出信号节点,编辑信号节点波形并保存命名为:niushengli_xhfsq.vwf)F1
5、NgHcUqUBZzz6ZB2Ltkf)点击Assignments菜单,选择目标芯片EP1K30TC144-3) 并进行管脚配置详情见附录3)F1NgHcUqUBdvzfvkwMI1g)点击编译器processing/Start Compilation,再点击Start Simulation命令启动仿真器,查看仿真波形并记录F1NgHcUqUBrqyn14ZNXIh)连接好pc机和GW48-CK实验箱,下载编译好的程序到实验箱,用示波器观察输出端波形,检验设计的信号发生器功能并记录F1NgHcUqUBEmxvxOtOco六实验结果:a)当键3、键2、键1组合为000时,输出方波仿真图形记录如下
6、:b)当键3、键2、键1组合为001时,输出阶梯波仿真图形记录如下:c)当键3、键2、键1组合为010时,输出正弦波仿真图形记录如下:d)当键3、键2、键1组合为011时,输出三角波仿真图形记录如下:e)当键3、键2、键1组合为100时,输出斜降锯齿波仿真图形记录如下:f)当键3、键2、键1组合为101时,输出斜升锯齿波仿真图形记录如下:七实验心的体会:通过俩周的设计,我的设计较好地完成了既定目标,能够产生正弦波、方波、三角波、锯齿波等6种波形,并能改变波形发生的频率。通过三个按键组合,可在6种波形中任意切换,使所设计系统容易使用。成功的实现了系统的功能。F1NgHcUqUBSixE2yXPq
7、5在实验中也有失败,如当经过几天的努力把各个信号模块做好后进行了整体的运作后,波形怎么也不出现。后来才知道原来我们设计的电路只有在特定的实验箱特定的参数设置后才能实验成功,多亏老师的指导让我们少走很多弯路。也从中发现自己还有很多知识不懂,最终把波形弄出来了!在这次设计中,我更进一步地了解了开发工程该如何组织进行,对正弦波信号发生器、方波信号发生器、三角波信号发生器、锯齿波信号发生器的实现有了更好的理解。同时也提高了查阅文档解决问题的能力,对EDA技术的运用有了深一层的认识,对VHDL程序语言设计有了更深的理解,并熟练掌握了杭州康芯硬件结构动态可配置型EDA+SOPC实验箱、北京达盛公司全开方式
8、EDA+SOPC实验箱的用法。F1NgHcUqUB6ewMyirQFL 通过本实验设计更增加了我对电子技术的热爱,对 专业知识有了更透彻的认识!有因掌握了这一技术而更加自信。相信通过今后的学习会更成为一个科技含量高的技术人才!在实验过程中,充分体会到团队精神的重要,我们很默契很团结,才最终把实验做成功。通过实验也给自己一个成就感,让平时所学的知识有了实用的机会,达到了理论与实际相结合的目的,不仅学到了不少知识,而且锻炼了自己的能力,让我以后更有信心,无论遇到什么困难都要勇于克服,遇到问题要善于思考并虚心请教。F1NgHcUqUBkavU42VRUs附录:1).多功能信号发生器FPGA芯片配置说
9、明:本次多功能信号发生器设计采用VHDL语言设计并通过QUARTUS II软件编译、仿真完成后,需将生成的配置文件下载到EDA实验箱中测试输出波形。有关配制情况说明如下:F1NgHcUqUBy6v3ALoS891.实验平台:GW48系列EDA/SOC实验开发系统2.FPGA芯片型号:Altera EP1K30TC144-33.芯片管脚分配:.程序:1. -锯齿波斜升)LIBRARY IEEE。USE IEEE. STD_LOGIC_1164.ALL。USE IEEE.STD_LOGIC_UNSIGNED.ALL。ENTITY niushengli_xsjcb IS - 牛胜利。END nius
10、hengli_xsjcb。ARCHITECTURE behave OF niushengli_xsjcb ISBEGIN PROCESS (clk,reset VARIABLE tmp: STD_LOGIC_VECTOR (7 DOWNTO 0。 BEGIN IF reset=0THEN tmp:=00000000。 ELSIF clkEVENT AND clk=1THEN IF tmp=11111111THEN tmp:=00000000。 ELSE tmp:=tmp+1。 END IF。 END IF。q=tmp。 END PROCESS。 END behave。2. -方波LIBRARY
11、 IEEE。USE IEEE. STD_LOGIC_1164.ALL。ENTITY niushengli_fb IS-牛胜利。END niushengli_fb。 ARCHITECTURE behave OF niushengli_fb ISSIGNAL a: BIT。BEGIN PROCESS (clk,reset VARIABLE cnt: INTEGER。 BEGIN IF reset=0THEN A=0。 ELSIF clkEVENT AND clk=1THEN IF cnt63 THENCnt:=cnt+1。 ELSE cnt:=0。 a BEGINIF clkEVENT AND c
12、lk=1THEN IF a=1THEN Q=255。 ELSE Q。end niushengli_jtb。architecture a of niushengli_jtb isbeginprocess(clk,resetvariable tmp:std_logic_vector(7 downto 0。beginif reset=0 thentmp:=00000000。else if clkevent and clk=1 thenif tmp=11111111 thentmp:=00000000。elsetmp:=tmp+16。end if。end if。end if。q=tmp。end pro
13、cess。end a。4 -正弦波library ieee。use ieee.std_logic_arith.all。use ieee.std_logic_1164.all。use ieee.std_logic_unsigned.all。entity niushengli_sin is -牛胜利。end niushengli_sin。architecture behav of niushengli_sin is signal b:integer range 0 to 63。 signal d:integer range 0 to 255。beginprocess(clkbegin if res
14、et=0then b=0。 elsif clkevent and clk=1 then if b=63 then b=0。 else b begin case b is when 00=ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddnull。 end case。 end process。 q。end behav。5 - 三角波LIBRARY IEEE。USE IEEE. STD_LOGIC_1164.ALL。USE IEEE.STD_LOGIC_UNSIGNED.ALL。ENTITY niushengli_sjb
15、 IS -牛胜利。END niushengli_sjb。ARCHITECTURE behave OF niushengli_sjb ISBEGIN PROCESS (clk,reset VARIABLE tmp: STD_LOGIC_VECTOR (7 DOWNTO 0。 VARIABLE a: STD_LOGIC。 BEGIN IF reset=0THEN tmp:=00000000。 ELSIF clkEVENT AND clk=1THEN IF a=0THENIF tmp=11111110THEN tmp:=11111111。 a:=1。 ELSE tmp:=tmp+1。 END IF。
16、ELSE IF tmp=00000001THEN tmp:=00000000。 a:=0。ELSE Tmp:=tmp-1。 END IF。 END IF。END IF。q=tmp。 END PROCESS。 END behave。6. -锯齿波斜降)LIBRARY IEEE。USE IEEE. STD_LOGIC_1164.ALL。USE IEEE. STD_LOGIC_UNSIGNED.ALL。ENTITY niushengli_xjc IS -牛胜利。END niushengli_xjc。ARCHITECTURE behave OF niushengli_xjc ISBEGIN PROCE
17、SS (clk,reset VARIABLE tmp: STD_LOGIC_VECTOR (7 DOWNTO 0。 BEGIN IF reset=0THEN tmp:=11111111。 ELSIF clkEVENT AND clk=1THEN IF tmp=00000000THEN Tmp:=11111111。 ELSE tmp:=tmp-1。 END IF。 END IF。 q=tmp。 END PROCESS。END behave。7. -六选一选择器LIBRARY IEEE。USE IEEE. STD_LOGIC_1164.ALL。ENTITY niushengli_MUX61 IS
18、-牛胜利。 d0,d1,d2,d3,d4,d5: IN STD_LOGIC_VECTOR(7 DOWNTO 0。1IYGVb4rTvAVktR43bpw q: OUT STD_LOGIC_VECTOR(7 DOWNTO 0。END niushengli_MUX61。ARCHITECTURE behave OF niushengli_MUX61 ISBEGIN PROCESS (sel BEGIN CASE sel IS WHEN 000 =qqqqqqNULL。 END CASE。 END PROCESS。 END behave。申明:所有资料为本人收集整理,仅限个人学习使用,勿做商业用途。申明:所有资料为本人收集整理,仅限个人学习使用,勿做商业用途。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1