前言:
如今小伙伴们对“c语言延迟时间函数”大概比较着重,你们都想要分析一些“c语言延迟时间函数”的相关内容。那么小编同时在网络上汇集了一些关于“c语言延迟时间函数””的相关文章,希望兄弟们能喜欢,姐妹们快快来了解一下吧!文|顾煜祺
编辑|顾煜祺
前言
这是一种高精度、低死区时间、大动态范围时间数字(TDC)架构,适合在Actel基于闪存和反熔丝FPGA中实施。
在三种不同的工业级FPGA中实现了这样的TDC:反熔丝FPGAAX500、基于闪存的FPGAAPA600和A3PE1500。
测试结果表明,APA600的时间分辨率为225psRMS,平均bin大小为758ps,而A3PE1500的时间分辨率为127psRMS,bin大小为427ps。
对于AX500中的TDC,获得了37ps的RMS和75psbin大小。
热测试表明,原型TDC在从 −21∘C 到 +71∘C 在应用利用TDCbin大小和环境温度之间的线性关系的补偿机制后,具有恒定的性能。
TDC结构可直接移植到航天级FPGA中,应用于航天实验。
在FPGA芯片中实现TDC是一种有吸引力的解决方案,因为它具有良好的灵活性和低成本。
PAMELA任务采用在ActelFPGA中实现的TDC来提供飞行时间(TOF)粒子识别。
采用时间拉伸法,TDC实现了10ns的分辨率和40.95us的时间范围,即50ps的分辨率和200ns的动态范围,扩展因子为200。
ESAROSETTA任务的TOF系统,它采用在Actel耐辐射FPGA中实现的TDC,使用“抽头延迟线”方法可以实现2ns的分辨率、256us的动态范围,并具有10ns的短死区时间。
当SRAMFPGA用于太空任务时,需要采用三重模块冗余(TMR)、纠错码(ECC)、错误检测(ED)、重新配置或其他方法来缓解单事件干扰(SEU)。
这样会占用更多的FPGA资源,TDC结构也变得更复杂,另一方面,Actel基于闪存的FPGA和反熔丝FPGA在SEU和单事件闩锁(SEL)免疫方面都表现出良好的性能。
反熔丝FPGA因其高达300krad(Si) 的高总电离剂量(TID)容差而成为外层空间任务的首选。
基于闪存的耐辐射FPGA的TID容限约为30krad(Si),由于可重编程性带来的低成本和更好的灵活性,基于闪存的FPGA可用于近地轨道任务。
在ActelFPGAA3PE1500中实现的四种不同TDC设计的面积权衡,根据测试结果,当使用延迟线方法时,使用缓冲器作为延迟元件实现了540ps的分辨率。
Hisong声称使用布线而不是FPGA中的缓冲器可以将分辨率提高到130ps。
设计采用时间插值法,延迟元件在flash-basedFPGA中为CMOS缓冲器,而在反熔丝FPGA中为专用进位线,TDC结构可以直接移植到太空级FPGA中,用于未来的太空任务。
TDC架构
TDC是基于一个粗计数器和一组由基于闪存的FPGA中的CMOS缓冲器或反熔丝FPGA中的专用进位线构建的内插器设计的。
图1显示了一个简化的框图,A3PE1500和APA600中的TDC由40MHz的参考时钟馈送,而AX500中的时钟频率为120MHz。
一个TDC通道包含一个用于精细时间测量的n元素时间延迟链、一个16位粗略时间计数器、一个编码器和一个读出FIFO。
一旦命中信号到达,延迟单元被主时钟的上升沿采样,延迟单元的总长度应至少覆盖一个时钟周期。
每次命中都由第一步锁存,然后是反相D触发器,之后通过与门将可读脉冲输出到编码器,读使能脉冲宽度等于一个时钟周期。
为避免错过命中,每次命中应至少在一个时钟周期内保持高电平,然后保持低电平直到下一个时钟上升沿以重新命中。
当接收到读使能信号时,编码器单元将延迟单元中的温度计代码转换为二进制代码,因此输入到达时间的分辨率等于最低有效位(LSB),即时钟的1/n时期。
代码转换完成后,编码器输出写FIFO的控制信号,粗略计数器在40MHz频率下的时间测量范围分别约为1.6ms和120MHz下的0.53ms。
单个FPGA中可以集成多个TDC通道,因此通道ID信息可以指示命中是在哪个通道中测量的。通道ID被写入读出FIFO。
在设计中,使用COMSbuffer的单通道TDC在A3PE1500中会占用大约2%的FPGA资源,而在AX500中,使用专用进位线的单通道TDC会占用大约13%的FPGA资源。
延迟元件的结构
基于闪存的FPGA的核心由VersaTiles组成,APA600和A3PE1500的tile结构如图2 所示。
如图2所示,FPGAA3PE1500和APA600的核心块不提供专用进位线,该块可配置为CMOS缓冲器,根据时序仿真,其在A3PE1500中具有670ps的时间延迟,在实际实验中,它给出了更短的延迟时间。
图3显示了反熔丝加速器(AX)FPGA中的2位专用进位逻辑,根据时序仿真,进位逻辑的时间延迟约为80ps。
在设计中,CMOS缓冲器和专用进位逻辑都用作TDC中的延迟元件。
检测结果
基于ActelFPGA的原型板设计有一个通用串行总线(USB)端口,TDC分别在ActelFPGAA3PE1500、APA600和AX500中实现,图4显示了原型的照片。
在原型中,输入信号被位于顶部超小型版本A(SMA)插座附近的鉴别器数字化为LVDS电平。
基于闪存的FPGA通过板上的JTAG端口进行配置,反熔丝FPGA使用SiliconSculptor3编程器进行板外配置。
A3PE1500FPGA管理原型的数据传输,TDC数据通过USB端口传输到数据处理计算机。
A3PE1500和APA600分别实现了使用CMOS缓冲器的8通道TDC,而在AX500中,实现了使用专用进位线的4通道TDC,包括一个鉴别器在内的单个TDC通道的功耗约为50mW。
三个基于ActelFPGA的TDC的测试结果显示在以下部分,其中介绍了TDC板的主要性能。
A3PE1500和APA600中TDC的性能
微分非线性和时间分辨率是TDC最重要的参数,采用“代码密度测试”方法评估非线性,时间分辨率通过“电缆延迟测试”评估。
线性度主要受限于ActelFPGA的逻辑架构,包括时钟延迟不等和延迟链元件的不均匀性。
微分非线性(DNL)定义为TDCbin大小与其正常LSB值的偏差,积分非线性(INL)是输入/输出曲线与理想传递特性的偏差,这是一个直线最佳拟合线。
在“代码密度测试”中,1000000将随机命中应用于一个TDC通道,并绘制测量时间数据的分布。
与平坦分布的偏差表示微分非线性的量,A3PE1500中TDC的代码密度测试结果如图5(a)、(b)和(c)所示。
平均TDCbin大小为427ps,DNL和INL模式可以使用bin大小数据来计算。
DNL在−0.11/+0.15LSB以内,INL在−0.25/+0.24LSB以内,INL和DNL在整个TDC动态范围内重复每个时钟周期,并且可以加载INL校正查找表(LUT)以校准TDC输出。
在“电缆延迟测试”中,TDC的两个通道由具有固定时间间隔的脉冲馈送。
时间间隔测量分布的均方根(RMS)值除以根号2,是对TDC可实现的单通道分辨率的测量。
图5(d)是其中一个时间分辨率测试结果经过INL补偿后的分布直方图,时间间隔测量的RMS约为179.82ps,图中标注的分辨率为179.82/根号2=127 ps,代表单个TDC通道的分辨率。
APA600中TDC的编码密度测试和电缆延迟测试结果如图6所示,平均bin大小为758ps,而DNL在−0.06/+0.05LSB以内,INL在−0.06/+0.14LSB以内。
补偿后的单通道分辨率约为225ps,根据以上结果,使用CMOS缓冲器作为延迟元件。
在基于闪存的FPGAA3PE1500和APA600中实现的TDC表现出相似的性能。
AX500中TDC的性能
使用专用进位线作为延迟元件,与基于闪存的FPGA相比,在AX500中实现的TDC可以实现更高的分辨率。
图7是代码密度测试和电缆延迟测试的结果,TDC的单通道分辨率约为37psRMS或74ps平均bin大小。
TDC的DNL在−1/+1LSB以内,INL在−0.8/+1.7LSB以内。
在“电缆延迟测试”中,测量RMS可能会随着时间间隔而变化,电缆的最大长度是有限制的,因为长电缆会导致输入信号衰减并减慢前沿,从而引入测量误差。
为了在时间间隔测量中探索更宽的时间范围,采用了双通道任意函数发生器TektronixAFG3252。
由于发生器的两个通道都可以输出延迟可调的同源信号,因此可以在测试中应用更宽的时间范围。
如上所述,基于闪存的FPGAA3PE1500和APA600中的TDC性能相似,因此以下结果仅显示使用A3PE1500的功能。
图8显示了在两个时钟周期内测量不同时间间隔时的分辨率,INL补偿后,单通道分辨率在A3PE1500中从270psRMS提高到140psRMS,在AX500中提高了75到40psRMS。
在每个TDC的INL模式下,决议在每个时钟周期定期重复,因此在实际应用中,如有必要,应使用INL查找表以获得更高的精度。
不同温度下的性能
TDC平均bin大小具有温度依赖性,并且已经对不同温度下的bin大小进行了测试,结果如图9所示。
使用可变温控箱,环境温度从−21∘C到+71∘C,测试结果表明,A3PE1500中TDC的平均bin大小从413.6ps增加到456ps约0.56秒/∘C,和69.6ps到78.5ps0.1秒/∘C在AX500中。
由于单元延迟是温度的线性函数,因此可以确定LSB对温度的依赖性:
由于元件延迟随温度变化,时间分辨率应在不同温度下进行测试,图10显示了TDC的分辨率范围从−21∘C到+71∘C。
如上所示,当环境温度偏离25°C时,分辨率会变差。当在每个温度下使用适当的元件延迟时,应用温度补偿,并且A3PE1500和AX500中的TDC分辨率都恢复到正常值。
因此,需要一种包含在不同温度下创建的查找表的温度补偿机制,以便可以在给定的工作温度下校正抽头延迟。
原型中使用的FPGA芯片为工业级,FPGA中实现的TDC在−21/的温度范围内提供稳定的性能+71∘C。
根据不同温度下bin大小和分辨率的测试结果,当包括温度控制时,TDC性能应足以满足正常太空任务的要求。
基于闪存的FPGA的单元延迟
上面描述的TDC是使用流水线技术实现的,时间测量是一步步进行的,TDC的死区时间主要受命中脉冲宽度限制和重新命中时间的影响,最大死区时间实际上是输入脉冲宽度加上一个时钟周期。
基于闪存的FPGA中的VersaTiles可以配置为具有不同单元延迟的不同组合模块。
表I显示了使用不同组合单元作为延迟元件时的各种TDCbin大小和单通道分辨率。这些测试是使用A3PE1500完成的。
此设计中的延迟单元放置当然可以手动执行,但这将非常耗时,ActelLiberoIDE软件中的“芯片规划器”提供了一种简单的单元放置方法。
通过在设计中添加布局约束,将延迟单元紧密排列成一个队列,并将锁存D型触发器放置在延迟单元旁边,确保延迟链提供最佳线性度。
通过提高工作时钟频率可以缩短延迟线长度,编码器复杂度也可以相应降低。
但在基于闪存的FPGA中,粗计数器由组合单元组成,进位延迟比专用进位线的延迟长。
一旦时钟频率提高到100MHz,bitcarrying必须在10ns内完成,因此必须在“chipplanner”中添加cellplaceconstraint,以避免获得错误的粗略时间。
粗计数器的所有单元都应放置在一个小区域中,以缩短布线延迟,在反熔丝FPGAAX500中,粗计数器使用专用的进位线进位,因此可以使用120MHz频率的时钟。
粗略计数器的输出在每个时钟上升沿加“1”,为了获得正确的粗时间,在flash-basedFPGA中实现的TDC中。
粗时间应该在接收到控制信号的时钟上升沿写入FIFO,而AX500中实现的TDC则相反,coarse时间应该写在时钟下降沿。
部件间差异和电压对单元延迟的影响
FPGA的部件间差异会导致TDC性能差异,因此当使用不同的FPGA时,必须通过“代码密度测试”重新校准bin大小和非线性信息。
TDC的单元延迟不仅随温度而变化,而且随内部电源电压而变化,较低的电源电压会导致较长的单元延迟。
此设计中的低压差(LDO)稳压器可以提供稳定且低噪声的电源,从而使电压影响可以忽略不计。
总结
基于插值技术的TDC在三个ActelFPGA中实现:A3PE1500、APA600和AX500。
使用反熔丝FPGAAX500,使用专用进位线作为延迟元件,实现了37psRMS的最高分辨率和平均73.7psbin大小。
在基于闪存的FPGA中使用CMOS缓冲器时,A3PE1500的分辨率约为127psRMS,bin大小为427ps,APA600中的分辨率为225psRMS,bin大小为758ps。
TDCbin大小随温度线性变化,需要针对不同温度的INL查找表进行补偿。
基于闪存和反熔丝FPGA中的TDC在−21/的温度范围内显示出温度稳定性+71∘C。
相同的TDC结构在Actel的太空级FPGA中可用,可能用于未来的太空任务。
参考答案
基于 FPGA 的自旋量子系统控制硬件平台, IEEE Transactions on Instrumentation and Measurement, vol.69 ,第 4 期,第 1127-1139 页,2020 年
光学可重构门阵列 VLSI 的软错误容限,2018 年第 26 届系统工程国际会议 (ICSEng),第 1-6 页,2018 年
具有板载偏移的 1.15 ps 二进制大小和 3.5 ps 单次精密时间数字转换器FPGA 中的校正”,IEEE 核科学汇刊,第 64 卷,第 12 期,第 2951-2957 页,2017 年
具有氮空位中心的高时间分辨率核磁共振,IEEE Magnetics Letters,第 7 卷,pp . 2016 年
如果你也喜欢我的文章,不妨点个“关注”吧!小生在此谢过了!
END
标签: #c语言延迟时间函数