本申请涉及数字电路领域,特别涉及一种内存优化型静态时序分析方法及其系统。
背景技术:
在数字电路物理设计实现的流程中,静态时序分析扮演了非常重要的角色,它的反馈结果为此流程中的多道优化程序提供驱动,在不同的设计阶段,诸如逻辑综合、布局和布线等,工具的内核多次重复调用静态时序分析迭代优化。因此,作为至关重要的底层分析引擎,静态时序分析工具的性能对整个软件工具的性能起到非常重要的影响。底层引擎的运转效率,包括运行时间和空间消耗,成为整套工具效率的瓶颈,本申请的发明人观察到现有技术中的最前沿的静态时序分析方法在排除虚假路径,理清多周期路径方面存在内存消耗过大的问题。
技术实现要素:
本申请的目的在于提供一种内存优化型静态时序分析方法及其系统,本申请涉及的方法和系统的使用,使静态时序分析的准备阶段减少了冗余预处理,并且在过程中能够即时分析并抛弃冗余信息;进而在不退化软件运行时间的前提下,大幅减少系统内存空间的占用,提高系统运行效率,提升系统性能。
为了解决上述问题,本申请公开了一种内存优化型静态时序分析方法,包括:
获取电路网表来构造时序图;
后向遍历扫描该时序图得到每个结点后序路径标签集合;
前向遍历扫描该时序图得到该每个结点的前序路径标签集合;
对该前序路径标签集合与该后序路径标签集合进行交集运算,并根据该交集运算的结果构建各结点的二分图;
根据该各结点的二分图,对该每个结点的各标签进行二分团覆盖,减少标签总量。
计算该每个结点的各标签对应的延时裕量并给生成析报告;
其中,在所述后向遍历扫描和所述前向遍历扫描的过程中,即时识别虚假路径并同时抛弃所述虚假路径对应的标签。
在一个优选例中,还包括:该计算该每个结点上各标签对应的延时裕量并生成时序分析报告进一步包括:
多次执行以下步骤,直至判断该时序图中不存在时序违规路径,最后生成时序分析报告,
计算该每个结点的各标签的延时裕量并记录在对应标签上;
分析时序违规路径,判断该时序图中是否存在违规路径,如果存在则优化并修改违规路径中所有结点中所有标签上的路径信息,并对该路径信息所对应的标签上的延时裕量进行修改。
在一个优选例中,所述获取电路网表构造时序图进一步包括:获取电路网表来构造整体时序图,根据指定时序约束构造部分时序图。
在一个优选例中,在该前向遍历扫描时序图的过程中,前向遍历扫描经过每一个结点的同时,对前序路径标签集合和后序路径标签集合进行该交集运算;
该根据该交集运算的结果构建各结点的二分图进一步包括:根据该交集运算得到通过各结点的所有路径信息,根据该路径信息构建各结点二分图。
在一个优选例中,该每个结点上至少有一个标签,每个标签对应一种时序约束;
在该对每个结点的各标签进行二分团覆盖时,动态地差异化处理每个结点上的多种时序约束。
在一个优选例中,该后向遍历扫描时序图得到每个结点的后序路径标签集合进一步包括:根据第一方法计算每个结点的后序路径标签集合;该第一方法进一步包括:如果结点v是主要输出,则在结点v上生成一个集合
该前向遍历扫描时序图得到每个结点的前序路径标签集合进一步包括:根据第二方法计算每个结点的前序路径标签集合;该第二方法进一步包括:如果结点v是主要输入,则在结点v上生成一个集合
该r′∩t(v)和该r′∩f(v)是否被虚假路径主导的判定方法为:如果求得的交集中存在指定时序约束下的虚假路径约束,则判定前序或者后序路径被虚假路径给主导;其中,f(v)表示以结点v为起点的所有约束的集合,t(v)表示以结点v为终点的所有约束的集合,i(u,v)表示覆盖边(u,v)的所有约束的集合。
本申请还公开了一种内存优化型静态时序分析系统,包括:
构造模块,用于获取电路网表来构造整体时序图,根据指定时序约束构造部分时序图;
计算模块,用于计算每个结点的后序路径标签集合、计算每个结点的前序路径标签集合,对前序路径标签集合与后序路径标签集合进行交集运算,求得每个结点上集合交集对应的二分图表示,对每个结点的各标签进行二分团覆盖,得到每个结点上的标签,其中,在所述后向遍历扫描和所述前向遍历扫描的过程中,即时识别虚假路径并同时抛弃所述虚假路径对应的标签;
处理模块,用于计算该结点上各个标签对应的延时裕量并生成时序分析报告。
在一个优选例中,该后向遍历扫描时序图得到每个结点的后序路径标签集合进一步包括:根据第一方法计算每个结点的后序路径标签集合;该第一方法进一步包括:如果结点v是主要输出,则在结点v上生成一个集合
该前向遍历扫描时序图得到该每个结点的前序路径标签集合进一步包括:根据第二方法计算每个结点的前序路径标签集合;该第二方法进一步包括:如果结点v是主要输入,则在结点v上生成一个集合
该r′∩t(v)和该r′∩f(v)是否被虚假路径主导的判定方法为:如果求得的交集中存在虚假路径约束,则判定前序或者后序路径被虚假路径给主导;其中,f(v)表示以结点v为起点的所有约束的集合,t(v)表示以结点v为终点的所有约束的集合,i(u,v)表示覆盖边(u,v)的所有约束的集合。
本申请还公开了一种团覆盖系统,包括:
存储器,用于存储计算机可执行指令;以及,
处理器,用于在执行该计算机可执行指令时实现如前文描述的方法中的步骤。
本申请还公开了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现如前文描述的方法中的步骤。
本申请实施方式中,包括通过优化缩减时序图各结点的标签数量,和将经过缩减后的标签供后续迭代计算延时裕量使用;现将此过程分成数据准备阶段,预处理阶段,标签生成阶段,以及分析阶段和报告阶段等四个阶段,并按照此四个阶段对本申请的关键之处和有益效果进行详细说明。
一、本申请的实施方式中,关键之处至少在于:
1.数据准备阶段:a)将电路网表表达成一张有向无环时序图;b)读取延时信息库文件并标注时序图;c)抽取时序约束文件中用户设定的各类复杂的时序约束;d)将指定时序约束(如虚假路径约束、多周期路径约束)表达成时序图子图。
2.预处理阶段:a)不进行虚假路径约束的子图扩展;b)对指定时序约束相应的时序子图进行集合表示。
3.标签生成阶段:a)后向遍历扫描得到每个结点的后序路径标签集合标签,并即时识别虚假路径并抛弃相应标签;b)前向遍历扫描得到每个结点的前序路径标签集合标签并即时识别虚假路径并抛弃相应标签;c)在前向遍历经过每一个结点的同时,对前序路径标签和后序路径标签求交集;d)根据当前结点上求得的交集,构造二分图;e)用二分团覆盖共享下游路径时序的多个标签,生成的新的标签,从总体上减少标签总量;f)二分团覆盖的过程中能够识别不同周期要求的多周期约束并区分处理。
4.分析阶段和报告阶段:a)根据时序约束中指定的主输入延时,从主输入开始进行前向遍历扫描,计算每个结点上各个标签对应的最大到达时间和最小到达时间;b)根据时序约束中指定的时钟周期,从主输出开始进行后向遍历扫描。计算每个结点上各个标签对应的最大需求时间和最小需求时间c)计算每个标签上的建立时间裕量和保持时间裕量;d)分别收集建立时间约束违规、保持时间约束违规;e)对违规的标签抽取相应的路径信息;f)报告关键路径信息给优化工具进行优化。
在现有技术中,为了能够统一处理虚假路径和多周期路径,在预处理阶段刻意将虚假路径对应的子图扩展,扩展延伸之后的新子图会包含大量各结点的上游和下游结点,导致非常大的内存开销;而且现有技术中关于识别是否为虚假路径并抛弃虚假路径、识别是否是多周期路径、特殊处理多周期路径的决策都被推迟到最后的阶段进行,引入了大量的冗余计算,变相地提升了空间开销和降低了分析效率。
与现有技术相比,本申请优势之处在于:1.不在预处理阶段进行错误路径子图扩展,大幅降低表达冗余子图的空间需求;2.在前向、后向遍历扫描过程中即时识别虚假路径并抛弃相应标签。这一举措能够快速降低时序图中标签的数量,显著减少空间需求和快速提升分析效率;3.在二分团覆盖的过程中能够识别不同周期要求的各种多周期约束并区分处理,在不提升算法复杂度的前提下,处理数据得到梳理和简化;总之,本发明在不扩展子图的前提下,遍历过程中即时判断是否虚假路径而抛弃,减小虚假路径约束对下游结点的影响,减少冗余计算,同时遍历过程中动态地差异化处理如虚假路径约束、多周期路径约束等多种不同类型时序约束,并相应地进行二分团覆盖,进而减少每个结点上的标签数量。
与现有技术相比,本发明实施方式中产生的显著效果在于:在不退化软件运行时间的前提下,大幅减少系统内存空间的占用,提高系统运行效率,提升系统性能。
本申请的说明书中记载了大量的技术特征,分布在各个技术方案中,如果要罗列出本申请所有可能的技术特征的组合(即技术方案)的话,会使得说明书过于冗长。为了避免这个问题,本申请上述发明内容中公开的各个技术特征、在下文各个实施方式和例子中公开的各技术特征、以及附图中公开的各个技术特征,都可以自由地互相组合,从而构成各种新的技术方案(这些技术方案均因视为在本说明书中已经记载),除非这种技术特征的组合在技术上是不可行的。例如,在一个例子中公开了特征a+b+c,在另一个例子中公开了特征a+b+d+e,而特征c和d是起到相同作用的等同技术手段,技术上只要择一使用即可,不可能同时采用,特征e技术上可以与特征c相组合,则,a+b+c+d的方案因技术不可行而应当不被视为已经记载,而a+b+c+e的方案应当视为已经被记载。
附图说明
图1是根据本申请一种静态时序分析方法流程示意图
图2是根据本申请第一实施方式的一种内存优化型静态时序分析方法流程示意图
图3是根据本申请中“电路网表来构造时序图”的具体方法流程示意图
图4是根据本申请中一个具体示例的整体时序图的示意图
图5是根据本申请中一个具体示例的部分时序图的示意图
图6是根据本申请第一实施方式的子步骤202的一个实施例
图7是根据本申请中一个具体示例的结点v的二分图的示意图
图8是根据本申请中一个具体示例的二分团覆盖图的示意图
图9是根据本申请第一实施方式的一种物理设计中的布局布线过程的时序分析方法的实例
图10是根据本申请第二实施方式的一种静态时序分析系统的结构示意图
具体实施方式
在以下的叙述中,为了使读者更好地理解本申请而提出了许多技术细节。但是,本领域的普通技术人员可以理解,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。
部分概念的说明:
1.静态时序分析:电子工程中,对数字电路的时序进行计算、预计的工作流程,该流程不需要通过输入激励的方式进行仿真。传统上,人们常常将工作时钟频率作为高性能的集成电路的特性之一。为了测试电路在指定速率下运行的能力,人们需要在设计过程中测量电路在不同工作阶段的延迟。此外,在不同的设计阶段(例如逻辑综合、布局、布线以及一些后续阶段)需要对电路内部路径进行延迟计算进而指导优化,静态时序分析在电路时序快速、准确的测量中扮演了重要角色。
2.同步数字电路:在一个同步数字系统中,数据的流动应当以一致的步伐进行,即时钟脉冲信号每改变一次,数据能够改变一次。这种运作方式是通过同步的数字电路器件,例如触发器或锁存器来实现的,这类器件以时钟信号为指示将其输入端的数据复制到其输出端。
3.建立时间约束:建立时间(ts)指为了被有效采样,信号在时钟采样电平前保持稳定的最短时间。为了有效地将信号传输到下一级时序器件(触发器)并采样,组合逻辑电路的延时必须满足dp<tperiod-ts,其中tperiod表示时钟周期,一般情况下,建立时间约束针对单个时钟周期。
4.保持时间约束:保持时间(th)指为了被有效采样,信号在时钟采样电平后保持稳定的最短时间。为了保持当前时序器件的输出采样信号稳定,不被上一级时序器件输出的同周期采样信号覆盖造成数据错误,保持时间必须满足dp>th。因此,两级时序器件之间的组合逻辑电路延时必须满足:th<dp<tperiod-ts。
5.多周期路径:一般情况下,信号通过两级时序器件之间组合电路的时间要求为一个时钟周期。在一些特定的设计中,信号在两级时序器件之间传输的时间跨度为多个时钟周期。这种触发器和触发器之间的数据通路称为多周期路径。在多周期路径中,建立时间约束和保持时间约束也相应地有所调整。比如,建立时间约束为dp<n×tperiod-ts,n为时钟周期数。
6.虚假路径:在电路实际工作过程中,由于逻辑互斥或者具体情况,存在特定路径,在这些路径里信号传导不可能发生,这些路径被称为虚假路径,由于对实际优化程序可能产生负面指导,导致电路时序过于保守,虚假路径通常被分析工具忽略。
7.时序图:描述电路结构的有向无环图。在时序图中,结点表示诸如寄存器或者逻辑门之类的基本单元电路的输入和输出引脚,边表示组合逻辑单元电路的输入到输出的连接,或者是电路网表规定的连接。每条边都标注通过单元电路或者布线资源所需要的延时。寄存器输入引脚不与输出引脚相连——寄存器输出引脚没有输入边,而寄存器输入引脚也没有输出边。同样,主输入(输入引脚)没有输入边,而主输出(输出引脚)没有输出边。
8.时序约束:静态时序分析工具的输入,包含一系列规格说明,诸如工作频率要求、时钟偏差、主输入延时、多时钟域、虚假路径、多周期路径等条件,静态时序分析工具综合考虑时序约束中复杂的叠加条件,计算每条实际路径的到达延时和需求延时,进而得到当前路径的延时裕量,最终给优化工具提供反馈。
9.到达延时:信号到达电路指定位置所需要经历的时间,一般将时钟信号的到达时间作为参考时间,或零时刻。为了计算到达时间,需要进行该路径上所有组合逻辑路径的延迟累加计算。到达时间通常涉及一对数据,即信号改变后可能的最早到达时间以及最晚的到达时间。
10.需求延时:信号能够到达而不至于使整体电路违背时序的设计要求。通常路径终点结合此制定位置到终点的延时反向推算而来。
11.延时裕量:需求时间与到达时间之间的差值。结点处一个正的裕量表示此处的到达时间可以再增加裕量表示的时间,仍然不会影响电路的总体延迟情况;相反的,负的裕量则表示路径上的传输过慢,此路径的传输速率必须提高,否则由它组成的整体电路不能够以预期的速率运行。
12.二分图:顶点集可分割为两个互不相交的子集,并且图中每条边依附的两个顶点都分属于这两个互不相交的子集,两个子集内的顶点不相邻,顶点相邻表示它们之间存在一条边相连。
13.完全二分图:二分图中分属两个子集的每一对顶点都相邻的图称为完全二分图,本文简称为二分团。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请的实施方式作进一步地详细描述。
本申请的第一实施方式涉及一种内存优化型静态时序分析方法。
该静态时序分析方法包括步骤101,步骤102两个大步骤,如图1所示:
开始,执行步骤101:获取电路网表来构造时序图并根据时序图优化生成各结点的标签。可选地,该时序图的每个结点上最终至少有一个标签,每个标签对应一种时序约束,这里的约束是经过组合优化的约束而非原始时序约束;所有我们讨论的到达时间、需求时间和延时裕量均挂靠在该具体的标签上。
之后,执行步骤102:计算该每个结点的各标签对应的延时裕量并生成时序分析报告。可选地,如图2所示,该步骤102进一步包括:多次迭代执行“子步骤204~子步骤207”直至判断该时序图中不存在时序违规路径,最后生成时序分析报告;具体步骤为:开始,执行子步骤204,计算该每个结点的各标签的延时裕量并记录在对应标签上;之后,执行子步骤205,分析时序违规路径,判断该时序图中是否存在违规路径;如果是则执行子步骤206,优化并修改违规路径中所有结点中所有标签上的路径信息,并对相应标签上的延时裕量进行修改,否则执行子步骤207,生成时序分析报告。需要说明的是:此处优化并修改违规路径中标签的路径信息和修改延时裕量的具体方法是现有技术,在此不做详细描述。
该步骤102还包括:计算每个标签的到达时间、需求时间和延时裕量,并记录在对应的标签上,而且标签一旦在步骤101中生成,在步骤102中保持不变,但是标签上的“到达时间、需求时间和延时裕量”可以被重新计算和覆盖记录。
由于该步骤102被物理设计流程中的多道优化程序重复调用以实现迭代优化,它们的性能好坏取决于步骤101生成的标签的质量;因此,本申请第一实施例涉及的方法主要致力于:步骤101中对生成标签过程和所生成标签质量的优化;如图2所示,该步骤101进一步包括“子步骤201~子步骤203”,具体为:
开始,执行子步骤201:获取电路网表来构造时序图;具体的为获取电路网表来构造整体时序图,根据指定时序约束构造部分时序图。
如图3所示,可选地,该子步骤201进一步包括:开始,步骤301,将电路网表达成一张有向无环时序图;之后,步骤302,读取延时信息库文件并标注此时序图,得到整体时序图;之后,步骤303,抽取时序约束文件中用户设定的多种时序约束;之后,步骤304,将该多种时序约束中的各个约束分别表达成部分时序图。可选地,该时序约束可以是用户根据情况进行设定和改变的,该时序约束可以是但不限是虚假路径约束和多周期路径约束。
本申请的示例是基于虚假路径和多周期路径这两类时序约束的,获取的整体时序图示例如图4所示;构造部分时序图示例如图5所示。
之后,执行子步骤202:后向遍历扫描时序图得到每个结点后序路径标签集合,前向遍历扫描时序图得到该每个结点的前序路径标签集合,对该前序路径标签集合与该后序路径标签集合进行交集运算,并根据该交集运算的结果构建各结点的二分图,其中,在所述后向遍历扫描和所述前向遍历扫描的过程中,即时识别虚假路径并同时抛弃所述虚假路径对应的标签。
在一个优选实施例中,在该前向遍历扫描时序图的过程中,前向遍历扫描经过每一个结点的同时,对前序路径标签集合和后序路径标签集合进行该交集运算。
可选地,在该前向遍历扫描时序图后,前向遍历扫描经过每一个结点的同时,对前序路径标签集合和后序路径标签集合进行该交集运算。
图6为子步骤202的方法的一个实施例,具体为:开始,步骤601,后向遍历扫描时序图得到每个结点的后序路径标签集合;之后,步骤602,前向遍历扫描时序图,计算和传播每个结点的前序路径标签集合;之后,步骤603,对当前结点的前序路径标签集合和后序路径标签集合进行交集运算;之后,步骤604,根据交集生成代表路径信息的二分图;之后,步骤605,二分团覆盖以减少标签数量。
具体的,子步骤202中对时序图中的每个结点和边的时序约束进行集合表达,分别体现在起点集合、终点集合和边集合;该起点集合表示为f(v)={r|v∈br},f(v)以v为起点的所有约束的集合,其中br表示时序约束r对应子图中所有起点的集合。以图5为例,f(1)={0},f(2)={1},以此类推。该终点集合表示为:t(v)={r|v∈dr},其中t(v)表示以v为终点的所有约束的集合,其中dr表示时序约束r对应子图中所有终点的集合。以图4为例,t(5)={2},t(6)={3},以此类推。该边集合表示为i(u,v)={r|(u,v)∈er},i(u,v)表示覆盖边(u,v)的所有约束的集合,其中er表示时序约束r对应子图中所有边的集合。以图4为例,i(u,v)={0,1,2,3},i(u,8)={0,1}。
需要说明的是:因为多周期约束中指定的起点和终点必须是时序器件的输出端到时序器件的输入端,因此多周期约束对应的子图的起点和终点必定也是时序图的起点和终点,对于时序图中除起点和终点结点以外的其它任意内部结点v,f(v)和t(v)这两个集合中不包含多周期约束。
可选地,子步骤202中后向遍历扫描时序图得到每个结点的后序路径标签集合进一步包括:计算每个结点的后序路径标签集合,该计算每个结点的后序路径标签集合的方法为:如果结点v是主要输出,则在结点v上生成一个集合
可选地,子步骤202中前向遍历扫描时序图得到该每个结点的前序路径标签集合进一步包括:计算每个结点的后序路径标签集合,该计算每个结点的前序路径标签集合的方法为:如果结点v是主要输入,则在结点v上生成一个集合
可选地,该r′∩t(v)和该r′∩f(v)是否被虚假路径主导的判定方法为:如果求得的交集中存在虚假路径约束,则判定前序或者后序路径被虚假路径给主导,进而可以抛弃这个标签;其中,f(v)表示以结点v为起点的所有约束的集合,t(v)表示以结点v为终点的所有约束的集合,i(u,v)表示覆盖(u,v)的所有约束的集合。
子步骤202中对前序路径标签集合与后序路径标签集合进行交集运算。以图4的时序图和图5的时序约束为示例,结点v上的前序路径标签集合、后序路径标签集合以及他们的交集如表1所示:
表1结点v上的交集运算
可选地,该根据交集运算的结果构建各结点的二分图进一步包括:根据该交集运算得到通过各结点的所有路径信息,根据该路径信息构建各结点二分图。
以图4和图5的时序图和以虚假路径约束和多周期路径约束作为指定约束为示例,构建为二分图如图7所示,由于约束#0和#1是虚假路径,那么交集中存在这两个集合中任意一个即被判定为虚假路径而抛弃;在图7的二分图中,我们观察到前序路径标签集合{{0}}与后序路径标签集合{0,1}、前序路径标签集合{{1}}与后序路径标签集合{0,1}之间不存在边,这是虚假路径被识别并抛弃的指征。
之后,执行子步骤203:根据构建好的各结点的二分图,对该每个结点的各标签进行二分团覆盖,减少标签总量,最终得到优化后的各结点的标签。
可选地,在对每个结点的各标签进行二分团覆盖时,根据指定的时序约束的类型进行差异化处理。可选地,该指定的时序约束可以是但不限于多周期路径约束。以多周期路径约束为例:多周期路径约束单独进行二分团覆盖,其中,如果存在多条多周期路径约束,那么根据它们各自的周期要求进行区分;例如,如果存在两条多周期约束,约束要求均为2个时钟周期,那么这两条约束可以用同一个二分团覆盖;如果两个约束要求的周期数不一致,那么就不能用同一个二分团进行覆盖。
以图7的二分图和图5的以虚假路径约束和多周期路径约束最为指定时序约束为示例,结点v上的二分团覆盖如图8所示;由于多周期约束#2和#3的周期要求不一样,所以它们不能用同一个二分团进行覆盖,一个二分团对应一个标签,因此经过二分团覆盖后结点v上的标签由4个减少为3个,原始4个标签分别为:{{0}}、{{1}}、{{2}}、{{3}},经过二分覆盖后的标签分别为:{{0},{1}}、{{2}}、{{3}}。
通过“子步骤201~子步骤203”对时序图进行优化后生成的各结点的标签是抛弃冗余路径后的标签,使用此标签供后续“子步骤204~子步骤205”中对延时裕量迭代计算提供了良好的基础,减少了计算过程中系统内存的占用,且计算效率也有所提高;具体的,静态时序分析系统的本质目的是分析网表中延时是否满足工作频率要求,如果不满足要求,提供违规路径报告以及修改裕量,指导其它应用程序如布局、布线实施路径延时优化;优化的过程通常不是一蹴而就的,它是一个多次迭代逐步收敛的过程(具体为“子步骤204~子步骤207”),这一过程表征了静态时序分析系统和优化程序的协同工作是一个紧密而重复的过程,对于单个优化程序而言,网表在迭代的过程中不会发生改动,因此只需要向静态时序分析系统提交一次网表;综上可知:紧密而重复的迭代延时分析过程实施于挂靠在时序图结点中的标签上,本申请涉及的“子步骤201~子步骤203”详细对标签生成过程进行了优化,进而缩减该结点上标签的个数,减少了系统的冗余;最终的结果是:本申请涉及的一种内存优化型静态时序分析方法显著的提升了静态时序分析系统甚至整个优化程序的性能和质量。
需要说明的是:本申请的“子步骤201~子步骤207”涉及的具体示例中罗列的细节主要是为了便于理解,不作为对本申请保护范围的限制。
图9是根据本申请第一实施方式的一种物理设计中的布局布线过程的时序分析方法的实例,图中的时序子图包括在本申请中部分时序图中。
本申请的第二实施方式涉及一种内存优化型静态时序分析系统,其结构如图10所示,该系统包括构造模块,计算模块和处理模块;
其中,该构造模块用于获取电路网表来构造整体时序图,根据指定时序约束构造部分时序图;该计算模块用于计算每个结点的后序路径标签集合、计算每个结点的前序路径标签集合,对前序路径标签集合与后序路径标签集合进行交集运算,求得每个结点上集合交集对应的二分图表示,对每个结点的各标签进行二分团覆盖,得到每个结点上的标签,其中,在所述后向遍历扫描和所述前向遍历扫描的过程中,即时识别虚假路径并同时抛弃所述虚假路径对应的标签;该处理模块用于计算该结点上各个标签对应的延时裕量并生成时序分析报告。
可选地,计算每个结点的后序路径标签集合所采用的方法为:如果结点v是主要输出,则在结点v上生成一个集合
可选地,该计算每个结点的前序路径标签集合所采用的方法为:如果结点v是主要输入,则在结点v上生成一个集合
可选地,该r′∩t(v)和该r′∩f(v)是否被虚假路径主导的判定方法为:如果求得的交集中存在虚假路径约束,则判定前序或者后序路径被虚假路径给主导,进而可以抛弃这个标签;其中,f(v)表示以结点v为起点的所有约束的集合,t(v)表示以结点v为终点的所有约束的集合,i(u,v)表示覆盖(u,v)的所有约束的集合。
而且,第一实施方式是与本实施方式相对应的方法实施方式,第一实施方式中的技术细节可以应用于本实施方式,本实施方式中的技术细节也可以应用于第一实施方式。
下面是对本申请实施方式中涉及的部分相关技术的简单介绍:
静态时序分析是电子设计自动化中被广泛采用的、验证同步时序电路中数据链路信号和时钟信号的步调是否一致的关键技术;它验证了包含:主输入到主输出、时序器件输出端到时序器件输入端、主输入到时序器件(触发器)输入端、时序器件输出端到主输出的延时,并将验证结果反馈给优化工具而保证这些数据路径不会过长也不会过短,它确保上述四种路径中的数据信号能够被时钟信号有效采样并精确传输。数据路径的长短通常用延时的大小来指征。根据时序约束提供的输入端的最大和最小延时、时钟周期、建立时间约束、保持时间约束,算法首先对时序图进行前向扫描遍历(如触发器输出到下级触发器输入)得到图中每个结点的到达时间,然后对时序图进行后向扫描遍历(如触发器输入到上级触发器输出)得到每个结点的需求时间,最终由需求时间减去到达时间得到每个结点的延时裕量(出自[robertb.hitchcock.timingverificationandthetiminganalysisprogram.19thconferenceondesignautomation,1982.]),对于建立时间约束而言,如果延时裕量为负值,表明信号达到此点所经过的路径过长,需要优化并使得延时裕量为正。对于保持时间约束而言,如果延时裕量为正值,表明信号到达此点所经过的路径过短,需要优化并使得延时裕量为负。前向和后向扫描遍历时序图得到延时裕量的过程不需要关注时序图所代表的具体逻辑行为。然而,实际电路中可能由于组合逻辑互斥或者用户指定不关心特定结点之间路径的延时,一些数据路径在逻辑上根本不存在,它们的延时也应该不被考虑。我们称这些路径为虚假路径。时序分析中掺入不必要的延时有可能导致电路时序过于保守,工作频率下降,影响性能。因此,虚假路径必须被摒弃。[k.p.belkhale,a.j.suess.timinganalysiswithknownfalsesubgraphs.ieee/acminternationalconferenceoncomputer-aideddesign,1995.]提出了基于集合计算产生标签来区分虚假路径的方法。该方法在时序分析过程中动态地产生标签将虚假路径分离出去。最终,所有虚假路径被清除、所有正确路径得到覆盖。标签和特殊约束存在对应关系,一个标签对应一个或者多个约束。在时序电路规模增大,时序约束的复杂度增高时,时序图中每个结点上挂靠的标签数量显著增多。同时,当前结点上的标签由前驱结点上的标签以及覆盖当前结点的约束数量决定。因此,随着扫描遍历的深入,工具需要处理的每个结点的标签的数量显著上升,处理效率下降。通过分析发现,对于遍历到的当前结点,很多路径尾部(从当前结点到主输出或者触发器输入端)的时序信息是共享的。因此当前结点上代表不同约束的多个标签可以合并起来传播下去进而提升分析效率。[shuozhou.statictiminganalysisinvlsidesign.universityofcaliforniaatsandiego,electronicthesesanddissertations,2006.]提出了合并标签并传播的方法。此外,该方法还提出了对多周期路径的处理——用标签无差别地代表多周期路径和虚假路径,只是用优先级和时间偏移来进行区分。虚假路径的优先级高于多周期路径。在扫描遍历到路径的终点时进行结算并判断当前路径是否被虚假路径主导。如果被虚假路径主导,抛弃当前路径。反之,判断是否多周期路径并相应地结算延时裕量。
时序约束,如虚假路径和多周期路径,最终会映射到一张有向无环图。这个有向无环图是整个电路时序图的子图,一条约束对应一张子图。现有技术为了能够统一处理虚假路径和多周期路径,在预处理阶段刻意将虚假路径对应的子图扩展。扩展后的子图的主输入结点集合为整个时序图主输入结点集合的子集,主输出结点集合为整个时序图主输出结点集合的子集。由于约束对应的原始子图的规模通常很小(如果虚假路径约束指出“通过某个逻辑器件的某个引脚的路径均为虚假路径”,它对应的原始子图只有1个结点和若干条边),扩展延伸之后的新子图会包含大量此结点的上游和下游结点,使得图的规模能够增大数倍甚至数十倍,这样做会导致非常大的内存开销,体现在:a)子图的结点数量和边数量在扩展后会增大数倍甚至数十倍;用于表达扩展后子图的空间需求也同比例增大;b)整个程序分析过程中的标签总量和所有约束对应子图的规模正相关。子图的规模显著增大后导致扫描遍历过程中每个结点上的标签数目增加,而且这种增加可能随着遍历的深入而不断增加,此外,在现有的技术中,所有关于甄别是否虚假路径、抛弃虚假路径、甄别是否多周期路径、特殊处理多周期路径的决策都被推迟到最后的阶段进行。当前向扫描遍历整个时序图进行到主输出结点的时候才进行上述诸种决断。
需要说明的是,本领域技术人员应当理解,上述内存优化型静态时序分析系统的实施方式中所示的各模块的实现功能可参照前述内存优化型静态时序分析系统的相关描述而理解。上述内存优化型静态时序分析系统的实施方式中所示的各模块的功能可通过运行于处理器上的程序(可执行指令)而实现,也可通过具体的逻辑电路而实现。本申请实施例上述内存优化型静态时序分析系统如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,readonlymemory)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本申请实施例不限制于任何特定的硬件和软件结合。
相应地,本申请实施方式还提供一种计算机可读存储介质,其中存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现本申请的各方法实施方式。计算机可读存储介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括但不限于,相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读存储介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。
此外,本申请实施方式还提供一种内存优化型静态时序分析系统,其中包括用于存储计算机可执行指令的存储器,以及,处理器;该处理器用于在执行该存储器中的计算机可执行指令时实现上述各方法实施方式中的步骤。其中,该处理器可以是中央处理单元(centralprocessingunit,简称“cpu”),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,简称“dsp”)、专用集成电路(applicationspecificintegratedcircuit,简称“asic”)等。前述的存储器可以是只读存储器(read-onlymemory,简称“rom”)、随机存取存储器(randomaccessmemory,简称“ram”)、快闪存储器(flash)、硬盘或者固态硬盘等。本发明各实施方式所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
需要说明的是,在本专利的申请文件中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。本专利的申请文件中,如果提到根据某要素执行某行为,则是指至少根据该要素执行该行为的意思,其中包括了两种情况:仅根据该要素执行该行为、和根据该要素和其它要素执行该行为。多个、多次、多种等表达包括2个、2次、2种以及2个以上、2次以上、2种以上。
在本申请提及的所有文献都被认为是整体性地包括在本申请的公开内容中,以便在必要时可以作为修改的依据。此外应理解,以上所述仅为本说明书的较佳实施例而已,并非用于限定本说明书的保护范围。凡在本说明书一个或多个实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例的保护范围之内。