基于查找表的FPGA的面积和时序估算

原论文题目为:《Area and Timing Estimation for Lookup Table Based FPGAs》

Abstract

有效的面积和时序估计技术在高级综合(HLS)中的重要性是众所周知的,因为它允许更有效地探索设计空间,同时为HLS工具提供预测特定技术工具对设计空间的影响的能力。以前的许多工作都集中在仅基于门数和/或文字计数使用非常简单的成本模型的估算技术上。这些模型不够准确,不足以进行有效的设计空间探索,因为互连的影响确实可能主导最终的设计成本。当设计以现场可编程门阵列(FPGA)技术为目标时,情况会变得更糟,因为布线延迟可能占整个设计延迟的60%。在本文中,我们提出了一种基于查找表的FPGA估计面积和时序的方法,该方法不仅考虑了门面积和延迟,还考虑了布线效果。我们选择XilinxX C4000系列作为我们的主要产品,因为它们很受欢迎。我们测试了具有多个基准的估算器,结果表明我们可以准确地获得准确的估算和时间估算。

1 Introduction

缩短开发周期的能力使得现场可编程门阵列(FPGA)成为实现专用集成电路(ASIC)的标准单元和掩模编程门阵列(MPGA)的一种有吸引力的替代方案。另一方面,高级综合(HLS)通过允许用户从行为规范开始,成为缩短设计时间的首选方法。因此,这两个概念的结合为从一个想法到最终产品的快速原型提供了一个理想的试验台。
HLS从行为规范到面积和延迟的约束来生成体系结构。 随后,FPGA的设计过程可以分解为四个主要步骤,如图1(a)所示。 首先,分区(或技术映射)包括查找表(LUT)映射和可配置逻辑块(Congurable Logic Block ,CLB)构造,将传入的逻辑划分为CLB的网表。 然后,布局确定了FPGA阵列中CLB的良好分配。一旦知道布局,布线就决定了每个网络的布线资源和布线类型。最后,时序优化通过对关键路径上的网络进行重新布线来提高布局的性能。
基于查找表的FPGA的面积和时序估算
图1:针对FPGA的设计流程(a)没有估算的设计流程(b)有估算的设计流程

这四个步骤使设计非常不可预测,并且最终的设计可能会违反约束条件。 原因是在大多数FPGA设计中,HLS中未考虑的布线延迟可能占整个设计延迟的60%。 当设计过程从使用HLS的行为级别开始时,问题变得尤为严重。 在这种情况下,将生成大量候选RTL设计,必须对其进行评估以选择最佳设计。 不考虑布局影响的抽象成本措施可能会导致设计欠佳。 因此,设计过程可能必须经过几次迭代才能达到可接受的解决方案。 由于布局和布线通常很耗时,因此可能会抵消FPGA和HLS的周转时间优势。的确,在[1]中已经报道了这种常见情况。为了避免不必要的迭代并缩短设计周期,在实际经历图1(b)之前,让估算器快速给出面积和时序预测非常有帮助。 估算器有一个更真实,更准确的模型非常重要,该模型不仅要考虑门面积和时序,还要考虑布线效果。
由Xilinx实现的一类重要的FPGA使用LUT来实现组合逻辑,称为基于LUT的FPGA。 Xilinx具有基于LUT的FPGA的三个逻辑单元阵列系列,包括XC2000,XC3000和XC4000。 它们具有共同的结构:被可配置互连围绕的CLB阵列,并且它们在逻辑和互连结构的细节上也有所不同。 在本文中,我们将专注于基于LUT的FPGA的面积和时序估计。 具体来说,由于Xilinx XC4000系列的受欢迎程度,我们将其作为目标。如前所述,我们的目标应用领域是HLS,因为这是支持高质量快速原型环境最需要快速和准确评估的领域。我们的评估既可以应用于芯片级(在物理设计之前将整个设计转换为逻辑网表),也可以应用于组件级(需要评估不同的RT级组件以支持真正的分层方法[2])。

2 Xilinx XC4000概述

Xilinx XC4000由一系列CLB(Congurable Logic Block ,CLB)组成,这些CLB嵌入可配置的互连结构中,并被可配置的I / O块围绕,如图2(a)所示。 Xilinx XC4000系列由十个成员组成。 家庭成员的CLB数量(从8x8到24x24)和I / O块(从64到192)不等。 典型的门容量从2000到13000不等。

2.1 XC4000可配置逻辑块

基于查找表的FPGA的面积和时序估算
Xilinx XC4000体系结构(a)XC4000(b)简化的CLB架构(c)LUT实现x = mn + np.

