基于FPGA的流水线结构DDS多功能信号发生器的设计与实现
3 任意波形发生器的设计及实现
DDS可以根据ROM中存储数据的不同产生多种波形。在QuartusⅡ开发环境下搭建DDS系统模型需要订制波形存储器ROM,根据所需精度的不同,ROM中存储的采样点数也不同。当所需波形数据非常简单时,可以在QuartusⅡ中定制ROM时直接将数据写入新建的mif文件,然后保存即可,当所需波形数据较为复杂时,可以通过Matlab来自动生成所需波形的幅度数据,然后再通过调用mif文件来达到预期目标。以256个点的正弦波为例加以分析说明。
产生正弦波的Matlab程序如下:
width定义的是位宽,depth是深度,也就是将来生成的mif文件含有多少个存储单元,在此处,设定了数据宽度为8位,存储单元数为256,将来在QuartusⅡ中定制ROM时也要相应地将存储单元数设定为256,根据DDS的基本原理,随着设计点数的增加,所得的波形数据会更加准确,通过D/A转化后在示波器上观测的波形也越精准,但所需ROM的存储空间将会呈指数增长,所以要根据实际的需要来综合考虑存储单元的个数。将上述指令在Matlab环境中运行之后就能够得到所需mif文件。
在mif文件生成之后需要将此文件添加进入DDS系统的ROM中,然后进行全局的编译,编译通过后就可以进行工程的下载。具体的波形可以通过示波器来分析,或者使用Quartus Ⅱ自带的嵌入式逻辑分析仪来分析。在使用嵌入式逻辑分析仪分析和观察时,采样信号要根据DDS的时钟信号来确定,待测信号设定为DDS的输出信号,当工程下载到FPGA芯片后,待测信号通过USB-BLASTER反馈至嵌入式逻辑分析仪中,选择不同的数据类型,可以观察到以十进制数据表示的数字信号或者以实际波形表示的模拟信号。
图4为在在嵌入式逻辑分析仪中观察到的正弦曲线。由波形图可以看出,该设计方案可以实现正弦信号发生器的功能。按照相同的方法,修改产生mif文件的Matlb运算指令可以获得方波,锯齿波,三角波等波形。
图5~图7为能产生方波,锯齿波和三角波波形的工程文件下载到FPGA芯片后通过嵌入式逻辑分析仪得到的波形图。由波形图可以看出,该系统能够实现任意波形发生器的功能。
4 结语
本文将流水线相位累加器引进到DDS的设计中,利用电子设计自动化技术进行系统设计,并从嵌入式逻辑分析仪分析和观察了相应的波形,仿真和硬件实验验证了设计方案的正确性。该系统具有结构简单、运行速度快和占用芯片资源少等特点。随着ROM查找表的扩大以及越来越多的直接计算波形数据的方法不断被提出,对DDS整体实时性的要求也越来越高,尤其像目前较为流行的cordic算法及改进的其它插值算法,由于算法本身随着级数的增多,整个系统的频率转换效率就会降低,而流水线相位累加器结构可以很好地解决这一问题。
- 一种基于DDS技术的信号发生器研究与实现(03-30)
- ADI常用DDS的线性扫频特性比较研究(04-16)
- 基于DDS+PLL高性能频率合成器的设计与实现(04-24)
- 基于Matlab/DSP Builder任意波形信号发生器的两种设计(03-06)
- 基于DSP的低频频率特性测试仪(03-06)
- DSP和DDS的三维感应测井高频信号源实现(01-23)
