基于FPGA的多功能信号发生器.docx
- 文档编号:6895398
- 上传时间:2023-01-12
- 格式:DOCX
- 页数:12
- 大小:85.64KB
基于FPGA的多功能信号发生器.docx
《基于FPGA的多功能信号发生器.docx》由会员分享,可在线阅读,更多相关《基于FPGA的多功能信号发生器.docx(12页珍藏版)》请在冰豆网上搜索。
基于FPGA的多功能信号发生器
《VHDL语言》课程设计
题目:
基于FPGA的多功能信号发生器
系别:
电子通信工程系
姓名:
卢春菊
班级:
医电051
学号:
050411122
指导老师:
石新峰
设计时间:
2007年12月7日
目录
前言:
…………………………………………………………………1
一、设计任务:
……………………………………………………………2
二、题目分析与整体构思:
………………………………………………3
三、硬件电路设计:
………………………………………………………4
四、程序设计:
……………………………………………………………5
五、心得体会:
……………………………………………………………6
附录:
………………………………………………………………7
参考文献:
……………………………………………………………8
前言
在《VHDL语言》课程设计中,经过石老师的指导与讲述,我组三名同学经过讨论最终决定设计一多功能信号发生器,实现4种常见波形正弦波、三角波、锯齿波、方波的功能。
并且输出信号的频率范围为100Hz~200KHz,输出频率可以调节;可以存储任意波形特征数据并能重现该波形,还可完成各种波形的线形叠加输出,具有显示输出波形、频率的功能。
通过运用VHDL语言编程,通过运用软件QuartusII6.0,逐渐掌握EDA的用法,熟练步骤,对以后的学习与工作做了很好的铺垫;剖析整个系统运行的步骤与工作原理,从而完成对整个设计的理论分析任务,以次来指导其它设计过程;硬件电路设计主要是设计相关模块的设计思想的可视化,是相关模块的电路图的汇总和其相关仿真波形的集锦,该部分条理清晰,思路明确,从中我们可以清晰地看到该设计方案的具体模块和整个设计的原理结构实图;程序设计这一部分主要阐述该设计的设计方法与设计思想,进一步从软件设计上揭示设计构思,主要包含了整个设计所用到的模块的硬件描述语言的设计,通过这一部分的学习,对《VHDL语言》的设计方法有了进一步的学习,对其相关语言设计规范有了更深层次的掌握,能够更加熟练的做一些编程设计。
最后通过设计了解到基于PLD的EDA技术的发展和应用领域不断的扩大与深入EDA技术在电子信息、通信、自动控制及计算机应用等领域的重要性日益突出。
随着技术市场与人才市场对EDA技术的需求不断提高,产品的市场效率和技术要求也将会影响到教学与科研领域,因此这一次课程设计的开展很好的把握住了教学的改革方向,更好的锻炼了学生理论联系实践的能力。
此次课程设计对我在EDA技术的学习中有着很重要的影响,通过实验我们非常充分的运用了实验室的器材,发挥团队精神,不畏困难,根据自己所学的EDA知识,认真的分析了老师要求的设计任务,明确了设计思路,我们齐心努力下成功的完成了多功能信号发生器的设计,对EDA技术的运用有了深一层的认识,对VHDL程序语言设计有了更深的理解,并熟练掌握了杭州康芯硬件结构动态可配置型EDA+SOPC试验箱、北京达盛公司全开方式EDA+SOPC试验箱、北京达盛公司MAX7128试验箱的用法。
一、设计任务
基于《VHDL语言》,通过给定的仪器(杭州康芯硬件结构动态可配置型EDA+SOPC试验箱、北京达盛公司全开方式EDA+SOPC试验箱、北京达盛公司MAX7128试验箱)设计一个多功能信号发生器,要求:
(1)能产生周期性正弦波、方波、三角波、锯齿波以及用户自己编辑的特定波形;
(2)输出信号的频率范围为100Hz~200KHz,且输出频率可以调节;
(3)具有显示输出波形、频率的功能。
二、题目分析与整体构思
多功能信号发生器:
多功能体现在它能自动的实现四种波形的转换,还有波形的控制频率,以及用按键的方式产生任意波形.
掌握使用EDA工具设计多功能信号系统的设计思路和设计方法。
体会使用EDA综合过程中电路设计方法和设计思路的不同。
首先,根据所学的知识对正弦信号发生器比较熟悉,就以正弦信号为基础展开思索.它由三个LMP模块组成,即锁相环、计数器、LMPROM。
其次,对三个模块分析并展开。
锁相环一般用于高频信号,由于要求的频率范围为100HZ~200HZ,所以去掉锁相环不考虑。
但是这个频率由谁提供?
经观察和了解实验箱的说明书可以通过时钟信号得到,信号来源这一问题解决了,为了确定频率需要计数器和分频器。
分频器是为了得到所需要的频率范围,计数器是为了测频率周期做准备。
通过查找资料把分频器和计数器的程序输入到QuartusⅡ中进行运行仿真,每一步都要慎重小心,错误难免的,还需要通过课本和资料一一更正。
最后,在前两个模块做好的基础上再考虑如何出波形的问题,通过对四种波形采样就可以得到,经过查找资料与思考终于得到了方法,就是通过建ROM,在里面输入所采点的数据,然后经运行与仿真正确就可以运用。
当然在做这些模块的过程中需要考虑到数据的选择、位宽的大小、管脚的取舍等问题。
一切准备就绪,实验开始。
三、硬件电路设计
(一)根据题目分析与整体构思可知,要完成设计任务必须设计出以下模块:
1)用于存储波形的四个ROM:
正弦波信号存储器data_roms、方波信号存储器data_rom、三角波信号存储器data_romt、锯齿波信号存储器data_romc;
2)用于波形切换的四路选择器MUX_4;
3)用于频率选择的数控分频器;
4)用于激励存储器工作的地址发生器CNT6;
(二)通过QuartusⅡ软件设计出各个模块的原理图及其相关仿真波形示意图如下:
1)如图所示,分频器的原理图及其仿真波形图
2)如图所示,正弦波发生器的原理图及其仿真波形图
3)如图所示,方波信号发生器的原理图及其仿真波形
4)如图所示,锯齿波信号发生器的原理图及其仿真波形
5)如图所示,三角波信号发生器原理图及其仿真波形
6)如图所示,多路选择器的原理图
7)如图所示,地址发生器的原理图
8)如图所示,经过对设计任务的仔细学习与思考,把以上模块根据其功能及
设计思路设计出总的系统原理图如下:
对于整个原理图的编译结果:
四、程序设计
(1)地址发生器的程序设计:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYCNT6BIS
PORT(FIN:
INSTD_LOGIC;
CLR:
INSTD_LOGIC;
ENABL:
INSTD_LOGIC;
DOUT:
OUTSTD_LOGIC_VECTOR(5DOWNTO0));
ENDCNT6B;
ARCHITECTUREbehavOFCNT6BIS
SIGNALCQI:
STD_LOGIC_VECTOR(5DOWNTO0);
BEGIN
PROCESS(FIN,CLR,ENABL)
BEGIN
IFCLR='1'THENCQI<=(OTHERS=>'0');
ELSIFFIN'EVENTANDFIN='1'THEN
IFENABL='1'THENCQI<=CQI+1;
ENDIF;
ENDIF;
ENDPROCESS;
DOUT<=CQI;
ENDbehav;
(2)分频器的程序设计如下:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYfenpinqiIS
PORT(clk:
InSTD_LOGIC;
clk_scan:
OUTSTD_LOGIC);
ENDfenpinqi;
ARCHITECTURErtlOFfenpinqiIS
SIGNALcnt:
INTEGERRANGE0TO40000;
BEGIN
PROCESS(clk)
BEGIN
IFclk'eventandclk='1'THEN
IFcnt=cnt'highTHEN
cnt<=0;
ELSE
cnt<=cnt+1;
ENDIF;
ENDIF;
ENDPROCESS;
PROCESS(cnt,clk)
BEGIN
IFclk'eventandclk='1'THEN
IFcnt>=cnt'high/2THEN
clk_scan<='1';
ELSE
clk_scan<='0';
ENDIF;
ENDIF;
ENDPROCESS;
ENDrtl;
(3)正弦信号发生器的程序设计如下:
LIBRARYieee;
USEieee.std_logic_1164.all;
LIBRARYaltera_mf;
USEaltera_mf.all;
ENTITYdata_romsIS
PORT
(address:
INSTD_LOGIC_VECTOR(5DOWNTO0);
inclock:
INSTD_LOGIC;
q:
OUTSTD_LOGIC_VECTOR(7DOWNTO0));
ENDdata_roms;
ARCHITECTURESYNOFdata_romsIS
SIGNALsub_wire0:
STD_LOGIC_VECTOR(7DOWNTO0);
COMPONENTaltsyncram
GENERIC(
address_aclr_a:
STRING;
init_file:
STRING;
intended_device_family:
STRING;
lpm_hint:
STRING;
lpm_type:
STRING;
numwords_a:
NATURAL;
operation_mode:
STRING;
outdata_aclr_a:
STRING;
outdata_reg_a:
STRING;
widthad_a:
NATURAL;
width_a:
NATURAL;
width_byteena_a:
NATURAL
);
PORT(clock0:
INSTD_LOGIC;
address_a:
INSTD_LOGIC_VECTOR(5DOWNTO0);
q_a:
OUTSTD_LOGIC_VECTOR(7DOWNTO0));
ENDCOMPONENT;
BEGIN
q<=sub_wire0(7DOWNTO0);
altsyncram_component:
altsyncram
GENERICMAP(
address_aclr_a=>"NONE",
init_file=>"roms.mif",
intended_device_family=>"Cyclone",
lpm_hint=>"ENABLE_RUNTIME_MOD=YES,INSTANCE_NAME=ROMS",
lpm_type=>"altsyncram",
numwords_a=>64,
operation_mode=>"ROM",
outdata_aclr_a=>"NONE",
outdata_reg_a=>"UNREGISTERED",
widthad_a=>6,
width_a=>8,
width_byteena_a=>1)
PORTMAP(
clock0=>inclock,
address_a=>address,
q_a=>sub_wire0);
ENDSYN;
根据正弦波信号发生器的程序设计,可以分别设计出方波信号发生器、三角波信号发生器、锯齿波信号发生器,程序设计相对简单,可以套用:
libraryieee;
useieee.std_logic_1164.all;
entitymuxisport(
a,b,c,d:
instd_logic_vector(7downto0);
s:
instd_logic_vector(1downto0);
x:
outstd_logic_vector(7downto0));
endmux;
architecturearchmuxofmuxis
begin
mux4_1:
process(a,b,c,d)
begin
ifs="00"then
x<=a;
elsifs="01"then
x<=b;
elsifs="10"then
x<=c;
else
x<=d;
endif;
endprocessmux4_1;
endarchmux;
五、心得体会
我们的设计较好地完成了既定目标,能够产生正弦波、方波、三角波、锯齿波和任意波形,并能较精确的调设波形发生的频率,范围在100Hz~200KHz,且输出频率可以调节,人机界面较完善友好,使系统容易使用。
很成功的完成系统的功能实现。
我在设计中主要是负责整个系统架构的构建,提供较完善的人机交互功能(键盘输入及LCD显示)。
也充分认识到了团结的力量!
在实验中也有失败,如当经过几天的努力把分频器、计数器、四个ROM做好后进行了整体的运作后,波形怎么也不出现。
后来才知道原来我们设计的电路只有在特定的试验箱才能实验成功,多亏老师的指导让我们少走很多弯路。
也从中发现自己还有很多知识不懂,最终把波形弄出来了!
在这次设计中,我更进一步地了解了开发项目该如何组织进行,对正弦波信号发生器、方波信号发生器、三角波信号发生器、锯齿波信号发生器的实现有了更好的理解。
同时也提高了查阅文档解决问题的能力,对EDA技术的运用有了深一层的认识,对VHDL程序语言设计有了更深的理解,并熟练掌握了杭州康芯硬件结构动态可配置型EDA+SOPC试验箱、北京达盛公司全开方式EDA+SOPC试验箱、北京达盛公MAX7128试验箱的用法。
通过本实验设计更增加了我对电子技术的热爱,对专业知识有了更透彻的认识!
有因掌握了这一技术而更加自信。
相信通过今后的学习会更成为一个科技含量高的技术人才!
在试验过程中,充分体会到团队精神的重要,我们很默契很团结,才最终把实验做成功。
通过实验也给自己一个成就感,让平时所学的知识有了实用的机会,达到了理论与实际相结合的目的,不仅学到了不少知识,而且锻炼了自己的能力,让我以后更有信心,无论遇到什么困难都要勇于克服,遇到问题要善于思考并虚心请教!
最后向学校和老师的支持和帮助说声感谢,因为你们我们才有锻炼和实践的机会!
参考文献:
王国栋:
EDA使用教程VHDL程序设计(修订版)
成都电子科技大学出版社
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 FPGA 多功能 信号发生器