Fpga中实现超高速数字正交下变频及抽取滤波的方法与系统的制作方法
【专利摘要】本发明公开了一种在FPGA中实现超高速数字正交下变频及抽取滤波的方法与系统,包括若干路ADC采样芯片、高速ADC数据接收模块、跨时钟处理模块、全局时钟模块、本地数控振荡器和多通道数字抽取滤波器。传统的FPGA设计工作频率很难突破200MHz,而本发明则对正交下变频的核心部分数控振荡器NCO和数字抽取滤波器均进行了改进,并通过对FPGA的布局布线施加合理的约束,在主流FPGA器件上可保证最高采样速率达500Msps以上,输出基带数据率125MHz以上,而且可以同时支持多路ADC数据并行采样,以适应多通道数据接收场合。
【专利说明】
FPGA中实现超高速数字正交下变频及抽取滤波的方法与系统
技术领域
[0001] 本发明涉及数字通信及雷达信号处理领域,具体涉及一种在FPGA中实现超高速数 字正交下变频及抽取滤波的方法与系统。
【背景技术】
[0002] FPGA是现场可编程门阵列(Field Programmable Gate Array)的英文简称,它包 含了大量的可编程资源,包括查找表LUT、寄存器、存储器、硬件乘法器、锁相环等。FPGA芯片 内部的可编程资源可以实现并行工作,因而具有极其强大的处理能力,其运算能力可达传 统CPU的数百倍甚至更高。也正因此,在许多信号处理平台中,FPGA承担着运算与调度核心 的功能,其主要开发手段则依赖于硬件描述语言(以下简称HDL),目前市面上主要的FPGA芯 片生产商为Xi Iinx公司和Altera公司。
[0003] 数字正交下变频技术是通信及雷达领域中数字接收机的核心部件,它主要完成对 模数转换芯片(Analog to Digital Converter,以下简称ADC)输出的高速数字中频信号的 接收、移频和正交化,并配合抽取滤波器最终输出合适码流速率的复基带信号供后续模块 进一步处理。近年来,随着电子技术的飞速发展,各种宽带、超宽带通信/雷达系统层出不 穷。相应地,为了满足带通采样定理的要求,ADC采样频率也越来越高,目前,许多数字接收 机中ADC采样频率已经从早期的数十MHz迅速增长至数百MHz以上,当采样率低于IOOMHz时, 采用主流的FPGA器件可顺利完成ADC采样数据接收及处理,但当采样频率进一步提高时,受 制于FPGA的工作主频限制(典型的FPGA主频范围大约为50-150MHz ),此时仍采用FPGA接收 ADC数据并进行正交下变频的设计难度就大大增加,很多情况下只能采用专用的数字下变 频集成电路ASIC完成,而ASIC由于基本不具备可编程能力,无力满足系统升级及参数动态 调整的需要,因此,基于FPGA平台,设计具备超高速采样及正交下变频能力的数字接收机具 有很强的现实意义。
【发明内容】
[0004] 本发明要解决的技术问题是提供一种在FPGA中实现超高速数字正交下变频及抽 取滤波的方法与系统,本发明解决了当采样频率高于IOOMHz时采用FPGA接收ADC数据并进 行正交下变频的设计难度大的技术问题。
[0005] 本发明通过以下技术方案实现: 一种在FPGA中实现超高速数字正交下变频及抽取滤波的方法,包括如下步骤: 步骤一、每路ADC芯片进行模数转换,并将采样后的数据伴随相应的同步时钟信号,以 并行同步传输的方式进入高速ADC数据接收模块; 步骤二、高速ADC数据接收模块采用DDR接收原语,接收DDR模式的数据并转换为SDR模 式的数据,输出两组ADC数据信号和一组ADC时钟信号; 步骤三、两组ADC数据信号和一组ADC时钟信号进入跨时钟域处理模块完成跨时钟域同 步化处理,将两组ADC数据信号同步至全局时钟信号下,并在全局时钟模块的驱动下,每个 时钟上升沿均输出两组同步后的ADC数据,这两组同步后的ADC数据在真实时间尺度上相差 一个米样周期; 步骤四、本地数控振荡器采用工作频率为250MHz的DDS IP核输出四路数字本振信号, 具体步骤如下: 步骤401)先采用工作频率为250MHz的DDS IP核得到公式(2)的偶数点输出;
(2) 步骤402)然后使用公式(5)所示的常系数乘法运算得到公式(2)的奇数点输出,实现了 等效于500MHz工作频率的本地数控振荡器。
[0006]
(5) 步骤五、两组同步后的ADC数据通过乘法器与本地数控振荡器输出的四路数字本振信 号分别相乘,进行数字域的频率搬移,得到两组ADC正交化数据,这两组ADC正交化数据在真 实时间尺度上也相差一个采样周期; 步骤六、两组ADC正交化数据通过数字滤波器进行滤波处理,输出零中频基带信号,同 时通过数据抽取处理降低输出数据速率,具体步骤如下: 步骤601)进入滤波器的两路并行数据流首先进入一个读写时钟独立的异步FIFO作进 一步降速处理,输出四路并行数据,每相邻2路数据之间在真实时间尺度上相差一个采样周 期; 步骤602)四路并行数据各自进入相应的移位寄存器阵列,每来一个时钟沿将数据右 移一次; 步骤603)将四组移位寄存器阵列和四组FIR滤波系数阵列的对应数据分别相乘并作 累加处理。
[0007] 步骤一所述ADC芯片为单通道或多通道,采用并行LVDS差分接口。
[0008] 步骤二所述DDR接收原语为SAME_EDGE_PIPELINED mode的IDDR原语。
[0009]步骤三所述跨时钟域处理模块采用了 FPGA的分布式存储器作为跨时钟域数据转 换的缓冲区,根据ADC采样数据端口的引脚位置,选择距离该引脚最近的分布式RAM位置作 为对应该比特的跨时钟域缓冲区。
[0010] 一种在FPGA中实现超高速数字正交下变频及抽取滤波的系统,包括若干路ADC采 样芯片、高速ADC数据接收模块、跨时钟处理模块、全局时钟模块、本地数控振荡器和多通道 数字抽取滤波器, 所述ADC采样芯片完成高速模数转换,并将采样后的数据伴随相应的同步时钟信号,以 并行同步传输的方式进入高速ADC数据接收模块; 所述高速ADC数据接收模块采用DDR接收原语,接收DDR模式的数据并转换为SDR模式的 数据,输出两组ADC数据信号和一组ADC时钟信号; 所述跨时钟域处理模块对两组ADC数据信号和一组ADC时钟信号进行跨时钟域同步化 处理,将两组ADC数据信号同步至全局时钟信号下,并在全局时钟模块的驱动下,每个时钟 上升沿均输出两组同步后的ADC数据; 所述本地数控振荡器输出四路数字本振信号,两组同步后的ADC数据分别通过四个乘 法器与四路数字本振信号分别相乘,完成数字域的频率搬移功能,得到两组ADC正交化数 据; 所述多通道数字抽取滤波器对上述两组ADC正交化数据进行滤波处理,输出零中频基 带信号,同时进行数据抽取处理,降低输出数据率。
[0011] 本发明与现有技术相比,具有以下明显优点: 传统的FPGA设计工作频率很难突破200MHz,而本发明则对正交下变频的核心部分数控 振荡器NCO(Numerically Controlled Oscillator)和数字抽取滤波器均进行了改进,并通 过对FPGA的布局布线施加合理的约束,在主流FPGA器件上可保证最高采样速率达500Msps 以上,输出基带数据率125MHz以上,而且可以同时支持多路ADC数据并行采样,以适应多通 道数据接收场合。
[0012] 本发明的有益效果在于,本发明提供的在FPGA中实现超高速数字采样及正交下变 频抽取滤波器的方法设计了一种支持DDR模式的高速ADC数据接收模块,可有效支持目前市 面上多家公司的超高速ADC芯片,并为其设计了巧妙的跨时钟域处理措施,同时对传统的数 控振荡器和抽取滤波器均进行了改进,实现了较低频率下完成500MHz采样数据的正交化及 抽取滤波处理。整个系统可达到500MHz采样率下稳定接收及处理数据的要求,而且由于对 关键模块施加了位置约束可,保证了产品时序性能不受后期代码调试、修改、以及高低温变 化的影响。采用本发明后,可使一些此前只能通过专用ASIC芯片才能完成的系统改用更具 灵活性的FPGA完成,进而极大地提高产品的可升级性,缩短产品设计开发周期。
【附图说明】
[0013] 图1为本发明的整体结构示意图; 图2为高速ADC数据接收模块输出数据时序图; 图3为0PP0SITE_EDGE mode工作时序图; 图4为SAME_EDGE mode工作时序图; 图5为SAME_EDGE_PIPELINED mode工作时序图; 图6为ADC数据接收模块功能框图; 图7为ADC数据接收模块工作波形图; 图8为全局时钟模块功能框图; 图9为基于分布式RAM的跨时钟域处理原理图; 图10为等效500MHz的数控振荡器内部组成框图; 图11为原始ADC数据频域分布式样图; 图12为经移频后的正交化数据频域分布式样图; 图13为数字抽取滤波器结构示意图。
【具体实施方式】
[0014] I) AD器件选型策略 目前,高速AD转换器件(Analog-to-Digital Converter以下简称ADC)对外输出数据接 口主要有三种类型:并行LVTTL单端电平输出;串行LVDS差分电平;以及并行LVDS差分电平。 这三种类型中,LVTTL单端电平由于其推挽式输出架构,一般只应用在频率不超过IOOMHz的 场合,在超高速AD器件中则极少看到该接口,典型产品如Linear Technology公司的 LTC2208;串行LVDS差分电平则仅采用一对高速LVDS差分端口完成数据传输,大大减少了数 据端口占用,常用于单芯片多通道AD器件,典型产品为Analog Devices公司的AD9259,然 而,当ADC采样频率较高时,串行LVDS的工作频率通常需要达到数GHz以上甚至更高,这对 PCB设计及FPGA器件选型都带来了严峻挑战,因此这种接口通常用于中等采样频率且对集 成度要求较高的特殊应用场合;采用并行LVDS差分电平技术则既保留了并行接口数据速率 较低的优势,又采用差分电平以支持更高的采样频率,而且当采样率超过200MHz时,为了降 低传输时钟速率以减少设计难度,还可以采用双倍数据传输(Double Data Rate,以下简称 DDR)策略,因此该接口是目前许多超高速ADC的主流接口,典型产品如Analog Devices的 AD9424,TI 公司的 ADS4449,ADS5404等。
[0015] 如上所述,在三种ADC对外输出接口中,只有第三种接口最适合超高采样率的数据 接收机设计,目前的主流ADC厂商均推出了大量采用该接口的ADC供设计者选择,可以满足 不同设计人群的需要。本发明也针对这种ADC开展。
[0016] 2)整体处理框架设计 本技术方案可支持单通道或多通道ADC数据接收及正交化,以下以3通道ADC数字接收 机为例,说明技术方案的整体组成,本发明整体处理框架如图1所示。
[0017] 图1中,下方为三片ADC芯片,每路ADC芯片均可完成高速模数转换,并将采样后的 数据(如图1中的ADCl数据、ADC2数据、以及ADC3数据)以并行同步传输的方式送至高速ADC 数据接收模块,每一路ADC数据均伴随有相应的同步时钟信号,即ADCl时钟、ADC2时钟、以及 ADC3时钟。
[0018] ADC数据信号和ADC时钟信号进入高速ADC数据接收模块完成DDR模式的数据接收 并转换为SDR单倍数据速率模式,得到ADC数据1和ADC数据2两组信号,这两组信号与ADC时 钟信号一同进入跨时钟域处理模块完成跨时钟域同步化处理,此后所有信号均同步至全局 时钟信号下,并在全局时钟的驱动下,每个时钟上升沿均输出2组数据,即图1中的同步后 ADC数据1和同步后ADC数据2,这两组数据来源均为ADC芯片输出的原始采样数据,虽然均在 全局时钟的上升沿输出,但在真实时间尺度上相差一个采样周期。
[0019] 本地数控振荡器NCO可输出4路数字本振信号余弦数据1、正弦数据1、余弦数据2、 正弦数据2,其中前2组数据和后两组数据在真实时间尺度上也恰好相差一个采样周期。
[0020] 此后,同步后ADC数据1通过2个乘法器与余弦数据1、正弦数据1分别相乘,完成数 字域的频率搬移功能,得到ADC正交化数据同相分量1和ADC正交化数据正交分量1(这两组 分量以下简称ADC正交化数据1);同步后ADC数据2通过2个乘法器与余弦数据2、正弦数据2 分别相乘,也完成数字域的频率搬移功能,得到ADC正交化数据同相分量2和ADC正交化数据 正交分量2(这两组分量以下简称ADC正交化数据2)。同样地,ADC正交化数据1和ADC正交化 数据2在时间尺度上也恰好相差一个采样周期。
[0021] 前述移频处理得到的ADC正交化数据1和ADC正交化数据2中同时存在有用的基带 信号和无用的高频信号,因此还需要采用数字滤波器对其进行滤波处理,输出所需的零中 频基带信号。另一方面,为了减轻后续数据处理的压力,在滤波的同时还要完成数据抽取处 理,降低输出数据率,本发明采用4抽取数字滤波器,使输出数据率降至采样频率的1/4。 [0022] 3)高速ADC数据接收模块设计 采用支持DDR数据传输模式的ADC器件完成模数转换,电气接口采用并行LVDS差分接 口,其传输时序如图2所示。图2中,elk为ADC输出的采样数据随路时钟,ADC_D_P和ADC_D_N 则是对应的采样数据差分信号对,可以看到,该输出时序采用了DDR模式,同时在elk的上升 沿和下降沿传输数据。相比传统的SDR模式,采用DDR模式最大的好处是仅需SDR工作时钟的 一半即可完成数据传输。
[0023]以下以12位宽,DDR模式,500Msps的ADC输出数据为例,说明FPGA接收数据策略的 设计。
[0024]对FPGA器件,图2所示传输时序可以视作一个典型的源同步DDR数据传输系统,elk 的频率为250MHz。传统的设计思路是在FPGA内部对elk信号进行倍频处理,得到新的时钟信 号clk2,该时钟的频率是elk的两倍,然后在clk2时钟的上升沿将采样数据写入FPGA内部的 静态存储器,从而将DDR模式变成了 SDR模式。这种策略在时钟频率较低时非常有效,但由于 采样时钟高达500MHz,此时仍采用该策略会导致设计难度很大,为此,本发明采用了专用 DDR接收原语,在两大FPGA厂商Xilinx和Altera公司的FPGA产品中,均设计有专门完成DDR 数据接收的I/O模块,其中Xilinx公司称之为IDDR,Altera则称作ALTDDI0_IN,二者结构类 似,本发明采用Xi I inx公司的IDDR完成高速ADC数据接收。
[0025] IDDR可视作一组特殊的I/O寄存器组,输入接口信号为1位时钟信号C、1位使能信 号CE,和1位数据信号D,输出则是2位数据信号Ql和Q2。它共有三种工作模式:0PP0SITE_ EDGE mode、SAME_EDGE mode、以及SAME_EDGE_PIPELINED mode,三种模式的工作时序图分 别如图3、图4和图5所示。
[0026]可以看到,在这三种模式中,0PP0SITE_EDGE mode的输出数据特点是Ql在C的上升 沿之后更新,Q2则在C的下降沿之后更新;而SAME_EDGE mode的输出数据Ql及Q2均只在C的 上升沿之后更新,这更有利于FPGA实现,设计人员只需用单一触发类型的寄存器/存储器就 可以完成数据更新;SAME_EDGE_PIPELINED mode则在SAME_EDGE mode的基础上进一步改 进,使原本处于同一个时钟周期内的2组数据(如图3中的DOA和D1A,D2A和D3A……)分别通 过Q1和Q2端口在C时钟的上升沿输出。因此,根据这三种模式的特点,本发明采用SAME_ EDGE_PIPELINED mode的IDDR原语完成原始ADC数据的DDR数据接收,12位数据共需调用12 组IDDR原语,同时为了保证较好的时序性能,这12组1/0引脚和ADC随路时钟引脚应处于 FPGA的同一个BANK内,且随路时钟应分配至具有时钟使能(Clock Capable,以下简称CC)功 能的引脚以保证高速时钟驱动强度及走线质量,经过IDDR处理后,输出数据速率变为 250MHz,在每个时钟的上升沿输出2组数据,其中后者比前者在时间尺度上相差1个采样周 期,即2ns 〇
[0027]对12位ADC数据采样接收系统,该策略可用功能框图表示如图6所示。图6中, IBUFDS是FPGA中专用于接收LVDS差分信号的1/0模块,其输出为单端信号,而ADC_CLK信号 由于要作为数据信号的触发时钟,希望具有较强的驱动能力,因此采用了区域时钟资源 BUFR对其进行了处理,BUFR输出时钟信号din_clk即可用于驱动IDDR模块和其它FPGA逻辑 资源。所有IDDR的Ql数据组成doutl信号,所有IDDR的Q2数据则组成dout2信号,实际工作波 形如图7所示(其中din为原始ADC信号,din_clk频率为250MHz)。可以看到,doutl和dout2均 在din_clk的上升沿之后更新数据,但二者在时间尺度上实际上仍相差1个采样周期。
[0028] 4)全局时钟模块设计 全局时钟模块主要用于向其它模块提供高精度时钟信号,主要采用FPGA内部的锁相环 PLL模块完成时钟信号再生及倍频、分频处理。本发明使用250MHz和125MHz两个时钟域,这 两个时钟域要与ADC采样频率保持严格相参,为此,可在设计PCB时通过专用时钟分配器将 外部频率综合器产生的500MHz高精度时钟分成多路信号,并分别送到ADC器件和FPGA的专 用全局时钟引脚,然后在FPGA内部对其进行2分频和4分频处理,得到所需的250MHz和 125MHz信号,这两组信号均需要通过专用的全局布线资源BUFG布线至全局时钟网络中才可 供FPGA其余资源使用。
[0029]该模块功能框图如图8所示,其中IBUFGDS是FPGA中对专用全局时钟引脚完成差分 转单端的底层原语。
[0030] 5)跨时钟域处理模块设计 前述IDDR输出数据是与ADC随路时钟(如图7中的din_clk)同步的,但为了方便后续处 理,该数据必须同步至FPGA内部的全局时钟资源clk_250m中。如果对数据正确性要求不高, 可以简单地采用2级或3级寄存器级联完成跨时钟域数据处理,而在许多高速ADC数字采样 系统中,即使是只有一个数据发生错误都可能导致严重后果,因此必须采用更稳妥的跨时 钟域转换策略,一般地,采用读写时钟独立的异步FIFO可以顺利解决此问题,但是异步FIFO 需要采用存储器加上大量逻辑资源构建而成,走线延时难以控制。为此,本发明转而采用了 FPGA的分布式存储器(Distributed RAM)作为跨时钟域数据转换的缓冲区。Distributed RAM资源丰富,最高工作频率可达500MHz以上,而且可以灵活地施加位置约束,从而能保证 即使在很高频率下也能达到充足的建立/保持时间裕量,每个分布式RAM的存储深度一般为 16X1位或32X1位,多个分布式RAM并联使用即可完成所需功能。
[0031] 以Virtex5型FPGA的RAM32X1D完成对图7输出的doutl跨时钟域处理为例,说明其 内部结构及工作原理,如图9所示,该模块的输入信号为din_clk,12位比特宽度数据信号 doutl,以及FPGA内部全局时钟模块产生的clk_250m信号,整个模块包含有12组RAM32X1D, 每一组RAM32X1D均配置为深度为32,宽度为1比特的简单双口 RAM,其写时钟为din_clk,写 地址来源于5位比特宽度的模32计数器1,该计数器在din_clk的驱动下完成0~31的循环计 数,写数据则为doutl的每一位比特数据。
[0032]为了保证RAM的读端口能读取到正确数据,必须确保读地址相对写地址有一定延 迟,为此图9中专门设计了计数器使能控制模块,该模块内部包含一个边沿检测器,可检测 到模32计数器1的最高位从0到1的跳变,该跳变代表写地址从0跳变至16,只有在检测到该 跳变后,才使能模32计数器2,该计数器同样是5位比特宽度计数,但其工作时钟为clk_ 250m,输出计数值直接送至各分布式RAM作为读地址。采用这样的策略后,相当于读地址相 比写地址至少有16个时钟周期的延时,确保数据读取的正确性。此后,各分布式RAM输出的 数据统一经过由clk_250m驱动的寄存器阵列寄存后输出作为d 〇utl_neW信号,该信号即已 经被完全同步至clk_250m时钟域。
[0033]需要注意的是,为了保证高频工作的稳定性,该模块使用的分布式RAM位置应该通 过用户约束文件加以指定,具体的位置指定原则是:根据ADC采样数据端□的引脚位置,选 择距离该引脚最近的分布式RAM作为对应该比特的跨时钟域缓冲区。此外,为了达到更好的 时序性能,在分配各ADC通道的数据I/O引脚至不同BANK时,也应尽可能使这些BANK相互靠 近,以减少FPGA内部走线延时,达到更高的工作频率。
[0034] 6)本地数控振荡器设计 数控振荡器是实现正交下变频的关键组件,它主要采用直接频率合成(DDS)技术实现 任意频率的正余弦值输出,以中频620MHz的IOOMHz宽带信号为例,此时有用信号频带范围 为570-670MHZ,按照带通采样定理,采样频率在大于2倍信号带宽的前提下应满足以下条 件.
其中^&为有用信号最高频率,?为有用信号最低频率,取m=2,则此时的Λ范围为 446ΜΗζ-570ΜΗζ,为方便设计,可选择采样频率为500MHz,经过ADC器件完成模数转换后,有 用信号的数字域频带范围变为70至170MHz(正边带),-70至-170MHz(负边带),这两个边带 形状完全相同,只需选择其中一个边带信号,将其频率变为零频附近即可完成正交下变频 过程。而为了完成该过程,必须要将该中频信号与本地NCO产生的正余弦信号相乘,即完成 数字域正交解调功能,NCO的输出频率应该与有用信号的中心频率相同,对前述示例,有用 信号中心颇率为I 20MHz,闵此NCO需要在SOOMHz的Ti作颇率下,并连续输出以下数字频率:
一般地,NCO的上述三角函数输出可以直接通过FPGA的内建DDS IP核自动实现,但由于 该设计的采样频率高达500MHz,已经大大超过传统FPGA的工作频率,因此无法直接利用该 DDS IP核,为此,本发明采用了工作频率仅为250MHz的DDS IP核,使其输出正余弦数据形式 变为:
可以看到,如果取公式(2)中的则此时公式(2)与公式(3)完全相同,因此 公式(3)相当于对公式(2)的偶数点抽样,将公式(2)改写如下:
从公式(4)可以看出,此时公式(2)已经完全可以由公式3表示,当N为偶数时,直接采用 公式(3)即可,当N为奇数时,则需要在公式(3)输出的基础上增加一个固定的相位 这可以通过三角公式进一步变换为:
5) 可先米用工 作频率为250MHz的DDS IP核得到公式(2)的偶数点输出,然后使用公式(5)所示的常系数乘 法运算得到公式(2)的奇数点输出,最终相当于实现了等效于500MHz工作频率的NCO。
[0035]该NCO内部组成框图如图10所示,其中DDS IP核可直接由FPGA开发工具自动生成 并输出一对正余弦值,其输出规格与公式(3)-致,然后经过4个乘法器和2个加法器处理 后,得到公式(2)的奇数点输出,最终原始正余弦数据与新产生的正余弦数据均经过寄存器 统一寄存后输出,分别记作余弦数据1、正弦数据1、余弦数据2、正弦数据2。
[0036] 经实际验证,采用图10所示结构,可有效地用于FPGA实现,布局布线后最高工作频 率可达250MHz以上,并在250MHz的工作频率下完成了原500MHz工作频率NCO的全部功能。 [0037] 7)正交移频设计 正交移频功能相对简单,它主要是通过图1中的4个乘法器实现,这4个乘法器的输入和 输出信号介绍如下: 乘法器1输入信号:同步后ADC数据1(以下记作ADC_datl)和余弦数据1(以下记作 cosl); 乘法器2输入信号:同步后ADC数据1(以下记作ADC_datl)和正弦数据1(以下记作 sinl); 乘法器3输入信号:同步后ADC数据2(以下记作ADC_dat2)和余弦数据1(以下记作 cos2); 乘法器4输入信号:同步后ADC数据2(以下记作ADC_dat2)和正弦数据1(以下记作 sin2); 乘法器1输出信号:ADC正交化数据同相分量1 (以下记作ADC_dat_Il); 乘法器2输出信号:ADC正交化数据正交分量1 (以下记作ADC_dat_Ql); 乘法器3输出信号:ADC正交化数据同相分量2 (以下记作ADC_dat_12); 乘法器4输出信号:ADC正交化数据正交分量2 (以下记作ADC_dat_Q2); 上述运算的数学形式为:
(6) 因此,按照傅里叶变换理论,这4个乘法器实际上完成了输入ADC数据的移频功能,将原 始信号的正边带搬移至零频,同时负边带被移至原始中频的2倍位置,经过移频后得到的信 号正负边带不再对称,故移频后信号为一复信号,该复信号的实部称作同相分量,虚部称作 正交分量。同样地,ADC_dat_Il/Ql和ADC_dat_I2/Q2虽然同时在clk_250m时钟的上升沿更 新,但在真实时间尺度上上仍然是相差一个采样周期。
[0038] 该正交称频器的作用可从频域解释如下,ADC_datl和ADC_dat2共同代表了完整 的原始ADC数据,是一个典型的带通信号,其中心频率在f0,对应的频域分布式样如图11所 示。经过公式(6)的移频处理后得到ADC_dat_Il/Ql和ADC_dat_I2/Q2,二者共同组成了移频 后的正交信号,对应的频域分布式样变成图12所示。
[0039] 8)多通道数字抽取滤波器设计 从图12可以看出,经移频后的正交信号频率分量中同时存在着高频和基带信号,而只 有后者才是真正需要的,因此需要采用一个具有良好低通特性的数字滤波器滤除位于2?? 的高频分量。另一方面,为了减轻后续数据处理压力,在进行低通滤波后,应进行抽取处理 以降低数据速率。本发明采用具有有限冲激响应(FIR)特性的4抽取滤波器,相当于使数据 速率从采样速率500MHz降低至125MHz,同时又可以保持良好的线性相位特性,滤波器的具 体系数设计可根据实际需要采用多种成熟算法,本发明不再涉及。
[0040]目前FPGA中常用的抽取滤波器均采用SDR数据传输模式,即每个工作时钟周期只 能接收一个数据,包括Xi I inx和Al tera公司的IP核均采用该策略,但同样由于采样时钟高 达500MHz,这种传统的设计思路不再可行。为此,本发明根据抽取滤波器的工作原理,设计 了一种新型滤波器,其工作频率为抽取后的数据速率,对500MHz采样率的4抽取滤波器,工 作频率为125MHz,从而可以有效地用于FPGA实现。
[0041]如图1所示的3路ADC数据采集系统经过正交移频后共有6路信号,这6路信号的滤 波处理完全相同,因此以下仅以单通道4抽取60阶FIR滤波器为例说明其实现方式,该滤波 器的输入信号为2路并行的信号码流,输入码流速率为250MHz,2路数据之间在真实时间尺 度上仍相差一个采样周期。整个抽取滤波器的内部结构图如图13所示。
[0042]以下解释该滤波器工作原理,经典FIR滤波计算公式为:
(7) 其中为滤波器系数,为滤波器输入数据,I^fil为滤波器输出数据。可以看到, 按照上述公式,每计算一个_值均需要完成60次乘法运算和59次加法运算,但由于滤波 后还要进行4抽取处理,因此只需要计算真正需要输出的数据
即可, 这样可以将运算量减少为原来的1/4;另一方面,为了确保FIR滤波器的线性相位特性,实际 使用的FIR滤波器系数均具有偶对称或奇对称特性,可进一步将乘法器的数量减少一半。
[0043] 由于该60阶FIR滤波器系数具有偶对称特性,因此只需记录 卩可, 然后将其重排成以下式样:
上式实际上对应图13的FIR滤波系数阵列,每一行对应一组系数阵列,这些阵列可由寄 存器构建而成,同时为提高滤波器适应范围,在FIR滤波系数阵列前方加入了滤波器系数更 新器,该模块的主要作用是在clk_125m的驱动下,动态更新滤波器系数值以适应不同的需 求。
[0044] 进入滤波器的2路并行数据流首先进入一个读写时钟独立的异步FIFO作进一步降 速处理,输出数据率变为125MHz,且4路数据并行输出(即图13中的降速数据流1~4),每相邻 2路数据之间仍然在真实时间尺度上相差一个采样周期。然后4路并行数据各自进入相应的 移位寄存器阵列,该移位寄存器阵列仍由125MHz驱动,每来一个时钟沿将数据右移一次,最 大移位深度为15。
[0045] 然后将4组移位寄存器阵列和4组FIR滤波系数阵列的对应数据分别相乘并作累加 处理,即可得到按照公式(7)计算得到&
.数据,且输出数据速率为 125MHz。需要注意的是由于FIR滤波系数阵列系数的对称性,因此需要先将具有相同滤波器 系数的移位寄存器阵列相加然后再作乘法运算,这样只需30个硬件乘法器即可完成60阶滤 波处理。
[0046] 9)实施案例 本实施例选择TI公司的单片双通道模数转换芯片ADS5404和Xilinx公司FPGA器件 Virtex6 SX315- ??1156,整个系统共采用2片4035404组成4通道数字接收机,中频信号频 率为620MHz,采样率为500MHz,信号带宽为I OOMHz,采样数据位宽为12位。
[0047]按照前述"高速ADC数据接收模块设计"和"跨时钟域处理模块设计"描述内容,应 为每一路ADC数据通道分配各自BANK,并尽可能使这些MNK相互靠近,本实施案例的ADC数 据通道IO引脚分布,整个I/O分布相对集中,有利于FPGA布局布线。
[0048]确定ADC数据通道IO引脚后,再将各ADC数据的随路时钟分配至具有CC功能的引 脚,然后使用48组IDDR原语完成ADC数据接收,此后再采用96个分布式RAM组件RAM32X1D完 成跨时钟域处理,每个RAM32X1D的位置均通过UCF文件精确指定,经过UCF约束后,各分布式 RAM的FPGA布局布线情况FPGA走线质量良好,经过FPGA静态时序分析工具验证,该布局布线 可保证500MHz下的数据稳定接收。
[0049] 经过跨时钟域处理后,即可进行正交移频及数字抽取滤波处理,正交移频所需的 数控振荡器N⑶工作频率为250MHz,输出正余弦信号的数字频率为120MHz。采用Matlab的 FIR滤波器设计工具箱,设计出某60阶低通滤波器,并按照前述策略实现工作频率为125MHz 的抽取滤波。最终整个设计工程的占用资源如表1所示,该设计的静态时序报告最高支持 ADC采样频率为265MHz,已经超出250MHz的预期目标。
[0050]表1占用资源统计
本文虽然已经给出了本发明的一些实施例,但是本领域的技术人员应当理解,在不脱 离本发明精神的情况下,可以对本文的实施例进行改变。上述实施例只是示例性的,不应以 本文的实施例作为本发明权利范围的限定。
【主权项】
1. 一种在FPGA中实现超高速数字正交下变频及抽取滤波的方法,其特征在于:包括如 下步骤: 步骤一、每路ADC忍片进行模数转换,并将采样后的数据伴随相应的同步时钟信号,W 并行同步传输的方式进入高速ADC数据接收模块; 步骤二、高速ADC数据接收模块采用DDR接收原语,接收DDR模式的数据并转换为SDR模 式的数据,输出两组ADC数据信号和一组AD別寸钟信号; 步骤S、两组ADC数据信号和一组AD別寸钟信号进入跨时钟域处理模块完成跨时钟域同 步化处理,将两组ADC数据信号同步至全局时钟信号下,并在全局时钟模块的驱动下,每个 时钟上升沿均输出两组同步后的ADC数据,运两组同步后的ADC数据在真实时间尺度上相差 一个采样周期; 步骤四、本地数控振荡器采用工作频率为250MHz的DDS IP核输出四路数字本振信号, 具体步骤如下: 步骤401)先采用工作频率为250MHz的DDS IP核得到公式(2)的偶数点输出;奇数点输出,实现了 拿 (5) 步骤五、两组同步后的ADC数据通过乘法器与本地数控振荡器输出的四路数字本振信 号分别相乘,进行数字域的频率搬移,得到两组ADC正交化数据,运两组ADC正交化数据在真 实时间尺度上也相差一个采样周期; 步骤六、两组ADC正交化数据通过数字滤波器进行滤波处理,输出零中频基带信号,同 时通过数据抽取处理降低输出数据速率,具体步骤如下: 步骤601)进入滤波器的两路并行数据流首先进入一个读写时钟独立的异步FIFO作进 一步降速处理,输出四路并行数据,每相邻2路数据之间在真实时间尺度上相差一个采样周 期; 步骤602)四路并行数据各自进入相应的移位寄存器阵列,每来一个时钟沿将数据右 移一次; 步骤603)将四组移位寄存器阵列和四组FIR滤波系数阵列的对应数据分别相乘并作 累加处理。2. 根据权利要求1所述的一种在FPGA中实现超高速数字正交下变频及抽取滤波的方 法,其特征在于:步骤一中所述ADC忍片为单通道或多通道,采用并行LVDS差分接口。3. 根据权利要求1所述的一种在FPGA中实现超高速数字正交下变频及抽取滤波的方 法,其特征在于:步骤二中所述孤財妾收原语为SAME_EDGE_PI阳LI肥D mode的I孤R原语。4. 根据权利要求1所述的一种在FPGA中实现超高速数字正交下变频及抽取滤波的方 法,其特征在于:步骤S中所述跨时钟域处理模块采用了 FPGA的分布式存储器作为跨时钟 域数据转换的缓冲区,根据ADC采样数据端口的引脚位置,选择距离该引脚最近的分布式 RAM位置作为对应该比特的跨时钟域缓冲区。5. -种实现权利要求1至4任一所述的方法的在FPGA中实现超高速数字正交下变频及 抽取滤波的系统,其特征在于:包括若干路ADC采样忍片、高速ADC数据接收模块、跨时钟处 理模块、全局时钟模块、本地数控振荡器和多通道数字抽取滤波器, 所述ADC采样忍片完成高速模数转换,并将采样后的数据伴随相应的同步时钟信号,W 并行同步传输的方式进入高速ADC数据接收模块; 所述高速ADC数据接收模块采用DDR接收原语,接收DDR模式的数据并转换为SDR模式的 数据,输出两组ADC数据信号和一组AD別寸钟信号; 所述跨时钟域处理模块对两组ADC数据信号和一组AD別寸钟信号进行跨时钟域同步化 处理,将两组ADC数据信号同步至全局时钟信号下,并在全局时钟模块的驱动下,每个时钟 上升沿均输出两组同步后的ADC数据; 所述本地数控振荡器输出四路数字本振信号,两组同步后的ADC数据分别通过四个乘 法器与四路数字本振信号分别相乘,完成数字域的频率搬移功能,得到两组ADC正交化数 据; 所述多通道数字抽取滤波器对上述两组ADC正交化数据进行滤波处理,输出零中频基 带信号;同时进行数据抽取处理,降低输出数据率。
【文档编号】H04B1/18GK105915241SQ201610227770
【公开日】2016年8月31日
【申请日】2016年4月13日
【发明人】王鹏, 龚克, 涂友超, 徐涛, 康鑫, 向磊, 连帅彬, 余大庆
【申请人】信阳师范学院