CN116663464A - 一种关键时序路径的优化方法及系统 - Google Patents

一种关键时序路径的优化方法及系统 Download PDF

Info

Publication number
CN116663464A
CN116663464A CN202310954693.7A CN202310954693A CN116663464A CN 116663464 A CN116663464 A CN 116663464A CN 202310954693 A CN202310954693 A CN 202310954693A CN 116663464 A CN116663464 A CN 116663464A
Authority
CN
China
Prior art keywords
supernode
node
processor
candidate
fan
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.)
Granted
Application number
CN202310954693.7A
Other languages
English (en)
Other versions
CN116663464B (zh
Inventor
贝泽华
杨静磊
唐洁群
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Hejian Industrial Software Group Co Ltd
Original Assignee
Shanghai Hejian Industrial Software Group Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Hejian Industrial Software Group Co Ltd filed Critical Shanghai Hejian Industrial Software Group Co Ltd
Priority to CN202310954693.7A priority Critical patent/CN116663464B/zh
Publication of CN116663464A publication Critical patent/CN116663464A/zh
Application granted granted Critical
Publication of CN116663464B publication Critical patent/CN116663464B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • G06F30/331Design verification, e.g. functional simulation or model checking using simulation with hardware acceleration, e.g. by using field programmable gate array [FPGA] or emulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • G06F30/3312Timing analysis
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Abstract

本发明涉及电子设计自动化技术领域,特别是涉及一种关键时序路径的优化方法及系统,该优化方法通过评估关键路径上节点的到达时间,来决定各节点的目标处理器,其中对于节点i,其目标处理器为使得相关时序路径终点到达时间最短的处理器。通过该方法,在优化的过程中直接基于时序图计算每个节点的最短到达时间,从而避免出现仿真结果与实际不一致的情况,并且本发明能够使得所有时序图终点的到达时间达到最优,也即每条关键路径上的到达时间为最短到达时间,能够提高整体电路性能。

Description

一种关键时序路径的优化方法及系统
技术领域
本发明涉及电子设计自动化技术领域,特别是涉及一种关键时序路径的优化方法及系统。
背景技术
在基于FPGA的硬件加速验证系统中,一个设计将被分割并放入多个FPGA中。因此,时序路径将跨越多个FPGA。由于FPGA间的延时大于FPGA内的延时,关键时序路径通常会跨越多个FPGA,从而限制系统性能。为了提高系统的工作频率,需要对关键时序路径上的传输时间进行优化。
目前对于关键时序路径的优化方法包括在组合逻辑中插入寄存器、寄存器平衡、操作符平衡、消除代码优先级、逻辑复制和关键信号后移。其中逻辑复制是当某个信号的扇出比较大时,会造成该信号到各个目的逻辑节点的路径变得过长,从而称为设计中的关键时序路径,此时可以通过复制该信号来降低扇出。
现有技术中通过复制当前信号来降低关键时序路径的扇出,能够在一定程度上降低关键路时序径的延时,但是会存在以下技术问题:
1.现有技术中通过独立于实际逻辑电路重新建立时序图,在时序图上独立进行模拟仿真的方式计算跨FPGA关键路径的延时,由于时序图独立于实际逻辑电路容易造成仿真结果与实际逻辑电路中的结果不一致的问题。
2.在时序图中的节点较多,在进行路径优化的过程中计算复杂度高,计算资源消耗大。
发明内容
针对上述技术问题1,本发明采用的技术方案为:
第一方面,本发明一个实施例提供了一种关键时序路径的优化方法,所述方法包括:
S100,获取关键时序路径中的多个超节点,其中超节点i具有端口集Pi和候选处理器集Fi,超节点i为同一个处理器中的一个或多个电路模块;其中,Pi中的第m个端口为pm,Fi中第a个候选处理器fa为超节点i可复制到的候选位置,m的取值范围为1到M,M为超节点i的端口总数,a的取值范围为1到A,A为超节点i的候选处理器的总数量。
S200,根据拓扑排序顺序访问超节点,当超节点i不属于固定节点时,计算超节点i的目标处理器并将超节点i复制到目标处理器中;其中,目标处理器的获取步骤包括:
S220,获取超节点i的pm与位于第b个处理器fb的扇出节点j的端口pn之间的候选路径arci,pm->j,pn;将超节点i的pm分别复制到Fi中的每个候选处理器中,得到由的pm到达扇出节点j的pn的A个到达时间构成的到达时间集Arrj i,pm,fb,pn,Arrj i,pm,fb,pn中的arrj i,fa,pm,fb,pn为将超节点i的pm复制到fa中得到的到达时间。
S240,计算扇出节点j的所有候选路径的到达时间集,根据到达时间集计算扇出节点j位于fb时中pn的最佳到达时间arrj fb,pn
S260,获取Arrj i,pm,fb,pn中所有满足arrj i,fa,pm,fb,pn≤arrj fb,pn的到达时间对应的超节点i的pm被复制到的处理器集合,得到超节点i的pm的最佳候选处理器集。
S280,根据超节点i的所有扇出节点,获取超节点i的所有最佳候选处理器集,根据超节点i的pm的所有最佳候选处理器集获取超节点i复制的目标处理器。
第二方面,本发明另一个实施例提供了一种关键时序路径的优化系统,包括处理器和与所述处理器通信连接的存储介质,其中,当所述处理器执行在所述存储介质内的程序时,所述系统可实施前述的一种关键时序路径的优化方法。
本发明与现有技术相比具有明显的有益效果,借由上述技术方案,本发明提供的一种关键时序路径的优化方法及系统,可达到相当的技术进步性及实用性,并具有产业上的广泛利用价值,其至少具有以下有益效果:
本发明提供了实施例一提供了一种关键时序路径的优化方法及系统,其通过评估关键路径上节点的到达时间,来决定各节点的目标处理器,其中对于节点i复制到不同处理器上之后相应节点与扇出节点j候选路径上的到达时间,选取每条路径上的最短到达时间,扇出节点j的最佳到达时间为所有端口的最短到达时间的最大值,根据扇出节点j的最佳到达时间获取节点i被复制到的目标处理器。通过该方法在优化的过程中不需要脱离逻辑电路,而是直接基于该逻辑电路计算每个节点的最短到达时间,不会出现仿真结果与实际不一致的情况,并且本发明能够使最终获得目标处理器能够使每个节点的到达时间为最短到达时间,也即每条关键路径上的到达时间为最短到达时间,能够提高整体电路性能。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种关键时序路径的优化方法流程图;
图2为本发明实施例提供的部分超节点的连接关系示意图;
图3为本发明另一个实施例提供的一种超节点的提取方法流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了解决技术问题1本发明提供了实施例一。
实施例一
本发明在不改变关键时序路径中节点之间连接关系的情况下,通过重新配置关键路径中每个节点所放置的处理器,使关键时序路径上的传播时间最优。
请参阅图1,其示出了一种关键时序路径的优化方法流程图,该优化方法包括以下步骤:
S100,获取关键时序路径中的多个超节点,其中超节点i具有端口集Pi和候选处理器集Fi,超节点i为同一个处理器中的一个或多个的电路模块;其中,Pi中的第m个端口为pm,Fi中第a个候选处理器fa为超节点i可复制到的候选位置,m的取值范围为1到M,M为超节点i的端口总数,a的取值范围为1到A,A为超节点i的候选处理器的总数量。
其中,关键时序路径为用户设计中从输入到输出经过的延时最长的路径。一般情况下跨处理器的延时远大于在处理器内部的延时,因此对关键时序路径的优化即为对跨处理器的延时的优化。
具体的,超节点i的端口集Pi={p1,p2,…,pm,…,pM},m的取值范围为1到M,M为超节点i中端口的数量。超节点i的候选处理器集Fi={f1,f2,…,fa,…,fA},a的取值范围为1到A,A为超节点i的候选处理器的数量。需要说明的是,不同超节点的端口数量和候选处理器集可以相同,也可以不同。
其中,候选处理器包括所有可放置复制的超节点i的处理器,每个超节点对应的候选处理器集可以由用户指定。
可选的,处理器为可编程阵列逻辑(Field Programmable Gate Array,FPGA)。
可选的,电路模块为处理器中的标准元件、由逻辑电路构成的功能模块、或者为多个标准元件的组合电路。超节点包括两种类型,一种类型为具有一个输出和至少一个输入,另一种类型为具有多个输出和至少一个输入。超节点是复制的基本单位,不可复制更小的逻辑单元。当选择将某一个超节点复制到其他处理器中时,构成该超节点的每个单元均会被复制。
S200,根据拓扑排序顺序访问超节点,当超节点i不属于固定节点时,计算超节点i的目标处理器并将超节点i复制到目标处理器中。
可选的,固定节点包括用户指定不可移动的电路单元,每条关键时序路径的起始节点和终止节点。
其中,复制前后电路之间的连接关系不变。若将当前节点复制到另一个处理器之后,相连的两个节点若处于同一个处理器中,则能够将跨处理器的延时转化为处理器内部的延时,进而减少关键时序路径的延时,达到优化关键时序路径的目的。若在复制之后并未处于同一个处理器内但路径上的延时小于复制前的延时,同样也能够达到减少关键时序路径的延时的目的。
进一步,目标处理器的获取步骤包括:
S220,获取超节点i的pm与位于第b个处理器fb的扇出节点j的端口pn之间的候选路径arci,pm->j,pn;将超节点i的pm分别复制到Fi中的每个候选处理器中,得到由arci,pm->j,pn到达扇出节点j的pn的A个到达时间构成的到达时间集Arrj i,pm,fb,pn,Arrj i,pm,fb,pn中的arrj i,fa,pm,fb,pn为将超节点i的pm复制到fa中得到的到达时间;
需要说明的是,由于超节点i复制前后的连接关系不变,也即无论将超节点i复制到哪一个处理器中,候选路径arci,pm->j,pn的连接关系不变。
请参阅附图2,超节点i的扇出节点为超节点j,超节点k的扇出节点也是超节点j,且超节点i的端口pm和超节点j的端口pn连接形成候选路径arci,pm->j,pn,超节点k的端口pd和超节点j的端口ps连接形成候选路径arck,pd->j,ps。其中超节点i具有候选处理器集Fi,超节点k具有候选处理器集Fk。根据S220,将超节点i的pm复制到Fi的不同处理器中,计算当超节点i的pm被复制到各处理器中时,由候选路径arci,pm->j,pn到达节点j的pn的到达时间,得到pn的到达时间集Arrj i,pm,fb,pn;同理,根据S220,得到将超节点k的pd复制到Fk的不同处理器中,得到ps的到达时间集Arrj k,pd,fb,pn
作为一个优选实施例,arrj i,fa,pm,fb,pn满足:arrj i,fa,pm,fb,pn=arri fa,pm+dfa ,fb i,pm->j,pn;其中,arri fa,pm为将超节点i的pm复制在fa时的最佳到达时间;dfa,fb i,pm->j,pn为当超节点i的pm复制在fa且扇出节点j的pn复制在fb中时,候选路径arci,pm->j,pn上的时间延时。arrj i,fa,pm,fb,pn为当超节点i的pm被放置在fa中且扇出节点j被放置在fb中时由候选路径arci,pm->j,pn到pn的到达时间。
作为一个优选实施例,Arrj i,pm,fb,pn满足:Arrj i,pm,fb,pn={arrj i,fa,pm,fb,pn|fa∈Fi,arci,pm->j,pn},也即当候选路径arci,pm->j,pn不变时,将超节点i的pm分别放置在Fi的不同处理器中且扇出节点j被放置在fb中时,由候选路径arci,pm->j,pn到pn的A个到达时间。
每个超节点的到达时间沿着传播路径依次迭代增加,通过S220能够得到每个超节点的输出端口在不同处理器时相应候选路径的到达时间。
S240,计算扇出节点j的所有候选路径的到达时间集,根据到达时间集计算fb中扇出节点j位于fb时pn的最佳到达时间arrj fb,pn
作为一个优选实施例,arrj fb,pn满足:arrj fb,pn=maxi,pm(minfa(arrj i,fa,pm,fb,pn));其中,minfa(arrj i,fa,pm,fb,pn)为将超节点i的pm复制到Fi的每个候选处理器中得到的到达时间的最短到达时间;maxi,pm(▪)为获取扇出节点j的pn的所有候选路径的最短到达时间的最大值。
需要说明的是,将扇出节点j的到达时间设置为所有端口对应的到达时间的最大值,能够保证所有候选路径中的数据在最佳到达时间内都能够到达。
可选的,根据搜索算法能够得到每个节点的到达时间,搜索算法为深度优先遍历算法或广度优先遍历算法等,现有技术中其他能够通过搜索功能计算到达时间的算法均落入本发明的保护范围。根据搜索算法能够逐步向前累积的计算每个节点的到达时间。在关键时序路径中,关键时序路径的起始节点和终止节点为固定节点,不能被复制到其他处理器中,以关键时序路径的起始节点为搜索的首个节点进行搜索,计算其扇出节点的最佳到达时间,以此类推计算出所有扇出节点的最佳到达时间。
请再次参阅图2,若节点j只具有两个端口pn、ps和一个输出端口pu,其中pn的最短达到时间为minfa(arrj i,fa,pm,fb,pn),ps的最短达到时间为minfa(arrj k,fa,pd,fb,ps),则pu的最佳达到时间为minfa(arrj i,fa,pm,fb,pn)和minfa(arrj k,fa,pd,fb,ps)中的最大值。
通过S240能够得到每个超节点的最佳到达时间。
S260,获取Arrj i,pm,fb,pn中所有满足arrj i,fa,pm,fb,pn≤arrj fb,pn的到达时间对应的超节点i的pm被复制到的处理器集合,得到节点i的pm的最佳候选处理器集。
需要说明的是,超节点i的pm放置在最佳候选处理器集中任意一个处理器中,都将得到最佳达到时间arrj fb,pn
S280,根据超节点i的所有扇出节点,获取超节点i的pm的所有最佳候选处理器集,根据超节点i的pm的所有最佳候选处理器集获取超节点i复制的目标处理器。
作为一个优选实施例,S280中获取目标处理器的步骤包括:
S282,根据超节点i的pm的所有W个扇出节点,获取超节点i的pm的W个最佳候选处理器集Ri t={Ri t1,Ri t2,…,Ri tw,…Ri tW},其中Ri tw为根据第w个扇出节点得到超节点i的pm的最佳候选处理器集,w的取值范围为1到W。需要说明的是,在获取最佳候选处理器时以超节点i的输出端口作为优化的对象进行处理。
S283,统计Ri中每个处理器出现的次数;对于每个扇出w,选择在Ri t中出现次数最多的处理器为超节点i的pm复制的目标处理器。
S284,以超节点i的pm复制的目标处理器为超节点i复制的目标处理器。由于超节点i为一个整体,因此得到超节点i的输出端口应当复制的目标处理器时,输出端口将目标处理器发送给超节点i的其他端口,使属于超节点i的所有端口复制到同一个目标处理器中。
请再次参阅图2,当节点i具有多个扇出节点:扇出节点j和扇出节点h,且超节点i的端口pm和超节点h的端口pv连接形成候选路径arci,pm->h,pv。扇出节点j通过候选路径arci,pm->j,pn由后向前的选择pm复制的处理器,扇出节点h也会通过候选路径arci,pm->h,pv由后向前的选择pm复制的处理器,每个扇出节点都会获取pm复制的最佳处理器集,处理器被选择一次则相应处理器的权重加一,权重最大的候选处理器能够满足更多扇出节点的复制需求,进而降低复制代价。需要说明的是,在得到pm复制到的目标处理器之后,pm会将目标处理器发送给同一个超节点中的其他端口,在复制时同时复制超节点i的相关端口及端口之间的电路模块,其中复制代价为复制的面积,每一个超节点都是由相应的逻辑电路组成或者为具有多个输出端口的电路单元,每复制一次到相应的处理器中都需要占用相应的硬件资源,复制超节点的数量越多,复制代价越大。
作为一个优选实施例,则S200还包括:S250,获取节点i的pm复制在fa的最差负时序裕量arrBndi,fa,pm(Worst Negative Slack),将最佳到达时间arri fa,pm更新为arrBndi,fa,pm。需要说明的是,S250执行之后再执行S260。在松弛到达时间的放松下能够释放出更多满足条件的处理器存储在最佳候选处理器集中,进而使得在后续获取目标处理器中能够有更多满足条件的目标处理器。例如,当没有执行S250时,S282中超节点i共计三个扇出节点,三个扇出节点对应超节点i的pm的3个最佳候选处理器集分别为{fa,fb,fc}、{fa,fd,fe}和{fg},最终得到的目标处理器为fa和fg;当执行S250时,释放出更多满足条件的到达时间之后,得到的最佳候选处理器集分别为{fa,fb,fc}、{fa,fc,fd,fe}和{fg,fc},此时得到的目标处理器为fc,此时存在更多满足条件的最佳候选处理器,能够在满足系统需求的情况下使优化的结果更加优化。
其中,节点i的pm复制在fa的最差负时序裕量arrBndi,fa,pm的获取步骤包括:
S252,以节点i为目标节点i,获取目标节点i的R个扇出节点,获取目标节点i到达每个扇出节点的候选路径上的时间延时和每个扇出节点的最差负时序裕量。需要说明的是,由终点的最差负时序裕量依次由后向前计算每个超节点输出端口的最差负时序裕量,其中终点的最差负时序裕量为预设值。
S254,计算目标节点i的R个候选最差负时序裕量,其中目标节点i的pm与扇出节点j的pn的候选最差负时序裕量arrBndi,fa,pm满足:arrBndi,fa,pm=arrBndj,fb,pn-dfa,fb i,pm->j,pn,其中,arrBndj,fb,pn为扇出节点j的pn的最差负时序裕量,dfa,fb i,pm->j,pn为目标节点i的端口pm复制在fa上且节点j的端口pn复制在处理器fb上时候选路径arci,pm->j,pn上的时间延时。
S256,计算R个候选最差负时序裕量的最小值,得到arrBndi,fa,pm
当下一级扇出节点y为终点时,arr0y为预设值。
综上所述,实施例一提供了一种关键时序路径的优化方法,该优化方法通过计算将节点i复制到不同处理器上之后相应节点与扇出节点j候选路径上的到达时间,选取每条路径上的最短到达时间,扇出节点j的最佳到达时间为所有端口的最短到达时间的最大值,根据扇出节点j的最佳到达时间获取节点i被复制到的目标处理器。通过该方法在优化的过程中不需要脱离逻辑电路,而是直接基于该逻辑电路计算每个节点的最短到达时间,不会出现仿真结果与实际不一致的情况,并且本发明能够使最终获得目标处理器能够使每个节点的到达时间为最短到达时间,也即每条关键路径上的到达时间为最短到达时间,能够提高整体电路性能。
基于与上述实施例一中的方法实施例相同的发明构思,本发明实施例一还提供了一种关键时序路径的优化系统,该系统包括处理器和与所述处理器通信连接的存储介质,其中,当所述处理器执行在所述存储介质内的程序时,所述系统可实施根据上述实施例一提供的一种关键时序路径的优化方法,其中一种关键时序路径的优化方法在上述实施例一中已经详细说明,不再赘述。
为了解决该问题2,本发明实施例进一步的提供了一种超节点的提取方法及系统。
实施例二
请参阅图3,实施例二提供了一种超节点的提取方法,所述方法包括以下步骤:
P100,根据时序电路的时序图,提取有向图,其中所述有向图中的节点为电路器件的输入端口和输出端口,有向图中的边为时序弧。
可选的,所述时序电路分布于多个处理器。
其中,时序电路是具有记忆功能的电路,记忆元件一般采用触发器,时序电路由组合电路和触发器组成。
其中,时序图中的时序弧(timing arc)为两个节点之间的延时路径,用于连接每一个发出信号的端口以及接收信号的端口。发出信号的端口和接收信号的端口可以分别是一个单元的输出端口和另一个单元的输入端口,还可以是一个单元的输入端口和自身的输出端口。时序弧包括时序单元间路径和时序单元内路径。时序单元间路径为一个单元的输出端口和另一个单元的输入端口之间的延时路径。时序单元内路径为单元的输入端口和自身输出端口的延时路径。其中,时序单元的种类有寄存器、锁存器和存储器等。
需要说明的是,由于用户设计比较大,一般需要放入多个处理器中。为了获取完整的时序图,需要将所有处理器中的时序电路作为一个整体提取时序图。
P200,获取所述有向图中的目标关键路径终点,根据预设的延时阈值提取结束于每个目标关键路径终点的所有目标关键路径,每个目标关键路径终点的所有目标关键路径上的边和节点构成的关键锥形子图。需要说明的是,每个目标关键路径终点对应一个关键锥形子图。
其中,前置节点为目标节点的上一级节点,目标节点为前置节点的扇出节点。
可选的,搜索算法为深度优先遍历算法或广度优先遍历算法等,现有技术中其他能够通过搜索功能计算到达时间的算法均落入本发明的保护范围。
作为一个优选实施例,关键路径的获取步骤包括:获取时序图中每条路径的传播时间,获取关键路径的延时阈值范围,筛选传播时间在延时阈值范围内的路径得到关键路径。
作为一个优选实施例,P200还包括锥形子图的提取步骤:根据搜索算法获取每个终点的锥形子图,其中目标关键路径终点e的锥形子图的获取步骤包括:以目标关键路径终点e为目标节点,遍历目标节点的所有前置节点得到目标前置节点;以每个目标前置节点为新的目标节点,获取新的目标节点的所有目标前置节点,以此类推,由后向前搜索,直至没有前置节点,结束搜索,得到的搜索范围为目标关键路径终点e的锥形子图。
其中,P200还包括目标关键路径终点e的关键锥形子图的提取步骤还包括:在遍历目标节点的所有前置节点时,根据预设的延时阈值,当前置节点与目标节点之间的传播时间在延时阈值范围内时,得到目标前置节点,以每个目标前置节点为新的目标节点,获取新的目标节点的所有目标前置节点,以此类推,由后向前搜索,直至没有前置节点,结束搜索,得到的搜索范围为终点e的关键锥形子图。
P300,将所有关键锥形子图合并为关键有向图G_crit,对G_crit中的节点进行拓扑排序并依次访问以获取超节点。进一步,超节点的获取步骤包括:
P310,对于节点r,查询节点r的所有前置节点,将满足合并条件的前置节点与节点r合并为新的节点r´;所述合并条件为:节点r与前置节点q在同一个处理器内、前置节点q为可复制节点、前置节点q只有一个扇出信号且扇出信号的接收节点只有节点r。
P320,根据新的节点r´重复执行P310-P320,当节点r´的前置节点均不满足合并条件时结束合并,得到超节点。
作为一个优选实施例,还包括P330,将时序图中的节点划分为三类:关键节点、相关节点和不相关节点,其中,关键节点为关键锥形子图中的节点,相关节点为所有目标关键路径终点对应的锥形子图中的节点,不相关节点为时序图中不属于相关节点的任意节点,根据以下任意一个条件划分超节点:对于关键节点,根据P310-P320获取超节点;将每个处理器中的相关节点中的非关键节点划分为一个超节点;将每个处理器中的不相关节点划分为一个超节点。需要说明的是,相关节点包含但不等于关键节点,不相关节点和相关节点间没有交集。
在后续进行路径优化时,不需要遍历超节点内部的节点计算时间等数据,只需要将超节点作为一个整体进行处理即可,因此能够减少计算的复杂度,减少占用的计算资源。将单扇出的逻辑单元组合为一个超节点,超节点为单扇出,有利于在复制时仅复制相关的逻辑单元,不会复制其他扇出路径上的逻辑单元,减少复制面积。
通过P310-P320的方法得到的超节点不会增加新的循环路径,创建的超节点能够避免冗余复制,减少复制代价,节约硬件资源。对于不满足合并条件的时序单元,也即将具有多扇出的单元独立划分为一个超节点,即使复制的超节点具有多个扇出,由于该超节点中仅包含单个多扇出的逻辑单元,在复制该超节点时不会连带复制其他相关电路,因此能够避免冗余复制,因此降低了复制面积。对于具有单扇出的前置节点则通过合并创建超节点,该创建方式没有创建出多输出节点,在复制时复制的超节点为单扇出,将不相关的逻辑单元与其扇出路径解耦合,最大程度的降低复制面积,有利于在复制时仅复制相关的逻辑单元,不会复制其他扇出路径上的逻辑单元,因此能够避免冗余复制。
作为一个优选实施例,超节点内部的时序弧为超节点内部边界节点之间的时序路径,其中,边界节点为超节点内部节点中与超节点外部的其他节点建立连接的节点。所述超节点的内部节点包括边界节点和非边界节点,非边界节点为不与超节点外部的其他节点建立连接的节点。
作为一个优选实施例,所述方法还包括:
P400,利用超节点更新时序图,更新后的时序图中的节点为超节点,其中超节点包括与超节点外部的其他节点建立连接的边界节点和不与超节点外部的其他节点建立连接的内部节点;超节点中的边界节点与外部超节点的连接关系构成更新后的时序图中的边。
在该更新后的时序图的基础上执行实施例一提供的一种关键时序路径的优化方法,能够减少计算资源、降低计算复杂度、减少复制面积,节约硬件资源,同时能够避免复制无关电路引入更多的时序问题。
综上所述,实施例二提供了一种超节点的提取方法,根据时序电路的时序图提取有向图,根据目标终点提取时序图中结束于终点的关键锥形子图;将所有关键锥形子图合并为关键有向图,根据关键有向图的拓扑顺序依次访问节点,通过将每个满足合并条件的前置节点与当前节点进行合并,以合并后的节点为新的节点再次访问其前置节点,以此类推,得到超节点;将不满足合并条件的时序单元和固定节点分别独立为超节点。通过本发明提供的提取方法得到的超节点在进行路径优化时相比较时序图能够减少计算复杂度,减少计算资源的消耗,创建的超节点并未增加新的循环路径,能够避免冗余复制,减少复制代价,节约硬件资源。
基于与上述方法实施例相同的发明构思,本发明实施例还提供了一种超节点的提取系统,包括处理器和与所述处理器通信连接的存储介质,其中,当所述处理器执行在所述存储介质内的程序时,所述系统可实施根据实施例二提供的一种超节点的提取方法。其中一种超节点的提取方法在上述实施例二中已经详细说明,不再赘述。
虽然已经通过示例对本发明的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本发明的范围。本领域的技术人员还应理解,可以对实施例进行多种修改而不脱离本发明的范围和精神。本发明开的范围由所附权利要求来限定。

Claims (8)

1.一种关键时序路径的优化方法,其特征在于,所述方法包括:
S100,获取关键时序路径中的多个超节点,其中超节点i具有端口集Pi和候选处理器集Fi,超节点i为同一个处理器中的一个或多个电路模块;其中,Pi中的第m个端口为pm,Fi中第a个候选处理器fa为超节点i可复制到的候选位置,m的取值范围为1到M,M为超节点i的端口总数,a的取值范围为1到A,A为超节点i的候选处理器的总数量;
S200,根据拓扑排序顺序访问超节点,当超节点i不属于固定节点时,计算超节点i的目标处理器并将超节点i复制到目标处理器中;其中,目标处理器的获取步骤包括:
S220,获取超节点i的pm与位于第b个处理器fb的扇出节点j的端口pn之间的候选路径arci,pm->j,pn;将超节点i的pm分别复制到Fi中的每个候选处理器中,得到由arci,pm->j,pn到达扇出节点j的pn的A个到达时间构成的到达时间集Arrj i,pm,fb,pn,Arrj i,pm,fb,pn中的arrj i,fa,pm,fb,pn为将超节点i的pm复制到fa中得到的到达时间;
S240,计算扇出节点j的所有候选路径的到达时间集,根据到达时间集计算扇出节点j位于fb时pn的最佳到达时间arrj fb,pn
S260,获取Arrj i,pm,fb,pn中所有满足arrj i,fa,pm,fb,pn≤arrj fb,pn的到达时间对应的超节点i的pm被复制到的处理器集合,得到超节点i的pm的最佳候选处理器集;
S280,根据超节点i的所有扇出节点,获取超节点i的pm的所有最佳候选处理器集,根据超节点i的pm的所有最佳候选处理器集获取超节点i复制的目标处理器。
2.根据权利要求1所述的方法,其特征在于,S220中,arrj i,fa,pm,fb,pn满足:
arrj i,fa,pm,fb,pn=arri fa,pm+dfa,fb i,pm->j,pn
其中arri fa,pm为将超节点i的pm复制在fa时的最佳到达时间;dfa,fb i,pm->j,pn为当超节点i的pm复制在fa且扇出节点j的pn复制在fb中时,候选路径arci,pm->j,pn上的时间延时。
3.根据权利要求1所述的方法,其特征在于,S240中,arrj fb,pn满足:
arrj fb,pn=maxi,pm(minfa(arrj i,fa,pm,fb,pn));
其中,minfa(arrj i,fa,pm,fb,pn)为将超节点i的pm复制到Fi的每个候选处理器中得到的到达时间的最短到达时间;maxi,pm (▪)为获取扇出节点j的所有候选路径的最短到达时间的最大值。
4.根据权利要求1所述的方法,其特征在于,S280中获取目标处理器的步骤包括:
S282,根据超节点i的pm的所有W个扇出节点,获取超节点i的pm的W个最佳候选处理器集Ri t={Ri t1,Ri t2,…,Ri tw,…Ri tW},其中Ri tw为根据第w个扇出节点得到超节点i的pm的最佳候选处理器集,w的取值范围为1到W;
S283,统计Ri t中每个处理器出现的次数;对于每个扇出节点w,选择在Ri t中出现次数最多的处理器为超节点i的pm复制的目标处理器;
S284,以超节点i的pm复制的目标处理器为超节点i复制的目标处理器。
5.根据权利要求1所述的方法,其特征在于,所述固定节点包括用户指定不可移动的电路单元,每条关键时序路径的起始节点和终止节点。
6.根据权利要求2所述的方法,其特征在于,S200还包括:
S250,获取节点i的pm复制在fa的最差负时序裕量arrBndi,fa,pm,将节点i的pm复制在fa的最佳到达时间arri fa,pm更新为arrBndi,fa,pm
7.根据权利要求6所述的方法,其特征在于,其中,最差负时序裕量arrBndi,fa,pm的获取步骤包括:
S252,以节点i为目标节点i,获取目标节点i的R个扇出节点,获取目标节点i到达每个扇出节点的候选路径上的时间延时和每个扇出节点的最差负时序裕量;
S254,计算目标节点i的R个候选最差负时序裕量,其中目标节点i的pm与扇出节点j的pn的候选最差负时序裕量arrBndi,fa,pm满足:arrBndi,fa,pm=arrBndj,fb,pn-dfa,fb i,pm->j,pn ,其中,arrBndj,fb,pn为扇出节点j的pn的最差负时序裕量,dfa,fb i,pm->j,pn为目标节点i的端口pm复制在fa上且节点j的端口pn复制在处理器fb上时候选路径arci,pm->j,pn上的时间延时;
S256,计算R个候选最差负时序裕量的最小值,得到arrBndi,fa,pm
8.一种关键时序路径的优化系统,其特征在于,包括处理器和与所述处理器通信连接的存储介质,其中,当所述处理器执行在所述存储介质内的程序时,所述系统可实施根据权利要求1~7中任一项所述的方法。
CN202310954693.7A 2023-08-01 2023-08-01 一种关键时序路径的优化方法及系统 Active CN116663464B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310954693.7A CN116663464B (zh) 2023-08-01 2023-08-01 一种关键时序路径的优化方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310954693.7A CN116663464B (zh) 2023-08-01 2023-08-01 一种关键时序路径的优化方法及系统

Publications (2)

Publication Number Publication Date
CN116663464A true CN116663464A (zh) 2023-08-29
CN116663464B CN116663464B (zh) 2023-10-20

Family

ID=87715771

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310954693.7A Active CN116663464B (zh) 2023-08-01 2023-08-01 一种关键时序路径的优化方法及系统

Country Status (1)

Country Link
CN (1) CN116663464B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117521567A (zh) * 2024-01-05 2024-02-06 深圳鸿芯微纳技术有限公司 电路的混合逻辑综合优化方法、装置及电子设备
CN117521567B (zh) * 2024-01-05 2024-04-26 深圳鸿芯微纳技术有限公司 电路的混合逻辑综合优化方法、装置及电子设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180096086A1 (en) * 2016-07-08 2018-04-05 Nikolaos Zompakis Dynamic frequency boosting exploiting path delay variability in integrated circuits
US10860764B1 (en) * 2019-12-31 2020-12-08 Cadence Design Systems, Inc. Layer assignment technique to improve timing in integrated circuit design
CN112181617A (zh) * 2020-09-17 2021-01-05 东北大学 一种基于特定索引结构的高效调度算法
CN113987987A (zh) * 2021-09-30 2022-01-28 深圳市紫光同创电子有限公司 时序优化方法、系统、设备及存储介质
CN114861579A (zh) * 2022-05-25 2022-08-05 上海安路信息科技股份有限公司 集成电路中时序瓶颈节点分析和时序优化方法及系统
CN115099177A (zh) * 2022-07-01 2022-09-23 上海安路信息科技股份有限公司 Fpga的时序优化方法和系统
WO2023001192A1 (zh) * 2021-07-20 2023-01-26 深圳市紫光同创电子有限公司 基于fpga进位链的电路结构优化方法及系统

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180096086A1 (en) * 2016-07-08 2018-04-05 Nikolaos Zompakis Dynamic frequency boosting exploiting path delay variability in integrated circuits
US10860764B1 (en) * 2019-12-31 2020-12-08 Cadence Design Systems, Inc. Layer assignment technique to improve timing in integrated circuit design
CN112181617A (zh) * 2020-09-17 2021-01-05 东北大学 一种基于特定索引结构的高效调度算法
WO2023001192A1 (zh) * 2021-07-20 2023-01-26 深圳市紫光同创电子有限公司 基于fpga进位链的电路结构优化方法及系统
CN113987987A (zh) * 2021-09-30 2022-01-28 深圳市紫光同创电子有限公司 时序优化方法、系统、设备及存储介质
CN114861579A (zh) * 2022-05-25 2022-08-05 上海安路信息科技股份有限公司 集成电路中时序瓶颈节点分析和时序优化方法及系统
CN115099177A (zh) * 2022-07-01 2022-09-23 上海安路信息科技股份有限公司 Fpga的时序优化方法和系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
于梦薇;刘洋;尹韬;杨海钢;: "一种多线程FPGA时序驱动布线算法", 太赫兹科学与电子信息学报, no. 06, pages 189 - 193 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117521567A (zh) * 2024-01-05 2024-02-06 深圳鸿芯微纳技术有限公司 电路的混合逻辑综合优化方法、装置及电子设备
CN117521567B (zh) * 2024-01-05 2024-04-26 深圳鸿芯微纳技术有限公司 电路的混合逻辑综合优化方法、装置及电子设备

Also Published As

Publication number Publication date
CN116663464B (zh) 2023-10-20

Similar Documents

Publication Publication Date Title
CN109086867B (zh) 一种基于fpga的卷积神经网络加速系统
US7000211B2 (en) System and method for efficiently mapping heterogeneous objects onto an array of heterogeneous programmable logic resources
TWI779355B (zh) 用於可重組態資料處理器的效能估計式資源分配
US9449131B2 (en) Extracting system architecture in high level synthesis
US9613173B1 (en) Interactive multi-step physical synthesis
Tang et al. Interpolation-based incremental ECO synthesis for multi-error logic rectification
US20040267994A1 (en) Flexibility of design of a bus interconnect block for a data processing apparatus
Cortadella et al. Elastic systems
US20210081691A1 (en) Efficient Execution of Operation Unit Graphs on Reconfigurable Architectures Based on User Specification
CN112165405A (zh) 基于网络拓扑结构的超级计算机大数据处理能力测试方法
CN116663464B (zh) 一种关键时序路径的优化方法及系统
US9275184B1 (en) Method and apparatus for performing timing closure analysis when performing register retiming
Antonov et al. Research of the efficiency of high-level synthesis tool for FPGA based hardware implementation of some basic algorithms for the big data analysis and management tasks
CN116911226B (zh) 一种超节点的提取方法及系统
US8904318B1 (en) Method and apparatus for performing optimization using don't care states
Chang et al. Timing macro modeling with graph neural networks
Gupta et al. Automated multi-cycle symbolic timing verification of microprocessor-based designs
Zheng et al. Topopart: a multi-level topology-driven partitioning framework for multi-fpga systems
KR20020077032A (ko) 로직 이벤트 시뮬레이션
US10853540B2 (en) Method and system for automated design and design-space exploration
US10223488B2 (en) Method and apparatus for improving system operation by replacing components for performing division during design compilation
US7681160B1 (en) Weight based look up table collapsing for programmable logic devices
Antonov et al. Efficiency analysis of high-level synthesis tools for hardware implementation of sorting algorithms
Uchevler et al. Modelling and assertion-based verification of run-time reconfigurable designs using functional programming abstractions
US10789401B1 (en) Folding multiply-and-accumulate logic

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