由图2可以清楚地看出,整个系统只加入了一级流水线来提高速度,需要说明的是,在ROM和系统控制电路之间也可以加入流水线,但实际仿真表明,效果不明显,反而消耗了更多的资源,因此综合考虑后只加入一级流水线。
为了进一步提高速度,在DDS电路的相位累加模块和加法器模块的设计时并没有采用FPGA单元库中的16~32位加法器,尽管它们可以很容易地实现高达32位的相位累加器,但当工作频率较高时,这种方法不可取,因为它们较大的延时不能满足速度要求。因此,具体实现时我们分别用了4个和8个4位的累加器以流水线的方式实现16位和32位累加器。比较仿真结果表明,采用流水线技术可以大大提高系统的工作速度。
由前面的分析可知,相位/幅度变换电路也是较难实现的部分,它不仅要解决速度的问题,还要考虑节省资源的问题。如何有效利用FPGA有限的资源,是实现相位/幅度变换电路的最关键的一点。
在实际运用中,我们将着眼点主要放在了节省资源上。相位/幅度转换电路中的主要问题在于ROM的大小上。本次设计的DDS主要用于数字视频编码中,因此只需要输出余弦(正弦)波,我们考虑了以下的优化方式:COS波信号对于x=π直线成偶对称,基于此可以将ROM表减至原来的1/2,再利用左半周期内,波形对于点(π/2,0)成奇对称,进一步将ROM表减至最初的1/4,因此,通过一个SIN码表的前1/4周期就可以变换得到SIN和COS的整个周期码表。这样,就节省了将近3/4的资源,非常可观。
系统控制电路主要是根据是否需要相位调制(BPSK)及频率调制(BFSK),系统时钟是否需要分频得到所需的基准时钟,频率码的输入方式是串行、并行还是微机接口方式,如何控制输出等具体要求而设计的。这一部分可以灵活设计,凸现FPGA的优点所在。
4 用ACEXEP1K50实现的DDS电路与专用DDS芯片的比较
这里对用ACEXEP1K50实现的DDS电路与专用DDS芯片进行了比较:
(1)系统速度:用它实现DDS电路,16位精度(分辨率)的DDS电路最高频率达到148MHz,32位精度(分辨率)的电路最高工作频率107MHz,可以看出,这个频率已经是比较高了;而采用专用DDS芯片的话,频率在数十至数百兆赫兹之间,如AD9850为125MHz,AD9851为180MHz,较新的AD9854已经达到300MHz。用FPGA实现的DDS电路能工作在如此之高的频率主要依赖于ACEX系列器件先进的结构特点,以及前文提出的多种优化措施。
(2)可控性:虽然有的专用DDS芯片的功能也比较多,但控制方式却是固定的,因此不一定是我们所需要的。而利用ACEX系列器件则可以根据需要方便地实现各种比较复杂的调频、调相和调幅功能,具有良好的实用性。
(3)信号质量:专用DDS芯片由于采用特定的集成工艺,内部数字信号抖动很小,可以输出高质量的模拟信号;尽管利用ACEX系列也能输出较高质量的信号,但达不到专用DDS芯片的水平。
(4)成本:专用DDS芯片价格较高,而将用FPGA器件设计的DDS电路嵌入到系统中并不会使成本增加多少。
5 结束语
本文利用ALTERA公司的FPGA(ACEXEP1K50)器件,通过各种优化措施,设计开发了DDS电路,达到了预期的目的,具有较高的性价比。