eda信号发生器三角波正弦波方波文档格式.docx
- 文档编号:20724740
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:7
- 大小:147.67KB
eda信号发生器三角波正弦波方波文档格式.docx
《eda信号发生器三角波正弦波方波文档格式.docx》由会员分享,可在线阅读,更多相关《eda信号发生器三角波正弦波方波文档格式.docx(7页珍藏版)》请在冰豆网上搜索。
B——三角波;
C——方波;
(7)要求能够显示频率值;
(8)可用示波器进行波形的观测。
2设计流程
2.1设计思想及流程图
本次课程设计按模块式实现,据任务书要求,设计总共分三大步骤完成:
(1)产生波形(三种波形:
方波、三角波、正弦波)信号;
(2)频率控制;
(3)显示频率值。
利用VHDL编程,依据基本数字电路模块原理进行整合。
系统各部分所需工作时钟信号由输入系统时钟信号经分频得到,系统时钟输入端应满足输入脉冲信号的要求。
频率控制模块有多个可选频率,最终送至脉冲发生模块输出脉冲信号,同时将信号的频率输出至数码管显示当前信号的频率值,达到设计课题所要求的输出波形频率可调功能。
如图2-1所示:
图2-1程序流程图
2.2总体功能简述
这个设计运用.vhd文件,实现三角波、正弦波、方波的选择以及频率的选择。
本次课设所做的简易多功能信号发生器,实现3种常见波形正弦波、三角波、方波的功能。
并且输出信号的频率范围为0—1MHz,输出频率可以步进调节;
同时具有显示输出波形、频率的功能。
2.3三种波的简述及选择
代码主要采用了ROM的设计思路。
一共描述了256个点,用这256个数据来模拟这三种波,首先,在mem中放入64个数,,然后定义从0到63的信号,当时钟的上升沿达到的时候,则将这64个数一位一位的读出。
然后,由选择信号选择出相应的波形。
原理图如图2-2所示:
图2-2波形选择原理图
2.4分频器的设计
在分频器模块中,运用计数的方法实现分频,通过选择信号选择出相应的频率连接到波形选
择的时钟信号上,并输出频率值在数码管上显示。
原理图如图2-3所示:
3信号发生器的仿真波形
3.1软件调试
在本次课设中,所使用的软件即为前面重点介绍过的QuartusII软件。
本系统的软件功能强大,运用VHDL语言来编写,先在QuartusII对所编的模块一一进行仿真,排除了语法的错误编写和设计逻辑思维的错误,当仿真完确认程序没问题时,再直接下载到FPGA芯片,用FPGA实
验箱进行调试。
采取的就是自顶向下的调试方法,即先单独调试好每一个模块,然后再连接成一个完整的系统再调试。
3.2仿真波形
运用本次选用的QuartusII软件对代码进行调试,即可得出相应的波形。
正弦波信号的波形仿真如图3-1所示:
clk为输入时钟信号;
data为输出的正弦波信号波形;
sel为00选择正弦波信号;
三角波信号的波形仿真如图3-2所示:
data为输出的三角波信号波形;
sel为01选择三角波信号;
方波信号的波形仿真如图3-3所示:
sel为10选择方波信号;
clk_out为输出时钟信号;
outp为输出频率;
sel_p为频率选择信号;
3.3硬件测试
本课程设计是简易多功能信号发生器,其总共有6个输入端。
分别为频率选择键sel_p[x,x],每个频率段内的频率值sel_s[x,x]和波形选择键sel_b[x,x]。
输出有DA0832示波器显示波形输出,频率值显示。
根据引脚所锁定图将系统中的各个输入输出端口锁定到合适的引脚上。
需要注意的是本系统用到了数码管显示,所以应该选定实验箱的模式5。
另外,本实验输入的时钟频率是40MHz。
当引脚锁定完毕后,将程序下载到试验箱中,连好示波器,在输入端输入相应的值即可得到相应的输出波形。
具体的硬件仿真波形如下:
正弦波:
频率为6KHZ
三角波频:
率为60KHZ
频率为600HZ
频率为60KHZ
方波波形:
频率显示:
600HZ的16进制显示
6KHZ的16进制显示
60KHZ的16进制显示
硬件测试结果分析:
由于时间紧迫取了64个点,点数较少,正弦波频率较低时,出现一定程度的失真,三角波频率较高时出现失真,好像是正弦波波形。
方波时,当频率高时,失真程度较大,当取的点数较多时,情况会明显的改善。
频率显示值是16进制,与10进制的值是相等的。
4总结
EDA技术是当前数字系统设计领域比较火热的一种工具,他可以大大缩短设计需要的时间,降低成本的同时也提高了系统的稳定性。
使用VHDL语言描述硬件系统使得EDA技术有了更为广阔的空间。
本设计使用了基于Altera公司的开发软件工具QuartusII,本系统即实现了可以输出三种波形的简易多功能波形发生器,仿真结果证明,该设计正确有效,可以作为制作实物的理论依据。
对于EDA技QuartusII进行了系统的设计和仿真。
简易波形发生器在生活中各个场合都有着大量的使用术我一直都有着浓厚的兴趣,借做课设的机会,认真的研究了一下这么科学。
发现EDA技术比我们想象中的要有很大的难度。
里面有很多的思想来源于信息电子技术辑算法的设计,需要有很强的C语言编程功底。
学习一门知识要从最基本的体系构架开始,倘若一开始就从顶层设计入手,就会造成很多基本原理、基本概念上的偏差,甚里面的基本知识,包括电路的概念以及寄存器传送的基本知识。
VHDL语言与C语言有很大的不同,但是C语言的编程思想也可以移植到VHDL语言当中来,尤其是一些逻辑会拖延设计的时间,事倍功半。
虽然可设完成了,但我意识到,我对于这门学科只是停留在入门的阶段,想要有更大的发展,要深入的研究,还要更多的努力和实践。
参考文献
[1]潘松,黄继业.EDA技术实用教程.北京:
科学出版社,2002.
[2]甘历.VHDL应用与开发实际.北京:
科学出版社,2003.
[3]
2006.
2007.
孙延鹏,张芝贤.VHDL与可编程逻辑器件应用.航空工业出版社,
[4]赵明富,李立军,石新锋,沈献博.EDA技术基础.北京大学出版社,
[5]黄仁欣.EDA技术实用教程.清华大学出版社,2006.
附录
libraryieee;
useieee.std_logic_1164.all;
entityzuihouisport(clk:
instd_logic;
sel_s:
instd_logic_vector(1downto0);
sel_p:
sel_b:
dout:
outintegerrange0to255;
xianshi:
outintegerrange0to1000000);
end;
architecturebhvofzuihouissignaltest:
integerrange0to1000000;
signalb:
std_logic;
signaladdr:
integerrange0to63;
typehuiisarray(0to63)ofintegerrange0to255;
constantsina:
hui:
=(255,254,252,249,245,239,233,225,217,207,197,186,174,162,150,137,124,112,99,87,75,64,53,43,34,26,19,13,8,4,1,0,0,1,4,8,13,19,26,34,43,53,64,75,87,99,112,124,137,150,162,174,186,197,207,217,255,233,239,245,249,252,254,255);
constantsanjiao:
=(0,8,16,24,32,40,48,56,64,72,80,88,96,104,112,120,128,136,144,152,160,168,176,184,192,200,208,216,224,232,240,248,255,248,240,232,224,216,208,200,192,184,176,168,160,152,144,136,128,120,112,104,96,88,80,72,64,56,48,40,32,24,16,8);
constantfangbo:
=(255,255,255,255,255,255,255,255,
255,255,255,255,255,255,255,255,
255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
begin
process(clk)
variablecount:
ifclk'
eventandclk='
1'
thencount:
=count+1;
if(count=test)thencount:
=0;
b<
=notb;
endif;
endprocess;
process(sel_s,sel_p)
casesel_pis
when"
00"
=>
if(sel_s="
)thenxianshi<
=300;
test<
=5000;
elsif(sel_s="
01"
=600;
=2500;
elsexianshi<
=900;
=1700;
endif;
=>
=3000;
=500;
=6000;
=250;
=9000;
=170;
10"
=30000;
=50;
=600000;
=25;
=900000;
=17;
whenothers=>
null;
endcase;
endprocess;
process(b)
begin
if(b'
eventandb='
)thencount:
=count+1;
ifcount=64thencount:
addr<
=count;
process(b,sel_b,addr)begincasesel_biswhen"
dout<
=sina(addr);
when"
=sanjiao(addr);
=fangbo(addr);
whenothers=>
endcase;
endbhv;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- eda 信号发生器 三角 正弦波 方波