CN114169283B - 可编程逻辑器件的延时估算方法、装置、设备及存储介质 - Google Patents
可编程逻辑器件的延时估算方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114169283B CN114169283B CN202111256386.9A CN202111256386A CN114169283B CN 114169283 B CN114169283 B CN 114169283B CN 202111256386 A CN202111256386 A CN 202111256386A CN 114169283 B CN114169283 B CN 114169283B
- Authority
- CN
- China
- Prior art keywords
- delay
- functional block
- input port
- output
- port
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 46
- 238000010586 diagram Methods 0.000 claims description 52
- 238000004422 calculation algorithm Methods 0.000 claims description 32
- 238000004364 calculation method Methods 0.000 claims description 14
- 230000006870 function Effects 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 8
- 239000011159 matrix material Substances 0.000 claims description 4
- 238000002372 labelling Methods 0.000 claims description 3
- 238000013461 design Methods 0.000 abstract description 5
- 238000012545 processing Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/394—Routing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明公开了一种可编程逻辑器件的延时估算方法、装置、设备及存储介质,属于集成电路设计领域。它包括:获取芯片中各个功能块的结构信息;获取每个功能块中各个输入端口的实际输入延时值,和每个功能块中各个输出端口的实际输出延时值;根据所述功能块中各输出端口的实际输出延时值获取对应功能块中各所述输出端口的统计输出延时值;获取每个所述输入端口所连接的布线单元与其它功能块中的布线单元之间的最短路径延时值;获取所述功能块中的每个所述输入端口与其它功能块中各所述输出端口之间的延时估算值。本发明可以兼顾可编程逻辑器件的内存开销,适用于超大规模的可编程逻辑器件的延时估算。
Description
技术领域
本发明属于集成电路设计领域,涉及现场可编程逻辑器件(如FPGA芯片)集成电路软件工具设计技术,尤其涉及一种可编程逻辑器件的延时估算方法、装置、设备及存储介质。
背景技术
如图2基于A*算法的可编程器件布线算法延时代价模型示意图所示,在现有基于A*算法的可编程器件的布线扩展算法流程中,常采用f=g+h的延时代价模型来估算从当前扩展节点到目标节点的代价值,g表示从源节点到当前扩展节点已走过的延时代价值,加上拥塞因子值;h表示从当前扩展节点到目标节点的延时估算代价值。
在上述基于A*算法的布线扩展中,延时估算值的准确性会极大程度的影响着布线算法的性能,延时估算值越准确,布线扩展导向性越好,扩展的中间节点越少,算法性能越好。
现有技术通常采用距离估算法或预先遍历网表计算延时的方式来获取延时估算值,发明人发现上述获取延时估算值的方式不仅占用内存较多,从而让可编程逻辑器件的内存开销较大,而且上述现有技术方案在对超大规模的可编程器件中距离较远的两个内部端口(pin)进行延时估算时,上述h值的估算准确性较低,从而让距离较远的两个内部端口(pin)的实际延时和预估延时差距较大,进而对布线算法的性能和效率造成较大影响,因此,有必要进行改进。
发明内容
本发明实施例提供一种可编程逻辑器件的延时估算方法、装置、设备及存储介质,不仅兼顾可编程逻辑器件的内存开销,适用于超大规模的可编程逻辑器件的延时估算,而且提升了远距离的布线节点之间延时估算的准确性,有效地提升了基于路径搜索布线算法的扩展性能。
本发明的技术方案如下:提供一种可编程逻辑器件的延时估算方法,其特征在于,包括:
获取芯片中各个功能块的结构信息,所述功能块包括逻辑单元、布线单元以及用于连接所述逻辑单元和布线单元的多个内部端口,所述内部端口包括输入端口和输出端口;
根据预设的布线资源图获取每个功能块中各个输入端口的实际输入延时值,和每个功能块中各个输出端口的实际输出延时值,所述实际输入延时值为所述功能块中逻辑单元至布线单元的实际延时值,所述实际输出延时值为所述功能块中布线单元至逻辑单元的实际延时值;
根据所述功能块中各输出端口的实际输出延时值获取对应功能块中各所述输出端口的统计输出延时值;
根据预设的SPFA算法获取每个所述输入端口所连接的布线单元与其它功能块中的布线单元之间的最短路径延时值;
根据对应所述输入端口的所述实际输入延时值、对应所述输出端口的所述统计输出延时值,和对应所述布线单元的最短路径延时值,获取所述功能块中的每个所述输入端口与其它功能块中各所述输出端口之间的延时估算值。
优选的,还包括:获取芯片中任意两个功能块之间的相对位置信息;根据所述相对位置信息和所述延时估算值为每个所述输入端口构建延时坐标系格子图;对每个功能块中的各个内部端口进行标号,得到多个带有标号的内部端口;根据所述相对位置信息、延时坐标系格子图和每个所述内部端口各自的标号获取任意输入端口与任意输出端口之间的延时估算值。
优选的,所述根据所述相对位置信息和所述延时估算值为每个所述输入端口构建延时坐标系格子图,包括:以所述输入端口所在的功能块作为中心格子,以任意所述输出端口所在的功能块作为其它格子,按照输入端口所在的功能块和输出端口所在的功能块之间的相对位置信息,为每个所述输入端口构建延时坐标系格子图。
优选的,所述以所述输入端口所在的功能块作为中心格子,以任意所述输出端口所在的功能块作为其它格子,按照输入端口所在的功能块和输出端口所在的功能块之间的相对位置信息,为每个所述输入端口构建延时坐标系格子图,包括:获取所述输入端口所在的功能块和各个输出端口所在的功能块之间的相对位置信息;根据所述相对位置信息,以所述输入端口所在的功能块为中心格子,以所述输出端口所在的功能块为其它格子,构建四象限矩阵;将各个输出端口所形成的四象限矩阵叠加组合在一起,得到所述延时坐标系格子图。
优选的,所述根据所述相对位置信息和所述延时估算值为每个所述输入端口构建延时坐标系格子图,还包括:将所述输入端口的标号录入至中心格子上,将所述输入端口与其它功能块上所有输出端口之间的延时估算值分别录入各自功能块所对应的所述其它格子上。
优选的,所述根据所述相对位置信息、延时坐标系格子图和每个所述内部端口各自的标号获取任意输入端口至任意输出端口的延时估算值,包括:获取各个所述输入端口的标号,以及所述输入端口各自对应的坐标系格子图;根据所述输入端口所在功能块和所述输出端口所在的功能块之间的相对位置信息,获取所述输出端口所在的功能块在所述坐标系格子图上所对应的格子坐标;根据所述输入端口的标号和所述输出端口所对应的格子坐标,获取任意输入端口至任意输出端口的延时估算值。
优选的,还包括:根据所述功能块的数量和所述内部端口的数量分发计算任务,所述计算任务为在预设的内存池内为每个所述输入端口构建延时坐标系格子图。
本发明的另一技术方案如下:提供一种可编程逻辑器件的延时估算装置,包括:
芯片结构采集单元,用于获取芯片中各个功能块的结构信息,所述功能块包括逻辑单元、布线单元以及用于连接所述逻辑单元和布线单元的多个内部端口,所述内部端口包括输入端口和输出端口;
实际延时值采集模块,用于根据预设的布线资源图获取每个功能块中各个输入端口的实际输入延时值,和每个功能块中各个输出端口的实际输出延时值,所述实际输入延时值为逻辑单元至布线单元的延时值,所述实际输出延时值为布线单元至逻辑单元的延时值;
统计延时值采集模块,用于根据所述功能块中各输出端口的实际输出延时值获取对应功能块中各所述输出端口的统计输出延时值;
布线单元延时采集模块,用于根据预设的SPFA算法获取每个所述输入端口所连接的布线单元与其它功能块中的布线单元之间的最短路径延时值;
延时估算值采集模块,用于根据对应所述输入端口的所述实际输入延时值、对应所述输出端口的所述统计输出延时值,和对应所述布线单元的最短路径延时值,获取所述功能块中的每个所述输入端口与其它功能块中各所述输出端口之间的延时估算值。
本发明的另一技术方案如下:提供一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述可编程逻辑器件的延时估算方法的步骤。
本发明的另一技术方案如下:提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述可编程逻辑器件的延时估算方法的步骤。
本发明的有益效果如下:
1、由于本申请的统计输出延时值可以通过预设的布线资源图简单、方便地计算出来,且该统计输出延时值可以为各个输出端口的实际输出延时值的平均值、最小值和最大值中的一种,因此,本申请在对每个输入端口进行延时估算时相当于只需要获取某一个输出端口对应的延时值(也即统计输出延时值)即可,这样,本申请在计算每个输入端口的延时估算值时所占用的内存开销明显减少;
2、由于本申请所获取的延时估算值是基于实际延时值(包括实际输入延时值和实际输出延时值)进行计算得到的,因此,本申请最终获取的延时估算值相较于现有技术方案会更加精确,能有效地提高延时估算准确性,从而提高了集成电路设计时的布线扩展导向性,进而提升布线扩展算法的性能,提高了布线算法效率。
3、本申请的各个输入端口所对应的延时坐标系格子图都可以作为延时估算表的数据存储结构,且各个输入端口所对应的所有延时坐标系格子图可以一起打包发送给用户;同时,当用户需要获取任意任意输入端口与任意输出端口之间的延时估算值时,其只需要知道该输入端口的标号,以及输入端口所在的功能块与输出端口对应的功能块之间的相对位置信息,就可以依据延时坐标系格子图方便、快捷的得到该任意输入端口与该输出端口之间的延时估算值,因此,本申请进一步提升了布线扩展算法的性能,提高了布线算法效率。
4、本申请的发明人发现对于单个输入端口而言,从该输入端口所连接的布线单元出发,通过其它功能块(如)上的各个不同输出端口到达该其它功能块上的逻辑单元(CLB)的最小延时值不会相差很大,因此,本申请在现有的SPFA(Shortest path fasteralgorithm)算法的基础上,通过统计输出延时值所获取的延时估算值精确性比较高,具有较大的实际使用价值。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例中可编程逻辑器件的延时估算方法的流程示意图;
图2是基于A*算法的可编程器件布线算法延时代价模型示意图;
图3是本发明一实施例中本申请在布线过程中的用处的结构示意图;
图4是本发明一实施例中芯片内部各个功能块之间的连接结构示意图;
图5是本发明一实施例中延时坐标系格子图的结构示意图;
图6为本发明第二实施例所述可编程逻辑器件的延时估算装置的结构示意图;
图7为本发明第三实施例的电子设备的结构示意图;
图8为本发明第四实施例的存储介质的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明中的术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”、“第三”的特征可以明示或者隐含地包括至少一个该特征。本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。本发明实施例中所有方向性指示(诸如上、下、左、右、前、后……)仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
对于超大规模的可编程逻辑器件(如FPGA芯片)的延时估算而言,由于其在进行延时估算时,需要记录任意节点(也即内部端口,下同)对其它所有节点的延时以形成延时估算表,因此,如果可编程逻辑器件总共有n1*n2个功能块(横向布置的功能块的数量是n1,纵向布置的功能块的数量是n2),每个功能块(tile)上有m个节点(m1个输入节点,m2个输出节点),那么该可编程逻辑器件在获取延时估算值时就有个m1*m2*n1*n2个表项(m1、m2、n1和n2均为正整数)。
对于超大规模可编程逻辑器件而言,m1和m2通常会大于1000,n1和n2通常也会大于100,这样,该超大规模可编程逻辑器件不仅在计算延时估算值时所需要的内存至少要在10GB以上,而且存储上述延时估算值内存也至少要在10GB以上,而这么大的内存开销通常无法被接受,所以现有的延时估算方法也只选定小范围区域的布线单元,只保存这个小范围内点对点的延时信息。特别是对于超过范围的节点,该超大规模可编程逻辑器件就只能通过记录远距离布线单元之间的延时估损值的方式获取延时估算值,但是这种获取延时估算值的方式会导致估算值不准确,从而降低布线扩展算法的性能。
针对上述问题,本发明第一实施例提出了一种新的大规模可编程逻辑器件(如FPGA芯片)布线延时估算的方法,在兼顾内存开销的同时,也提升了远距离的布线节点之间延时估算的准确性,有效地提升了基于路径搜索的布线算法的扩展性能,对于距离远的布线节点(内部端口),也可以在较短的时间内找到布线路径。
图1为本发明第一实施例的可编程逻辑器件的延时估算方法的流程示意图。需注意的是,若有实质上相同的结果,本发明的方法并不以图1所示的流程顺序为限。如图1所示,该可编程逻辑器件的延时估算包括步骤:
S1:获取芯片中各个功能块的结构信息,所述功能块包括逻辑单元、布线单元以及用于连接所述逻辑单元和布线单元的多个内部端口,所述内部端口包括输入端口和输出端口;
本实施例中,可编程逻辑器件也可称为可编程器件,如图4中各功能块之间的连接结构示意图所示,本申请将布线单元(Switch box)和逻辑单元(CLB)合起来统称为功能块(tile),功能块(tile)中每个带箭头的直线均表示内部端口,位于上方的带箭头的直线可以表示输入端口,位于下方带箭头的直线可以表示输出端口,功能块(tile)和内部端口均可以有多个,且输入端口和输出端口的数量可以不相同。
当需要执行布线算法流程时,任意两个逻辑单元之间只能先通过起始功能块(也即当前功能块)的布线单元走线到目标功能块(也即其它功能块)的布线单元,然后到达该目标功能块所对应的逻辑单元;且在起始功能块中,逻辑单元的信号需要通过输入端口到达布线单元;而在目标功能块中,布线单元的信号需要通过输出端口到达逻辑单元。
实际工作时,任意两个逻辑单元之间只能通过起始逻辑单元—输入端口--起始布线单元—目标布线单元—输出端口—目标逻辑单元来传输信号,同时,上述输入端口也可以称为起始端口,输出端口也可以称为目标端口。
S2:根据预设的布线资源图获取每个功能块中各个输入端口的实际输入延时值,和每个功能块中各个输出端口的实际输出延时值,所述实际输入延时值为所述功能块中逻辑单元至布线单元的实际延时值,所述实际输出延时值为所述功能块中布线单元至逻辑单元的实际延时值;
本步骤中,实际输入延时值和实际输出延时值可以统称为实际延时值,布线资源图为本领域的现有技术,对于完整加载的布线资源图来说,布线资源图上的各功能块虽然布置得比较稀疏,但是功能块的各个内部端口自己可以标识是否被允许访问,且可以记录自身的实际延时值,因此,本申请可以很方便的获取每个功能块中各个输入端口的实际输入延时值,和每个功能块中各个输出端口的实际输出延时值。
S3:根据所述功能块中各输出端口的实际输出延时值获取对应功能块中各所述输出端口的统计输出延时值;
实际工作时,本申请的发明人发现由于输入端口的类型不同(比如长线端口,短线端口)和布置位置不同(如一个朝南,另一个朝北)等原因的影响,可编程器件在获取延时值时,距离越远,同一个功能块上不同输入端口的延时值差距就越大,例如有时同一个功能块上不同输入端口至同一个输出端口的延时值会相差几百皮秒,因此,本申请的发明人觉得获取延时估算值时需要对各个不同的输入端口进行区分,以让延时估算值的计算结果更加准确。
同时,本申请的发明人还发现即使两个功能块之间相距很远,但起始功能块上同一个输入端口至目标功能块上各个输出端口的最小(或最大)延时值差距很小,而又由于起始功能块上的布线单元至目标功能块上的布线单元的最短路径延时值可以通过SPFA算法计算出来,上述最短路径延时值相当于一个定值,故本申请可以将目标功能块中对应各输出端口的实际输出延时值的平均值、最小值和最大值中的一种作为统计输出延时值,以备后续计算某个输入端口至各个输出端口的延时估算值,由统计输出延时值计算得到的延时估算值还是比较准确。
进一步的,由于布线单元到逻辑单元的各个输出端口的最短路径延时可以通过SPFA算法依次计算出来,假定各个输出端口对应的实际输出延时值分别是d1、d2…dn,那么到这个功能块(tile)的统计输出延时值就可以通过预定义的输出统计函数来给出:delay=f(d1、d2…dn)。
上述输出统计函数可以取所有实际输出延时值的最小值,也可以取最大值,或者平均值等作为统计输出延时值,至于具体如何选取统计输出延时值可以根据具体的芯片架构来设置,在此,本申请建议取最小值。实际工作时,特定的芯片架构也可以给不同输出端口一定的权重,但是大体上,同一个功能块上不同内部端口之间的实际输出延时值并不会差别太大。
S4:根据预设的SPFA算法获取每个所述输入端口所连接的布线单元与其它功能块中的布线单元之间的最短路径延时值;
本步骤中,由于本申请采用的是现有的布线资源图,而布线资源图上记载有各种延时信息,因此,在所有现有的常用最短路径算法中,SPFA(Shortest path fasteralgorithm)算法是最快的,因为SPFA最不需要依赖于优先队列和hash map,所以本申请采用SPFA算法获取最短路径延时值。
S5:根据对应所述输入端口的所述实际输入延时值、对应所述输出端口的所述统计输出延时值,和对应所述布线单元的最短路径延时值,获取所述功能块中的每个所述输入端口与其它功能块中各所述输出端口之间的延时估算值。
本步骤中,当需要获取获取任意任意输入端口与任意输出端口之间的延时估算值时,本申请只需要先获取当前功能块(tile)上的任意输入端口至全芯片范围的布线单元的最短延时(也即实际输入延时值+最短路径延时值),然后获取上述对应的布线单元至逻辑单元的统计输出延时值(如该功能块上所有输出端口的实际输出延时值的最小值),最后将上述最短延时(也即实际输入延时值+最短路径延时值)和统计输出延时值相加即可得到任意输入端口与任意输出端口之间延时估算值。
例如,某起始功能块上有10个输入端口和10个输出端口,目标功能块上也有10个输入端口和10个输出端口,则当需要确定起始功能块(tile)上的某个输入端口(也即起始输入端口)至目标功能块上某个输出端口(也即目标输出端口)的延时估算值时,步骤如下:
获取起始功能块上对应于该输入端口的实际输入延时值,记为delay-QS-1;
获取目标功能块上对应于所有10个输出端口的最小实际输入延时值,记为delay-MB-min;其中,所有10个输出端口的最小实际输入延时值可以通过取目标功能块中各个输出端口对应的实际输出延时值的最小值实现;
获取该输入端口所对应的布线单元和该输出端口所对应的布线单元之间的最短路径延时值,记为delay-BX;
将所述实际输入延时值、最小实际输入延时值和最短路径延时值三者相加,得到该输入端口至该输出端口的延时估算值,记为delay,也即:
Delay=delay-QS-1+delay-MB-min+delay-BX。
S6:获取芯片中任意两个功能块之间的相对位置信息;
本步骤中,本申请的相对位置信息是指任意两个功能块之间的横向距离和纵向距离,上述相对位置信息可以很好的帮助本申请建立延时坐标系格子图,并确定各个输出端口所在的功能块在延时坐标系格子图上具体对应的是哪个格子。
S7:根据所述相对位置信息和所述延时估算值为每个所述输入端口构建延时坐标系格子图;
本步骤中,构建延时坐标系格子图包括:以所述输入端口所在的功能块作为中心格子,以任意所述输出端口所在的功能块作为其它格子,按照输入端口所在的功能块和输出端口所在的功能块之间的相对位置信息,为每个所述输入端口构建延时坐标系格子图。
如图5的延时坐标系格子图的结构示意图所示,该延时坐标系格子图的中心格子是起始功能块(也即输入端口所在的功能块),延时坐标系格子图的其它格子为各个不同的目标功能块(也即输出端口所在的功能块),各个目标功能块的坐标也即为该目标功能块和起始功能块之间的横向距离和纵向距离。
优选的,为了区分不同输入端口所对应的延时坐标系格子图,并尽快确定输入端口至输出端口延时估算值,以进一步提升布线扩展算法的性能,提高布线算法效率,本步骤还包括:将所述输入端口的标号录入至中心格子上,将所述输入端口与其它功能块上所有输出端口之间的延时估算值分别录入各自功能块所对应的所述其它格子上。这样,本申请可以通过输入端口的标号寻找到该输入端口所对应的延时坐标系格子图,通过找到输出端口所对应的其它格子(也即目标格子)的坐标,从而获取该格子上的延时估算值,进而得到该起始输入端口至目标输出端口的延时估算值,因此,本申请获取延时估算值非常方便,提高了算法性能。
图5所示的延时坐标系格子图可以看成是由多个四象限矩阵叠加组合而成,延时坐标系格子图中的每个格子对应一个功能块,中心格子是指位于延时坐标系格子图的中心原点的格子,其它格子是指除中心格子以外的格子,中心格子对应于输入端口所在的功能块(也即起始功能块),其它格子对应于各个不同输出端口所在的功能块(也即目标功能块),起始功能块(也即中心格子)和任意一个目标功能块(也即其它格子)共同组成一个四象限矩阵,当将所有的四象限矩阵叠加组合在一起后即可得到本申请所述的延时坐标系格子图,其具体方法如下:
a、获取所述输入端口所在的功能块和各个输出端口所在的功能块之间的相对位置信息;
b、根据所述相对位置信息,以所述输入端口所在的功能块为中心格子,以所述输出端口所在的功能块为其它格子,构建四象限矩阵;
c、将各个输出端口所形成的四象限矩阵叠加组合在一起,得到所述延时坐标系格子图。
S8:对每个功能块中的各个内部端口进行标号,得到多个带有标号的内部端口;
本步骤中,各个输入端口可以标记为A1、A2…An,输出端口可以标记为B1、B2…Bn。实际工作时,对于超大规模的可编程器件而言,本申请的内部端口有时候既可以作为输入端口,也可以作为输出端口。
S9:根据所述相对位置信息、延时坐标系格子图和每个所述内部端口各自的标号获取任意输入端口与任意输出端口之间的延时估算值。
实际工作时,当得到任意输入端口与任意输出端口之间的延时估算值之后,将上述所得的所有延时估算值一起打包发送给用户即可,以方便后续的布线操作。
本步骤中,获取任意输入端口与任意输出端口之间的延时估算值步骤包括:S91:获取各个所述输入端口的标号,以及所述输入端口各自对应的坐标系格子图;S92:根据所述输入端口所在功能块和所述输出端口所在的功能块之间的相对位置信息,获取所述输出端口所在的功能块在所述坐标系格子图上所对应的格子坐标;S93:根据所述输入端口的标号和所述输出端口所对应的格子坐标,获取任意输入端口至任意输出端口的延时估算值。
进一步的,假如延时表是DelayTable,当前输入端口的标号是n,输出端口所在的功能块和输入端口所在的功能块之间的横向距离为dx,输出端口所在的功能块和输入端口所在的功能块之间的横向距离为dy,则输出端口所对应的格子在x方向上的差是dx,输出端口所对应的格子在y方向上的差是dy,也即输出端口所在的功能块对应的坐标为(dx,dy),则本申请可以直接通过如下延时计算公式获取延时估算值:Delay=DelayTable[n](dx,dy)。
当需要获取某个输入端口至某个输入端口之间的延时估算值时,本申请可以直接通过上述延时计算公式获取延时估算值,具体如下:
a、获取输入端口的标号,记为n;
b、获取输入端口所在的功能块和输入端口所在的功能块之间的横向距离,记为dx,以及输入端口所在的功能块和输入端口所在的功能块之间的横向距离,记为dy;
c、向延时计算公式Delay=DelayTable[n](dx,dy)中计算因子n、dx和dy得到计算结果Delay,则该计算结果Delay即为该输入端口至该输入端口之间的延时估算值。
本实施例中,本申请还包括:根据所述功能块的数量和所述内部端口的数量分发计算任务,所述计算任务为在预设的内存池内为每个所述输入端口构建延时坐标系格子图。实际工作时,本申请可以采用并行计算的方式在内存池内计算各个输入端口的延时,这样本申请的工作效率会明显提高。
本实施例中,由于上述步骤S1至步骤S5已经能够获得任意输入端口至任意输出端口的延时估算值,而上述步骤S6至步骤S9的作用如何是在延时坐标系格子图的帮助下更方便的获取延时估算值,因此,上述步骤S6至步骤S9为本申请的非必要步骤。
实际工作时,可编程器件的布线模块(也即布线扩展单元)在对用户设计进行布线的时候,会加载生成好的延时估算表格来帮助该布线模块获取从当前节点出发(也即输入端口)到目标节点(也即输出端口)的延时,避免在实际编译用户设计的时候浪费计算时间。
图8为本发明第二实施例的可编程逻辑器件的延时估算装置的结构示意图。如图8所示,可编程逻辑器件的延时估算装置包括:
芯片结构采集单元21,用于获取芯片中各个功能块的结构信息,所述功能块包括逻辑单元、布线单元以及用于连接所述逻辑单元和布线单元的多个内部端口,所述内部端口包括输入端口和输出端口;
实际延时值采集模块22,用于根据预设的布线资源图获取每个功能块中各个输入端口的实际输入延时值,和每个功能块中各个输出端口的实际输出延时值,所述实际输入延时值为逻辑单元至布线单元的延时值,所述实际输出延时值为布线单元至逻辑单元的延时值;
统计延时值采集模块23,用于根据所述功能块中各输出端口的实际输出延时值获取对应功能块中各所述输出端口的统计输出延时值;
布线单元延时采集模块24,用于根据预设的SPFA算法获取每个所述输入端口所连接的布线单元与其它功能块中的布线单元之间的最短路径延时值;
延时估算值采集模块25,用于根据对应所述输入端口的所述实际输入延时值、对应所述输出端口的所述统计输出延时值,和对应所述布线单元的最短路径延时值,获取所述功能块中的每个所述输入端口与其它功能块中各所述输出端口之间的延时估算值。
本申请的延时坐标系格子图可以作为延时表使用,本发明第二实施例的可编程逻辑器件的延时估算装置可以作为延时模块,该延时模块在布线过程中的用处如图3所示,上述延时坐标系格子图的作用就是帮助可编程器件的布线模块更加快速地将布局网表转化成布局布线网表,在厂商支持这款可编程器件(如FPGA芯片)的时候,本申请预先计算生成这些延时数据,并且将它们一起保存到特定格式的文件当中。
关于可编程逻辑器件装置的具体限定可以参见上文中对于可编程逻辑器件方法的限定,在此不再赘述。上述可编程逻辑器件装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
图7是本发明第三实施例的电子设备的结构示意图。如图7所示,该电子设备30包括处理器31及和处理器31耦接的存储器32。
存储器32存储有用于实现上述任一实施例的可编程逻辑器件方法的程序指令。
处理器31用于执行存储器32存储的程序指令以进行排污监测数据处理。
其中,处理器31还可以称为CPU(Central Processing Unit,中央处理单元)。处理器31可能是一种集成电路芯片,具有信号的处理能力。处理器31还可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
参阅图8,图8为本发明第四实施例的存储介质的结构示意图。本发明第四实施例的存储介质40存储有能够实现上述所有方法的程序指令41,其中,该程序指令41可以以软件产品的形式存储在上述存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质,或者是计算机、服务器、手机、平板等终端设备。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。以上仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性和/或易失性的计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,B本申请仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
Claims (10)
1.一种可编程逻辑器件的延时估算方法,其特征在于,包括:
获取芯片中各个功能块的结构信息,所述功能块包括逻辑单元、布线单元以及用于连接所述逻辑单元和布线单元的多个内部端口,所述内部端口包括输入端口和输出端口;
根据预设的布线资源图获取每个功能块中各个输入端口的实际输入延时值,和每个功能块中各个输出端口的实际输出延时值,所述实际输入延时值为所述功能块中逻辑单元至布线单元的实际延时值,所述实际输出延时值为所述功能块中布线单元至逻辑单元的实际延时值;
根据所述功能块中各输出端口的实际输出延时值获取对应功能块中各所述输出端口的统计输出延时值;
根据预设的SPFA算法获取每个所述输入端口所连接的布线单元与其它功能块中的布线单元之间的最短路径延时值;
根据对应所述输入端口的所述实际输入延时值、对应所述输出端口的所述统计输出延时值,和对应所述布线单元的最短路径延时值,获取所述功能块中的每个所述输入端口与其它功能块中各所述输出端口之间的延时估算值。
2.根据权利要求1所述的可编程逻辑器件的延时估算方法,其特征在于,还包括:
获取芯片中任意两个功能块之间的相对位置信息;
根据所述相对位置信息和所述延时估算值为每个所述输入端口构建延时坐标系格子图;
对每个功能块中的各个内部端口进行标号,得到多个带有标号的内部端口;
根据所述相对位置信息、延时坐标系格子图和每个所述内部端口各自的标号获取任意输入端口与任意输出端口之间的延时估算值。
3.根据权利要求2所述的可编程逻辑器件的延时估算方法,其特征在于,所述根据所述相对位置信息和所述延时估算值为每个所述输入端口构建延时坐标系格子图,包括:
以所述输入端口所在的功能块作为中心格子,以任意所述输出端口所在的功能块作为其它格子,按照输入端口所在的功能块和输出端口所在的功能块之间的相对位置信息,为每个所述输入端口构建延时坐标系格子图。
4.根据权利要求3所述的可编程逻辑器件的延时估算方法,其特征在于,所述以所述输入端口所在的功能块作为中心格子,以任意所述输出端口所在的功能块作为其它格子,按照输入端口所在的功能块和输出端口所在的功能块之间的相对位置信息,为每个所述输入端口构建延时坐标系格子图,包括:
获取所述输入端口所在的功能块和各个输出端口所在的功能块之间的相对位置信息;
根据所述相对位置信息,以所述输入端口所在的功能块为中心格子,以所述输出端口所在的功能块为其它格子,构建四象限矩阵;
将各个输出端口所形成的四象限矩阵叠加组合在一起,得到所述延时坐标系格子图。
5.根据权利要求4所述的可编程逻辑器件的延时估算方法,其特征在于,所述根据所述相对位置信息和所述延时估算值为每个所述输入端口构建延时坐标系格子图,还包括:
将所述输入端口的标号录入至中心格子上,将所述输入端口与其它功能块上所有输出端口之间的延时估算值分别录入各自功能块所对应的所述其它格子上。
6.根据权利要求5所述的可编程逻辑器件的延时估算方法,其特征在于,所述根据所述相对位置信息、延时坐标系格子图和每个所述内部端口各自的标号获取任意输入端口至任意输出端口的延时估算值,包括:
获取各个所述输入端口的标号,以及所述输入端口各自对应的坐标系格子图;
根据所述输入端口所在功能块和所述输出端口所在的功能块之间的相对位置信息,获取所述输出端口所在的功能块在所述坐标系格子图上所对应的格子坐标;
根据所述输入端口的标号和所述输出端口所对应的格子坐标,获取任意输入端口至任意输出端口的延时估算值。
7.根据权利要求1至6中任一项所述的可编程逻辑器件的延时估算方法,其特征在于,还包括:根据所述功能块的数量和所述内部端口的数量分发计算任务,所述计算任务为在预设的内存池内为每个所述输入端口构建延时坐标系格子图。
8.一种可编程逻辑器件的延时估算装置,其特征在于,包括:
芯片结构采集单元,用于获取芯片中各个功能块的结构信息,所述功能块包括逻辑单元、布线单元以及用于连接所述逻辑单元和布线单元的多个内部端口,所述内部端口包括输入端口和输出端口;
实际延时值采集模块,用于根据预设的布线资源图获取每个功能块中各个输入端口的实际输入延时值,和每个功能块中各个输出端口的实际输出延时值,所述实际输入延时值为逻辑单元至布线单元的延时值,所述实际输出延时值为布线单元至逻辑单元的延时值;
统计延时值采集模块,用于根据所述功能块中各输出端口的实际输出延时值获取对应功能块中各所述输出端口的统计输出延时值;
布线单元延时采集模块,用于根据预设的SPFA算法获取每个所述输入端口所连接的布线单元与其它功能块中的布线单元之间的最短路径延时值;
延时估算值采集模块,用于根据对应所述输入端口的所述实际输入延时值、对应所述输出端口的所述统计输出延时值,和对应所述布线单元的最短路径延时值,获取所述功能块中的每个所述输入端口与其它功能块中各所述输出端口之间的延时估算值。
9.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7中任一项所述可编程逻辑器件的延时估算方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述可编程逻辑器件的延时估算方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111256386.9A CN114169283B (zh) | 2021-10-27 | 2021-10-27 | 可编程逻辑器件的延时估算方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111256386.9A CN114169283B (zh) | 2021-10-27 | 2021-10-27 | 可编程逻辑器件的延时估算方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114169283A CN114169283A (zh) | 2022-03-11 |
CN114169283B true CN114169283B (zh) | 2024-04-05 |
Family
ID=80477402
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111256386.9A Active CN114169283B (zh) | 2021-10-27 | 2021-10-27 | 可编程逻辑器件的延时估算方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114169283B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115146579A (zh) | 2022-07-14 | 2022-10-04 | 东南大学 | 一种数字集成电路布线后路径延时预测方法 |
CN117236253B (zh) * | 2023-11-10 | 2024-02-02 | 苏州异格技术有限公司 | 一种fpga布线方法、装置、计算机设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010100871A1 (ja) * | 2009-03-03 | 2010-09-10 | 日本電気株式会社 | 遅延ライブラリ生成システム |
CN103366028A (zh) * | 2012-03-31 | 2013-10-23 | 中国科学院微电子研究所 | 一种现场可编程门阵列芯片布局方法 |
CN103366029A (zh) * | 2012-03-31 | 2013-10-23 | 中国科学院微电子研究所 | 一种现场可编程门阵列芯片布局方法 |
CN106709119A (zh) * | 2015-11-18 | 2017-05-24 | 京微雅格(北京)科技有限公司 | 一种fpga芯片布线方法 |
WO2017113058A1 (zh) * | 2015-12-28 | 2017-07-06 | 京微雅格(北京)科技有限公司 | 一种基于plb的fpga芯片布线方法 |
-
2021
- 2021-10-27 CN CN202111256386.9A patent/CN114169283B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010100871A1 (ja) * | 2009-03-03 | 2010-09-10 | 日本電気株式会社 | 遅延ライブラリ生成システム |
CN103366028A (zh) * | 2012-03-31 | 2013-10-23 | 中国科学院微电子研究所 | 一种现场可编程门阵列芯片布局方法 |
CN103366029A (zh) * | 2012-03-31 | 2013-10-23 | 中国科学院微电子研究所 | 一种现场可编程门阵列芯片布局方法 |
CN106709119A (zh) * | 2015-11-18 | 2017-05-24 | 京微雅格(北京)科技有限公司 | 一种fpga芯片布线方法 |
WO2017113058A1 (zh) * | 2015-12-28 | 2017-07-06 | 京微雅格(北京)科技有限公司 | 一种基于plb的fpga芯片布线方法 |
CN110313002A (zh) * | 2015-12-28 | 2019-10-08 | 京微雅格(北京)科技有限公司 | 一种基于plb的fpga芯片布线方法 |
Non-Patent Citations (2)
Title |
---|
基于可扩展标准单元的半定制电路设计方法;李碧琛;沈海斌;郑丹丹;严晓浪;;机电工程;20130620(第06期);全文 * |
现场可编程门阵列动态重构下的低功耗研究;徐新民;吴晓波;严晓浪;;浙江大学学报(工学版);20070228(第02期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114169283A (zh) | 2022-03-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114169283B (zh) | 可编程逻辑器件的延时估算方法、装置、设备及存储介质 | |
CN110319845B (zh) | 用于确定两点之间的可达路径的方法、装置和系统 | |
CN110221600A (zh) | 路径规划方法、装置、计算机设备和存储介质 | |
CN104298541A (zh) | 云存储系统的数据分布算法及其装置 | |
CN110503602B (zh) | 一种图像的投影变换方法、装置及电子设备 | |
US10715628B2 (en) | Attribute operating method and device | |
US10564891B2 (en) | Storage device operations using a die translation table | |
CN113295160A (zh) | 基于视觉导航的地图加载方法、装置、设备及存储介质 | |
CN114706834A (zh) | 一种高效率的动态集合管理方法和系统 | |
CN116991855B (zh) | 哈希表处理方法、装置、设备、介质、控制器及固态硬盘 | |
US11507799B2 (en) | Information processing apparatus and method of operating neural network computing device therein | |
CN113375657A (zh) | 电子地图的更新方法、装置和电子设备 | |
CN109697234B (zh) | 实体的多属性信息查询方法、装置、服务器和介质 | |
CN111402958A (zh) | 一种建立基因比对表的方法、系统、设备及介质 | |
CN111274315A (zh) | 同步数据通道构建方法、装置、计算机设备和存储介质 | |
CN116208465A (zh) | 一种电力信息通信状况智能监测预警方法及系统 | |
CN110399354B (zh) | 数据库的分区交换方法及装置 | |
CN112948291B (zh) | 数据传输方法、电子设备和可读存储介质 | |
CN111310906B (zh) | 神经形态芯片中计算核的布局的方法、装置及设备 | |
CN111060127B (zh) | 车辆起点定位方法、装置、计算机设备和存储介质 | |
CN107368512B (zh) | 信息对象的查询和序列确定方法、装置及设备、可读介质 | |
CN116547652A (zh) | 闪存的数据处理方法和数据处理装置 | |
CN116134488A (zh) | 点云标注方法、装置、计算机设备和存储介质 | |
CN106443732B (zh) | 一种基于gps的路径图绘制方法和系统 | |
US7653498B2 (en) | Apparatus for and method of calculating many-body problem |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |