实现信号源的多路同步输出且各路间拥有固定的相位关系,在雷达、通信等多领域有着重要的应用。为了实现此功能,大多数设计是利用单片机控制多个专用DDS芯片,实现多信号同步输出,如图1所示。但腱由于采用分立的专用DDS芯片,各芯片参数很难做到完全相同,参数的差异会造成输出信号频率和相位不同。因此,尽管各DDS芯片采用同一频率字,各个输出信号频率也难以完全相同。同样,由于参数的不一致,波形之间的相位也难以做到同步准确可调,更重要的是各个信号通道间频率差异的累积效应可能会导致同步失败。由于这些原因,要实现多路同步输出且各路信号间成相干关系必须采用另外的系统。本文给出了一种基于FPGA的3路相干信号源设计方案。
1 DDS基本原理
DDS(Direct Digital Synthesizer)的实质足对相位进行可控等问隔的采样。一个DDS信号发生器是由:相位累加器、正弦查找表(波形Rom表)、数模转换器以及模拟低通滤波器(LPF)组成,原理框图如图2所示。
DDS系统的核心是相位累加器。相位累加器在参考时钟信号的控制下产生读取Rom表数据的地址值,随后通过查表变换,读出相应地址的信号波形的数字幅度值序列,再由数模变换器将代表波形幅度的数字序列转化为模拟电平,最后经由低通滤波器滤除高频分量使波形平滑。
2 基于FPGA的3路同步输出DDS工作原理
3路同步相干DDS信号源工作原理如图3所示。
所有的部分都在统一时钟的控制下保证了各路信号的同步输出;各频率输入为同一控制字,使得各信号间有很好的同频性;不同的相位输入决定了各路间固定的相位差,满足了相干性要求。在FPGA里面做到的是D/A转换器之前的部分。3路信号结构相同,每一路的电路结构如图4所示。
3 电路设计
3.1 电路总体接口
本系统采用Verilog语言编程,综合工具为Quartusii,仿真工具为Modelsim。
电路接口有clk,rst_n,K1,K2,K<3,phase1,phase2,phase3,d_out1,d_out2,d_out3,其中clk为系统时钟,rst_n为复位信号低电平异步复位,K1,K2,K3为频率控制字输入(本系统为同一输入),phase1,phase2,phase3为3路相位输入,d_out1,d_out2,d_out3为3路输出。
3.2 源程序代码代码
顶层模块代码如下所示,
顶层模块的RTL Viewer如图5所示。
相位累加器模块代码如下所示。
波形ROM表利用Quartus ii软件的插件管理程序Megawizard plug-in manager获得,对于波形数据mif文件的获得这里使用了专用软件Guagle_Wave。
4 仿真与分析
仿真测试文件代码如下。
3路相干输出DDS的仿真结果如图6所示。途中竖线为相位跳变处,从此之后各路信号保持了良好的相干性,由此可见满足了设计要求。本设计只需改变各路的相位控制字就可实现各路之间的相位调整。本设计运用Vefilog语言结合DDS原理和FPGA器件,实现了多路相干信号源设计,相位连续可调,且易于调节。