3 设计的硬件实现
选择在Xilinx 公司的Spartan-3E Starter Kit 开发板上实现整个设计。在该开发板 上,有一片LTC2* D/A 芯片,通过一个SPI 接口与FPGA 管脚相接,能够提供4 路独立的 模拟量输出。为了便于对D/A 芯片以及各种控制接口的控制,在实现过程中使用了一个 PicoBlaze 软核。
PicoBlaze 是一个紧凑型、资源占用极少、完全嵌入式的8 位精简指令集 微控制器软核。我们可以在文本编辑环境下根据PicoBlaze 的指令系统编写自己的控制代 码,然后保存为.psm 格式的文件,再用Xilinx 的KCPSM3 assembler 对文件进行编译,编 译通过后自动生成一个储存用户程序的ROM(VHDL 文件)。将生成的ROM 文件和KCPSM3 软 核加载到工程中,并建立上层文件对各输入、输出口及中断进行配置,这样,一个PicoBlaze 软核就设计成功了。 在PicoBlaze 的控制程序中采用软件中断方式控制D/A 芯片以20KHZ 的频率对数字量采 样。在每个采样过程中,由PicoBlaze 软核控制向D/A 芯片发送32 位控制字,其中有12 位待转换的数字量、4 位通道选择控制字、4 位模式控制字,其余各位为0。在ISE 中对主 时钟进行软件分频,将开发板上原本50MHZ 的时钟降低到100KHZ 之后再接到DDS 产生电路 的输入时钟端口。这样, 在FWord = 4 的情况下, DDS 的输出频率
输入时钟可以直接接入50MHZ 的晶振,这样,在同样频率控制字的情况下输出频率也会相应 提高。这里分频只是为了配合相对低速的D/A 芯片,以使得输出波形每个周期的采样数相对 多一些,以便于用示波器进行观察。
将生成的比特流代码下载到目标板,板上的开关信号作为用户接口控制FWord 的值, 控制不同开关的关闭和开启,模拟不同频率控制字的情况,得到不同频率的波形,用示波器 观察开发板上J5 连接器的A 通道,得到如图3 的波形:观察波形,与由公式计算出的理论值吻合,证明了本文所介绍的方法的有效性、可行性。在ISE 的设计使用摘要窗口中,我们 可以清楚的看到该系统所占用的芯片资源极少,由此可见,如果我们加大ROM 的深度,并且 通过DCM 时钟管理提高主时钟频率的话,能够很容易的实现更高频率、更高精度的DDS 芯片。
4 结语
该设计过程演示了在MATLAB/SIMULINK 环境下使用Xilinx 公司的System Generator 模块集对DDS 建模,并在ISE 中进行编译、仿真,最终在开发板上实现DDS 功能芯片的过程。 虽然在ISE 集成环境中已经提供了DDS 的IP 核供编程者使用,但是只能产生正弦或者余弦 波形,在需要产生其它波形(如方波、三角波等)的场合难以发挥作用,而且根据DDS 原理 使用软件编程方法产生其它波形具有一定的复杂性,容易出错且效率不高。本文介绍的方法 具有数字频率合成的普遍性,设计者通过修改ROM 中存储的初始值向量,可以用类似的方法 达到产生任意波形的目的。这是一种在Xtreme 系统中实现DSP 设计的普遍方法,使用这样 的设计流程,可以避免编写烦琐的HDL 程序,更可以实现其它更加复杂的DSP 算法。该方法 充分发挥了使用FPGA 实现DSP 系统所具有的高度并行性、重构灵活性以及低性价比的优势, 在无线基站、复杂网络系统、视频服务和医疗图象等DSP 领域将得到更加广泛的应用。
本文的创新点:不仅提出了一种先进的基于模型的DDS 芯片的设计新方法,而且通过实 际实验在硬件开发板上实现了整个设计构想,实验结果符合设计要求,验证了该设计方法的 正确性、可行性。