芯片设计中使重用子模块电压环境一致化的方法、系统和设计结构的制作方法

文档序号:6600164阅读:211来源:国知局
专利名称:芯片设计中使重用子模块电压环境一致化的方法、系统和设计结构的制作方法
技术领域
本发明的各实施例一般涉及芯片设计,更具体地,本发明的各实施例涉及一种芯片设计中使重用子模块电压环境一致化的方法、系统和设计结构。
背景技术
当前,集成电路的规模变得越来越大,工艺越来越先进,设计本身也变得越来越复杂。层次化设计是一种最常用的集成电路的芯片的设计方法,在该设计方法中,要设计的芯片被划分成了很多子模块,每个子模块单独设计,然后被顶层调用。如果设计中几个子模块是完全相同的,那么只需要设计该子模块一次,通过在顶层设计的时候多次调用设计的该子模块,来完成整个芯片的设计,这样的子模块就被称为重用子模块(reused sub module),重用子模块能够大大减少设计的复杂度和工作量。但是,重用子模块被顶层设计多次调用时,每个重用子模块的时序差异经常是不同的,造成设计人员不得不反复调整。现有技术中,对于重用子模块的时序差异,是从减小模块内部的时序差异入手,通常采用以下几种办法(1)逻辑上的方法为了减小数据路径上的时序差异,通常采用驱动能力比较大的器件,减小逻辑扇出,替换高门限电压的器件为低门限电压的器件,在设计上采用的方法通常为复制/中继逻辑,重新综合优化等。(2)物理上的方法为了使数据通路尽可能短,会调整一些模块的位置,使其尽可能靠近,在设计上通常表现为预布局的位置调整,还可以增减供电电容的数量,减小供电电源的噪声,表现为供电电源电容量的调整等。但是这些方法不仅耗时间,而且很难解决重用子模块之间的时序差异,对于一个复杂设计来说,这部分的工作要占到最后阶段工作时间的10% 20%。

发明内容
因此,需要一种方法,能够减小各个重用子模块的时序差异。本发明的发明人经研究,发现重用子模块的时序差异主要是由于各个重用子模块的电压环境不同造成的,本发明的各实施例公开了一种集成电路设计中使重用子模块电压环境一致化的方法和系统,通过使重用子模块电压环境一致化,可以减小芯片设计中重用子模块时序差异,使得在预布局中让设计者有更大的灵活度,最终达到减少设计复杂度和工作量,减少设计周期的目的。根据本发明的一个方面,提供了一种芯片设计中使重用子模块电压环境一致化的方法,其中该芯片中包含多个重用子模块,每个重用子模块通过其电源环上的供电连接点与所述芯片的供电网相连,该方法包括调整所述多个重用子模块的供电连接点的数量和位置,使所述多个重用子模块的供电连接点的数量和对应的供电连接点位置相同;调整所述多个重用子模块的与所述供电连接点相连的供电网上的电源线,使所述多个重用子模块对应的供电连接点上的电压一致。根据本发明的另一个方面,提供了一种芯片设计中使重用子模块电压环境一致化的系统,其中该芯片中包含多个重用子模块,每个重用子模块通过其电源环上的供电连接点与所述芯片的供电网相连,该系统包括供电连接点的数量和位置调整装置,用于调整所述多个重用子模块的供电连接点的数量和位置,使所述多个重用子模块的供电连接点的数量和对应的供电连接点位置相同;电源线调整装置,用于调整所述多个重用子模块的与所述供电连接点相连的供电网上的电源线,使所述多个重用子模块对应的供电连接点上的电压一致。根据本发明的再一个方面,提供了一种在计算机可读介质中体现的、用于设计、制造或者测试集成电路的设计结构,其中设计结构使用本发明所述的方法进行设计。


