“借出时间”:从可编程的UltraScale+ leaf时钟缓存器

作者:闲情逸致

随着技术的进步,FPGA开始应用到越来越多的设备中。将FPGA与其他功能模块如LUT,触发器,RAM,DSP等结合,并且规划在设备的不同位置,达到在单一设备上实现多功能成为了目前的发展方向,同时倾向于实现更大,更快的器件。因此,对目前的设计工具,新兴的FPGA技术提出了许多新的要求。

时钟布线是现如今研究非常热的一个问题。采用如 Dijkstra’s 和 A-star等算法找到最佳路径,基于点对点的FPGA布线结构是目前使用最为广泛的,而且PathFinder等布线算法不管是在工业界还是学术界均广泛使用。然而,他们均忽略了时钟延迟的缺陷。因此,在时钟延迟上进行改进成为了一个新的方向。

面向性能的新兴FPGA时钟布线技术
在前两日的ICCAD(2016) 大会上,来自Xilinx的Parivallal Kannan与Satish Sivaswamy两位工程师发表了一篇论文,即《面向性能的新兴FPGA时钟布线技术》,在报告中,他们详细的讲解了一个时钟布线结构,可以形象的称之为“借出时间”。ASIC工程师通过应用自动时钟树综合工具将时钟频率更改设计应用到自己的模块设计中。目前,设计者已经可以使用 Xilinx Vivado套件,在 Virtex UltraScale+系列、Kintex UltraScale+ FPGAs系列、Zynq UltraScale+ MPSoCs系列中应用此技术。FPGA时钟布线的核心为实现将逻辑连续时间延迟尽可能的接近时钟频率,并达到触发器之间的逻辑延迟和时钟频率的平衡。但是,在以往的布线(特别是超短时间)很难将其实现。然而通过在前一级加入时钟延迟,“借出时间”,而降低后一级的延迟,即“所谓的借出时间”,可以达到这个目标。

图1:时间延迟结构

图1:时间延迟结构

如图1所示,前一级FFi到FFj的逻辑延迟为2.5nm,而后一级FFj到FFk的延迟为1.5nm,此时钟的频率为2nm。为了实现该功能,将FFj的输入时间脉冲设置为比FFi以及FFK延迟0.5nm,从而实现了在满足前一级延迟的2.5nm,以及后一级延迟的1.5nm,而时钟依然保持2nm不变的要求,可见,可以通过这种极其简易,并且非常便捷的方式达到系统时钟的准确性。因此,这项技术被形象的称之为“借出时间”。

图2:不同实验最大频率的提升百分比

图2:不同实验最大频率的提升百分比

如图2所示,Xilinx公司通过将这个技术应用到89个案例中,得到了一系列的频率提升。Fmax的提升从最小的1%达到了最大的14%,平均下来达到了5.5%,可见通过应用这个简单的自动设计技术可以得到了如此大的性能提升。而这些优化设计均能应用到在Virtex UltraScale+系列、Kintex UltraScale+ FPGAs系列、Zynq UltraScale+ MPSoCs系列中,从而极大的提升了Xilinx公司产品的性能。

总结
Xilinx公司的Virtex UltraScale+系列、Kintex UltraScale+ FPGAs系列、Zynq UltraScale+ MPSoCs系列等诸多系列虽然在目前受到设计者的广泛欢迎,但为了迎合新兴科技的发展以及产品的应用对其应用工具也提出了更高的要求。而此次,Xilinx公司发表的时钟延迟技术充分了展现了目前设计工具的飞速发展,使得FPGA在各项算法,甚至目前最为活跃的深度学习也被广泛应用。相信在Xilinx等公司的推动下,各项先进的设计工具、SOC模块、FPGA系列等均会为目前信息化时代、物联网做出卓越的贡献。

声明:本文为原创文章,转载需注明作者、出处及原文链接,否则,本网站将保留追究其法律责任的权利