基于VHDL语言的波形发生器的设计.doc

基于VHDL语言的波形发生器的设计.doc

ID:50916286

大小:290.50 KB

页数:14页

时间:2020-03-15

基于VHDL语言的波形发生器的设计.doc_第1页
基于VHDL语言的波形发生器的设计.doc_第2页
基于VHDL语言的波形发生器的设计.doc_第3页
基于VHDL语言的波形发生器的设计.doc_第4页
基于VHDL语言的波形发生器的设计.doc_第5页
资源描述:

《基于VHDL语言的波形发生器的设计.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、基于VHDL语言的波形发生器的设计基于VHDL语言的波形发生器的设计利用FPGA芯片信号发生器的设计。当按下开关1时产生三角波,当按下开关2时产生正弦波,当按下开关3时产生方波。本次设计采用xilinx公司的ISE设计工具,在zedboard开发板中的xc7z020芯片上用VHDL来实现,并且利用ISE自带的chipscop完成对FPGA内部的信号的读取。这样的设计具有体积小,修改升级容易等特点。本设计采用自顶向下、纯文本实现数字时钟的设计、下载和调试。1设计原理本设计由信号产生,信号选择,信号控制输出三大

2、模块组合而成。其中信号产生模块有:三角波模块、方波模块、正弦波模块。本设计采用K0~K2这三个按键为信号选择开关,选择信号产生模块输出的信号。(顶层设计的例化语句见附录一)其RTL图1-1:RTL图1-12主要功能模块u1:square方波产生模块;u2:sin正弦波产生模块;u3:delta三角波产生模块;u4:sig_control数据选择器模块;u5,u6:为使用chipscope所需生成的IP核。2.1u1方波产生模块(程序见附录二)产生方波,初始化为幅值225的高电平,每有一次时钟上升沿触发产生一

3、次计数,当计数值达到128时跳到为0的低电平。利用循环语句不断的产生高低电平的方波输出。原理如图2-1:方波模块RTL图2-12.2u1正弦波产生模块(程序见附录三)功能是产生正弦波,产用信号抽样的原理,在一个正弦信号中等间隔的抽样64点,此64点的幅值作为一个正弦波数据表,每有一次时钟上升沿触发便赋予输出端q一个点的数据,依次赋值64个点的数据便完成一个周期的正弦波的输出。并利用循环语句不断的产生正弦波的输出。原理如图2-2:正弦波模块RTL图2-22.3u1三角波产生模块(程序见附录四)功能是产生三角波

4、,初始化为幅值为0,每有一次时钟上升沿触发便进行幅值加1,当幅值达到最大255时,每有一次时钟上升沿触发便进行幅值减1,当幅值减为0时完成一个周期的输出。利用循环语句不断的产生幅值为255的波形的输出。原理图如下:三角波模块RTL图2-32.3u4数据选择器模块(见附录五)利用数据选择器模块可以对三角波,正弦波,方波进行三选一得输出。当开关d0拨通,d1,d2均闭合时q端输出的是三角波;当开关d1拨通,d0,d2均闭合时q端输出的是方波;当开关d2拨通,d0,d1均闭合时q端输出的是正弦波;数据选择器模块R

5、TL图2-43硬件测试当程序下载到硬件之后,采用chipscope实现对FPGA内部信号的在线调试。在FPGA已经下载程序的情况下,添加我们关心的信号或者接口,将选定了端口Chipscope(不妨理解为一个嵌入的系统)加入到程序后重新布局布线下载到FPGA中,此时我们就可以观察信号和接口的值了。在对ip核的设置中设置chipscope每次对信号的抓取为2048个。3.1对三角波的抓取当选择信号K0置1,K1、K2置0时,信号发生器输出波形为三角波,如图3-1-1所示:Chipscope抓三角波波形图3-1-

6、1利用chipscope的导出功能,得到具体的数据表。如图3-1-2所示:Chipscope对三角波形的导出图3-1-23.2对方波的抓取当选择信号K1置1,K0、K2置0时,信号发生器输出波形为方波,如图3-2-1所示:Chipscope抓方波波形图3-2-1利用chipscope的导出功能,得到具体的数据表。如图3-2-2所示:Chipscope对方波形的导出图3-2-23.3对正弦波的抓取当选择信号K2置1,K0、K1置0时,信号发生器输出波形为正弦波,如图3-3-1所示:Chipscope抓正弦波形

7、图3-3-1利用chipscope的导出功能,得到具体的数据表。如图3-3-2所示:Chipscope对正弦波形的导出图3-3-24利用MATLAB实现直观的观测数据因为利用chipscope所导出的数据是一个一个的数组,所以无法对波形实现直观的观察。为了方便观察实验数据,利用MATLAB软件实现对文本文件中的数据的读。导出的每行数据可看做一个数组,每个数组第11位是波形的数据位,因此利用MATLAB只读第11列的数据。利用MATLAB画波形时,横轴作为波形的时间轴,每间隔为1打一个点,纵轴作为波形的幅值,

8、用polt输出将这些点链接起来,就可以直观的观测波形。方波的MATLAB程序如下:clc,cleardata=textread('F:ISEDesignwave_generate实验数据DELTA.txt');%采集路径th=data(:,11);%数组全部采集,采集第11位a=th';%转置t=0:2047;%点的个数subplot(311)plot(t,a);利用gridon,和subplot语句可以

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。