通过对附图中本发明示例实施例方式的更详细描述,本发明的上述、以及其它目的、特征和优势将变得更加明显,其中,相同的参考标号通常代表本发明示例实施例方式中的相同部件。图1示出了一个三个重用子模块的环境电压不同的例子;图2基于RC模型示出了反相器器件电压与器件延迟的关系曲线;图3示出了一条在重用子模块上的某条数据路径的电路原理图;图4示出了根据本发明的一个实施例的一种芯片设计中使重用子模块电压环境一致化的方法流程;图5示出了每个供电连接点相连接的每段供电线段的宽度和这个供电连接点的电压之间的关系曲线;图6示意性地示出了多次叠代方法的流程;图7示出了图1调整后的供电网络示意图;以及图8还示意性地示出了根据本发明一种实施方式的芯片设计中使重用子模块电压环境一致化的系统800的结构框图;以及图9示出例如在半导体设计、制造和/或测试中使用的典型设计流程900的框图。
具体实施例方式将参照附图更加详细地描述本发明的优选实施方式,在附图中显示了本发明的优选实施例。然而,本发明可以以各种形式实现而不应该理解为被这里阐述的实施例所限制。 相反,提供这些实施例是为了使本发明更加透彻和完整,并且,完全将本发明的范围传达给本领域的技术人员。在使用层次化设计方法设计芯片时,每个子模块都有一个独立的电源环(power ring)延着子模块边缘环绕一圈。外部的供电网(power mesh)直接接到这个电源环上,而重用子模块内部的器件都是由这个电源环供电的。当顶层设计多次调用重用子模块时,各个子模块的环境电压并不是相同的,图1示出了一个三个重用子模块的环境电压不同的例子,其中,RLM0、RLM1和RLM2是相同的重用子模块,每个模块上的圆圈表示供电网与该模块的电源环的连接点,称为供电连接点(Power connection point)。自动布线的过程中,由于供电网不同,造成多个重用子模块的供电连接点的数量是不同的,并且为各重用子模块接入的环境电压也并不相同。由于环境电压的不同,这三个重用子模块就不能达到设计要求的完全相同,例如,由于供电电压的不同,各模块中的器件延迟是不同的,图2基于RC模型示出了反相器器件电压与器件延迟的关系曲线。由于生产工艺存在不确定性,电路中的每一个器件的延迟都是一个范围而非一个确定的值,因此,在图2 中的早模式也称“早”模式,是指器件在生产工艺下“最快”的模式下的延迟;而迟模式,也称“迟”模式,是指器件在生产工艺下“最慢”的模式下的延迟。从图2可以看出,随着供电电压的增加,器件在两个模式下的延迟都是单调减小,曲线近似于双曲线。其它器件(例如与门,或门)的器件电压与器件延迟也存在这样的关系,器件延迟随供电电压的变化造成如果各个重用子模块的环境电压存在差异,各个重用子模块的时序差异是不同,从而导致模块重用的障碍。图3示出了一条在重用子模块上的某条数据路径的电路原理图,数据通过最左边的寄存器发射,通过中间一系列的组合逻辑后,由最右边的寄存器接收,该电路工作在
的时钟下。该重用子模块多次应用到芯片时,如果在第一重用子模块(RLMl)的该路径上的所有器件的估计压降为0. 022v,那么第一重用子模块的该路径上,设计工具计算出的数据采样端的到达时间为4. 112纳秒(ns)。当考察该芯片的第二重用子模块(RLM2)的电压降时,发现第二重用子模块的该路径上,设计工具计算出的数据采样端到达时间从4. 012 纳秒升到4. 319纳秒,有300皮秒(ps)的浮动差异。这样大的差异,会导致在不同位置的相同重用子模块间的时序检测结果大相径庭。这就需要付出额外的劳动量去优化重用子模块,才能让它在不同的电压环境中满足所有的时序约束。而优化重用子模块的工作量很大。根据以上研究,发现重用子模块的时序差异主要是由于各个重用子模块的电压环境不同造成的,因此,本发明提出了一种芯片设计中使重用子模块电压环境一致化的方法和系统,该方法通过改变重用子模块周围电源网络结构来使在芯片不同位置的重用子模块电压环境保持一致,从而使各重用子模块的内部的时序特征也保持一致,加速时序收敛。根据上述的分析,可知只要能保证复用的子模块电源线圈上的电压分布情况一致,那就可以认为在不同位置的子模块内部的电压分布也是一致的。因此,图4示出了根据本发明的一个实施例的一种芯片设计中使重用子模块电压环境一致化的方法流程,其中该芯片中包含多个重用子模块,每个重用子模块通过其电源环上的供电连接点与所述芯片的供电网相连,该方法包括在步骤S401,调整所述多个重用子模块的供电连接点的数量和位置,使所述多个重用子模块的供电连接点的数量和对应的供电连接点位置相同;在步骤S402,调整所述多个重用子模块的与所述供电连接点相连的供电网上的电源线,使所述多个重用子模块对应的供电连接点上的电压一致。在一种实施方式中,所述多个重用子模块内部结构相同,接口相同;在另外一种实施方式中,所述多个重用子模块对外接口相同,但是内部结构可能有差异。在一种是实施方式中,步骤S401包括确定重用子模块的供电连接点的标准数量和标准位置;将所述多个重用子模块的供电连接点的数量和位置调整到所述确定的供电连接点的标准数量和标准位置。标准数量和标准位置的确定方法可以有很多种,例如,可以从所述多个重用子模块中选择一个重用子模块的供电连接点的数量和位置作为标准数量和标准位置,将其它重用子模块的供电连接点数目调整到所述标准数量和标准位置。选择的这个重用子模块优选地为各重用子模块中供电连接点数目最少的子模块,其供电连接点数量为标准数量,标准位置也为该拥有最少供电连接点的子模块的供电连接点的位置;另一种实施方式中,标准数目由所有重用子模块中供电连接点数目的平均值决定,而标准位置则可以根据标准数目平均划分重用子模块的每个边长,使得供电连接点均勻分布在各个重用子模块的边上。定义好标准数目与标准位置之后,可以由布电(power-planning)工具重新绕供电线(power-bussing)进行调整,也可以由设计人员手工调整。在另外一种实施方式中,步骤S401的调整是一种抽象的调整,确定一个个重用子模块的供电连接点的数量和位置后,将供电连接点的物理信息提取出来,并将这些物理信息直接加用在所述其它位置的多个重用子模块上,再由布电(power-planning)工具重新绕供电线(power-bussing),或者由设计人员手工步与供电网的电源连线。在另外一种实施方式中,步骤S402包括确定重用子模块的各供电连接点的目标电压;调整所述多个重用子模块的与所述供电连接点相连的供电网上的电源线,使各供电连接点上的电压值达到该供电连接点的目标电压。在上述实施方式中,确定重用子模块的各供电连接点的电压可以采用EDA工具, 现有的EDA工具,例如IBM公司的Alsim,Cadance公司的CeltIC,Synopsys公司的Prime Rail都提供这样的功能。当获得各重用子模块的各供电连接点的电压后,各供电连接点的目标电压可以采用多种方法确定,例如,可以采用所有重用子模块的该供电连接点的平均电压作为目标电压,或者选一部分重用子模块的该供电连接点的平均电压作为目标电压, 或者选择所有重用子模块的该供电连接点的电压的最大值、最小值或者中间值,等等,总体上来说,供电连接点的目标电压可根据需求在一定范围内调整。设计工具可以为用户保留调整接口。在一种实施方式中,调整所述多个重用子模块的电源环上的每个供电连接点与供电网之间的电源线,使各供电连接点上的电压值达到该供电连接点的目标电压可以通过如下方式进行根据所述多个重用子模块周围供电网的分布情况,确定至少一个供电连接点连接的一段可以调整的电源线的宽度;调整上述至少一个供电连接点连接的一段可以调整的电源线的长度,使所述至少一个供电连接点上的电压值达到其目标电压。由于其中一个供电连接点的供电电压可能已经是其目标电压,因此,只有有需求的供电连接点连接的电源线才需要调整。在另一种实时方式中,调整所述多个重用子模块的电源环上的每个供电连接点与供电网之间的电源线,使各供电连接点上的电压值达到该供电连接点的目标电压还可以通过如下方式进行根据所述多个重用子模块周围供电网的分布情况,确定至少一个供电连接点连接的一段可以调整的电源线的长度;调整上述至少一个供电连接点连接的一段可以调整的电源线的宽度,使所述至少一个供电连接点上的电压值达到其目标电压。同理,由于其中一个供电连接点的供电电压可能已经是其目标电压,因此,只有有需求的供电连接点连接的电源线才需要调整。并且,待调整的电源线的长度一旦被确定了,便不会再更改,在优选的实施方式中,这个长度优选为该供电连接点在各个重用子模块中连接的供电网上的最短的电源线的长度。这是因为,当所有重用子模块的供电连接点的数目和位置都已经一致时,相对重用子模块本身的位置来说,每个供电连接点起始点是相同的。然后,每个供电连接点从起始点出发,到其他模块边缘、芯片的边缘或者某些禁止绕线的边界处存在一个最短长度的电源线,选取该最短长度作为调整的电源线长度可以保证每个供电连接点都有足够的可调整的电源线。以下将详细讨论该方案的实施。图5示出了每个供电连接点相连接的每段供电线段的宽度和这个供电连接点的电压之间的关系曲线,这条曲线是一条近似曲线,表明一种变化趋势。基于图5的曲线,调整每一段电源线的宽度可以通过估算或者多次叠代等多种方法来实现。在估算方法的实施方式中,根据图5所示的曲线,在一段相对短的区域里,可以把电压与电源线宽度近似为一阶线性或者二阶线性关系,例如,采用一阶线性函数根据目标电压值来估算调整到目标电压值需要的电源线宽度,可以得到电源线宽度估计值W.为W =W/T~V^).(1)
V0 ~Vmm其中,Wtl为在调整供电连接点的电压之前每个即将被调整的供电线段的起始宽度。V0为在调整供电连接点电压之前计算出的每个供电连接点的电压值。Vmin为理论上供电连接点所能达到的最小电压值,这个理论值于不同的工艺而不同。Vt为每个供电连接点的目标电压值,也就是说,需要把所有重用子模块在该供电连接点的电压值均调整为这个值。除了一阶线性估算方法以外,还可以通过调整电源线宽度得到一些样本点,再利用最小二乘法、二次曲线,或者其他曲线拟合出近似的电压与电源线宽的函数曲线,估算出满足目标电压的条件下,电源线应该调整到的宽度。这些估算方法优点是比较简单,缺点是精度不够高。如果EDA工具可以很方便的算出调整后供电连接点上的电压值,还可以利用多次叠代的方法来获得电源线应该调整到的宽度,或者对估算的宽度进一步提高精度。在多次迭代方法中,根据图5中的每个供电连接点相连接的每段电源线的宽度和这个供电连接点的电压之间的关系曲线,这种关系建立在此段电源线的其他参数(比如长度和金属层)都不变的基础上。由于线宽与电压的近似正比关系(这种关系的理论依据来自两个方面,第一,线宽与线电阻成正比关系,而电阻与电压成正比关系;第二,大量的实验数据也同时支撑了这一理论),假设Vmin是图5电压与电线宽度曲线附近的一点,并且在一定的区域内,曲线的变化是线性的。当需要把电压从Vg调整到Vt时,根据几何比例关系得出电源线需要调整到的宽度为Wi《Ο"(2)
、^i-I 一厂min J其中各个变量的意义Wi 第i迭代时每个供电连接点的电源线在上述一段长度的区域里的宽度,Wtl为在调整电压之前每个即将被调整的供电线段的起始宽度。Vi.第i次迭代时每个供电连接点的电压,V0为在调整电压之前由EDA工具自动计算出的每个供电连接点的电压值。Vmin 理论上供电连接点所能达到的最小电压值,这个理论值于不同的工艺而不同。Vt 每个供电连接点的目标电压值,也就是说,需要把所有重用子模块在该连接点的电压值均调整为这个值。公式O)为迭代方法中计算下一次迭代电源线宽度的一阶估计公式,同样道理, 也可以采用上述的估计方法获得计算下一次迭代电源线宽度的二阶估计公式,这里不再详细论述。图6示意性地示出了多次叠代方法的流程,其中,每个供电连接点的目标电压值Vt 为该连接点在所有重用子模块中的电压值的平均值,这么选取,是为了使算法更快的收敛。根据图6,在步骤S601,开始迭代流程。在步骤S602,确定每个待调整的供电连接点连接的电源线的长度,为了方便,优选地,每个重用子模块的待调整线段的长度都将相同,以供电连接点为以端点,根据确定的长度确定另一端点。这个长度优选为该连接点在各个重用子模块中连接的最短的电源线的长度,从而保证算法中被调整的电源线一定存在。在步骤S603,确定电源线段允许的最大宽度Wmax和最小宽度Wmin,迭代次数的上限值N、在调整电压之前的每个供电连接点的起始电压值Vtl以及该供电连接点连接的电源线的起始宽度Wc^ Wmax为设定的一个被调整的电源线的宽度不允许超过的上限值,Wmin为设定的一个被调整的电源线的宽度不允许超过的下限值。这两个值通常由工艺参数和某些实际情况决定的,并且不同的金属层的宽度阈值也是不一样的,因为被调整的电源线不可能无限制的被加宽或削窄,因此如果算法达到这两个值,优化过程便会终止。迭代次数的上限值 N的设定是为了保证算法不会因为无限收敛而使得运行时间无限加长,在迭代次数达到这个值后,算法便会终止。这里,步骤S602和S603没有先后之分,可以以任意顺序执行。迭代过程在规定的迭代次数范围内,并在规定的电源线端宽度范围内,根据当前的电源线的宽度,当前的对应的供电连接点的电压,理论上供电连接点所能达到的最小电压值,以及每个供电连接点的目标电压值,计算下一次迭代时电源线的宽度,以及计算下一次迭代时对应的供电连接点的电压,如果下一次迭代时对应的供电连接点的电压与供电连接点的目标电压值相差在规定的范围内,则该下一次迭代时电源线的宽度为该供电连接点的调整后的电源线的宽度。具体来说,迭代包括以下步骤在步骤S604,设置迭代次数起始值0,开始迭代过程。接下来进入迭代循环,每次迭代过程首先在步骤S605,对供电连接点判断供电连接点每次迭代产生的目标电压Vi与该供电连接点的目标电压Vt的差值是否已经小于预先设定的一个差值δ或者迭代次数是否已经达到事先设定好的最大允许次数N,δ的设定也是为了保证算法不会因为不收敛而使得运行时间无限加长,而是在可以接受的范围内,流程终止,该参数可以使时序收敛的过程被大幅度加速,而Vi在迭代过程中会逐步逼近Vt。因此如果已经在可以接受的范围之内或者迭代次数已经达到事先设定好的最大允许次数N, 那么迭代结束,进入步骤S611,否则迭代继续进入步骤S606。如果迭代结束,在步骤S611,判断当前线宽即为待调整后的供电线段的最终宽度。 然后在步骤S612,结束该流程。
如果迭代继续,那么在步骤S606,迭代次数加1。然后在步骤S607,根据一阶或二阶迭代公式,计算所有供电连接点连接的电源线该次调整后的电源线宽度;然后在步骤 S608,判断该宽度是否在允许的范围内,也就是否小于Wmax并且大于Wmin。如果超出范围,那么迭代结束进入步骤S611 ;否则进入步骤S609。在步骤S609,将所有重用子模块的对应的供电连接点连接的电源线宽度调整为 Wi,优选地,接下来可以使用EDA工具或者手动的方法根据目标线宽调整供电线段的物理形状。然后在步骤S610,使用EDA工具计算出该供电连接点的Vi,然后进入步骤S605,对供电连接点判断供电连接点每次迭代产生的目标电压Vi与该供电连接点的目标电压Vt的差值是否已经小于预先设定的一个差值δ或者迭代次数是否已经达到事先设定好的最大允许次数N。使迭代持续,直到获得合适的电源线宽度。计算出该供电连接点的供电电压Vi是EDA工具自动计算得出,其余的步骤均由脚本代码直接提供的算法完成。但是这些都可以集成到EDA工具,作为它的一个功能。图7示出了图1调整后的供电网络示意图。由图7可见,不同重用子模块的同一供电连接点连接的电源线被调整后宽度是不同的。在同一个发明构思下,图8还示意性地示出了根据本发明一种实施方式的芯片设计中使重用子模块电压环境一致化的系统800的结构框图,其中该芯片中包含多个重用子模块,每个重用子模块通过其电源环上的供电连接点与所述芯片的供电网相连,该系统包括供电连接点的数量和位置调整装置801,用于调整所述多个重用子模块的供电连接点的数量和位置,使所述多个重用子模块的供电连接点的数量和对应的供电连接点位置相同;以及电源线调整装置802,用于调整所述多个重用子模块的与所述供电连接点相连的供电网上的电源线,使所述多个重用子模块对应的供电连接点上的电压一致。在一种实施方式中,所述供电连接点的数量和位置调整装置801还包括(图8未示出)确定装置,用于确定重用子模块的供电连接点的标准数量和标准位置;其中所述供电连接点的数量和位置调整装置将所述多个重用子模块的供电连接点的数量和位置调整到所述确定的供电连接点的标准数量和标准位置。这里所述供电连接点的标准数量和标准位置为以下之一标准数目为所有重用子模块中供电连接点数目的平均值,标准位置根据标准数目平均划分重用子模块的每个边长,使得供电连接点均勻分布在重用子模块的各个边上;从所述多个重用子模块中选择一个重用子模块的供电连接点的数量和位置作为标准数量和标准位置。在一种实施方式中,所述电源线调整装置802还包括(图8未示出)目标电压确定装置,用于确定重用子模块的各供电连接点的目标电压;其中所述电源线调整装置调整所述多个重用子模块的与所述供电连接点相连的供电网上的电源线,使各供电连接点上的电压值达到该供电连接点的目标电压。这里一供电连接点的目标电压可根据需求在一定范围内调整。例如可以为以下之一所有重用子模块的该供电连接点的平均电压;一部分重用子模块的该供电连接点的平均电压;所有重用子模块的该供电连接点的电压的最大值; 所有重用子模块的该供电连接点的电压的最小值;所有重用子模块的该供电连接点的电压的中间值。在一种实施方式中,所述电源线调整装置802进一步包括(图8未示出)电源线宽度确定装置,用于根据所述多个重用子模块周围供电网的分布情况,确定至少一个供电连接点连接的一段可以调整的电源线的宽度;以及电源线长度调整装置,用于调整上述至少一个供电连接点连接的一段可以调整的电源线的长度,使所述至少一个供电连接点上的电压值达到其目标电压。在另一种实施方式中,所述电源线调整装置802进一步包括(图8未示出)电源线宽度确定装置,用于根据所述多个重用子模块周围供电网的分布情况,确定至少一个供电连接点连接的一段可以调整的电源线的长度;以及电源线宽度调整装置,用于调整上述至少一个供电连接点连接的一段可以调整的电源线的宽度,使所述至少一个供电连接点上的电压值达到其目标电压。其中所述电源线宽度调整装置的一段可以调整的电源线的长度为该供电连接点在各个重用子模块中连接的供电网上的最短的电源线的长度。这里电源线调整装置802可以通过多种方式调整电源线的宽度,一种实施方式中,电源线宽度调整装置是通过根据供电连接点上的目标电压、在调整供电连接点的电压之前每个即将被调整的电源线的起始宽度、在调整供电连接点的电压之前计算出的该供电连接点的电压值、以及理论上该供电连接点所能达到的最小电压值估算出调整后的每一段电源线的宽度来实现的。在另外一种实施方式中,电源线宽度调整装置是通过迭代过程获得调整后的每一段电源线的宽度来实现的,该迭代过程根据当前的电源线的宽度,当前的对应的供电连接点的电压,理论上供电连接点所能达到的最小电压值,以及每个供电连接点的目标电压值,计算下一次迭代时电源线的宽度,以及计算下一次迭代时对应的供电连接点的电压,如果下一次迭代时对应的供电连接点的电压与供电连接点的目标电压值相差在规定的范围内,则该下一次迭代时电源线的宽度为该供电连接点的调整后的电源线的宽度。具体的迭代过程在方法中已经详细描述,这里不再赘述。在同一个发明构思下,本发明还公开了一种在计算机可读介质中体现的、用于设计、制造或者测试集成电路的设计结构,其中设计结构使用上述方法之一进行设计。其中该设计结构包括网表。该设计结构以用于交换集成电路布图数据的数据格式存储在存储介质上。该设计结构至少包括测试数据、特征校准数据、验证数据或者设计说明的其中之一。图9示出例如在半导体设计、制造和/或测试中使用的典型设计流程900的框图。 设计流程900可以根据被设计IC的类型而变化。例如,用于构建特定用途集成电路的设计流程900可以不同于设计标准元件的设计流程900。设计结构920优选为设计工艺910 的输入并且可以来自IP提供者、核心开发者或者其它设计公司,或者可以由设计流程的操作者产生,或者来自于其它源。设计结构920包括以电路图或者HDL,硬件描述语言(例如 Verilog, VHDL,C等)在图7示出的本发明的实施例。设计结构920可以包含在一个或者多个机器可读媒介中。例如,设计结构920可以是在图7中示出的本发明实施例的文本文件表示或者图形表示。设计工艺910优选将如图7所示的本发明的实施例综合(或转化) 为网表980,这里网表980是例如连线、晶体管、逻辑门、控制电路、I/O、模块等的列表,其描述了集成电路设计中其他元件和电路的连接并且记载在至少一个机器可读介质上。这可以是一个反复的过程,根据电路的设计说明和参数,网表980被再综合一次或多次。设计工艺910可以包括使用各种输入,例如,来自库元件930的输入,该库元件930 可以容纳一组常用的元件、电路和装置,包括模块、布图以及符号表示法,用于给定的制造技术(例如不同的技术节点,32nm、45nm、90nm等),来自设计说明940的输入,来自特征校准数据950的输入,来自验证数据960的输入,来自设计规则970的输入以及来自测试数据文件985(可以包括测试模式和其他测试信息)的输入。设计工艺910还可以包括,例如,诸如定时分析、验证、设计规则检查、布局和布线操作等的标准电路设计工艺。在不脱离本发明的范围和精神的范围内,集成电路设计的本领域普通技术人员可以理解在设计工艺910 中使用的可能的电子设计自动化工具和应用的范围。本发明的设计结构不限于任何特定的设计流程。设计工艺910优选为将图7中示出的本发明的实施例以及任何附加的集成电路设计或数据(如果可适用)转化为第二设计结构990。设计结构990以用于集成电路的布图数据交换的数据格式(例如以⑶SII (⑶S2),GL1,0ASIS或存储这种设计结构的任何其他适合的格式存储的信息)存储在存储介质上。设计结构990可以包括如下信息,例如测试数据文件、设计内容文件、制造数据、布图参数、布线、金属级别、过孔、形状、用于通过生产线寻径的数据以及半导体制造商生产如图7所示的本发明的实施例所需的任何其他数据。然后设计结构990可以前进到步骤995,这里设计结构990例如进行流片,交付制造,交付掩模室,被送到另一个设计室,返回到客户等。虽然这里参照附图描述了本发明的示例性实施例,但是应该理解本发明不限于这些精确的实施例,并且在不背离本发明的范围和宗旨的情况下,本领域普通技术人员能对实施例进行各种变化的修改。所有这些变化和修改意欲包含在所附权利要求中限定的本发明的范围中。并且根据上述描述,所属技术领域的技术人员知道,本发明可以体现为装置、方法或计算机程序产品。因此,本发明可以具体实现为以下形式,即,可以是完全的硬件、完全的软件(包括固件、驻留软件、微代码等)、或者本文一般称为“电路”、“模块”或“系统”的软件部分与硬件部分的组合。此外,本发明还可以采取体现在任何有形的表达介质(medium of expression)中的计算机程序产品的形式,该介质中包含计算机可用的程序码。可以使用一个或多个计算机可用的或计算机可读的介质的任何组合。计算机可用的或计算机可读的介质例如可以是——但不限于——电的、磁的、光的、电磁的、红外线的、或半导体的系统、装置、器件或传播介质。计算机可读介质的更具体的例子(非穷举的列表)包括以下有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器 (RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPR0M或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、诸如支持因特网或内部网的传输介质、或者磁存储器件。注意计算机可用的或计算机可读的介质甚至可以是上面印有程序的纸张或者其它合适的介质,这是因为,例如可以通过电扫描这种纸张或其它介质,以电子方式获得程序,然后以适当的方式加以编译、解释或处理,并且必要的话在计算机存储器中存储。在本文件的语境中,计算机可用的或计算机可读的介质可以是任何含有、存储、传达、传播、或传输供指令执行系统、装置或器件使用的或与指令执行系统、装置或器件相联系的程序的介质。计算机可用的介质可包括在基带中或者作为载波一部分传播的、由其体现计算机可用的程序码的数据信号。计算机可用的程序码可以用任何适当的介质传输,包括——但不限于——无线、 电线、光缆、RF等等。用于执行本发明的操作的计算机程序码,可以以一种或多种程序设计语言的任何组合来编写,所述程序设计语言包括面向对象的程序设计语言——诸如Java、Smalltalk, C++之类,还包括常规的过程式程序设计语言——诸如” C”程序设计语言或类似的程序设计语言。程序码可以完全地在用户的计算上执行、部分地在用户的计算机上执行、作为一个独立的软件包执行、部分在用户的计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在后一种情形中,远程计算机可以通过任何种类的网络一包括局域网(LAN)或广域网(WAN)——连接到用户的计算机,或者,可以(例如利用因特网服务提供商来通过因特网)连接到外部计算机。此外,本发明的流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得通过计算机或其它可编程数据处理装置执行的这些指令,产生实现流程图和/或框图中的方框中规定的功能 /操作的装置(means)。也可以把这些计算机程序指令存储在能指令计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令产生一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instruction means) 的制造品,也可以把计算机程序指令加载到计算机或其它可编程数据处理装置上,使得在计算机或其它可编程数据处理装置上执行一系列操作步骤,以产生计算机实现的过程,从而在计算机或其它可编程装置上执行的指令就提供实现流程图和/或框图中的方框中规定的功能/操作的过程。附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
权利要求
1.一种芯片设计中使重用子模块电压环境一致化的方法,其中该芯片中包含多个重用子模块,每个重用子模块通过其电源环上的供电连接点与所述芯片的供电网相连,该方法包括调整所述多个重用子模块的供电连接点的数量和位置,使所述多个重用子模块的供电连接点的数量和对应的供电连接点位置相同;以及调整所述多个重用子模块的与所述供电连接点相连的供电网上的电源线,使所述多个重用子模块对应的供电连接点上的电压一致。
2.根据权利要求1所述的方法,其中所述调整所述多个重用子模块的供电连接点的数量和位置,使所述多个重用子模块的供电连接点的数量和对应的供电连接点位置相同包括确定重用子模块的供电连接点的标准数量和标准位置;将所述多个重用子模块的供电连接点的数量和位置调整到所述确定的供电连接点的标准数量和标准位置。
3.根据权利要求2所述的方法,其中所述供电连接点的标准数量和标准位置为以下之标准数目为所有重用子模块中供电连接点数目的平均值,标准位置根据标准数目平均划分重用子模块的每个边长,使得供电连接点均勻分布在各个重用子模块的边上;从所述多个重用子模块中选择一个重用子模块的供电连接点的数量和位置作为标准数量和标准位置。
4.根据权利要求1-3之一所述的方法,其中所述调整所述多个重用子模块的与所述供电连接点相连的供电网上的电源线,使所述多个重用子模块对应的供电连接点上的电压一致包括确定重用子模块的各供电连接点的目标电压;调整所述多个重用子模块的与所述供电连接点相连的供电网上的电源线,使各供电连接点上的电压值达到该供电连接点的目标电压。
5.根据权利要求4所述的方法,其中供电连接点的目标电压可根据需求在一定范围内调整。
6.根据权利要求4所述的方法,其中所述调整所述多个重用子模块的与所述供电连接点相连的供电网上的电源线,使各供电连接点上的电压值达到该供电连接点的目标电压包括根据所述多个重用子模块周围供电网的分布情况,确定至少一个供电连接点连接的一段可以调整的电源线的宽度;调整上述至少一个供电连接点连接的一段可以调整的电源线的长度,使所述至少一个供电连接点上的电压值达到其目标电压。
7.根据权利要求4所述的方法,其中所述调整所述多个重用子模块的与所述供电连接点相连的供电网上的电源线,使各供电连接点上的电压值达到该供电连接点的目标电压包括根据所述多个重用子模块周围供电网的分布情况,确定至少一个供电连接点连接的一段可以调整的电源线的长度;调整上述至少一个供电连接点连接的一段可以调整的电源线的宽度,使所述至少一个供电连接点上的电压值达到其目标电压。
8.根据权利要求7所述的方法,其中一段可以调整的电源线的长度为该供电连接点在各个重用子模块中连接的供电网上的最短的电源线的长度。
9.根据权利要求7所述的方法,其中所述调整上述至少一个供电连接点连接的一段可以调整的电源线的宽度,使所述至少一个供电连接点上的电压值达到其目标电压是通过根据供电连接点上的目标电压、在调整供电连接点的电压之前每个即将被调整的电源线的起始宽度、在调整供电连接点的电压之前计算出的该供电连接点的电压值、以及理论上该供电连接点所能达到的最小电压值估算出调整后的每一段电源线的宽度来实现的。
10.根据权利要求7所述的方法,其中所述调整上述至少一个供电连接点连接的一段可以调整的电源线的宽度,使所述至少一个供电连接点上的电压值达到其目标电压是通过迭代过程获得调整后的每一段电源线的宽度来实现的,该迭代过程根据当前的电源线的宽度,当前的对应的供电连接点的电压,理论上供电连接点所能达到的最小电压值,以及每个供电连接点的目标电压值,计算下一次迭代时电源线的宽度,以及计算下一次迭代时对应的供电连接点的电压,如果下一次迭代时对应的供电连接点的电压与供电连接点的目标电压值相差在规定的范围内,则该下一次迭代时电源线的宽度为该供电连接点的调整后的电源线的宽度。
11.一种芯片设计中使重用子模块电压环境一致化的系统,其中该芯片中包含多个重用子模块,每个重用子模块通过其电源环上的供电连接点与所述芯片的供电网相连,该系统包括供电连接点的数量和位置调整装置,用于调整所述多个重用子模块的供电连接点的数量和位置,使所述多个重用子模块的供电连接点的数量和对应的供电连接点位置相同;以及电源线调整装置,用于调整所述多个重用子模块的与所述供电连接点相连的供电网上的电源线,使所述多个重用子模块对应的供电连接点上的电压一致。
12.根据权利要求11所述的系统,其中所述供电连接点的数量和位置调整装置还包括确定装置,用于确定重用子模块的供电连接点的标准数量和标准位置;其中所述供电连接点的数量和位置调整装置将所述多个重用子模块的供电连接点的数量和位置调整到所述确定的供电连接点的标准数量和标准位置。
13.根据权利要求12所述的系统,其中所述供电连接点的标准数量和标准位置为以下之一标准数目为所有重用子模块中供电连接点数目的平均值,标准位置根据标准数目平均划分重用子模块的每个边长,使得供电连接点均勻分布在各个重用子模块的边上;从所述多个重用子模块中选择一个重用子模块的供电连接点的数量和位置作为标准数量和标准位置。
14.根据权利要求11-13之一所述的系统,其中所述电源线调整装置还包括目标电压确定装置,用于确定重用子模块的各供电连接点的目标电压;其中所述电源线调整装置调整所述多个重用子模块的与所述供电连接点相连的供电网上的电源线,使各供电连接点上的电压值达到该供电连接点的目标电压。
15.根据权利要求14所述的系统,其中供电连接点的目标电压可根据需求在一定范围内调整。
16.根据权利要求14所述的系统,其中所述电源线调整装置进一步包括电源线宽度确定装置,用于根据所述多个重用子模块周围供电网的分布情况,确定至少一个供电连接点连接的一段可以调整的电源线的宽度;电源线长度调整装置,用于调整上述至少一个供电连接点连接的一段可以调整的电源线的长度,使所述至少一个供电连接点上的电压值达到其目标电压。
17.根据权利要求14所述的系统,其中所述电源线调整装置进一步包括电源线宽度确定装置,用于根据所述多个重用子模块周围供电网的分布情况,确定至少一个供电连接点连接的一段可以调整的电源线的长度;电源线宽度调整装置,用于调整上述至少一个供电连接点连接的一段可以调整的电源线的宽度,使所述至少一个供电连接点上的电压值达到其目标电压。
18.根据权利要求17所述的系统,其中所述电源线宽度调整装置的一段可以调整的电源线的长度为该供电连接点在各个重用子模块中连接的供电网上的最短的电源线的长度。
19.根据权利要求17所述的系统,其中所述电源线宽度调整装置是通过根据供电连接点上的目标电压、在调整供电连接点的电压之前每个即将被调整的电源线的起始宽度、在调整供电连接点的电压之前计算出的该供电连接点的电压值、以及理论上该供电连接点所能达到的最小电压值估算出调整后的每一段电源线的宽度来实现的。
20.根据权利要求17所述的系统,其中所述电源线宽度调整装置是通过迭代过程获得调整后的每一段电源线的宽度来实现的,该迭代过程根据当前的电源线的宽度,当前的对应的供电连接点的电压,理论上供电连接点所能达到的最小电压值,以及每个供电连接点的目标电压值,计算下一次迭代时电源线的宽度,以及计算下一次迭代时对应的供电连接点的电压,如果下一次迭代时对应的供电连接点的电压与供电连接点的目标电压值相差在规定的范围内,则该下一次迭代时电源线的宽度为该供电连接点的调整后的电源线的宽度。
21.一种在计算机可读介质中体现的、用于设计、制造或者测试集成电路的设计结构, 其中设计结构使用权利要求1-10之一所述的方法进行设计。
22.根据权利要求21所述的设计结构,其中该设计结构包括网表。
23.根据权利要求21所述的设计结构,其中该设计结构以用于交换集成电路布图数据的数据格式存储在存储介质上。
24.根据权利要求21所述的设计结构,其中该设计结构至少包括测试数据、特征校准数据、验证数据或者设计说明的其中之一。
全文摘要
本发明公开了一种芯片设计中使重用子模块电压环境一致化的方法、系统和设计出的结构,其中每个重用子模块通过其电源环上的供电连接点与所述芯片的供电网相连,该方法包括调整所述多个重用子模块的供电连接点的数量和位置,使所述多个重用子模块的供电连接点的数量和对应的供电连接点位置相同;调整所述多个重用子模块的与所述供电连接点相连的供电网上的电源线,使所述多个重用子模块对应的供电连接点上的电压一致。本发明可以减小芯片设计中重用子模块时序差异,最终达到减少设计复杂度和工作量,减少设计周期的目的。
文档编号G06F17/50GK102207984SQ201010139118
公开日2011年10月5日 申请日期2010年3月31日 优先权日2010年3月31日
发明者唐佳廉, 徐晨, 李侠, 汤晓峰 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1