FPGA芯片延时信息的存储、访问方法及装置与流程

文档序号:13248484阅读:174来源:国知局
技术领域本发明涉及硬件设计技术领域,尤其涉及FPGA芯片延时信息的存储、访问方法及装置。

背景技术:
FPGA(Field-ProgrammableGateArray),即现场可编程门阵列,是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点,因而得到了广泛应用。利用FPGA芯片实现某种电路功能,需要把要实现的功能首先转化成RTL(RegisterTransferLevel,寄存器转换级电路)设计,然后再映射到FPGA芯片的资源上,比如LUT(Look-Up-Table,显示查找表)等资源。最后根据布局算法进行芯片物理资源(基本单元)的布局布线,实现设计的电路。FGPA芯片的布局布线除了要求设计的电路计算速度快、节省资源外,还要遵循延时小的设计原则,所以在进行FPGA芯片的布局布线时要充分考虑系统的延时。

技术实现要素:
但是,本发明人在研究过程中发现,在现有的应用中,FPGA芯片本身会存储芯片上任意两个基本单元(比如EMB(嵌入式系统)或PLB(管道突发式缓存)等)的延时信息(包括两个基本单元在FPGA芯片上的坐标以及两个基本单元之间的延时值),在利用FPGA芯片做设计时,根据布局算法做布局布线时就可以根据预存的延时信息得到对应的系统延时,以选择最优的信号路由。由于FPGA芯片的基本单元数量较大,现有技术中存储FPGA芯片上任意两个基本单元(比如EMB或PLB等)的延时信息需要很大的存储空间,存储开销较大。为此,非常需要一种改进的FPGA芯片延时信息的存储方法、访问方法及装置。以解决现有技术中FPGA芯片延时信息存储开销大的技术问题。在本发明实施方式的第一方面中,提供了一种FPGA芯片延时信息存储方法,例如可以包括:判断FPGA芯片上的每一列上是否仅包含一种类型的基本单元,或在FPGA芯片上的每一行上是否仅包含一种类型的基本单元;若每一列上仅包含同一类型的基本单元,则分别存储FPGA芯片上最上端和最下端两行上的基本单元与所述FPGA芯片上所有基本单元之间的延时信息;若每一行上仅包含同一类型的基本单元,则分别存储FPGA芯片上最左端和最右端两列上的基本单元与所述FPGA芯片上所有基本单元之间的延时信息。优选的,所述方法还包括:FPGA芯片上的每一列上仅包含一种类型的基本单元时,判断FPGA芯片上的所有基本单元分布是否上下对称;若上下对称,将芯片最上端或最下端一行记为参考行,存储参考行上的基本单元与FPGA芯片上所有基本单元的延时信息。优选的,FPGA芯片上的每一行上仅包含一种类型的基本单元时,判断FPGA芯片上的所有基本单元分布是否左右对称;若左右对称,将芯片最左端或最右端一列记为参考列,存储参考列上的基本单元与所有基本单元的延时信息。在本发明实施方式的第二方面中,提供了FPGA芯片延时信息的访问方法,包括:将位于信号流向起始端的待查询的两基本单元分别记为源点和目的点;FPGA芯片上的每一列上仅包含一种类型的基本单元时,执行第一读取流程;所述第一读取流程包括:若目的点的列坐标大于源点的列坐标,则将目的点在所在列上向列的底端方向平移源点列坐标大小的距离;读取源点所在列底端的基本单元与目的点平移后所在的基本单元之间的延时值;反之则将目的点在所在列上向列的顶端方向平移第一距离,所述第一距离为源点到FPGA芯片最上端一行的距离;读取预存的源点所在列顶端的基本单元与目的点平移后所在的基本单元之间的延时值;FPGA芯片每一行上仅包含一种类型的基本单元时,执行第二读取流程;所述第二读取流程包括:若目的点的行坐标大于源点的行坐标,则将目的点在所在行上向行的左端方向平移源点行坐标大小的距离;读取预存的所述源点所在行左端的基本单元与目的点平移后所在的基本单元之间的延时值;反之则将目的点在所在行上向行的右端方向平移第二距离,所述第二距离为源点到FPGA芯片最右端一列的距离;读取预存的所述源点所在行右端的基本单元与目的点平移后所在的基本单元之间的延时值。优选的,所述方法还包括:FPGA芯片每一列上仅包含一种类型的基本单元时,若FPGA芯片上所有的基本单元上下对称,执行第三读取流程;所述第三读取流程包括:若源点到参考行的距离小于目的点到参考行的距离,则将目的点在所在列上向参考行方向平移第三距离,所述第三距离为源点到参考行的距离;读取预存的源点所在列与参考行交点处的基本单元与目的点平移后所在的基本单元之间的延时值;反之则分别确定源点和目的点相对于FPGA芯片行向对称线的第一对称源点和第一对称目的点;将第一对称目的点在所在列上向参考行方向平移第四距离,所述第四距离为第一对称源点到参考行的距离;读取预存的第一对称源点所在列与参考行交点处的基本单元与第一对称目的点平移后所在的基本单元之间的延时值;其中,所述参考行为FPGA芯片最上端或最下端一行。优选的,所述方法还包括:FPGA芯片每一行上仅包含一种类型的基本单元时,若FPGA芯片上所有的基本单元左右对称,执行第四读取流程;所述第四读取流程包括:若源点到参考列的距离小于目的点到参考列的距离,将目的点在所在行上向参考列方向平移第五距离,所述第五距离为源点到参考列的距离;读取预存的源点所在列与参考列交点处的基本单元与目的点平移后所在的基本单元之间的延时值;反之则分别确定源点和目的点相对于FPGA芯片列向对称线的第二对称源点和第二对称目的点;将第二对称目的点在所在行上向参考列平移第六距离,所述第六距离为第二对称源点到参考列的距离;读取预存的第二对称源点与参考列交点处的基本单元与第二对称目的点平移后所在的基本单元之间的延时值;其中,所述参考列为FPGA芯片最左端或最右端一列。在本发明实施方式的第三方面中,提供了一种FPGA芯片延时信息的存储装置,所述装置包括:第一判断模块,用于判断FPGA芯片上的每一列上是否仅包含一种类型的基本单元,或在FPGA芯片上的每一行上是否仅包含一种类型的基本单元;第一存储模块,用于FPGA芯片中每一列上仅包含同一类型的基本单元时,分别存储FPGA芯片上最上端和最下端两行上的基本单元与所述FPGA芯片上所有基本单元之间的延时信息;每一行上仅包含同一类型的基本单元时,分别存储FPGA芯片上最左端和最右端两列上的基本单元与所述FPGA芯片上所有基本单元之间的延时信息。优选的,所述装置还包括:第二判断模块,用于FPGA芯片上的每一列上仅包含一种类型的基本单元时,判断FPGA芯片上的所有基本单元分布是否上下对称;第二存储模块,用于FPGA芯片上的所有基本单元分布上下对称时,将芯片最上端或最下端一行记为参考行,存储参考行上的基本单元与FPGA芯片上所有基本单元的延时信息。优选的,所述装置还包括:第三判断模块,用于FPGA芯片上的每一行上仅包含一种类型的基本单元时,判断FPGA芯片上的所有基本单元分布是否左右对称;第三存储模块,用于FPGA芯片上的所有基本单元分布左右对称时,将芯片最左端或最右端一列记为参考列,存储参考列上的基本单元与所有基本单元的延时信息。在本发明实施方式的第四方面中,提供了一种FPGA芯片延时信息的访问装置,包括:标记模块,用于将位于信号流向起始端的待查询的两基本单元分别记为源点和目的点;第一执行模块,用于执行第一读取流程;所述第一读取流程包括:若目的点的列坐标大于源点的列坐标,则将目的点在所在列上向列的底端方向平移源点列坐标大小的距离;读取源点所在列底端的基本单元与目的点平移后所在的基本单元之间的延时值;反之则将目的点在所在列上向列的顶端方向平移第一距离,所述第一距离为源点到FPGA芯片最上端一行的距离;读取预存的源点所在列顶端的基本单元与目的点平移后所在的基本单元之间的延时值;第一触发模块,用于FPGA芯片上的每一列上仅包含一种类型的基本单元时,触发第一执行模块执行第一读取流程;第二执行模块,用于执行第二读取流程,所述第二读取流程包括:若目的点的行坐标大于源点的行坐标,则将目的点在所在行上向行的左端方向平移源点行坐标大小的距离;读取预存的所述源点所在行左端的基本单元与目的点平移后所在的基本单元之间的延时值;反之则将目的点在所在行上向行的右端方向平移第二距离,所述第二距离为源点到FPGA芯片最右端一列的距离;读取预存的所述源点所在行右端的基本单元与目的点平移后所在的基本单元之间的延时值;第二触发模块,用于FPGA芯片每一行上仅包含一种类型的基本单元时,触发第二执行模块执行第二读取流程。优选的,所述装置还包括:第三执行模块,用于执行第三读取流程;所述第三读取流程包括:若源点到参考行的距离小于目的点到参考行的距离,则将目的点在所在列上向参考行方向平移第三距离,所述第三距离为源点到参考行的距离;读取预存的源点所在列与参考行交点处的基本单元与目的点平移后所在的基本单元之间的延时值;反之则分别确定源点和目的点相对于FPGA芯片行向对称线的第一对称源点和第一对称目的点;将第一对称目的点在所在列上向参考行方向平移第四距离,所述第四距离为第一对称源点到参考行的距离;读取预存的第一对称源点所在列与参考行交点处的基本单元与第一对称目的点平移后所在的基本单元之间的延时值;其中,所述参考行为FPGA芯片最上端或最下端一行;第三触发模块,用于FPGA芯片每一列上仅包含一种类型的基本单元时,若FPGA芯片上所有的基本单元上下对称时,触发第三执行模块执行第三读取流程。优选的,所述装置还包括:第四执行模块,用于执行第四读取流程;所述第四读取流程包括:若源点到参考列的距离小于目的点到参考列的距离,将目的点在所在行上向参考列方向平移第五距离,所述第五距离为源点到参考列的距离;读取预存的源点所在列与参考列交点处的基本单元与目的点平移后所在的基本单元之间的延时值;反之则分别确定源点和目的点相对于FPGA芯片列向对称线的第二对称源点和第二对称目的点;将第二对称目的点在所在行上向参考列平移第六距离,所述第六距离为第二对称源点到参考列的距离;读取预存的第二对称源点与参考列交点处的基本单元与第二对称目的点平移后所在的基本单元之间的延时值;其中,所述参考列为FPGA芯片最左端或最右端一列;第四触发模块,用于FPGA芯片每一行上仅包含一种类型的基本单元时,若FPGA芯片上所有的基本单元左右对称,触发第四执行模块执行第四读取流程。从以上技术方案可以看出,本发明实施例具有以下优点:在本发明的实施方式中,相同类型的基本单元的延时值是相同的,所以可以对延时信息的存储进行优化,具体的,FPGA芯片每一列上仅包含一种类型的基本单元时,存储FPGA芯片上最上端和最下端两行上的基本单元与所述FPGA芯片上所有基本单元之间的延时信息;每一行上仅包含一种类型的基本单元时,存储FPGA芯片上最左端和最右端两列上的基本单元与所述FPGA芯片上所有基本单元之间的延时信息。与现有技术相比,减少了存储FPGA芯片边缘部分之外的区域上基本单元的延时信息的开销。附图说明通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:图1为本发明实施例中FPGA芯片延时信息存储方法实施例1的流程图;图2为本发明实施例中FPGA芯片延时信息存储方法实施例2的流程图;图3为本发明实施例中FPGA芯片延时信息访问方法实施例1的流程图;图4为本发明实施例中FPGA芯片延时信息访问方法实施例2的流程图;图5-图6为FPGA延时信息存储方法举例示意图;图7-图8为FPGA延时信息访问方法举例示意图。具体实施方式本下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。下面将参照本发明实施方式的方法流程图和设备(或系统)框图描述本发明的实施方式。参考图1所示,为本发明实施例提供的FPGA延时信息存储方法实施例1的流程图,本实施例可以包括如下步骤:S101、判断FPGA芯片上的每一列上是否仅包含一种类型的基本单元,或在FPA芯片上的每一行上是否仅包含一种类型的基本单元;基本单元类型相同是指基本单元的属性相同。FPGA芯片上的每一列(行)上仅包含一种类型的基本单元,即一列(行)上的所有基本单元具有相同的属性,延时值相同。举个例子,比如第一列(行)均为PLB,第二列(行)均为EMB,第三列(行)均为MAC等。至于是否所有列(行)均为同一种类型的基本单元这里不作具体限定。若每一列上仅包含一种类型的基本单元,进入步骤S102,若每一行上仅包含一种类型的基本单元,进入步骤S103。S102、分别存储FPGA芯片上最上端和最下端两行上的基本单元与所述FPGA芯片上所有基本单元之间的延时信息;所述的延时信息包括相连接的两个基本单元在FPGA芯片上的坐标以及两个基本单元之间的延时值。本步骤中只需分别存储FPGA芯片最上端一行和最下端一行上的基本单元与其他基本单元之间的延时信息,与现有技术中存储所有基本单元之间的全连接数目的延时信息要少的多。S103、分别存储FPGA芯片上最左端和最右端两列上的基本单元与所述FPGA芯片上所有基本单元之间的延时信息。当FPGA芯片中的每一列上不仅包含一种类型的基本单元,或在FPA芯片上的每一行上也不仅包含一种类型的基本单元时,可以采用现有技术存储延时信息,即存储任意两个基本单元之间的延时信息。本实施例提供的技术方案中,相同类型的基本单元的延时值是相同的,所以可以对延时信息的存储进行优化,具体的,首先判断FPGA芯片每一列上是否仅包含一种类型的基本单元,若是则分别存储FPGA芯片最上和最下两行上的基本单元与所述FPGA芯片上所有基本单元之间的延时信息;若否,则判断FPGA芯片每一行上是否仅包含一种类型的基本单元,若是则分别存储FPGA芯片最左和最右两行上的基本单元与所述FPGA芯片上所有基本单元之间的延时信息。与现有技术相比,减少了FPGA芯片边缘部分之外的区域上基本单元的延时信息的存储开销。接下来,参考图2所示,图2是本发明公开的示例性延时信息存储方法实施例2的流程图,本实施例可以看作是在实施例1的基础上的另一实施方式,在实施例1的基础上,具体还可以包括如下步骤:S201、FPGA芯片每一列上仅包含一种类型的基本单元时,判断FPGA芯片上的所有基本单元分布是否上下对称;若是,执行步骤S202,若否,则执行步骤S102。S202、将芯片最上端或最下端一行记为参考行,存储参考行上的基本单元与FPGA芯片上所有基本单元的延时信息。S203、FPGA芯片每一行上仅包含同一类型的基本单元时,判断FPGA芯片上的所有基本单元分布是否左右对称;若是,则进入步骤S204,若否,则执行步骤S103。S204、将芯片最左端或最右端一列记为参考列,存储参考列上的基本单元与所有基本单元的延时信息。本实施例中,步骤S201和步骤S203并没有固定的先后顺序,其是否要实施取决于实施例1中步骤S101的实施结果。本发明实施例提供的技术方案,不仅能够实现实施例1的有益效果,进一步的,对于FPGA芯片呈上下或左右对称时,仅存储参考行或参考列上的基本单元到芯片上所有基本单元之间的延时信息,在实施例1的基础上,又可以减少一半的存储空间。在上述实施例的基础上,下面来公开说明延时信息访问方法实施例,延时信息的访问方法实施例可以看作是在上述延时信息的存储方法实施例基础上实施的。参考图3所示,为本发明提供的延时信息访问方法实施例1的流程图,本实施例具体可以包括如下步骤:S301、将位于信号流向起始端的待查询的两基本单元分别记为源点和目的点;S302、FPGA芯片每一列上仅包含一种类型的基本单元时,执行第一读取流程;第一读取流程主要包括:当目的点的列坐标大于源点的列坐标时,首先,将目的点在所在列上向列的底端方向平移源点列坐标大小的距离;然后,读取源点所在列底端的基本单元与目的点平移后所在的基本单元之间的延时信息。反之则将目的点在所在列上向列的顶端方向平移第一距离,所述第一距离为源点到FPGA芯片最上端一行的距离;读取预存的源点所在列顶端的基本单元与目的点平移后所在的基本单元之间的延时信息。第一读取流程的原理入如下:目的点在所在列上向列的底端方向平移源点列坐标大小的距离可以等效为源点与目的点同时平移,由于目的点的列坐标大于源点的列坐标,当源点平移至所在列的底端时,目的点平移了源点列坐标大小的距离,由于相同类型的基本单元的延时值相同,所以源点在所在列底端的基本单元与目的点平移后所在的基本单元之间的延时值即为源点与目的点之间的延时值。将目的点在所在列上向列的顶端方向平移第一距离的原理与上述原理类似,这里不再赘述。S303、FPGA芯片每一行上仅包含一种类型的基本单元时,执行第二读取流程。第二读取流程包括:当目的点的行坐标大于源点的行坐标时,首先,将目的点在所在行上向行的左端方向平移源点行坐标大小的距离;然后,读取预存的所述源点所在行左端的基本单元与目的点平移后所在的基本单元之间的延时信息;反之则将目的点在所在行上向行的右端方向平移第二距离,所述第二距离为源点到FPGA芯片最右端一列的距离;读取预存的所述源点所在行右端的基本单元与目的点平移后所在的基本单元之间的延时信息。第二读取流程的原理入如下:目的点在所在行上向行的左端方向平移源点行坐标大小的距离,可以等效为源点与目的点同时平移,由于目的点的行坐标大于源点的行坐标,当源点平移至所在行的左端时,目的点平移了源点行坐标大小的距离,但是并没有到达所在行的左端。由于相同类型的基本单元的延时值相同,所以源点在所在行左端的基本单元与目的点平移后所在的基本单元之间的延时值即为源点与目的点之间的延时值。将目的点在所在行上向行的右端平移第二距离的原理与上述原理类似,这里不再赘述。由于现有技术需要存储所有基本单元的全连接下的延时信息,数据量较大,因而延时信息的访问速度也较慢,本发明实施例提供的延时信息存储方法相对于现有技术来说,可以大幅较小延时信息的存储开销,由于存储的信息少,相对可以提高延时信息的访问速度。参考图4所示,图4是本发明提供的延时信息访问方法实施例2的流程图,在延时信息访问方法实施例1的基础上,具体还可以包括如下步骤:S401、FPGA芯片每一列上仅包含一种类型的基本单元时,若FPGA芯片上所有的基本单元上下对称,则执行第三读取流程;第三读取流程包括:源点到参考行的距离小于目的点到参考行的距离时,首先,将目的点在所在列上向参考行方向平移第三距离,所述第三距离为源点到参考行的距离;然后,读取预存的源点所在列与参考行交点处的基本单元与目的点平移后所在的基本单元之间的延时信息;当FPGA芯片上的基本单元分布呈上下对称时,系统存储的是参考行上的基本单元与所有基本单元之间的延时信息,所以当源点到参考行的距离大于目的点到参考行的距离时,需要对源点和目的点进行处理,使之适用于源点到参考行的距离小于目的点到参考行的距离的情况。首先,需要分别确定源点和目的点相对于FPGA芯片行向对称线的对称点,源点的对称点记为第一对称源点,目的点的对称点记为第一对称目的点;然后,将第一对称目的点在所在列上向参考行方向平移第四距离,所述第四距离为第一对称源点到参考行的距离;读取预存的第一对称源点所在列与参考行交点处的基本单元与第一对称目的点平移后所在的基本单元之间的延时信息。其中,所述参考行为芯片最上端或最下端一行。第三读取流程的原理与第一读取原理类似,这里不再赘述。S402、芯片每一行上仅包含一种类型的基本单元时,若FPGA芯片上所有的基本单元左右对称,则执行第四读取流程。第四读取流程包括:若源点到参考列的距离小于目的点到参考列的距离,首先,将目的点在所在行上向参考列方向平移第五距离,所述第五距离为源点到参考列的距离;读取预存的源点所在列与参考列交点处的基本单元与目的点平移后所在的基本单元之间的延时信息。当FPGA芯片上的基本单元分布呈左右对称时,系统存储的是参考列上的基本单元与所有基本单元之间的延时信息,所以当源点到参考行的距离大于目的点到参考行的距离时,需要对源点和目的点处理,使之适用于源点到参考列的距离小于目的点到参考列的距离的情况。首先,分别确定源点和目的点相对于FPGA芯片列向对称线的第二对称源点和第二对称目的点;将第二对称目的点在所在行上向参考列平移第六距离,所述第六距离为第二对称源点到参考列的距离;读取预存的第二对称源点与参考列交点处的基本单元与第二对称目的点平移后所在的基本单元之间的延时信息;其中,所述参考列为芯片最左端或最右端一列。第四读取流程的原理与第二读取原理类似,这里不再赘述。本发明实施例提供的技术方案,对于FPGA芯片呈上下或左右对称时,由于存储时仅存储了参考行或参考列上的基本单元到芯片上所有基本单元之间的延时信息,与图3所示的流程图对应的实施例相比,可以进一步提高延时信息的访问的速度。相应的,在上述方法实施例的基础上,本发明还提供一种FPGA芯片延时信息的存储装置实施例1,该装置主要可以包括:第一判断模块,用于判断FPGA芯片上的每一列上是否仅包含一种类型的基本单元,或在FPGA芯片上的每一行上是否仅包含一种类型的基本单元;第一存储模块,用于FPGA芯片中每一列上仅包含同一类型的基本单元时,分别存储FPGA芯片上最上端和最下端两行上的基本单元与所述FPGA芯片上所有基本单元之间的延时信息;每一行上仅包含同一类型的基本单元时,分别存储FPGA芯片上最左端和最右端两列上的基本单元与所述FPGA芯片上所有基本单元之间的延时信息。优选的,本发明还提供一种FPGA芯片延时信息的存储装置实施例2,本实施例中,所述装置除了上述装置实施例1所述的模块外,还可以包括:第二判断模块,用于FPGA芯片上的每一列上仅包含一种类型的基本单元时,判断FPGA芯片上的所有基本单元分布是否上下对称;第二存储模块,用于FPGA芯片上的所有基本单元分布上下对称时,将芯片最上端或最下端一行记为参考行,存储参考行上的基本单元与FPGA芯片上所有基本单元的延时信息。和/或,第三判断模块,用于FPGA芯片上的每一行上仅包含一种类型的基本单元时,判断FPGA芯片上的所有基本单元分布是否左右对称;第三存储模块,用于FPGA芯片上的所有基本单元分布左右对称时,将芯片最左端或最右端一列记为参考列,存储参考列上的基本单元与所有基本单元的延时信息。相应的,本发明还提供一种FPGA芯片延时信息的访问装置实施例1,该装置主要可以包括:标记模块,用于将位于信号流向起始端的待查询的两基本单元分别记为源点和目的点;第一执行模块,用于执行第一读取流程;所述第一读取流程包括:若目的点的列坐标大于源点的列坐标,则将目的点在所在列上向列的底端方向平移源点列坐标大小的距离;读取源点所在列底端的基本单元与目的点平移后所在的基本单元之间的延时值;反之则将目的点在所在列上向列的顶端方向平移第一距离,所述第一距离为源点到FPGA芯片最上端一行的距离;读取预存的源点所在列顶端的基本单元与目的点平移后所在的基本单元之间的延时值;第一触发模块,用于FPGA芯片上的每一列上仅包含一种类型的基本单元时,触发第一执行模块执行第一读取流程;第二执行模块,用于执行第二读取流程,所述第二读取流程包括:若目的点的行坐标大于源点的行坐标,则将目的点在所在行上向行的左端方向平移源点行坐标大小的距离;读取预存的所述源点所在行左端的基本单元与目的点平移后所在的基本单元之间的延时值;反之则将目的点在所在行上向行的右端方向平移第二距离,所述第二距离为源点到FPGA芯片最右端一列的距离;读取预存的所述源点所在行右端的基本单元与目的点平移后所在的基本单元之间的延时值;第二触发模块,用于FPGA芯片每一行上仅包含一种类型的基本单元时,触发第二执行模块执行第二读取流程。优选的,在访问装置实施例1的基础上,本发明还提供一种FPGA芯片延时信息的访问装置实施例2,除了访问装置实施例1包括的模块外,本实施例中的访问装置还可以包括:第三执行模块,用于执行第三读取流程;所述第三读取流程包括:若源点到参考行的距离小于目的点到参考行的距离,则将目的点在所在列上向参考行方向平移第三距离,所述第三距离为源点到参考行的距离;读取预存的源点所在列与参考行交点处的基本单元与目的点平移后所在的基本单元之间的延时值;反之则分别确定源点和目的点相对于FPGA芯片行向对称线的第一对称源点和第一对称目的点;将第一对称目的点在所在列上向参考行方向平移第四距离,所述第四距离为第一对称源点到参考行的距离;读取预存的第一对称源点所在列与参考行交点处的基本单元与第一对称目的点平移后所在的基本单元之间的延时值;其中,所述参考行为FPGA芯片最上端或最下端一行;第三触发模块,用于FPGA芯片每一列上仅包含一种类型的基本单元时,若FPGA芯片上所有的基本单元上下对称时,触发第三执行模块执行第三读取流程。和/或,第四执行模块,用于执行第四读取流程;所述第四读取流程包括:若源点到参考列的距离小于目的点到参考列的距离,将目的点在所在行上向参考列方向平移第五距离,所述第五距离为源点到参考列的距离;读取预存的源点所在列与参考列交点处的基本单元与目的点平移后所在的基本单元之间的延时值;反之则分别确定源点和目的点相对于FPGA芯片列向对称线的第二对称源点和第二对称目的点;将第二对称目的点在所在行上向参考列平移第六距离,所述第六距离为第二对称源点到参考列的距离;读取预存的第二对称源点与参考列交点处的基本单元与第二对称目的点平移后所在的基本单元之间的延时值;其中,所述参考列为FPGA芯片最左端或最右端一列;第四触发模块,用于FPGA芯片每一行上仅包含一种类型的基本单元时,若FPGA芯片上所有的基本单元左右对称,触发第四执行模块执行第四读取流程。在上述各装置实施例中,相同类型的基本单元的延时值是相同的,所以可以对延时信息的存储进行优化,具体的,FPGA芯片每一列上仅包含一种类型的基本单元时,存储FPGA芯片上最上端和最下端两行上的基本单元与所述FPGA芯片上所有基本单元之间的延时信息;每一行上仅包含一种类型的基本单元时,存储FPGA芯片上最左端和最右端两列上的基本单元与所述FPGA芯片上所有基本单元之间的延时信息。与现有技术相比,减少了存储FPGA芯片边缘部分之外的区域上基本单元的延时信息的开销。进一步的,当FPGA芯片呈上下或左右对称时,仅存储参考行或参考列上的基本单元到芯片上所有基本单元之间的延时信息,进一步可以节省一半的存储空间。为了便于对上述各实施例有更深入的理解,现举例进行说明,参考图5-8所示,其中SRC到DST表示信号流向,所以SRC代表源点,DST代表目的点,NEWSRC代表做平移之后的新源点,NEWDST代表平移之后的新目的点,FPGA芯片存储任意两个基本单元的坐标以及二者之间的延时值,这里所说的延时值是指二者之间最短路径所用的信号传输时间。其中SRC和DST为芯片中的任意一点,这里仅作为示意说明使用,不应看作是芯片上的固定一点。假设源点的坐标为SRC(X1,Y1),目的点的坐标为DST(X2,Y2),以芯片的基本单位为PLB(管道式突发缓存器)为例说明。在现有技术中,需要提前保存每两个PLB的延时信息,布局算法将读取它来计算cost值。假设SRC(X1,Y1)中的X1和DST(X2,Y2)中的X2的范围是从0到(Width_M-1),Y1和Y2的范围是从0到(Height_M-1),其中,Width_M和Height_M分别表示FPGA芯片的长度和宽度。则SRC与DST的全连接数为:(Width_M)*(Height_M)*(Width_M)*(Height_M),其中SRC到DST的全连接数是指以SRC为起点到DST的所有可能的连接数。若芯片长宽均为100,通过上面公式可得到SRC到DST的全连接数量为:100*100*100*100=109。即芯片需要预先存储109份延时信息。依据本发明实施例提供的技术方案,当芯片中每一列上都仅有一种类型的基本单元时,参考图5所示,对于SRC(X1,Y1)来说,Y1的取值只有两个,即芯片最下方一行基本单位的Y值,和最上方一行基本单位的Y值,Y1的值可以任意的保存为两个量,这里我们将SRC(X1,Y1)中的Y1仅保存0和1两个值,0代表最下面的行,1代表最上面的行。对于源点来说,其坐标就变成了SRC(X1,0)和SRC(X1,1)。参考上述例子,X1的范围仍是从0到(Width_M-1),DST(X2,Y2)中的X2的范围是从0到(Width_M-1),Y2的范围是从0到(Height_M-1)。若芯片长宽均为100,则芯片存储的延时信息的数量为100*2*100*100=2000000,与现有技术相比,节约了98%的存储空间。下面举例说明,在本发明实施例提供的延时信息的存储方法基础上的延时信息访问方法,参考图5所示,以优化Y方向为例说明。当需要读取源点SRC到DST之间的延时值时,在FPGA芯片上可以获知SRC的实际坐标,记为SRC(X1,Y1),在实际操作中,若SRC的列坐标小于DST的列坐标,则将SRC沿着Y轴向下平移至最下方的一行,记为新源点NEWSRC,NEWSRC即为SRC所在列与最下端一行交点处的基本单元,新源点NEWSRC的的坐标为(X1,0),将DST沿着Y轴向下平移Y1的距离,记为NEWDST,由于芯片内存储了新源点NEWSRC至芯片上任意基本单元之间的延时值,因此在将DST与SRC同步平移得到点NEWDST后,查找预存的新源点NEWSRC到新目的点NEWDST的延时值即可。若SRC的实际列坐标大于DST的列坐标,参考图5中虚线椭圆内的示意图,SRC与DST是向最上端平移的,分别得到NEWSRC和NEWDST,需要注意的是,DST向上平移的距离不是Y1,而是SRC到最上端一行的距离,查找预存的新源点NEWSRC到新目的点NEWDST的延时值即可。对于芯片中每一行上都仅有一种类型的基本单元的情况,可以在X方向的延时信息存储上做优化参考图6所示。X1的取值只有两个,即芯片最左方一列基本单元的X值,和最右方一行基本单元的X值,X1的值可以任意的保存为两个量,同样的,这里我们将SRC(X1,Y1)中的X1仅保存0和1两个值,0代表最左方的列,1代表最右方列。对于源点来说,其坐标就变成了SRC(0,Y1)和SRC(1,Y1)。参考上述例子,Y1的范围仍是从0到(Height_M-1)。DST(X2,Y2)中的X2的范围是从0到(Width_M-1),Y2的范围是从0到(Height_M-1)。若芯片长宽均为100,则芯片存储的延时数据的数量为100*2*100*100=2000000,与现有技术相比,节约了98%的存储空间。由于X方向的优化原理与Y方向类似,延时信息访问原理也类似,对于优化X方向时的信息访问方法可以上述对Y方向优化时延时值的访问过程,以及延时信息访问方法实施例的说明,这里不再对其作具体说明。对于FPGA芯片上下对称的情况,可以参考图7所示的示意图,左右对称的情况,可以参考图8所示,由于上下对称和左右对称时延时值的访问原理类似,这里不再进行一一介绍,仅以图7所示的上下对称的情况作具体说明。当芯片上下对称时,可以将芯片最上一行或最下一行作为参考行,存储参考行上所有基本单元到其它所有基本单元的延时信息。这里以最下一行为参考行做说明。需要读取源点SRC到DST之间的延时数据时,可以获知的是SRC和DST的实际坐标,记为SRC(X1,Y1),若SRC到参考行的距离小于DST到参考行的距离,即DST的坐标Y2大于SRC的坐标Y1,则将SRC沿着Y轴向下平移至最下方的一行,记为新源点NEWSRC,NEWSRC即为SRC所在列与最下端一行交点处的基本单元,新源点NEWSRC的的坐标为(X1,0)。将DST沿着Y轴向下平移Y1的距离,记为NEWDST,芯片内存储了新源点NEWSRC至芯片上任意基本单元之间的延时值,因此在将DST与SRC同步平移得到点NEWDST后,访问预存的新源点NEWSRC到新目的点NEWDST的延时值即可。对于SRC到参考行的距离大于DST到参考行的距离的情况,需要对SRC和DST做处理,首先,获取SRC和DST相对于FPGA芯片行对称线的对称点,即图7所示的第一SRC和第一DST,然后将第一SRC沿着Y轴向下平移至最下方的一行,记为新源点NEWSRC,NEWSRC即为SRC所在列与最下端一行交点处的基本单元,新源点NEWSRC的的坐标为(X1,0)。将第一DST沿着Y轴向下平移第一SRC的列坐标大小的距离,记为NEWDST,访问预存的新源点NEWSRC到新目的点NEWDST的延时值即可。当选取最上一行为参考行时,数据读取原理与之类似,这里不再赘述。同时,对于FPGA芯片上基本单元呈左右对称分布的情况,其对应的延时信息访问方法与图7的说明类似,可以在图8所示的示意图的基础上参考对图7的说明以及上述对延时信息访问方法实施例的描述,这里不再具体说明需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。申请文件中提及的动词“包括”、“包含”及其词形变化的使用不排除除了申请文件中记载的那些元素或步骤之外的元素或步骤的存在。元素前的冠词“一”或“一个”不排除多个这种元素的存在。虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。所附权利要求的范围符合最宽泛的解释,从而包含所有这样的修改及等同结构和功能。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1