基于VHDL语言的波形发生器的设计.doc
《基于VHDL语言的波形发生器的设计.doc》由会员分享,可在线阅读,更多相关《基于VHDL语言的波形发生器的设计.doc(30页珍藏版)》请在沃文网上搜索。
1、 专业 课程设计任务书20112012学年 第 2 学期第 17 周 20 周 题目波形发生器的设计内容及要求用CPLD可编程模块产生下列信号(特殊芯片:EPM570T100C5)(1)采用VHDL编写相关程序,能产生递增斜波、递减斜波、阶梯波、正弦波、方波、三角波;(2)用户能够选择输出所需其中一种波形。进度安排 17周:查找资料,进行系统方案设计; 18周:软件的分模块调试; 19周:系统联调;20周:设计结果验收,报告初稿的撰写。学生姓名: 汤姝指导时间:第1720周指导地点:E楼607室任务下达2012年 6 月4 日任务完成2012年 6月 29 日考核方式1.评阅 2.答辩 3.实
2、际操作 4.其它指导教师刘敏系(部)主任付崇芳摘要各种各样的信号是通信领域的重要组成部分,其中递增斜波、递减斜波、阶梯波、正弦波、方波、三角波等是较为常见的信号。在科学研究及教学实验中常常需要这几种信号的发生器。为了试验、研究方便,研制一种灵活使用、功能齐全、使用方便的信号源是十分必要的。本次设计的波形发生器是一种能够产生递增斜波、递减斜波、阶梯波、正弦波、方波、三角波的信号发生器。设计可以通过硬件和软件两种方法实现,本次实验中通过Quartus II软件编程软件的方法,运用VHDL语言与原理图混合设计的方法,VHDL语言描述底层模块,原理图设计方法设计顶层原理图文件。实验分模块设计,便于调试
3、及错误的查找。实验运用VHDL语言编写程序,实现了各波形的产生,并且最后通过6选1多路开关的设计,实验了对需要波形的选择。关键词:波形发生器 VHDL Quartus II 原理图 多路开关目 录第一章 波形发生器设计内容及要求11.1 设计内容11.2 设计要求1第二章 波形发生器系统框图及工作原理与设计22.1 系统框图22.2 设计平台与仿真工具22.3 工作原理与设计2第三章 系统调试与分析113.1 系统调试113.2 结果分析11第四章 结论18参考文献19附录一 原理图20附录二 程序清单21波形发生器的设计第一章 波形发生器设计内容及要求1.1 设计内容实验设计波形发生器是一种
4、能够产生递增斜波、递减斜波、阶梯波、正弦波、方波、三角波的电路。实验中通过Quartus II软件编程,运用VHDL语言与原理图混合设计的方法,VHDL语言描述底层模块,原理图设计方法设计顶层原理图文件。实验分模块设计,在完成一个模块时即对其进行调试修改,防止了最后模块综合时存在调试困难的情况出现。如果是对元件例化相对较熟练的同学,也可采用元件例化的方法进行程序的编写。但在此过程中,应特别注意VHDL语言的运用,以防语法错误导致影响实验结果。实验最后将程序下载到芯片EPM570T100C5中,供实际运用。1.2 设计要求用CPLD可编程模块产生下列信号(特殊芯片:EPM570T100C5)1、
5、 采用VHDL编写相关程序,能产生递增斜波、递减斜波、阶梯波、正弦波、方波、三角波; 2、用户能够选择输出所需其中一种波形。第二章 波形发生器系统框图及工作原理与设计2.1 系统框图波形发生器由各波形发生模块及6选1多路开关构成,时钟信号对其作用产生输出波形信号,系统框图如图2.1所示。图2.1 系统框图2.2 设计平台与仿真工具Quartus II软件包是MAX+plus II的升级版本,其提供了一个完整高效的设计环境,非常适合具体的设计需求。提供了方便的设计输入方式、快速的编译和直接易懂的器件编程,属于EDA工具。EDA技术的基本特征是采用高级语言描述,具有系统级仿真和综合能力。它主要采用
6、并行工程和“自顶向下”的设计方法,这种设计方法首先从系统设计入手,在顶层进行功能方框图的划分和结构的设计。在方框图一级进行仿真、纠错,并用硬件描述语言对高层次的系统行为进行描述,在系统一级进行验证。然后用综合优化工具生成具体电路的网表,其对应得物理实现级可以是印刷电路板或专用集成电路。由于设计的主要仿真和调试过程是在高层次上完成的,这不仅有利于早起发现结构设计上的错误,避免设计工作的浪费,而且也减少了逻辑功能仿真的工作量,提高了设计的一次成功率。本实验中是多个模块的相互联系作用,采用了VHDL与原理图混合设计的方式进行设计。各模块设计最后,为了能在图形编辑器中调用元件,需要为该元件创建一个元件
7、图形符号。2.3 工作原理与设计2.3.1 递增波形递增波形的设计运用的是VHDL语言中if语句对其进行0-255的序列递增来实现的,每等待一个时钟上升沿,计数器加1,故输出信号周期为256倍时钟周期。程序主要语句如下所示:if tmp=11111111 then tmp:=00000000; else tmp:=tmp+1; end if;其中,定义clk为输入时钟信号端口,reset为输入复位信号端口程,q1为8位二进制输出信号端口。程序设计流程图如下图所示:图2.2 递增波形设计流程图2.3.2 递减波形递减波形的设计运用的是VHDL语言中if语句对其进行255-0的序列递减来实现的,与
8、递增波形正好是相反的。每等待一个时钟上升沿,计数器减1,故输出信号周期为256倍时钟周期。程序主要语句如下所示: if tmp=00000000 then tmp:=11111111; else tmp:=tmp-1; end if;其中,时钟信号clk,复位信号reset, 8位二进制输出信号端口q2。程序设计流程图如下图所示:图2.3 递减波形设计流程图2.2.3 阶梯波阶梯波运用VHDL语言中if语句设计,程序中每计数16次对输出信号进行一次序列递增,从而得到周期为输入时钟递增信号波形周期16倍的输出阶梯波信号。在设计原理上是与递增波形类似的。程序中,阶梯波阶梯增量为16,可以根据需要通
9、过改变递增量来得到需要波形。因为在计数器11110000是加16刚好为00000000,故程序省略了if tmp =11111111 thentmp:=00000000 ;语句,并且在计数器增量设置时,增量应为,这样才能使阶梯波各个阶梯高度是一致的。 程序主要语句如下所示:if reset=0 then tmp:=00000000; elsif clkevent and clk=1 then tmp:=tmp+16;end if;其中,时钟信号clk,复位信号reset, 8位二进制输出信号端口q5。程序设计流程图如下图所示:图2.4 阶梯波设计流程图2.1.4 三角波三角波的设计运用的是VH
10、DL语言中if语句先对其进行0-255的序列递增,之后再对递增到255的序列进行255-0的序列递减来实现的,正好是递增波形与递增波形相结合得到。程序语句设置内部接点信号a作为递减信号,判断波形处于递增或者是递减阶段。当a为0时,递增,计数器加1;a为1时,递减,计数器减1。 程序主要语句如下所示: if a=0 then if tmp=11111110 then tmp:=11111111; a:=1; else tmp:=tmp+1; end if;else if tmp=00000001 then tmp:=00000000; a:=0; else tmp:=tmp-1; end if;
11、end if;其中,时钟信号clk,复位信号reset, 8位二进制输出信号端口q3。程序设计流程图如下图所示:图2.5 三角波设计流程图2.1.5 正弦波正弦波的设计运用的是VHDL语言中if语句与case语句,由于正弦波是模拟信号波形,而VHDL语言程序输出的是数字信号波形。因此,实验中对信号进行等间距采样,等效正弦信号波形。程序采样点为128个,等效为近似的正弦波形。程序主要语句如下所示: if tmp =127 then tmp:=0; else tmp:=tmp+1;end if;case tmp iswhen 00=ddddddddnull;end case;end if;其中,时
12、钟信号clk,复位信号clr, 8位二进制输出信号端口d。程序设计流程图如下图所示:图2.6 正弦波设计流程图2.1.6 方波阶梯波运用VHDL语言中if语句设计,程序中每计数64次对输出信号进行一次翻转,从而得到周期为输入时钟信号周期128倍的输出方波信号。程序设置内部节点信号a作为输出判断信号,计数器计数0-63后,对输出判断信号取反,实现0、1的变化。 if cnt63 then cnt:=cnt+1; else cnt:=0; a=not a; end if;其中,a为0 是输出低电平,a为1时输出高电平。 if a =1 then q6=255; else q6qqqqqqq=nul
13、l;end case;其中,时钟信号clk,输入选择sel,8位二进制输出信号端口q。程序设计流程图如下图所示:图2.7 6选1多路开关设计流程图第三章 系统调试与分析3.1 系统调试3.1.1 调试方法 实验运用的是VHDL语言与原理图混合设计方法,因此有程序调试和原理图调试两部分。实验步骤如下:1、 新建工程、VHDL文档输入设计模块子程序2、 调试各个子程序是否存在语法错误的问题3、 对各子模块进行波形仿真,验证输出是否正确4、 各子模块生成图元文件5、 新建工程、原理图文档,将各子模块文件夹下的文档拷贝到新建工程中6、 根据系统设计框图将各个模块图元文件连成原理图7、 检验原理图是否正
14、确8、 最后原理图仿真,检查波形图是否正确3.1.2 调试故障及解决方法在整个实验调试过程中,最主要出现的问题是对VHDL语言的不熟悉,导致在程序编写过程中出现了不少语法错误导致影响实验结果的问题。其次是软件运用不熟练使得影响实验进度,有时也会影响了实验调试。针对实验中出现了问题,总结了以下一些解决方法和注意事项:1、 程序书写过程中要注意程序的层次,便于出错时对错误的查找;2、 程序输入时应仔细认真,以免个别字母的错误输入影响实验结果;3、 分模块设计分模块调试,便于对错误的纠正;4、 项目名必须与顶层设计文件名相同;5、 程序命名过程中,以一定意义的字母命名,便于之后读程序;6、 在原理图
15、设计上,注意总线的书写。 设计中主要用的是VHDL语言中的if语句和case语句,因此对这两种语句的运用要十分熟悉。并且其不区分大小写,所以在命名时应注意此问题。3.2 结果分析3.2.1 递增波形 通过对程序语句的调试过程,得到以下波形图:图3.1 递增波形图图3.2 递增模块图 由波形图可以看出,在每个时钟上升沿,输出加1,从波形图上我们也可以看到,输出由00000000增至11111111,从而得到了递增波形,并且其周期为时钟周期的256倍。因此,从调试得到的波形图可知,程序设计实现了递增波形的产生功能。3.2.2 递减波形 递减波形程序调试,得到了以下的波形图:图3.3 递减波形图图3
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
10 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 VHDL 语言 波形 发生器 设计