CN112818620A - 一种基于动态非平衡时钟的芯片设计优化系统及方法 - Google Patents
一种基于动态非平衡时钟的芯片设计优化系统及方法 Download PDFInfo
- Publication number
- CN112818620A CN112818620A CN202110201459.8A CN202110201459A CN112818620A CN 112818620 A CN112818620 A CN 112818620A CN 202110201459 A CN202110201459 A CN 202110201459A CN 112818620 A CN112818620 A CN 112818620A
- Authority
- CN
- China
- Prior art keywords
- time sequence
- path
- clock delay
- timing
- worst
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/337—Design optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/327—Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
- G06F30/3312—Timing analysis
-
- 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/396—Clock trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/12—Timing analysis or timing optimisation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明提出了一种基于动态非平衡时钟的芯片设计优化系统及方法。其在设计的综合阶段,分析设计的时序路径,并根据当前的时序结果分析并动态地调整时序单元的时钟延迟,将时钟延迟结果向芯片设计实现流程的后续步骤传递,从而在时钟树综合时,按照要求综合出非平衡的时钟树结构。在芯片设计实现过程中的综合及布局布线阶段时,动态地调整整个叶节点时钟网络的延迟,以达到迅速收敛时序的目的。由于使用了动态非平衡时钟网络,使得芯片设计的时序路径有更多的时序裕量,使芯片实现工具对整个设计的时序能作更好的优化,时序紧张的路径不再需要更多复杂的优化,从而减小整个设计的面积,减小功耗,提高设计可实现的时钟速度,提高设计性能。
Description
技术领域
本发明属于集成电路技术领域,具体涉及一种基于动态非平衡时钟的芯片设计优化系统及方法。
背景技术
集成电路设计实现过程包括综合阶段和布局布线阶段,其中,综合阶段在传统的流程中,时钟是理想的、从时钟源到不同的寄存器的延时都是一样的,只从设计的时序约束中用时钟不定值(Clock Uncertainty)来加以约束。这种约束比较武断,对于一些时序要求比较紧张的时序路径很难满足设计约束要求。但在实现过程中,这样的时序路径若前向时序路径或后向时序路径有时序裕量,可以通过调整该时序路径的起点或终点或两者的时钟延迟(Clock Latency)来使该时序路径满足最终的设计要求。问题在于:1、对于一个复杂电路设计来说,时序路径非常多,各个时序路径的逻辑长度和物理长度也不一致,如何挑取这些路径,如何分析与这些路径相关联的路径,在哪里设置时钟延迟,设置多少,如何使用这些设置,是繁杂且难以人工完成的;2、传统的时钟数据同时优化(Concurrent Clock andData Optimization)一般在布局布线阶段实现,因为使用该技术时已处于芯片设计流程中相对靠后的位置,因而此时的网表已经包括了一些过优化的路径,而过优化会导致芯片的面积、功耗和拥塞等指标变差,同时对多点时钟树综合(MultiPoint-Clock TreeSynthesis)的设计也无法支持;3、某些综合工具在综合阶段使用了时钟数据同时优化,但其实现方法不明确且不易控制,因而效果并不明显。因此,需要提出一种通用的方法来解决上述这些问题。
发明内容
本发明针对现有芯片设计实现流程中平衡时钟树的不足,提出一种基于动态非平衡时钟的芯片设计优化系统及方法,以提高芯片的运行速度,降低芯片的功耗和面积。
本发明采用以下技术方案:
一种基于动态非平衡时钟的芯片设计优化系统,包括依次相连的时序路径提取单元、时序路径分析单元、时钟延迟生成单元和时钟约束生成单元;
所述时序路径提取单元,用于从设计时序路径中提取出符合要求的待分析时序路径,并送入所述时序路径分析单元;
所述时序路径分析单元包括前向起点时序分析单元和后向终点时序分析单元,所述前向起点时序分析单元用于分析提取出时序路径的起点作为时序路径终点时的时序状态,所述后向终点时序分析单元用于分析提取出时序路径的终点作为时序路径起点时的时序状态,时序状态提取出来后送入所述时钟延迟生成单元;
所述时钟延迟生成单元,用于调整时序路径起点或终点或两者的时钟延迟,调整完后送入所述时钟约束生成单元;
所述时钟约束生成单元,用于生成各个芯片设计流程中涉及到的EDA工具的约束文件。
一种基于动态非平衡时钟的芯片设计优化方法,包括如下步骤:
步骤一、时序路径提取单元接收用户配置,所述用户配置包括时序裕量范围配置和时序路径组配置,时序裕量范围配置用于筛选出设计时序路径中时序裕量在特定范围内的时序路径,时序路径组配置用于筛选特定的时序组的时序路径;提取出的所有时序路径构成时序路径集合,送入时序路径分析单元;
步骤二、时序路径分析单元分析时序路径集合中的每一条时序路径。时序路径的起点S和终点E都需要分析,分析起点S时,前向起点路径分析单元把起点S作为时序路径的终点分析;分析终点E时,后向终点路径分析单元把终点E作为时序路径的起点分析;每分析完一条时序路径的起点和终点的时序参数后,送入时钟延迟生成单元中;
步骤三、时钟延迟生成单元根据用户配置模式和配置参数,调整时序路径起点或终点或两者的时钟延迟,控制前向时钟延迟待调整列表和后向时钟延迟待调整列表的生成方式,待生成结束后,将这两个列表送入时钟约束生成单元;
步骤四、时钟约束生成单元根据时钟延迟生成单元输入的时钟数据,生成各个芯片设计流程中涉及到的EDA工具的约束文件。
进一步地,步骤一中,时序路径提取单元还设置有针对设计模块和设计实例时序路径提取的用户配置接口。
进一步地,步骤二中,前向起点路径分析单元分析到起点S的最差负时序裕量,包括:首先找出所有到起点S的最差时序违例值V,以及到起点S的所有时序路径,然后逐条分析这些时序路径;逐条分析时,先取出一条时序路径P’,检查时序路径P’的起点是否已在后向时钟延迟待调整列表中,若时序路径P’的起点已在后向时钟延迟待调整列表中,则说明目前由时序路径P’的起点到起点S的时序结果并不是真实的,需要用时序路径P’的最差违例值V’减掉待调整值K并与最差时序违例值V比较,如果比最差时序违例值V小,就把差值更新到最差时序违例值V,如此分析完所有的时序路径,最终最差时序违例值V反映出的是到起点S的最差时序违例值;
后向终点路径分析单元分析从终点E出发的最差负时序裕量,包括:首先找出所有从终点E出发的最差时序违例值V,以及从终点E出发的所有时序路径,然后逐条分析这些时序路径;逐条分析时,先取出一条时序路径P’,检查时序路径P’的终点是否已在前向时钟延迟待调整列表中,若时序路径P’的终点已在前向时钟延迟待调整列表中,则说明目前由终点E到时序路径P’的终点的时序结果并不是真实的,需要用时序路径P’的最差违例值V’减掉待调整值K并与最差时序违例值V比较,如果比最差时序违例值V小,就把差值更新到最差时序违例值V,如此分析完所有的路径,最终最差时序违例值V反映出的是从终点E出发的最差时序违例值;
前向时钟延迟待调整列表和后向时钟延迟待调整列表由时钟延迟生成单元生成、更新、维护,并实时提供给时序路径分析单元。
进一步地,步骤二中,前向起点路径分析单元还分析总负时序裕量、及起点S的扇入和扇出计数,分析总负时序裕量在分析最差负时序裕量过程中同步进行,将每一个时序路径的最差时序违例值V相加,并考虑到时序路径的起点是否在后向时钟延迟待调整列表中,如果在的话,也需要减掉调整值K;起点S的扇入和扇出计数作为后续时钟延迟生成单元的参考值;
后向终点路径分析单元还分析总负时序裕量、及终点E的扇入和扇出计数,分析总负时序裕量在分析最差负时序裕量过程中同步进行,将每一个时序路径的最差时序违例值V相加,并考虑到路径的起点是否在前向时钟延迟待调整列表中,如果在的话,也需要减掉调整值K;终点E的扇入和扇出计数作为后续时钟延迟生成单元的参考值。
进一步地,步骤三中,用户配置模式和配置参数决定前向时钟延迟待调整列表和后向时钟延迟待调整列表的生成方式;
设前向时钟延迟阈值为Tf,后向时钟延迟阈值为Tb,前向时钟延迟百分比为Pf,后向时钟延迟百分比为Pb,前向时钟延迟最大值为Mf,后向时钟延迟最大值为Mb,这些参数由用户配置;
设前向时序最差裕量为WNSf,总最差裕量为TNSf;后向时序最差裕量为WNSb,总最差裕量为TNSb;前向时序扇入数为Fif,扇出数为Fof,后向时序扇入数为Fib,扇出数为Fob,时序路径的最差时序裕量为WNS,这些参数由时序路径分析单元输入;
设前向时钟延迟调整值为SWf,后向时钟延迟调整值为SWb;前向时钟延迟调整值SWf和后向时钟延迟调整值SWb的生成方式为:
若前向时序最差裕量WNSf小于前向时钟延迟阈值Tf,前向时钟延迟调整值SWf等于0;若前向时序最差裕量WNSf大于前向时钟延迟阈值Tf,前向时钟延迟调整值SWf的计算方式如下,Min是取最小值函数:
SWf=Min(WNS*Pf,Mf)
生成后向时钟延迟调整值SWb时,先判断时序路径的最差时序裕量WNS与前向时钟延迟调整值SWf的和是否仍旧为负值,若为负值,则待调整的时序仍需要调整,假设时序路径的最差时序裕量WNS与前向时钟延迟调整值SWf的和为SWf’,则再判断总最差裕量TNSf是否大于后向时钟延迟阈值Tb,若小于,则后向时钟延迟调整值SWb等于0;若大于,则后向时钟延迟调整值SWb的计算方式如下,Min是取最小值函数:
SWb=Min(SWf’*Pb,Mb)
然后,将前向时钟延迟调整值SWf与后向时钟延迟调整值SWb分别更新到两个列表中。
进一步地,步骤三中,考虑到时序起点的扇出,因为时序起点的扇出越多,且有大量从时序起点出发的违例路径,则优先调整前向时钟;若时序终点的扇入越多,且有大量到达时序终点的违例路径,则优先调整后向时钟。
与现有技术相比,本发明的有益效果在于:
一、使用动态非平衡的时钟网络,使得芯片设计中紧张的时序路径有更多的时序裕量,从而使得芯片实现工具对整个设计的时序能作更好的优化,时序紧张的路径不再需要更多复杂的优化,从而减小整个设计的面积,减小功耗,且提高设计可实现的时钟速度,提高芯片的运行速度以及芯片设计本身的收敛速度,从而提高设计性能;
二、在综合阶段即芯片实现过程的起始阶段使用本方法,在开始就降低了芯片实现工具优化时序的难度,从而避免了工具选用功耗面积过大、速度快的标准单元,让工具的工作更多的放到结构的优化上,这样就降低了整个芯片的面积和功耗(根据设计的不同,在速度,面积与功耗上得到的优势并不相同,如在某一7nm的设计上,布局布线后,功耗可降2%左右,面积也降低了2%,时序的最差负时序裕量从-38ps改善为-16ps,总负时序裕量也减小约75%,进一步缩短了芯片开发时间);
三、本方法具有继承性,即可以在第一次使用该方法之后的结果的基础上多次使用本方法,而在传统的时钟和数据同时优化技术中,用户设置好了之后,由EDA工具运行,其运行结果即最终结果;
四、本方法具有前展性、后延性和可迭代性,基于第一次综合结果生成的时钟约束可以在下次迭代过程中使用,且可提前至综合之前,这样可以提供最大优化空间,并将时钟约束和综合后的网表作为后续布局布线工具的输入,以确保在时钟树综合时,按照时钟延迟调整的设置实现。
附图说明
图1为本发明的芯片设计优化系统的结构框图;
图2为时序路径提取流程配置图;
图3为时序路径分析单元的结构框图;
图4为到起点的最差负时序裕量分析流程图;
图5为从终点出发的最差负时序裕量分析流程图;
图6为时钟延迟生成单元的配置模式图;
图7为时钟约束生成单元的配置模式图;
图8为本发明的芯片设计优化方法应用于芯片实现过程的流程框图。
具体实施方式
下面结合附图和具体的实施例对本发明的基于动态非平衡时钟的芯片设计优化系统及方法作进一步地详细说明。
如图1所示,一种基于动态非平衡时钟的芯片设计优化系统,包括依次相连的时序路径提取单元、时序路径分析单元、时钟延迟生成单元和时钟约束生成单元。
时序路径提取单元,用于从设计时序路径中提取出符合要求的待分析时序路径,并送入时序路径分析单元。
结合图3,时序路径分析单元包括前向起点时序分析单元和后向终点时序分析单元,前向起点时序分析单元用于分析提取出时序路径的起点作为时序路径终点时的时序状态,后向终点时序分析单元用于分析提取出时序路径的终点作为时序路径起点时的时序状态,时序状态提取出来后送入时钟延迟生成单元。
时钟延迟生成单元,用于调整时序路径起点或终点或两者的时钟延迟,调整完后送入时钟约束生成单元。
时钟约束生成单元,用于生成各个芯片设计流程中涉及到的EDA工具的约束文件。
一种基于动态非平衡时钟的芯片设计优化方法,包括如下步骤:
步骤一、时序路径提取单元接收用户配置,用户配置包括时序裕量范围配置和时序路径组配置,参见图2。
时序裕量范围配置用于筛选出设计时序路径中时序裕量在特定范围内的时序路径,时序裕量范围配置一般根据设计在不同的阶段加以不用的配置,对于尚未成熟的设计或在设计的初期,设计的约束也不十分准确时,其时序结果一般也不完全准确,这时一般来说时序裕量范围设置为在拥有大量时序违例的区间,例如一个设计有一万条时序违例的时序路径,但是百分之八十的这些时序路径都在-50至-20这个区间,我们可将时序裕量范围配置为[-50,-20]。
时序路径组配置用于筛选特定的时序组的时序路径,在设计实现中,一个设计可能拥有多个时序路径组,这个配置可以给用户灵活的选择权,对于设计违例比较严重的时序路径组,在设计的综合和布局布线前,可以将这些路径放到一个特定的时序路径组中,这样可以针对性使用该时序路径提取单元直接提取。
另外,时序路径提取单元还设置有针对设计模块和设计实例时序路径提取的用户配置接口。在一个设计中,一些设计违例比较严重的时序路径经常出现在某些设计模块或者某些设计实例中,因而时序路径提取单元提供这样的用户配置接口,只针对某些设计模块或者某些设计实例提取。
时序路径提取单元提供了的丰富的配置接口以满足不同设计的要求,因而具有很大的灵活性。提取出的所有时序路径构成时序路径集合,送入时序路径分析单元。
步骤二、时序路径分析单元分析时序路径集合中的每一条时序路径的起点S(Start point)和终点E(End point)。分析起点S时,前向起点路径分析单元把起点S作为时序路径的终点E分析。分析终点E时,后向终点路径分析单元把终点E作为时序路径的起点S分析。每分析完一条时序路径的起点和终点的时序参数后,送入时钟延迟生成单元中。
如图4所示为分析到起点S的最差负时序裕量(Worst Negative Slack),包括:首先找出调整前的所有到起点S的最差时序违例值V,以及到起点S的所有时序路径,然后逐条分析这些时序路径。逐条分析时,先取出一条时序路径P’,检查时序路径P’的起点是否已在后向时钟延迟待调整列表中,若时序路径P’的起点已在后向时钟延迟待调整列表中,则说明目前由时序路径P’的起点到起点S的时序结果并不是最终的,需要用时序路径P’的最差违例值V’减掉待调整值K并与最差时序违例值V比较,如果比最差时序违例值V小,就把差值更新到最差时序违例值V,如此分析完所有的时序路径,最终最差时序违例值V反映出的是到起点S的最差时序违例值。采用这种带有预见性的结构更符合实际情况,使最终的结果更准确。
前向起点路径分析单元不但分析最差负时序裕量(Worst Negative Slack),还分析总负时序裕量(Total Negative Slack)、及起点S的扇入(Fan-in)和扇出(Fan-out)计数,分析总负时序裕量在分析最差负时序裕量过程中同步进行,将每一个时序路径的最差时序违例值V相加,并考虑到时序路径的起点是否在后向时钟延迟待调整列表中,如果在的话,也需要减掉调整值K。起点S的扇入和扇出计数作为后续时钟延迟生成单元的参考值。
分析终点E最差负时序裕量(Worst Negative Slack)时,其方式与分析起点S类似,如图5所示为分析从终点E出发的最差负时序裕量(Worst Negative Slack),包括:首先找出所有调整前的从终点E出发的最差时序违例值V,以及从终点E出发的所有时序路径,然后逐条分析这些时序路径。逐条分析时,先取出一条时序路径P’,检查时序路径P’的终点是否已在前向时钟延迟待调整列表中,若时序路径P’的终点已在前向时钟延迟待调整列表中,则说明目前由终点E到时序路径P’的终点的时序结果并不是最终的,需要用时序路径P’的最差违例值V’减掉待调整值K并与最差时序违例值V比较,如果比最差时序违例值V小,就把差值更新到最差时序违例值V,如此分析完所有的路径,最终最差时序违例值V反映出的是从终点E出发的最差时序违例值。同样,采用这种带有预见性的结构会使最终的结果更加准确。
后向终点路径分析单元不但分析最差负时序裕量(Worst Negative Slack),还分析总负时序裕量(Total Negative Slack)、及终点E的扇入和扇出计数,分析总负时序裕量在分析最差负时序裕量过程中同步进行,将每一个时序路径的最差时序违例值V相加,并考虑到路径的起点是否在前向时钟延迟待调整列表中,如果在的话,也需要减掉调整值K。终点E的扇入和扇出计数作为后续时钟延迟生成单元的参考值。
分析完一条时序路径的起点和终点相关的时序参数后,将该结果送入到时钟延迟生成单元中,由时钟延迟生成单元决定如何调整起点和终点的时钟延迟值。
前向时钟延迟待调整列表和后向时钟延迟待调整列表由时钟延迟生成单元生成、更新、维护,并实时提供给时序路径分析单元。
步骤三、时钟延迟生成单元根据用户配置模式和配置参数,调整时序路径起点或终点或两者的时钟延迟,调整完后送入时钟约束生成单元。
如图6所示的是时钟延迟配置模式图,钟延迟生成单元内部维护两个列表,一个是前向时钟延迟待调整列表,一个是后向时钟延迟待调整列表。这两个列表最终将送给时钟约束生成单元,且实时提供给时序路径分析单元,用于检查当前分析的时序路径中有没有已处于待调整的列表之中。用户可以根据不同的设计调整用户配置信息中的参数,以控制前向时钟延迟待调整列表和后向时钟延迟待调整列表的生成方式和结果。且列表生成的方式可以扩展,用户可以自己另行增加。本实施例中提供几种基本的生成方式,生成方式由时钟延迟生成模式参数来选择。
设前向时钟延迟阈值为Tf,后向时钟延迟阈值为Tb,前向时钟延迟百分比为Pf,后向时钟延迟百分比为Pb,前向时钟延迟最大值为Mf,后向时钟延迟最大值为Mb,这些参数由用户配置。
设前向时序最差裕量为WNSf,总最差裕量为TNSf。后向时序最差裕量为WNSb,总最差裕量为TNSb。前向时序扇入数为Fif,扇出数为Fof,后向时序扇入数为Fib,扇出数为Fob,时序路径的最差时序裕量为WNS,这些参数由时序路径分析单元输入。
设前向时钟延迟调整值为SWf,后向时钟延迟调整值为SWb。
下面举例描述两种典型的SWf和SWb的生成方式,对于不同的设计,方式并不局限于这两种,用户可以通过时钟延迟生成模式接口来扩展不同的方式和调整时钟路径分析单元输入参数的权重。
方式一,以解决时序违例为主要目的。下面是生成SWf和SWb的计算方式:
若前向时序最差裕量WNSf小于前向时钟延迟阈值Tf,前向时钟延迟调整值SWf等于0。若前向时序最差裕量WNSf大于前向时钟延迟阈值Tf,前向时钟延迟调整值SWf的计算方式如下,Min是取最小值函数:
SWf=Min(WNS*Pf,Mf)
生成后向时钟延迟调整值SWb时,先判断时序路径的最差时序裕量WNS与前向时钟延迟调整值SWf的和是否仍旧为负值,若为负值,则待调整的时序仍需要调整,假设时序路径的最差时序裕量WNS与前向时钟延迟调整值SWf的和为SWf’,若SWf’小于Tb,则后向时钟延迟调整值SWb等于0,否则后向时钟延迟调整值SWb的计算方式如下,Min是取最小值函数:
SWb=Min(SWf’*Pb,Mb)
然后,将前向时钟延迟调整值SWf与后向时钟延迟调整值SWb分别更新到两个列表中。
方式二,以解决总负时序裕量为主要目的。按照方式一,考虑到时序起点的扇出,因为时序起点的扇出越多,且有大量从时序起点出发的违例路径,则优先调整前向时钟。若时序终点的扇入越多,且有大量到达时序终点的违例路径,则优先调整后向时钟。
其他扩展方式,该方法留有接口用于适应不同设计的要求。采用其他方式也会同样更新到该单元维护的两个列表中。并将该列表传递给时钟约束生成单元。
步骤四、时钟约束生成单元根据时钟延迟生成单元输入的时钟数据,生成各个芯片设计流程中涉及到的EDA工具的约束文件。
如图7所示为时钟约束生成单元的输入输出配置图。时钟约束生成单元生成各个EDA工具的相关命令,例如用于Design Compiler时,其命令为set_clock_latency,对于前向列表来说,其值应为负,加在每一个列表标准单元的时钟引脚上;对于后向列表来说,其值为正,也加在每一个列表标准单元的时钟引脚上。该约束文件在综合阶段被工具读入,在综合时会按新的时钟延迟做优化。在综合网表产生后,标准单元的时钟延迟值会同网表一起进入布局布线阶段,在做标准单元摆放(Place)阶段,该时钟延迟值会被工具读入,按照读入的时钟延迟值考虑标准单元的摆放位置。在做时钟树综合(CTS)阶段,可改为相应的命令格式以让工具将从时钟源点到标准单元的时钟树路径按照要求实现。最终会形成一个非平衡的时钟树结构,这种非平衡的结构是根据数据路径的长短和复杂、以及时序路径的物理长度综合考虑的优化后结果。另外,此设计方法对于不同工艺角下的时钟延迟非平衡值会作调整。我们会为每个工艺角都会产生一个约束文件,不同的工艺角最终的调整值还需要由原调整值乘以该工艺角的减免因子来灵活地决定。在时钟延迟生成单元中,其工作在某一个工艺角中,如果生成的约束文件仍沿用该工艺角的值是不对的,因而对于不同的工艺角来说,要乘以其减免因子,这样保证了约束文件与实现环境的一致性。
如图8所示为本方法在芯片实现过程中的流程图。在使用本方法后会产生约束文件,这时需将生成的约束文件反向读入到综合工具中,并更新时序信息或再次增量综合,然后检查设计的时序结果是否达到要求,如果没有达到要求可以根据目标调整参数并再次使用该方法一次或多次,若达到要求,将生成的约束文件随着网表进入布局布线阶段,在布局布线阶段,EDA工具会读入生成的约束文件摆放标准逻辑单元,并在时钟树综合阶段(ClockTree Synthesis)根据约束文件综合出不平衡的时钟树结构。而且,生成的约束文件可以作为下一次迭代综合的输入,如果设计相对稳定,那么下次迭代综合之前,对于时序紧张的路径在最初就有充足的裕量,这样能使下次迭代结果无论从面积,功耗和速度上就更具优势,同时也能使EDA工具的运行时间(Run Time)更少。
需要指出的是,以上结合附图对本发明的实施方式的说明仅是本发明的优选实施方式及主要步骤,本发明的保护范围并不仅局限于上述方式,凡属于本发明思路下的技术方案均属于本发明的保护范围。且对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下对本发明的改进、扩展、润饰,应视为本发明的保护范围。
Claims (7)
1.一种基于动态非平衡时钟的芯片设计优化系统,其特征在于,包括依次相连的时序路径提取单元、时序路径分析单元、时钟延迟生成单元和时钟约束生成单元;
所述时序路径提取单元,用于从设计时序路径中提取出符合要求的待分析时序路径,并送入所述时序路径分析单元;
所述时序路径分析单元包括前向起点时序分析单元和后向终点时序分析单元,所述前向起点时序分析单元用于分析提取出时序路径的起点作为时序路径终点时的时序状态,所述后向终点时序分析单元用于分析提取出时序路径的终点作为时序路径起点时的时序状态,时序状态提取出来后送入所述时钟延迟生成单元;
所述时钟延迟生成单元,用于调整时序路径起点或终点或两者的时钟延迟,调整完后送入所述时钟约束生成单元;
所述时钟约束生成单元,用于生成各个芯片设计流程中涉及到的EDA工具的约束文件。
2.一种基于动态非平衡时钟的芯片设计优化方法,其特征在于,包括如下步骤:
步骤一、时序路径提取单元接收用户配置,所述用户配置包括时序裕量范围配置和时序路径组配置,时序裕量范围配置用于筛选出设计时序路径中时序裕量在特定范围内的时序路径,时序路径组配置用于筛选特定的时序组的时序路径;提取出的所有时序路径构成时序路径集合,送入时序路径分析单元;
步骤二、时序路径分析单元分析时序路径集合中的每一条时序路径;时序路径的起点S和终点E都需要分析,分析起点S时,前向起点路径分析单元把起点S作为时序路径的终点分析;分析终点E时,后向终点路径分析单元把终点E作为时序路径的起点分析;每分析完一条时序路径的起点和终点的时序参数后,送入时钟延迟生成单元中;
步骤三、时钟延迟生成单元根据用户配置模式和配置参数,调整时序路径起点或终点或两者的时钟延迟,控制前向时钟延迟待调整列表和后向时钟延迟待调整列表的生成方式,待生成结束后,将这两个列表送入时钟约束生成单元;
步骤四、时钟约束生成单元根据时钟延迟生成单元输入的时钟数据,生成各个芯片设计流程中涉及到的EDA工具的约束文件。
3.根据权利要求2所述的基于动态非平衡时钟的芯片设计优化方法,其特征在于,步骤一中,时序路径提取单元还设置有针对设计模块和设计实例时序路径提取的用户配置接口。
4.根据权利要求2所述的基于动态非平衡时钟的芯片设计优化方法,其特征在于,步骤二中,前向起点路径分析单元分析到起点S的最差负时序裕量,包括:首先找出所有到起点S的最差时序违例值V,以及到起点S的所有时序路径,然后逐条分析这些时序路径;逐条分析时,先取出一条时序路径P’,检查时序路径P’的起点是否已在后向时钟延迟待调整列表中,若时序路径P’的起点已在后向时钟延迟待调整列表中,则说明目前由时序路径P’的起点到起点S的时序结果并不是真实的,需要用时序路径P’的最差违例值V’减掉待调整值K并与最差时序违例值V比较,如果比最差时序违例值V小,就把差值更新到最差时序违例值V,如此分析完所有的时序路径,最终最差时序违例值V反映出的是到起点S的最差时序违例值;
后向终点路径分析单元分析从终点E出发的最差负时序裕量,包括:首先找出所有从终点E出发的最差时序违例值V,以及从终点E出发的所有时序路径,然后逐条分析这些时序路径;逐条分析时,先取出一条时序路径P’,检查时序路径P’的终点是否已在前向时钟延迟待调整列表中,若时序路径P’的终点已在前向时钟延迟待调整列表中,则说明目前由终点E到时序路径P’的终点的时序结果并不是真实的,需要用时序路径P’的最差违例值V’减掉待调整值K并与最差时序违例值V比较,如果比最差时序违例值V小,就把差值更新到最差时序违例值V,如此分析完所有的路径,最终最差时序违例值V反映出的是从终点E出发的最差时序违例值;
前向时钟延迟待调整列表和后向时钟延迟待调整列表由时钟延迟生成单元生成、更新、维护,并实时提供给时序路径分析单元。
5.根据权利要求4所述的基于动态非平衡时钟的芯片设计优化方法,其特征在于,步骤二中,前向起点路径分析单元还分析总负时序裕量、及起点S的扇入和扇出计数,分析总负时序裕量在分析最差负时序裕量过程中同步进行,将每一个时序路径的最差时序违例值V相加,并考虑到时序路径的起点是否在后向时钟延迟待调整列表中,如果在的话,也需要减掉调整值K;起点S的扇入和扇出计数作为后续时钟延迟生成单元的参考值;
后向终点路径分析单元还分析总负时序裕量、及终点E的扇入和扇出计数,分析总负时序裕量在分析最差负时序裕量过程中同步进行,将每一个时序路径的最差时序违例值V相加,并考虑到路径的起点是否在前向时钟延迟待调整列表中,如果在的话,也需要减掉调整值K;终点E的扇入和扇出计数作为后续时钟延迟生成单元的参考值。
6.根据权利要求5所述的基于动态非平衡时钟的芯片设计优化方法,其特征在于,步骤三中,用户配置模式和配置参数决定前向时钟延迟待调整列表和后向时钟延迟待调整列表的生成方式;
设前向时钟延迟阈值为Tf,后向时钟延迟阈值为Tb,前向时钟延迟百分比为Pf,后向时钟延迟百分比为Pb,前向时钟延迟最大值为Mf,后向时钟延迟最大值为Mb,这些参数由用户配置;
设前向时序最差裕量为WNSf,总最差裕量为TNSf;后向时序最差裕量为WNSb,总最差裕量为TNSb;前向时序扇入数为Fif,扇出数为Fof,后向时序扇入数为Fib,扇出数为Fob,时序路径的最差时序裕量为WNS,这些参数由时序路径分析单元输入;
设前向时钟延迟调整值为SWf,后向时钟延迟调整值为SWb;前向时钟延迟调整值SWf和后向时钟延迟调整值SWb的生成方式为:
若前向时序最差裕量WNSf小于前向时钟延迟阈值Tf,前向时钟延迟调整值SWf等于0;若前向时序最差裕量WNSf大于前向时钟延迟阈值Tf,前向时钟延迟调整值SWf的计算方式如下,Min是取最小值函数:
SWf=Min(WNS*Pf,Mf)
生成后向时钟延迟调整值SWb时,先判断时序路径的最差时序裕量WNS与前向时钟延迟调整值SWf的和是否仍旧为负值,若为负值,则待调整的时序仍需要调整,假设时序路径的最差时序裕量WNS与前向时钟延迟调整值SWf的和为SWf’,则再判断总最差裕量TNSf是否大于后向时钟延迟阈值Tb,若小于,则后向时钟延迟调整值SWb等于0;若大于,则后向时钟延迟调整值SWb的计算方式如下,Min是取最小值函数:
SWb=Min(SWf’*Pb,Mb)
然后,将前向时钟延迟调整值SWf与后向时钟延迟调整值SWb分别更新到两个列表中。
7.根据权利要求6所述的基于动态非平衡时钟的芯片设计优化方法,其特征在于,步骤三中,考虑到时序起点的扇出,因为时序起点的扇出越多,且有大量从时序起点出发的违例路径,则优先调整前向时钟;若时序终点的扇入越多,且有大量到达时序终点的违例路径,则优先调整后向时钟。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110201459.8A CN112818620B (zh) | 2021-02-23 | 2021-02-23 | 一种基于动态非平衡时钟的芯片设计优化系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110201459.8A CN112818620B (zh) | 2021-02-23 | 2021-02-23 | 一种基于动态非平衡时钟的芯片设计优化系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112818620A true CN112818620A (zh) | 2021-05-18 |
CN112818620B CN112818620B (zh) | 2022-02-18 |
Family
ID=75865026
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110201459.8A Active CN112818620B (zh) | 2021-02-23 | 2021-02-23 | 一种基于动态非平衡时钟的芯片设计优化系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112818620B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113569524A (zh) * | 2021-07-29 | 2021-10-29 | 眸芯科技(上海)有限公司 | 芯片设计中基于综合网表提取时钟树的方法及应用 |
CN114386352A (zh) * | 2022-03-23 | 2022-04-22 | 上海立芯软件科技有限公司 | 时序驱动布局方法及装置、设备、存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1816577A1 (en) * | 2006-02-03 | 2007-08-08 | STMicroelectronics (Research & Development) Limited | A method of making an integrated circuit including a clock tree |
CN101533420A (zh) * | 2008-03-11 | 2009-09-16 | 矽统科技股份有限公司 | 时钟树状结构中路径时间延迟量的平衡方法 |
CN102456087A (zh) * | 2010-11-03 | 2012-05-16 | 上海华虹集成电路有限责任公司 | 一种建立时序修复方法 |
US20160188782A1 (en) * | 2014-12-26 | 2016-06-30 | Realtek Semiconductor Corp. | Computer program product for timing analysis of integrated circuit |
CN111859836A (zh) * | 2020-07-30 | 2020-10-30 | 北京百瑞互联技术有限公司 | 一种优化集成电路非平衡时钟网络的方法及系统 |
CN112100959A (zh) * | 2020-09-21 | 2020-12-18 | Oppo广东移动通信有限公司 | 基于eda工具的时序分析方法、装置及存储介质 |
-
2021
- 2021-02-23 CN CN202110201459.8A patent/CN112818620B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1816577A1 (en) * | 2006-02-03 | 2007-08-08 | STMicroelectronics (Research & Development) Limited | A method of making an integrated circuit including a clock tree |
CN101533420A (zh) * | 2008-03-11 | 2009-09-16 | 矽统科技股份有限公司 | 时钟树状结构中路径时间延迟量的平衡方法 |
CN102456087A (zh) * | 2010-11-03 | 2012-05-16 | 上海华虹集成电路有限责任公司 | 一种建立时序修复方法 |
US20160188782A1 (en) * | 2014-12-26 | 2016-06-30 | Realtek Semiconductor Corp. | Computer program product for timing analysis of integrated circuit |
CN111859836A (zh) * | 2020-07-30 | 2020-10-30 | 北京百瑞互联技术有限公司 | 一种优化集成电路非平衡时钟网络的方法及系统 |
CN112100959A (zh) * | 2020-09-21 | 2020-12-18 | Oppo广东移动通信有限公司 | 基于eda工具的时序分析方法、装置及存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113569524A (zh) * | 2021-07-29 | 2021-10-29 | 眸芯科技(上海)有限公司 | 芯片设计中基于综合网表提取时钟树的方法及应用 |
CN113569524B (zh) * | 2021-07-29 | 2023-12-29 | 眸芯科技(上海)有限公司 | 芯片设计中基于综合网表提取时钟树的方法及应用 |
CN114386352A (zh) * | 2022-03-23 | 2022-04-22 | 上海立芯软件科技有限公司 | 时序驱动布局方法及装置、设备、存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112818620B (zh) | 2022-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112818620B (zh) | 一种基于动态非平衡时钟的芯片设计优化系统及方法 | |
US7921398B2 (en) | System and medium for placement which maintain optimized timing behavior, while improving wireability potential | |
JP5373906B2 (ja) | 適応型電圧およびスケーリング最適化(adaptivevoltageandscalingoptimization)を使用する集積回路を設計するためのシステムおよび方法 | |
US6550044B1 (en) | Method in integrating clock tree synthesis and timing optimization for an integrated circuit design | |
US7216322B2 (en) | Clock tree synthesis for low power consumption and low clock skew | |
US8806413B2 (en) | Gradient AOCV methodology enabling graph-based timing closure with AOCV timing models | |
CN103164585B (zh) | 缓冲器的插入方法及装置 | |
JP2009517764A (ja) | 階層的soc設計でマージするタイミング規制 | |
CN107908884B (zh) | 一种通过调整时钟树分支改善时序的交互式eco方法 | |
US20170061067A1 (en) | Timing window manipulation for noise reduction | |
CN105404728B (zh) | 一种基于fpga芯片多控制信号的布局方法 | |
US8271922B2 (en) | System and method for clock optimization to achieve timing signoff in an electronic circuit and electronic design automation tool incorporating the same | |
CN116776790B (zh) | 一种时序分析的快速计算方法、装置及计算机设备 | |
US7191417B1 (en) | Method and apparatus for optimization of digital integrated circuits using detection of bottlenecks | |
US7603646B1 (en) | Method and apparatus for power optimization using don't care conditions of configuration bits in lookup tables | |
CN111931454A (zh) | 芯片物理设计方法及电子设备 | |
Avdalyan et al. | Processing an effective method for clock tree synthesis | |
US6886147B2 (en) | Method, system, and product for achieving optimal timing in a data path that includes variable delay lines and coupled endpoints | |
US8341575B2 (en) | Circuit design device, circuit design method, and circuit design program | |
CN116502573A (zh) | 一种基于综合数据库实现后仿真的方法和系统 | |
US7743270B2 (en) | Assigning clock arrival time for noise reduction | |
Chen et al. | Simultaneous gate sizing and fanout optimization | |
US8990748B1 (en) | Timing in a circuit design having finite state machines | |
KR20020058911A (ko) | 표준셀을 이용한 그루핑을 통하여 효율적으로 칩을설계하는 방법 | |
CN114896941B (zh) | 一种时钟树的布局优化方法、优化装置和相关设备 |
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 |