EDA课程设计波形发生器的设计.doc
文本预览下载声明
目录
一 题目要求..............................................2
1.1波形发生器…………………………………………………………2
1.1.1题目要求…………………………………………………………2
1.1.2 设计前提…………………………………………………………2
二 方案论证……………………………………………………………3
2.1设计思路 3
2.1.1原理分析和讨论 3
三 程序设计……………………………………………………………5
3.1 程序流程图…………………………………………………………5
3.2 部分程序功能介绍…………………………………………………6
四 结果分析..............................................5
4.1实验波形图…………………………………………………………8
4.2 结果分析……………………………………………………………9
五 总结与体会…………………………………………………………10
参考文献 ………………………………………………………………11
附录 ……………………………………………………………………12
一 题目要求
1.1波形发生器简介
波形发生器是一种数据信号发生器,在调试硬件时,常常需要加入一些信号,以观察电路工作是否正常。用一般的信号发生器,不但笨重,而且只发一些简单的波形,不能满足需要。就可以定义串口数据。通过逻辑探勾输出,调试起来简单快捷。1.1.1题目要求
设计制作一个简易波形发生器,该波形发生器能产生正弦波、方波、三角波,通过键盘控制可以改变输出信号的频率和幅度。能产生正弦波、方波、三角波3种周期波形通过键盘控制可以改变幅度和频率 输出信号幅度在0~5V连续可调MAX+plus II操作流程,熟练运用VHDL语言。
(2) 熟练掌握有关DAC0832芯片的相关功能
(3) 熟练掌握数字示波器的使用。
二 方案论证
2.1设计思路
2.1.1原理分析和讨论
本次课题的设计思路可分为5个部分,如图1所示,即启动DAC0832、波形的幅度调节、周期的调节、波形幅度值到BCD码转化以及显示幅度值。
启动DAC0832时需认真阅读有关实验箱的手册,以及DAC0832的引脚功能,由于DAC0832是由FPGA输出的信号wr、cs驱动、控制的,当reset为高电平时,DAC0832关闭[1],因此根据实验箱的操作手册,我们只需将开关的1、5、8位置“ON”,其他的打到“OFF”档,DAC0832的启动只需将cs、wr1设为‘0’即可。
对于波形的幅度调节,我们是通过两个按键up、down来实现的,按下up键,波形的幅值增大,按下down键则与之相反,该功能的实现主要是通过if语句来判断up、down键是否按下,并根据判断结果做出相应的操作。
对于波形的周期调节,我们是通过两个按键up0、down0来实现的,按下up0键,波形的周期增大,按下down0键则与之相反,该功能主要是通过改变变量的值间接实现周期的调节,另外通过按下up、down键也可改变波形的周期。
波形幅度值到BCD码的转化是本课题中比较重要的一部分,这部分的正确性对后面的幅度显示起决定性作用。通过查阅资料我们得出DAC0832的参考电压时12V,根据公式Vout=Vref/256*D即可得出波形的输出电压值,得出输出电压值后,将该电压的每一位数值通过一定的方法取出来,再将其值送到相应位的数码管上显示即可完成。
三 程序设计
3.1.1程序流程图
图2 幅度调节
3.1.2 部分程序功能介绍
ENTITY SANJ IS
PORT(
CLK :IN STD_LOGIC;
RESET :IN STD_LOGIC;
FDD :IN STD_LOGIC;
SAN :IN STD_LOGIC; --三角波使能
FANG :IN STD_LOGIC; --方波使能
WR :OUT STD_LOGIC;
D :OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
);
END SANJ;
以上是变量的设置
SIGNAL DS :STD_LOGIC_VECTOR(7 DOWNTO 0);
SIGNAL FD :STD_LOGIC_VECTOR(7 DOWNTO 0);
以上是幅度调节的变量
PROCESS(FDD)IS
BEGIN
IF(FDDEVENT AND FDD=1) THEN --幅度调节
IF(FDXFF) THEN
FD=FD+1;
ELSE
FD=X0F;
END IF;
END IF;
显示全部