一种基于FPGA的高精度大动态数字延迟单元的设计
A Design of Digital Delay Line Based on FPGA
(1,中国科学院研究生院;2,中国科学院空间科学与应用研究中心)刘鹏1,2许可2
LIU Peng XU Ke 摘要:本文提出了一种数字延迟单元的设计方案,该方案能够实现0.1ns的延迟度精度和10ms的动态范围,通过调节该方案的工作参数可以很方便的实现更大的动态范围。该电路在Virtex5系列的FPGA上实现,其核心由粗延时单元和精延时单元两部分组成,粗延时单元采用计数器法实现,精延时单元的核心由IODELAY基元构成,语言代码通过了FPGAdv 软件的综合和仿真。目前该单元电路已成功的应用在卫星雷达高度计的地面回波模拟器上。关键词:数字延迟线; FPGA;IODELAY
中图分类号:TP31  文献识别码:A
Abstract: The design of a new digital delay line (DDL) is introduced in this paper. This DDL can achieve the time delay by the step of 0.1ns, and the delay duration can be easily expanded to more than 10ms in
this scheme. The delay circuit was constituted by a wide delay unit and a narrow delay unit. The wide delay unit was build up by user-defined counters, while the narrow delay unit make up of an IODELAY unit. Its designed code has been compiled and simulated on FPGAdv software. It had been applied to control the delay of the radar signal envelop in radar altimeter simulator successfully.
Key words: digital delay line; FPGA;IODELAY
1.引言
在电子和通信领域,数字延迟单元有着非常广阔的应用。例如在雷达回波信号模拟器系统[1]、相控阵雷达系统[2]、时间数字化系统[3]以及同步通信系统设计中都要用到数字延迟单元。数字延迟单元的主要指标有精度和动态范围。一般说来,现有的延迟单元实现方式分为专用和通用两大类。专用的延迟单元如AD9501,它采用模拟器件实现,特点是延迟精度高,可以达到10ps级别,但是动态范围较小(小于10us);而通用数字延迟单元一般采用可编程逻辑器件实现,具有可编程和动态范围大的特点(延迟动态范围几乎可根据需要任意编程设定),缺点是受器件工作频率限制,精度较低(通常不到5ns)。
FPGA(Field Programmable Gate Array 现场可编程门阵列)是一种高密度的可编程逻辑器件,采用FPGA开发可编程数字延迟单元,只需要使用其硬件资源中一部分区域完成目标工作,并不影响其它部分的功能,易于和其它单元进行集成。
本文采用Xilinx公司的Virtex5系列FPGA,实现了一个动态范围为10ms,精度为0.1ns 的可编程延迟单元。该单元同时具有通用和专用数字延迟单元的优点,同时通过对工作参数的调节可以实现更大的动态范围。目前该单元电路已成功的应用在卫星雷达高度计的回波信号模拟器上。该模拟器能够模拟高度计卫星800km的轨道高度,并能提供0.1ns的信号延迟精度和10ms的动态范围。
2.方案设计
数字延迟的基本方法有计数器法、存储器法、和数控延迟线法,这些方法的实现原理和性能分析在文献[4]中已有详细介绍,本文不再具体叙述。一般说来,计数器法和存储器法采用通用可编程器件实现,便于集成,分辨精度难以做的很高;数控延迟线方法采用AD9501
等专用模拟器件实现,分辨精度可以做得很高,但是动态范围有限。为了同时获得高分辨精度和大动态范围,文献[4]提出了一种数模结合方法。该方法使用两级延迟器件实现,第一级采用数字延迟器件扩大动态范围,第二级使用专用模拟延迟期间提高分辨精度,这种方案可以说是一种“数字+模拟”的方案,可以实现10ps 级别的精度ms 级别的动态范围。本文借鉴其采用二级延迟的思想,提出了一种在单一FPGA 器件中实现高分辨精度大动态范围数字延迟的方案,该方案可以说是一种全数字的方案。与文献[4]的实现方案相比,该方案节省了模拟专用延迟单元,不需要专用芯片,提高了系统集成度、降低了系统成本。系统原理框图如图1:
图 1系统原理框图
如图1中的虚线框内结构所示,可编程延迟系统主要由粗延时单元和精延时单元组成。粗延时单元主要采用计数器实现,具有5ns 的分辨精度和10ms 的动态范围;精延时单元用于扩充粗延时单元的延时分辨精度,其分辨精度为0.1ns ,动态范围为5ns 。延迟量控制部分的高位设置粗延时单元的延迟量Delay_word1,低位设置精延时单元的延迟量Delay_word2。其中,Delay_word1是一个21位的二进制寄存器,Delay_word2是一个6位的二进制寄存器。
2.1. 动态范围及精度控制
粗延时单元工作时钟为200MHz ,它采用用户逻辑实现计数器延迟计数,延迟步进精度为5ns ,动态范围的计算如式1:
clk N F L word Delay /21_=
其中,1_word Delay N (以下简称N )为Delay_word1寄存器的位数(以下简称N )
。在本设计中,我们令N=21,由此获得的动态范围L 约为10.4ms 。 由上式,调节N 的大小可以自由的扩展或者减少本方案的动态范围。N 每增加一位,则动态范围扩大一倍,反之亦然。如,设置N=22,则可以获得20.8ms 的动态范围。精延时单元用来补偿粗延时单元的延迟精度,其动态范围为0~5ns ,延迟步进精度为0.1ns 。
2.2. 同步时钟控制
本方案采用全同步时钟设计,鉴于外部输入时钟应该较低的特点,我们设计外部时钟输入为80MHz ,经过2.5倍频后整个系统在200MHz 同步时钟(以下简称同步时钟)下工作。DCM (Digital Clock Manager )是Xilinx 公司的FPGA 中用来管理用户时钟的单元,具有锁相、倍频、分频等功能。在本设计中设置倍频参数为5,分频参数为2,则DCM 输出80MHz 输入时钟的2.5倍频信号即200MHz 同步时钟。
2.3. 粗延迟单元设计
粗延时单元采用计数器法实现,它的内部有两个计数器count1和count2。它的工作原理如图2:
图2 粗延时单元工作原理
1、使用同步时钟对目标信号进行采样,当检测到目标信号有一个上升沿到来时,程序启动count1计数器进行计数,转入2;
2、计数器count1在每个同步时钟到来时刻不断执行自增操作,当count1计数器与粗延时时间控制寄存器Delay_word1相等时,表示已经实现了Delay_word1所表示的延时时间。此时,使能计数器count2,输出粗延时高电平触发信号,转入3;
3、当count2计数器与程序指定值相等时,表示已经输出了count2表示的宽度的高电平延迟信号。此时,count1和count2清零,等待下一次目标信号的上升沿,返回1。
2.4.精延时单元设计
精延时单元的核心采用Xilinx公司Virtex5系列FPGA中的IODELAY设计基元实现。由IODELAY及其逻辑控制部分构成的精延时单元原理如图3:
图3 精延时单元构成原理图
IDELAY_CONTROL是Xilinx系列FPGA中用于标定IODELAY的单元。当FPGA上电启动时,它在200MHz的时钟输入下对IODELAY基元的延时精度进行标定,标定时间约为40us。标定成功后输出高电平信号,用于使能IODELAY基元。
IODELAY的构成原理如图4所示,它由64抽头延迟线和6位内部延迟阶数计数器组成,每级抽头实现的延时被IDELAY_CONTROL单元精确标定为78ps,通过计数器的输出选择延迟线的各个抽头输出。当FPGA上电启动时,IODELAY单元的内部延迟阶数计数器自动清零,对输入信号零延迟输出;之后在每个同步时钟上升沿,若Inc为高,则延迟阶数计数器加一,对输入信号增加一阶延迟;当延迟阶数为63时,
延迟阶数的加一操作使延迟量返回到零。
图4 Xilinx IODELAY原理示意图
LOGIC_CONTROL是用户设计的逻辑,其内部有一个计数器count3;在每个同步时钟到来时刻,若检测到count3与精延时控制寄存器Delay_word2不等,则输出Inc为高电平,
动态清零是什么意思同时count3加一,直到两者相等。则Delay_word2通过用户逻辑控制Inc信号,可以保持和IODELAY基元的内部延迟阶数寄存器一致。
3.综合及仿真结果
本系统采用的FPGA芯片为Xilinx公司的Virtex5系列V5LSC85-ff676-3,采用Mentor 公司的FPGAdv8.2
软件工具进行开发,设计完成后进行逻辑综合及实现,由静态时序分析表明最高运行频率为292MHz。设计中采用80MHz频综作为外部时钟输入,实验结果表明本设计完全符合项目设计要求。
在输入为80MHz的情况下,图4给出了delayword2的二进制编码由10100000变为01010000时精延时模块的各信号的仿真波形图;图5给出了delayword1为十六进制0FFFF 时粗延时模块的延时仿真示意图。
图 5 精延时模块仿真波形图
图 6 粗延时模块仿真波形图
值得提出的是,在设计的最后实现过程中,必须对每一个IODELAY和IDELAYCTRL 进行位置约束。约束文件的写法如下:
INST "U_1/U_11" LOC = IDELAYCTRL_X2Y4;
INST "U_1/U_4_U_0" LOC = IODELAY_X2Y180;
4.性能对比
最后,本文对已有的各种方案和本文采用的方案就动态范围、延迟精度、复杂度和集成度方面做了对比,结果如下表:
实现方案动态范围精度复杂度集成度
us、ms级 5ns级低、可用通用器件实现高,可于其它功能集成计数器法、
存储器法
数控延迟线法 ns级约10ps级高,需要专用器件无法和其它功能集成数模结合法 us、ms级约10ps级特高,需要专用和通用器件高,可于其它功能集成本文 us、ms级78ps 低、可用通用器件实现高,可于其它功能集成
对比结果分析表明:本文提出的全数字延迟单元的设计方案,有计数器法、存储器法同等的大动态范围,以及和数控延迟线法同级别的延迟精度;它与数模结合法相比则采用全通用数字器件实现,节省了专用模拟高精度延迟器件,提高了系统集成度,降低了设计复杂度和成本。
5.结论
本文创新点:本文提出了一种采用粗延时单元和精延时单元相级联的方案,在Virtex5系列FPGA中实现
了全数字高精度大动态范围的延迟单元,有利于系统集成设计,减少了系统复杂度,降低了设计成本。通过改变本文延迟控制字的位数可以方便的改变延迟系统的动态范围。本文所述设计已经用于卫星雷达高度计的回波模拟器测试系统中。
参考文献:
[1] 郭 伟, 张晓辉. 回波模拟器在雷达高度计地面测试和定标中的应用.遥感技术与应用.2005,1:970-972
[2]杨斌,王召巴,陈友兴. 基于CPLD 的超声相控阵高精度相控发射系统的实现.中国测试技术.2007,3-33-2:10-12
[3]丁建国,沈国保,刘松强.基于数字延迟线的高分辨率TDC系统.核技术.2005,5:28-3:173-175
[4]李浩,李嘉琪,吴嗣亮. 一种大动态范围高分辨率的脉冲延迟器设计.军民两用技术与产品.2005,05-0036-03:36-38
[5] Virtex-5 FPGA Data Sheet:DC and Switching Characteristics. Xilinx,DS202,V4.6.2008,1.
[6] Hans-Jurgen Mattausch,Fred Matthiesen.A Memory-Based High-speed Digital Delay Line with aLarge Adjustable Length.IEEE JOURNAL OF SOLID-STATE CIRCUITS, VOL23, NO.1, 1988.
[7] 王要,高大庆.基于CPLD 高速可程控数字延迟线的设计与实现. 微计算机信息.2006,22-12-2:134-136
[8] Virtex-5用户指南.Xilinx,UG190,V3.1.
作者简介:刘鹏,男,(1983-),汉族。中国科学院研究生院硕士研究生,研究方向为基于FPGA的数字信号处理与控制技术;许可,男,(1967-),汉族。中国科学院空间科学院应用研究中心,研究员。现从事雷达高度计系统设计和信号处理等方面的研究。Brography:LIU Peng (1983-),male, Han ethnic. Graduate of GUCAS, major in digital signal process and control technology based on FPGA.
(100190 中国科学院研究生院)刘鹏
(100190 中国科学院空间科学与应用研究中心)刘鹏许可