Xilinx XC4000 CLB主要由两个4输入LUT(分别称为F-LUT和G-LUT)和一个3输入LUT(称为H-LUT)组成,如图2(b)所示。 K输入LUT是可以实现K变量的任何布尔函数的存储器。 K个输入用于寻址2K2^Kx1位存储器,该存储器存储布尔函数的真值表。 例如,图2(c)说明了用于实现函数x = mn + np的3输入LUT的结构。 函数的真值表存储在8x1位存储器中,由变量m,n,p控制的8比1多路复用器选择输出值x。 所有CLB输出都可以是直接,反相或寄存器的。
请注意,一个XC4000 CLB尽管可以接受9个不同的输入,但并不等同于9个输入的LUT。 一个9输入LUT可以实现9个不同变量的任何功能,而一个XC4000的CLB可以实现5个不同输入的任何功能以及6到9个变量的某些功能。

2.2 XC4000可编程互连点和布线资源

Xilinx XC4000路由资源通过交换矩阵连接。 有8个(较小的设备为6个)交叉点,每个交叉点包含6个可编程的互连点(PIP)。 如图3(c)所示,PIP是由配置存储单元控制的传输晶体管。
基于查找表的FPGA的面积和时序估算
Xilinx XC4000路由资源包括如图3(A)所示的单长(通用)线路(SL)、如图3(B)所示的双倍长线路(DL)和如图3(B)所示的长线路(LLS)。LLS运行芯片的宽度或高度,延迟变化可以忽略不计。SLS连接每对相邻的交换矩阵1和DLS旁路交替交换盒2。因此,网络的可布线性不再是其长度和布线区域拥塞的简单函数。另一方面,由于信号延迟更多地取决于信号通过的PIP的数量而不是段的长度,所以双长度线允许信号在相同的时间量内行进两倍的距离,或者允许信号在与单长线3相同的时间内行进相同的距离。导线的延迟也不再是其长度的简单函数。

3 以前的工作

文献[3]综述了几种基于查找表的FPGA的快速映射启发式算法。这种试探法([13]、[14]、[15]、[16]、[17]等)可用于获得CLB计数的估计。然而,到目前为止,还没有提出精确的定时估计技术。Xilinx的[4]Partitioning,Placement and Routing(PPR)软件包有自己的内置评估工具。此估计非常准确,因为它使用Chortle[5]执行实际映射,但该工具不提供性能估计。
除了Xilinx,Synopsys[6]还通过实际映射提供了精确的面积估计。此外,它还可以为设计提供逻辑电平数量的估计。然而,它没有考虑布线延迟.
文献[7]中提出的研究对基于LUT的FPGA技术的多级逻辑最小化工具的性能进行了实证检验,并表明文字数量和路由的CLB数量之间存在线性关系。它提供了面积和时序的估计,但这项工作仅适用于XC3000系列。
另一方面,我们的基于查找表的FPGA的面积和时序估计主要集中在Xilinx XC4000上。由于它不仅考虑了栅极面积/延迟,而且还考虑了布线等因素,因此比以往提出的模型更真实、更准确。此外,我们的方法很容易适用于其他Xilinx系列,如XC2000和XC3000,带有少量的Modi阳离子。

4 基于查找表的FPGA的估计

4.1问题解决方案

遵循Xilinx的标准方法,我们假设由HLS生成的RT级设计已经转换为逻辑netlist4。在给定结构逻辑级网表描述的情况下,FPGA面积估计的目标是根据CLB的数量来预测设计面积。然后,FPGA定时估计器接受具有由面积估计预测的布局信息的网表,以预测定时。此外,这两种估计方案都必须快速和准确,这一点至关重要。

4.2 简单面积估计模型的相依性

在FPGA中,逻辑的大小取决于LUT的数量,然后是CLB的数量。多年来,门计数被广泛用于估计逻辑大小。然而,它不能用于估计LUT的数量[8]。例如,考虑图4中的3输入LUT5。图4(A)中所示的映射具有8个门,需要1个LUT,而图4(B)中所示的映射只有3个门,但需要2个LUT。此外,虽然LUT的输入数量有限,但不同的输入计数也不能很好地衡量LUT计数。例如,在图4中,(B)和©中所示的映射各有四个不同的输入,但是(B)中的映射需要2个LUT,而©中的映射需要3个LUT。虽然一个Xilinx XC4000 CLB可以包含三个LUT,但CLB的数量不受LUT数量的限制。例如,在图5中,(A)和(B)中所示的映射具有3个LUT,但是(A)中的映射需要1个CLB,而(B)中的映射需要2个CLB。
基于查找表的FPGA的面积和时序估算
基于查找表的FPGA的面积和时序估算

读到这个地步 然后后面大致看了看 这篇文章的方向不是我这个方向,所以不再翻译了