新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 针对FPGA优化的高分辨率时间数字转换阵列电路

针对FPGA优化的高分辨率时间数字转换阵列电路

作者:时间:2017-06-05来源:网络收藏

数字时间转换电路TDC(Time-to-Digital Converter)是精密时间测量中的核心模块,在粒子物理、激光测距、遥感成像等方面有非常广泛的应用。

电路起源于20世纪60年代的核技术与航空航天领域,文献[1]首次提出数字时间测量的概念。时间间隔测量的方法可以大致分为模拟测量与数字测量两大类。模拟测量方法,包括时间幅度转换TAC(Time-to-Amplitude Converter)法[2]与模拟时间放大法,都是通过电容充放电的特性把时间量转换为可以测量的电压量或者电荷量,从而达到测量时间的目的。但是在多数模拟测量方法中还需要进行模数(AD)转换来进行数据的后续处理。此种方法通常由印制电路板上的不同分立元件与芯片构成,因此功耗面积较大,依赖环境温度且易受电磁干扰,电路调试也相对比较困难[3]。随着大规模集成电路技术的成熟,单个芯片集成的晶体管数量成倍增长,计算能力与处理能力也大大提高。文献[5]首次采用CMOS工艺设计出了一种基于环形延迟线的全数字器,此外还有如延迟锁定环[4]DLL(Delay Lock Loop)方法、高速计数器[7]方法、时间延迟线[8-13]方法等,都是利用器件本身的延迟来达到时间测量的目的。

近年来,由于技术的迅猛发展,在低成本低设计周期方面,已经可以部分取代ASIC。它所特有的可重用性不仅增加了系统的灵活性、适应性,也大大减小了系统的规模,极具开发和研究的潜力。因此,针对进行优化的TDC设计方案成为研究人员关注的焦点。文献[4]针对FPGA中延迟的一致性问题,提出了采用类似环形延时门设计的粗计数与细计数两部分电路来完成,达到了3.3 ns的时钟分辨率。文献[6]通过对文献[5]的方法进行改进,在CPLD上实现了时钟分辨率达3.5 ns的TDC。本文针对解决FPGA延迟特性不确定的问题,提出了一种采用时钟状态译码的方法进行时间数字转换的阵列电路CDTDC(Clock Decoder based TDC),阵列规模为16×16。在Altera公司的Cyclone II EP2C15上进行仿真测试,工作频率50 MHz,时钟分辨率可达1.73 ns。

1 CDTDC阵列的工作原理

1.1 CDTDC计数模块

由于FPGA的硬件结构限制,计数器在较高频率下的工作不稳定,在状态转换过程中易产生毛刺、跳码,影响正确的系统输出,时间分辨率很难提高[14]。为了避免此类情况发生,加入结构简单、占用资源少的细计数功能模块来提高时间分辨率。本设计中采用二进制计数器与时钟状态译码分别完成粗计数与细计数,从而对时间间隔进行测量。

CDTDC阵列中单元电路的原理框图如图1所示,每个单元电路具有独立的时间间隔测量功能。为了减小电路规模,粗计数模块采用10 bit线性反馈移位寄存器(LFSR)实现。LFSR对计数时钟进行计数,后续再对LFSR进行状态译码即可得到所计的时钟数。计数时钟来自片上(PLL)对外部时钟的倍频。当起始信号达到时,接入系统时钟开始计数;当停止信号到达时,计数/读出时钟使能信号变为逻辑低,关闭连接LFSR时钟输入端的与门,达到停止计数的功能。计数时钟的工作频率为150 MHz,因而粗计数模块可以达到的时间测量范围为6.8 μs。

细计数模块由上升沿触发的锁存器1、锁存器2、计数时钟与移相时钟组成。为了提高时钟分辨率,将计数时钟移相90°,通过锁存器锁存两个时钟在停止信号到达时的逻辑电平作为状态码,进而提高时间分辨率。具体过程是:当停止信号达到时,连接锁存器时钟输入端的与门产生电平跳变,在上升沿把计数时钟与移相时钟的逻辑电平锁存进锁存器中,时序图如图2所示。锁存器1保持了停止信号到达时计数时钟的时钟状态,从而可将时钟分辨率提高至时钟周期的1/2;锁存器2保持了移相时钟在停止信号达到时的状态,从而将时钟分辨率提高至时钟周期的1/4。故在计数时钟为150 MHz的情况下,时间分辨率的理论值为1.667 ns。


