《一种用于集成电路的多个时序模式合并的方法和系统.pdf》由会员分享,可在线阅读,更多相关《一种用于集成电路的多个时序模式合并的方法和系统.pdf(18页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 103177145 A(43)申请公布日 2013.06.26CN103177145A*CN103177145A*(21)申请号 201110456741.7(22)申请日 2011.12.20G06F 17/50(2006.01)(71)申请人国际商业机器公司地址美国纽约阿芒克(72)发明人牛佳 戴红卫 程铁鹏 李恭琼李侠 周凡(74)专利代理机构北京市金杜律师事务所 11256代理人酆迅 李峥宇(54) 发明名称一种用于集成电路的多个时序模式合并的方法和系统(57) 摘要本发明公开了一种用于集成电路的多个时序模式合并的方法和系统,方法包括:对电路中的逻辑器件根据驱。
2、动该逻辑器件的时钟创建逻辑组;对所述电路在多个给定的时序模式下进行静态时序分析;根据静态时序分析结果获得多个给定的时序模式的每个时序模式的逻辑组之间的关系;以及将获得的多个给定的时序模式的每个时序模式的逻辑组之间的关系进行合并。该方法和系统使得设计人员能够迅速合并多个时序模式,从而减少设计时间、提高设计效率。(51)Int.Cl.权利要求书2页 说明书12页 附图3页(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书2页 说明书12页 附图3页(10)申请公布号 CN 103177145 ACN 103177145 A1/2页21.一种用于集成电路的多个时序模式合并的方法,包括。
3、:对电路中的逻辑器件根据驱动该逻辑器件的时钟创建逻辑组;对所述电路在多个给定的时序模式下进行静态时序分析;根据静态时序分析结果获得多个给定的时序模式的每个时序模式的逻辑组之间的关系;以及将获得的多个给定的时序模式的每个时序模式的逻辑组之间的关系进行合并。2.根据权利要求1所述的方法,其中创建的逻辑组中,由同一时钟驱动的逻辑器件在一个逻辑组中。3.根据权利要求2所述的方法,其中所述每个时序模式的逻辑组之间的关系包括:逻辑组之间是否存在交互、交互的方向、交互的参数以及逻辑组内部交互的参数。4.根据权利要求3所述的方法,其中逻辑组之间是否存在交互以及交互的方向是通过如下方式之一获得的:利用在静态时序。
4、分析过程中将时钟在电路中进行传播来得到逻辑组之间是否存在交互以及交互的方向;利用对逻辑组内各个逻辑器件进行向前或向后追踪来得到该逻辑组与其它逻辑组之间是否存在交互以及交互的方向;利用遍历电路中所有逻辑器件之间的连接关系来得到逻辑组之间是否存在交互以及交互的方向。5.根据权利要求3或4所述的方法,其中所述逻辑组之间交互的参数是通过所述静态时序分析结果中的包含时序信息的电路获得的。6.根据权利要求3-5之一所述的方法,其中所述逻辑组之间交互的参数包括延迟和时序调整参数DTA,所述逻辑组内部交互的参数还包括时钟最小脉冲宽度参数。7.根据权利要求6所述的方法,其中所述将获得的多个给定的时序模式的每个时。
5、序模式的逻辑组之间的关系进行合并包括:对于任意两个逻辑组,根据在所述多个时序模式的每个时序模式中的所述两个逻辑组之间的DTA参数获得最小DTA参数;对于逻辑组内部,根据获得的最小DTA参数对应的时序模式中的时钟最小脉冲宽度参数,获得最大的时钟最小脉冲宽度参数。8.根据权利要求1所述的方法,其中还包括:将合并的结果生成时序约束文件。9.一种用于集成电路的多个时序模式合并的系统,包括:分组装置,被配置为对电路中的逻辑器件根据驱动该逻辑器件的时钟创建逻辑组;静态时序分析装置,被配置为对所述电路在多个给定的时序模式下进行静态时序分析;关系获得装置,被配置为根据静态时序分析结果获得多个给定的时序模式的每。
6、个时序模式的逻辑组之间的关系;以及合并装置,被配置为将获得的多个给定的时序模式的每个时序模式的逻辑组之间的关系进行合并。10.根据权利要求9所述的系统,其中所述分组装置创建的逻辑组中,由同一时钟驱动的逻辑器件在一个逻辑组中。权 利 要 求 书CN 103177145 A2/2页311.根据权利要求10所述的系统,其中所述每个时序模式的逻辑组之间的关系包括:逻辑组之间是否存在交互、交互的方向、交互的参数以及逻辑组内部交互的参数。12.根据权利要求11所述的系统,其中逻辑组之间是否存在交互以及交互的方向是通过如下方式之一获得的:利用在静态时序分析过程中将时钟在电路中进行传播来得到逻辑组之间是否存在。
7、交互以及交互的方向;利用对逻辑组内各个逻辑器件进行向前或向后追踪来得到该逻辑组与其它逻辑组之间是否存在交互以及交互的方向;利用遍历电路中所有逻辑器件之间的连接关系来得到逻辑组之间是否存在交互以及交互的方向。13.根据权利要求11或12所述的系统,其中所述逻辑组之间交互的参数是通过所述静态时序分析结果中的包含时序信息的电路获得的。14.根据权利要求11-13之一所述的系统,其中所述逻辑组之间交互的参数包括延迟和时序调整参数DTA,所述逻辑组内部交互的参数还包括时钟最小脉冲宽度参数。15.根据权利要求14所述的系统,其中所述合并装置进一步被配置为:对于任意两个逻辑组,根据在所述多个时序模式的每个时。
8、序模式中的所述两个逻辑组之间的DTA参数获得最小DTA参数;对于逻辑组内部,根据获得的最小DTA参数对应的时序模式中的时钟最小脉冲宽度参数,获得最大的时钟最小脉冲宽度参数。16.根据权利要求9所述的装置,其中还包括生成装置,被配置为将合并的结果生成时序约束文件。权 利 要 求 书CN 103177145 A1/12页4一种用于集成电路的多个时序模式合并的方法和系统技术领域0001 本发明一般涉及集成电路设计,更具体地,涉及一种用于集成电路的多个时序模式合并的方法和系统。背景技术0002 集成电路设计的流程的一个很重要的步骤就是时序分析(Timing Analysis),时序分析中,首先可以对于。
9、时钟效应的预计采用理想时钟模型(Ideal Clock Model),进行静态时序分析,然后插入时钟树(Insert Clock Tree),插入时钟树也称时钟树规划。现有的时钟树规划过程可以手工完成,也可以由电子设计自动化(EDA)工具来完成的,最流行的时钟树都采用自动化工具来完成。其基本原理是根据各时序器件到时钟源的距离,在适当的位置放置缓冲器(buffer)以使时钟源到每个时序器件的时钟偏差(skew)最小化。插入的由缓冲器组成的树状的信号中继网络被称为时钟树。插入的时钟树要求能够满足时序约束文件中的时序约束,从而保持时序的收敛性,达到设计的效果。最后进行带时钟的时序分析以及时钟树调节。。
10、时钟树规划、时钟树插入以及时钟树调节的耗时往往要以天甚至周来计算,是集成电路设计过程中影响设计周期的重要因素。0003 尤其当前的集成电路设计中,常常一个芯片具有多个时序模式,也就是说,该芯片的逻辑电路可以在多个不同的时钟频率下工作,在这种情况下,传统的设计中,一种解决办法是对每个时序模式,都进行静态及动态时序分析,使多个时序模式都达到时序收敛,仅仅是一个时序模式的时序分析,已经需要大量时间,对多个时序模式的时序分析,显然需要消耗更大量的时间,使得整个设计周期大大加长;由用户自己将多个时序模式合并成较少的时序模式,最好是合并成一个时序模式,在这种方法中,一种解决办法是:采用最大时钟频率的时序要。
11、求,但是这种解决方案在电路的逻辑域彼此有交互的情况下是有问题的;现有技术中的另一种方案,首先接收多个在不同时序下所要求的时序约束文件,并且生成合并的时序约束文件,这个时序约束文件合并时将多个时序约束完整地汇总为一个超级模式(super mode),所有时序约束文件中的所有的时钟波形都会保存在超级模式中,然后可以用于物理设计工具进行多次的物理设计迭代,但是这种合并方式只考虑了时序约束,没有考虑电路;另外,在合并过程中也没有考虑时序冗余,后续将会详细介绍对于某些集成电路设计,这种合并方法不能解决问题。发明内容0004 因此,需要一种集成电路的多个时序模式合并的方法和系统,使得设计人员能够迅速合并多。
12、种时钟模式,从而减少设计时间、提高设计效率。0005 根据本发明的一个方面,提供了一种用于集成电路的多个时序模式合并的方法,包括:0006 对电路中的逻辑器件根据驱动该逻辑器件的时钟创建逻辑组;0007 对所述电路在多个给定的时序模式下进行静态时序分析;说 明 书CN 103177145 A2/12页50008 根据静态时序分析结果获得多个给定的时序模式的每个时序模式的逻辑组之间的关系;以及0009 将获得的多个给定的时序模式的每个时序模式的逻辑组之间的关系进行合并。0010 根据本发明的另一个方面,提供了一种用于集成电路的多个时序模式合并的系统,包括:0011 分组装置,被配置为对电路中的逻。
13、辑器件根据驱动该逻辑器件的时钟创建逻辑组;0012 静态时序分析装置,被配置为对所述电路在多个给定的时序模式下进行静态时序分析;0013 关系获得装置,被配置为根据静态时序分析结果获得多个给定的时序模式的每个时序模式的逻辑组之间的关系;以及0014 合并装置,被配置为将获得的多个给定的时序模式的每个时序模式的逻辑组之间的关系进行合并。附图说明0015 通过对附图中本发明示例实施例方式的更详细描述,本发明的上述、以及其它目的、特征和优势将变得更加明显,其中,相同的参考标号通常代表本发明示例实施例方式中的相同部件。0016 图1示出了一个实际的集成电路设计例子;0017 图2示出了另外一个实际的集。
14、成电路设计的不同的时序模式;0018 图3示意性地示出了根据本发明的一种实施方式的用于集成电路的多个时序模式合并的方法的流程图;0019 图4是一个常规电路示意图;以及0020 图5示出了用于集成电路的多个时序模式合并的系统500的结构框图。具体实施方式0021 将参照附图更加详细地描述本发明的优选实施方式,在附图中显示了本发明的优选实施例。然而,本发明可以以各种形式实现而不应该理解为被这里阐述的实施例所限制。相反,提供这些实施例是为了使本发明更加透彻和完整,并且,完全将本发明的范围传达给本领域的技术人员。0022 图1示出了一个实际的集成电路设计例子,该电路包含两个逻辑域(Logic Dom。
15、ain)P1和P2以及两个时序模式,如表1所示。每个逻辑域在不同的时序模式下的时序要求不同,其中例如数据20ns表示第一逻辑域P1在第一时序模式下的时钟周期为20纳秒(ns)。其中DTA参数(延迟和时序调整Delay and Timing Adjust)主要用于计算时序检查时的时序调整,例如计算源头为寄存器时钟输出,信号末端为寄存器时钟接收,信号源头到达时间是AT1,信号末端到达时间是AT2,时序分析会作信号建立时间的检查,可用公式标示为:0023 AT2(AT1+DTA参数-信号建立时间)0024 表1中在第一时序模式下,逻辑域P2到逻辑域P1的DTA参数为10ns。说 明 书CN 1031。
16、77145 A3/12页60025 图2示出了另外一个实际的集成电路设计的不同的时序模式。该电路主要功能是高速数据的接收。在功能时序分析的时候,高速核给逻辑域B提供时钟,片上锁相环为逻辑域A提供时钟,逻辑域A和逻辑域B之间有交互,但是因为时钟来源不同,彼此间没有时序检查;但设计的集成电路常常要做ASST(AT Speed Structural Test)测试,ASST时序主要用来检查芯片上会被测试机高速测试的路径是否已经完成了时序收敛,在作ASST时序分析的时候,逻辑A和逻辑域B的时钟均由同一锁相环提供,逻辑域A和逻辑域B之间的交互发生了时序检查。图2中的第一条路径(即圆圈1指示的路径)为AS。
17、ST模式路径,第二条路径(即圆圈2指示的路径)为功能模式路径,正常情况下,这两个模式路径的时序要求应该是相同的,但是,在该示例中,由于两个模式路径走了不同的路径,他们的时序要求就不同了。0026 表1一个实际的集成电路设计的不同时序要求0027 0028 在多个时序模式下,集成电路的逻辑器件工作在不同的时钟频率下,设计人员一个直观的想法是:如果该设计在最大时钟频率都已经满足时序要求,那么就可以满足所有的其它时序要求。但是,实际上这种观点是不完全正确的。对于表1的示例,如果对逻辑域的时序要求简单地使用最大频率(即最小时钟周期)进行合并,合并的DTA将会选择不同逻辑域的时序要求的最大公约数,则使用。
18、集成电路设计工具进行合并的结果如表2所示,显然,合并的DTA并不能满足第一时序模式的要求,因此,上述简单的合并在逻辑域之间有交互时并不能满足设计的要求。0029 下面简单介绍一下时序检查的冗余。例如对于图1中的例子,逻辑域P1内部会作DTA20ns,DTA40ns的建立时间检查,逻辑域P2内部会作DTA50ns,DTA40ns的建立时间检查,逻辑域2到逻辑域1之间会作DTA10ns,DTA40ns的建立时间检查.但是其中逻辑域内部P1的DTA40ns的检查是冗余的,因为它已经做了小于40ns的10ns的检查。这种冗余检查虽然不会造成结果的变化,但是会造成设计周期变长。同样,对于图2,这种冗余检。
19、查也会造成设计周期变长。0030 表2图1电路使用集成电路设计工具进行合并的结果0031 说 明 书CN 103177145 A4/12页70032 另外对于图2中的例子,使用现有技术中的另一种方案,也就是接收多个在不同时序下所要求的时序约束文件,并且生成合并的时序约束文件。这种做法只是将所有时序约束文件进行合并,不能够知道电路内部的时序路径,即不检查电路,因此它并不知道高速核的内部时序路径是什么样的,不知道是存在路径1还是路径2,因此它即使合并了所有的时序约束文件,也不能保证ASST时序模式可以被包含在最终合并后的时序约束文件下所作的时序模式中。0033 本发明的发明人通过分析发现:不同时序。
20、模式的合并不仅要求具有完整性,即合并后的时序模式涵盖了所有的时序模式要求,还要求具有唯一性,即合并后的时序模式没有时序冗余。也就是说,合并就可以将所有的时序模式合并成一个最差时序模式,只要在最差时序模式进行时序分析,达到时序收敛,就可以使得所有的时序模式都达到时序收敛。最差时序模式可能是要求的时序模式之一,也可能与所有的要求的时序模式都不同。0034 图3示意性地示出了根据本发明的一种实施方式的用于集成电路的多个时序模式合并的方法的流程图,根据图3,在步骤S301,对电路中的逻辑器件根据驱动该逻辑器件的时钟创建逻辑组。在该步骤中,可以利用集成电路设计工具对电路中的逻辑器件反向追踪驱动它的时钟来。
21、进行分组,也可以从时钟开始,追踪其驱动的逻辑器件来分组。优选地,在分组过程中,由同一时钟驱动的逻辑器件在一个逻辑组中。0035 在步骤S302,对所述电路在多个给定的时序模式下进行静态时序分析。静态时序分析可以采用现有的集成电路时序分析工具进行,例如Synopsys的PrimeTime,或者IBM EinsTimer。静态时序分析输入无任何时序信息的电路图,以及多个给定的时序模式下的时序约束文件,其输出包括包含时序信息的电路,例如电路每个节点上的时钟相位和到达时间,每两个时钟之间的DTA参数,每个寄存器是否存在建立时间检查违例等等。优选地,可以只进行一次静态时序分析,就可以利用该静态时序分析结。
22、果进行后续步骤。当然,本领域技术人员可以知道,也可以进行多次静态时序分析,选择较好的结果,但是这样需要花费的时间更长。0036 在步骤S303,根据静态时序分析结果获得多个给定的时序模式的每个时序模式的逻辑组之间的关系。逻辑组之间的关系包括逻辑组之间是否存在交互、交互的方向、交互的参数以及逻辑组内部交互的参数。0037 在一种获得多个给定的时序模式下的每个时序模式的逻辑组之间的交互以及交互的方向的实施方式中,是利用在静态时序分析过程中将时钟在电路中进行传播来得到逻辑组之间是否存在交互以及交互的方向的。由于在作静态时序分析的过程中,会将时钟在电路中进行传播,例如逻辑组A的时钟源头的时钟名字是cl。
23、kA,逻辑组B的时钟源头的时钟说 明 书CN 103177145 A5/12页8名称是clkB,传播完毕之后,如果逻辑组B中出现了clkA的时钟,说明逻辑组A会发射信号到逻辑组B中,也就是逻辑组A与逻辑组B交互.使用这种方法去获得逻辑组之间的关系只要保证各个时钟源头上的时钟使用不同的名字即可。0038 在另外一种获得多个给定的时序模式下的每个时序模式的逻辑组之间的交互以及交互的方向的实施方式中,利用对逻辑组内各个逻辑器件进行向前或向后追踪来得到该逻辑组与其它逻辑组之间是否存在交互以及交互的方向。例如,可以对逻辑组A内各个逻辑器件进行向前或向后追踪,如果向前追踪到逻辑组B中的逻辑器件,则表示逻辑。
24、组B会发射信号到逻辑组A.如果向后追踪到逻辑组B中的逻辑器件,则表示逻辑组A会发射信号到逻辑组B,从而得到逻辑组之间的交互。0039 在又一种获得多个给定的时序模式下的每个时序模式的逻辑组之间的交互以及交互的方向的实施方式中,利用遍历电路中所有逻辑器件之间的连接关系来得到逻辑组之间是否存在交互以及交互的方向的,例如,可以将电路结构以一种数据结构在计算机中保存,包括电路中所有逻辑器件之间的连接关系,每个连接关系包括起始节点和终止节点,遍历所有的连接关系,如果发现连接关系的起始节点和终止节点在不同的逻辑组中,则表示逻辑组A和B交互。0040 此外,还有很多种本领域技术人员公知的其它获得多个给定的时。
25、序模式下的每个时序模式的逻辑组之间的交互以及交互的方向的实施方式,这里不再列举。逻辑组内部交互的参数通常是由用户自定义的。0041 以下以图4的电路示意图为例,定义一种描述多个时序模式下的逻辑组之间关系的数据结构,包括逻辑组之间的交互、交互的方向、以及相关参数。该数据结构可以采用表3进行描述,或者采用其它类似的数据结构,只要能够表达这些关系即可,例如数组,链表等。0042 表3描述多个时序模式下的逻辑组之间关系的数据表结构0043 说 明 书CN 103177145 A6/12页90044 图4是一个常规电路示意图,该电路中,锁相环输出时钟,通过时钟波形产生器(分频器,波形对齐,门控时钟等器件。
26、组合而成)之后,输出给不同的逻辑域,实现逻辑功能。根据表3,第一列为逻辑组的序号,其中每一行包含一个逻辑组,如逻辑组1,逻辑组2.,逻辑组i,第二列为本逻辑组的时钟物理源头,例如图4的时钟波形产生器的输出管脚;第三列为本逻辑组时钟物理源头的所有时钟,例如图4的时钟波形产生器的输出管脚上的所有时钟;第四列,第五列,.,第i列分别对应各个逻辑组,每个逻辑组行和逻辑组列交叉的部分表示了两个逻辑组之间交互的参数,上述静态时序分析的输出为包含时序信息的电路,能够从包含的时序信息中获得两个逻辑组之间交互的参数,这些参数包括DTA,静态时序分析获得的输出包括每两个逻辑组之间每两个时钟相位之间的DTA参数DT。
27、A1、DTA2、DTA3.。当表3中i和j相等时,也就是逻辑组内部,还包括时钟最小脉冲宽度参数。在每一个时序模式下,都可以得到一张诸如表3所表示的该时序模式下的逻辑组之间关系。0045 优选地,逻辑组之间的交互还可以包含很多其它参数,例如时序例外中的伪路径,时序例外中的建立时间检查,时序例外中的保持时间检查等等参数。这些参数一般也是通过上述静态时序分析输出的包含时序信息的电路中获得的。0046 回到图3,在步骤S304,将获得的多个给定的时序模式的每个时序模式的逻辑组之间的关系进行合并。合并时,可以将所述多个给定的时序模式合并成一个时序模式,这样后续的时序分析最节省时间。当然,本领域技术人员知。
28、道,也可以合并成多个时序模式,只说 明 书CN 103177145 A7/12页10要少于给定的多个时序模式的个数,就能够节省后续时序分析的时间。具体合并过程中,采用的方法是一样的。以下以合并成一个时序模式为例,陈述合并方法。具体合并时,获得所有时序模式表中的逻辑组i,逻辑组j的表项,也就是说,如果有m个时序模式,会有m个诸如表3所示的表;然后比较m个诸如表3所示的表中对应表项的DTA,取出最小的DTA,例如i1,j0,m3,m个表中对应表项的DTA分别为10ns、20ns、30ns,则取出最小的DTA为10ns;然后比较m个诸如表3所示的表中当ij时的时钟最小脉冲宽度参数,例如ij1,m3,。
29、m个诸如表3所示的表中对应表项的DTA和时钟最小脉冲宽度参数分别为10ns、4.5ns;10ns、5ns;20ns、10ns,则先选最小DTA,然后再从最小DTA对应的时序模式的时钟最小脉冲宽度参数中选最大的时钟最小脉冲宽度参数,即选择10ns、5ns;可以总结合并的步骤包括:对于任意两个逻辑组,根据在所述多个时序模式的每个时序模式中的所述两个逻辑组之间的DTA参数获得最小DTA参数;对于逻辑组内部,根据获得的最小DTA参数对应的时序模式中的时钟最小脉冲宽度参数,获得最大的时钟最小脉冲宽度参数。0047 优选地,还可以比较m个诸如表3所示的表中对应表项的其它用户自定义参数,例如时序例外参数,用。
30、户自定义最大延迟参数等。对于用户自定义最大延迟参数,例如在模式1中要求电路节点1到电路节点2最大的延迟为5ns,模式2中要求电路节点1到电路节点2最大的延迟为2ns,在合并模式为2ns。0048 这样,就将m个诸如表3所示的表合并成一张诸如表3所示的表,也就是得到了合并的结果,即合并的时序模式的关系。0049 以下以图1为例,使用本发明图3所示的方法,首先创建逻辑组1和逻辑组2,在表4和表5中给出得到的逻辑组1和逻辑组2之间的在不同时序模式下(时序模式1和时序模式2)的关系,最后进行合并,表6也给出了合并后的时序模式关系。0050 表4图1的逻辑组1和逻辑组2在时序模式1下的关系0051 0052 优选地,在步骤S305,将合并的结果生成时序约束文件。也就是说,通过合并成的一张诸如表3所示的表,生成时序约束文件。然后,设计人员就可以进一步进行时钟树规划等等设计步骤,从而完成整个设计。以表4为例,首先取出ij1的表项(以下i表示逻辑组行,j表示逻辑组列),即DTA20ns,时钟最小脉冲宽度10ns,则可以转化为下列时序约束代码:0053 表5图1的逻辑组1和逻辑组2在时序模式2下的关系0054 说 明 书CN 103177145 A10。