基于FPGA的高精度时间数字转换电路设计
扫描二维码
随时随地手机看文章
摘要:本文介绍一种基于 FPGA高精度时间数字转换电路的设计方法,利用片内锁相环(PLL)和环形移位寄存器,采用不高的系统时钟便可得到很高的时间分辨率,且占用较少逻辑资源。可作为功能电路独立使用,也可作为 IP核方便地移植到其他片上系统(SOC)中。在 Altera公司的 Stratix和 Cyclone系列芯片上实现时,时间分辨率昀高可达 3.3ns。时序仿真和硬件测试表明该方法的可行性和准确性。
1.引言
时间数字转换电路 TDC (Time to Digital Converter)广泛应用于高能物理中粒子寿命检测、自动检测设备、激光探测、医疗图形扫描、相位测量、频率测量等研究领域[1]。如在医疗图象扫描仪 PET中广泛使用 TDC设备,其原理是检测人体内正电子对消失后产生的一对 gamma射线光子,利用模拟电路将所释放的 gamma射线光子与阈值比较,并在高于该阈值时产生一个触发脉冲,数字 TDC电路测量该触发脉冲到达的时间。早期该类设备中的 TDC的分辨率为 2.5ns,目前新型设备中分辨率已达 1.4ns [2]。在激光探测中,TDC电路用来测量 TOF(Time of Flight for Laser),即分辨从激光源到目标后再返回到激光检测器的时间[3]。另外,TDC也是间接实现 ADC的手段之一。如果在模拟信号前加一个 ATC(Analog to Time Conversion),加上后续的 TDC部分则可以完成 ADC过程。
早期 TDC电路通常由印刷线路板(PCB)上的分立元件组成,且通常是模拟-数字混合电路,因此功耗和体积较大、电路的一致性较差。超大规模集成电路(VLSI)工艺的进步使TDC设计在保持高分辨率的前提下向高集成度、低成本、低功耗方向发展。同时全数字集成(All DIGItal Integration)电路设计因工艺简单、设计成本较低、设计难度较小、流片成功率高等因素而一直是电路设计人员追求的目标,全数字的 TDC也是研究人员关注的问题。
文献[4]于 1993年报道了一种基于环形延时门的全数字 TDC设计。该设计以 1.5微米 CMOS工艺实现了 13位数字转换输出,芯片面积为 1.1mm 2,分辨率为 0.5ns。之后于 2003年,该作者在文献[5]报道了一种全数字化的模数变换电路,该电路基于环形延时门的全数字TDC实现。文献称以 0.8微米 CMOS工艺在 0.45mm 2面积上实现了 18位全数字的 ADC。
随着集成电路(IC)制造工艺的不断进步,以FPGA(Field Programmable Gate Array)和CPLD( Complex Programmable Logic Device)为代表可编程逻辑器件 PLD产业迅速发展,逐渐蚕食专用集成电路ASIC(Application Specific Integrated Circuit)所占市场份额。这一发展使得基于PLD的TDC设计成为可能。众所周知,基于PLD的设计可以有效地缩短研制周期,
提高设计灵活性和可靠性,降低设计成本且无流片风险。成功设计的IP核(Intellectual Property Core )与工艺相对独立,可灵活地移植到其他SOC,使设计重用变得十分方便。
本文借鉴文献[4]和文献[5]的环形延时门法提出一种基于 FPGA的高精度 TDC的设计方法,为了适应 FPGA设计,对延时门法做了改造。如果简单移植延时门设计,在 FPGA中实际是行不通的。因为与 ASIC设计不同,在 FPGA里门电路是由 EDA软件综合后实现,首先很难保证各门之间的延时一致性;其次,在时序上也很难保证和其他电路的配合。为了提高分辨率,与单纯计数型 TDC不同,本设计中也采用类似环形延时门设计的粗计数和细计数两部分电路对给定的时间量进行测量,粗计数部分控制测量范围,细计数部分则由环形移位寄存器代替环形延时门实现。本转换电路以 QuartusII 4.2为软件平台在 Altera系列芯品上实现,时序仿真表明昀高分辨率可达 3.3ns。
2.基本工作原理
基于环形延时门的 TDC系统的原理框图如图 1 所示,PA是起始脉冲,由非门组成的特定结构延时链提供脉冲 PA的延时信息。在 PB上升沿,延时信息经锁存编码电路锁存并编码后输出,脉冲 PB与 PA之间的时间差即由编码输出的数字量表示。实验结果表明,该方法适用于 ASIC实现,但不适用于 FPGA实现。原因是目前 EDA工具中综合器的综合结果是从设计对象的逻辑功能出发,而不注重设计者所特定的电路结构,而根据 FPGA电路的内部电路特点,文献[2]提供的延时链结构并不适于在 FGPA上实现。FPGA内部布线延时的不确定性会大大增加各单元延时信息的离散性。文献[6]介绍了该方法的 CPLD实现,但该法针对具体芯片附加了许多约束条件,延时链中每个非门由片内的一个逻辑宏单元 LE实现,由于 CPLD容量相对较小,导致芯片资源利率低,芯片间的移植性差,且由于 FPGA与 CPLD结构上的差异暂无法在 FPGA上实现。以下介绍一种全新的基于 FPGA的高精度 TDC设计方法。
基于 FPGA的 TDC电路原理如图 2所示,该电路包括 16位环形移位寄存器 (Ring Shift Register)、16位输入 4位输出的编码电路 (Encoder)、时钟管理模块(Clockmgr)、8位通用计数器单元(Counter)、复位逻辑(Reset Logic)和输出逻辑部分(Out Logic)。其中环型移位寄存器和编码器组成该电路的细计数器部分,用来控制电路测量精度;通用计数器作为粗计数部分,决定电路的时间测量范围;时钟管理模块通过调用 FPGA内部 PLL资源用来为移位寄存器提供合适的工作时钟;复位逻辑控制整个 TDC电路的复位动作;输出逻辑将转换数字量的细计数和粗计数部分组合为昀终系统输出。
16位移位寄存器构成如图 3,由 16个带异步复位和置位端的 D触发器组成,初始状态或复位后电路节点 p15被置位高电平,其他节点(p14至 p0)被复位至低电平;正常工作时,在移位脉冲 clk上升沿时高电平在 16个电路节点中循环出现,通过检查某时刻电路节点的状态(高电平的位置)可以判断系统所经历的移位脉冲 clk的数量,电路的时间分辨率即为 clk的时钟周期。编码器对移位寄存器节点状态编码并作为测量电路细计数部分的 4位输出。通用计数器工作在移位寄存器节点 p15的上升沿,其计数周期为移位脉冲周期的 16倍,完成低位到高位的进位计数,并作为测量电路的粗计数部分的 8位输出。复位逻辑负责环形移位寄存器和通用计数器的复位操作。输出逻辑分别将粗计数和细计数输出的 8位和 4位数据组合为测量电路的昀终输出,并完成数据的校验。
基于 FPGA的单计数器脉宽测量电路采用在脉冲宽度对应的时间内记数的方法,因高频工作时计数器会出现跳码或漏计现象,造成系统错误输出,所以分辨率很难提高 [7]。与单计数器脉宽测量电路相比采用结构简单的细计数电路能大大提高电路的时间分辨率,并避免了通用计数器极限工作频率下的跳码现象,且细计数电路占用极少的片上资源。
3系统实现及优化
Altera公司提供的 Stratix和 Cyclone系列 FPGA芯片具有嵌入式锁相环( PLL)模块,该模块可对外部时钟进行倍频分频及相移操作,可编程占空比和外部时钟输出,进行系统级的时钟管理和偏移控制,常用于同步内部器件时钟和外部时钟,使内部工作的时钟频率比外部时钟更高,时钟延迟和时钟偏移昀小,减小或调整时钟到输出(TCO)和建立(TSU)时间,从而提供完整的时钟管理方案。使用 Altera Quartus? II软件无需任何外部器件,就可以调用芯片内部的 PLL来实现相应功能。
该系统时钟管理模块调用 FPGA内部 PLL实现,通过 QuartusII设置参数为:Ratio为倍频/分频因子(Ratio)为 4,输出时钟相移 (Ph) 为 0,输出时钟占空比 (DC)为 50%。
该 TDC电路的时间分辨率取决于环形移位寄存器和编码电路组成的细计数部分,要得到正确的测量数据必须保证对移位寄存器输出状态的正确编码。与 ASIC设计不同,设计者很难预料 EDA软件布局布线(Layout)后的情况,而且各种不同结构和性能的可编程器件布局布线的结果也不尽相同,而且构成移位寄存器的 D触发器的时钟到输出时间(TCO)和 D触发器输入在金属连线上稳定建立的时间(TSU)也存在一定离散性,使得高频移位脉冲(纳秒级)工作下的移位寄存器在状态转换时出现毛刺现象,影响编码正确输出,同时编码器的固有延时特性也限制系统的时间分辨率。该脉宽测量电路系统采用的优化的编码算法,使得高频移位状态下编码输出能准确反映环形移位寄存器上各节点状态,从而保证了该系统的测量精度;移位时钟为 333MHz(周期 3ns)时在 Altera公司 Stratix和 Cyclone系列芯片上实现了编码器的正常工作。
该系统包含了粗记数和细记数两部分电路,粗记数电路在细记数字电路高位输出(图 3中 p15)的上升沿工作。但是由于粗记数电路的延时在被测脉冲( clks)上升沿时可能会造成对输出数据的误读。
为解决误读现象,在输出逻辑模块里加入纠错电路。对被测脉冲 clks延时 clk周期后产生新时钟 clks1,在 clks和 clks1的上升沿同时对 q1和 q0取样并对取样数据进行处理后作为昀终数据输出,从而有效地解决了误读现象。
移位脉冲工作频率即为该测量电路的时间分辨率,通过时钟管理单元可采用不高的外部时钟便可得到很高的测量精度。
3仿真结果和测试数据
为测试该系统的时间分辨率,为基本时间数字转换电路附加特定功能电路,使其具有连续测量时钟脉冲宽度的功能,测试对象是 clks的高电平延续时间。通过改变时钟脉冲源的频率来记录该电路对应的测量数据,从而得到该 TDC电路的时间分辨率。
本文以 QuartusII Web Edition 4.2为软件平台,实验表明,本 TDC设计在 Altera各主流芯品上的时序仿真均能顺利通过。适配 Cyclone EP1C3Q240C8芯片的时序仿真表明,移位时钟为 333M(即分辨率为 3ns),所得到的测试数据输出正确地反映了被测脉冲的宽度,被测脉冲下降沿到测量数据建立的延时为 5ns。
由该 TDC构成的脉宽测量电路在 Cyclone EP1C3Q240C8芯片实现,系统外部时钟 25Mhz,PLL设置倍频因子 8,由 SP1641B信号发生器提供固定的被测脉冲频率 F,时间分辨率 Res的分布如图 4所示,测试数据表明 Res在 4.9-5.1ns之间,理论值为 5ns。
测量和仿真数据表明该电路能达到纳秒级时间分辨率,逻辑资源占用少,可在低密度芯片上实现作为专用测量电路使用,或在高密度芯片上作为功能模块嵌入到特定功能的片上系统(SOC)中;该 TDC电路的转换速度也在纳秒级,使该电路适用于实时数据采集及高速数据处理系统。精度可调也是该设计一大特点,移位脉冲的工作频率决定了该转换系统的转换精度,通过时钟管理单元可以产生不同频率的移位时钟,从而测量精度可以根据具体需要进行适当调整。
3结束语
本基于 FPGA的时间数字转换电路设计在占用较少芯片资源的前提下,实现了很高的测量精度,工作时数据转换速度也在纳秒级;本设计电路接口简单可作为独立的功能电路使用,亦可作为功能模块 IP核[8]方便地嵌入到其他系统实现特定功能。基于 Altera芯片的时序仿真和硬件测试表明了该方法的可行性和准确性。