用VHDL设计多功能信号发生器.pdf
实验二用VHDL设计多功能信号发生器
一、设计任务
基于《VHDL语言》,通过给定的仪器(EDA6000试验箱)设计一个多功能信号发生器,要求:
(1)能产生周期性正弦波、方波、三角波、锯齿波以及用户自己编辑的特定波形(选作);
(2)输出信号的频率范围为100Hz~200KHz,且输出频率可以调节;
(3)具有显示输出波形、频率的功能。(选作)
二、系统顶层框图
时钟
三角波波
数控分频器8位数据数据选择器
形数据
预置分
频数
(0-255正弦波波
)形数据
f
out
方波波形
数据
复位信号任意波形
数据
波形选择关
图1原理框图
在原理框图中,正(余)弦查找表由ROM构成,内部存有一个完整周期正(余)弦波的数字幅度
信息,每个查找表的地址对应正(余)弦波幅度信号,同时输出到数模转换器(DAC)输入端,DAC
输出的模拟信号经过低通滤波器(LPF),可以得到一个频谱纯净的正(余)弦波。
三、设计步骤
用VHDL语言结合原理图设计实现一个函数信号发生器,输出正弦波、方波和三角波三种波形。将
频
率控制、分频、三角波、正弦波、方波发生邓各个模块分别用VHDL语言编程为一个子程序,并把每一
个模块转换成图形文件,然后在原理图编辑框调用这些图形模块,连接电路如上图系统顶层框图所示。
通过按键1到按键8控制频率调节f〔7...0〕,用按键6、按键7、按键8控制dlt、sin、sqr波形
选通,最后把八位输出接DAC0832通过D/A转换,从示波器上就能看到波形输出。按下不同的按键输出
不同的波形及频率。
1
四、系统设计
(1)数控分频器模块
在时钟的作用下,通过预置分频数DIN,来改变输出频率。假如分频系数为N,波形存储模块存
储
一个周期的波形,实验里按照一个周期波形采样64个点存储在波形存储模块里。则输出频率
f
fclk
out64.N
(2)数据存储模块(存储波形数据)
数据存储模块主要存的是正弦波、三角波、锯齿波等一个周期的采样点。
三角波模块可设计一个可逆计数器实现,设计时设置一变量作为工作状态标志,在此变量为0时,
当检测到时钟的上升沿进行加同一个数操作;为1时,进行减同一个数操作。DA转换采用的DA0832,
输入有8个数据端,范围是0到255;而且设置64个时钟周期为一个三角波周期,所有每次加、减
为8。
锯齿波的存储数据与三角波类似。
方波可以通过交替输出全0和全1,并给以32个周期的延时来实现。
正弦波可以通过波形变换实现把s