1.2 CDTDC读出模块

本文引用地址://m.amcfsurvey.com/article/201706/349198.htm

当对记录的时间进行数据读出时,需要输入读出时钟。时钟切换模块在系统进入读出状态时对移位寄存器的输入时钟进行切换,完成数据的正确读出。为了节约逻辑资源,采用组合逻辑电路对时钟信号进行切换控制。

如图1所示,当系统工作在读出模式时,计数/读出模式切换信号变为逻辑低,关闭输入计数时钟的与门,同时打开输入读出时钟的或门,在计数/读出使能信号允许的条件下,输入读出时钟至LFSR的时钟端口。多功能移位寄存器的时钟切换同理。

在计数/读出模式切换信号允许的条件下,通过切换多路复用器断开LFSR的反馈输入端,将多功能移位寄存器的输出输入LFSR中。多功能移位寄存器会自动在并入串出与串入串出模式下进行切换,首先将时钟状态,即锁存器的输出移入,然后输入前一个单元电路的输出,如此每行相邻的单元电路串联直至数据输出端。图3为阵列电路结构图,对于16×16的阵列,每行一个数据读出链。每个单元电路的读出数据为12 bit,故每行信号的数据量为192 bit。如果数据读出时钟为10 MHz,则读出时间为1/10 MHz×192=19.2 μs。如果阵列规模增大,则可提高读出时钟频率。


1.3 CDTDC控制模块

鉴于系统需要自动在计数与读出两种模式下进行切换,并需复位相应寄存器,本设计采用状态机来控制CDTDC的模式切换。控制模块状态机示意图如图4所示。

系统上电复位后,处于复位(10)状态。在此状态下,进行移位寄存器的清零,同时复位所有控制信号至初始状态。复位状态持续4个时钟周期,状态跳转到计数状态。在计数(00)状态下,计数/读出模式切换信号禁止,系统工作在计数模式。接入计数时钟,LFSR开始计数。同时,为使系统具有可配置性,在计数状态中加入一个10 bit计数器来配置系统可以记录的最大时间间隔。若屏蔽此计数器,则此状态持续时间为系统可以达到的最大时间测量范围,即6.8 μs。实际应用中可根据用户实际需要对计数器进行配置来限制计数状态的持续时间。计数状态结束后跳转到读出(01)状态,计数/读出模式切换信号允许,启动数据读出模块,完成记录时间的读出。如前所述,单行数据链需要的读出时间约为20 μs。此后系统回到复位状态准备下次计数。

2 仿真测试与硬件实现

2.1 仿真结果分析

本设计采用Altera公司的Quartus II与Mentor Graphics公司的Modelsim作为主要的设计工具。Cyclone系列FPGA具有片上(PLL)模块,可以对输入时钟进行精确的倍频、分频、相位偏移、可编程占空比等操作。系统外部时钟输入频率为50 MHz,通过配置片上PLL,可获得3倍频的计数时钟与移相时钟,5分频的读出时钟。

图5为单元电路计数状态仿真结果。rst为系统复位信号,start为计数起始信号,stop为计数停止信号,cnt_clk为计数时钟,shifted_clk为移相时钟,state为状态机状态码,shift_reg为多功能移位寄存器并行输入端口,q为线性反馈移位寄存器输出。在计数状态下,当stop产生正脉冲时,LFSR停止计数,多功能移位寄存器并行输入锁存器1与锁存器2输出的时钟逻辑电平,记录时钟状态。图6为单元电路数据读出状态仿真时序图,rd_out为读出引脚,在读出时钟作用下,数据从移位寄存器中依次移出。

2.2 硬件测试

时间数字转换阵列在Cyclone II EP2C15芯片实现,系统外部时钟50 MHz。由函数发生器提供频率为F的脉冲信号,信号上升沿作为系统的起始信号,下降沿作为系统的停止信号,测得在不同频率下的时钟分辨率。测试数据表明时间分辨率的算术平均值为1.73 ns。

通过仿真与硬件测试表明,本设计能够准确进行时间数字转换,各项功能均达到预期要求。以低密度低成本的Altera Cyclone II EP2C15作为目标芯片的综合报告显示,单元电路占用FPGA逻辑资源约为0.375%,具有极低的资源占用率。本设计时间分辨率最高可达1.73 ns,并且实现原理简单,具有可行性。



评论


相关推荐

技术专区

关闭