一种具有层次结构的集成电路的优化方法、系统及存储介质

文档序号:1201542 发布日期:2020-09-01 浏览:7次 >En<

阅读说明:本技术 一种具有层次结构的集成电路的优化方法、系统及存储介质 (Method, system and storage medium for optimizing integrated circuit with hierarchical structure ) 是由 黄国勇 张岩 于 2020-05-26 设计创作,主要内容包括:本发明公开了一种具有层次结构的集成电路的优化方法、系统及存储介质,所述集成电路的层次结构包括一个位于顶层的模块和多个位于其他层的模块,除了位于最低层的模块,每一模块都包括至少一个位于下一层的低层模块,所述方法包括:选择要进行优化的模块及所述模块中的低层模块;对所述低层模块间的边界路径进行时序分析和优化,使得所述模块中的电路满足所述模块的时序约束条件。采用本发明的技术方案,可提高整个优化流程的计算效率。(The invention discloses an optimization method, a system and a storage medium for an integrated circuit with a hierarchical structure, wherein the hierarchical structure of the integrated circuit comprises a module positioned at the top layer and a plurality of modules positioned at other layers, except for the module positioned at the lowest layer, each module comprises at least one lower-layer module positioned at the next layer, and the method comprises the following steps: selecting a module to be optimized and a lower module of the modules; and performing time sequence analysis and optimization on boundary paths among the lower-layer modules, so that circuits in the modules meet time sequence constraint conditions of the modules. By adopting the technical scheme of the invention, the calculation efficiency of the whole optimization process can be improved.)

一种具有层次结构的集成电路的优化方法、系统及存储介质

技术领域

本发明涉及集成电路设计领域,尤其涉及一种具有层次结构的集成电路的优化方法、系统及存储介质。

背景技术

集成电路的自动布局布线包括多个步骤。典型的自动布局布线工具首先将设计网表划分为顶层设计和许多模块级设计,并且以DEF格式输出模块级电路。模块级电路的时序约束条件由整个芯片电路的时序约束条件预算规划得到,包括模块的输入输出时序约束条件和模块内部的时序约束条件,这些时序约束条件用SDF (Synopsys Design Constraint)格式来描述,其中模块的输入输出时序约束条件包括最大输入时间约束、最小输入时间约束、最大输出时间约束和最小输出时间约束。模块级的布局布线引擎将模块内部的层级结构打平后对其进行最优布局布线,以期满足模块级的时序约束条件。然后将带有时序信息和物理边界信息的所有模块的抽象表示进行整合,得到顶层设计。如果考虑到顶层设计的RC提取后的时序分析,某一个模块的输入或(和)输出时序条件没有满足,也就是包括这个模块的模块间时序路经不能满足时序约束条件,那么这个模块则处于关键路径上,在这种情况下,对于处于关键路径上的所有模块,需要由顶层设计的时序约束条件重新预算规划得到新的时序约束条件,并且这些模块的布局布线需要重新进行优化修改设计。这个过程将反复迭代直至所有模块和模块间的时序约束条件都得到满足为止。

由上面的分析可知,在典型的自动布局布线工具中,电路被划分为顶层设计和模块级设计。模块级设计的时序约束条件由顶层设计时序约束条件人为预算规划得到,在模块级完成满足时序约束条件的布局布线后,被整合到顶层设计后,模块间时序约束条件可能不满足,从而要反复迭代模块级布局布线过程,降低了整个流程的计算效率。

发明内容

针对上述现有技术存在的问题,本发明提出一种具有层次结构的集成电路的优化方法,在芯片级时序约束条件下对模块间的电路进行直接优化,从而有效提高自动布局布线的效率。

本发明实施例中,提供了一种具有层次结构的集成电路的优化方法,所述集成电路的层次结构包括一个位于顶层的模块和多个位于其他层的模块,除了位于最低层的模块,每一模块都包括至少一个位于下一层的低层模块,所述方法包括:

选择要进行优化的模块及所述模块中的低层模块;

对所述低层模块间的边界路径进行时序分析和优化,使得所述模块中的电路满足所述模块的时序约束条件。

本发明实施例中,通过对所述低层模块间的边界路径的网表、布线信息和电阻电容信息进行时序分析和优化,来对所述低层模块间的边界路径进行时序分析和优化。

本发明实施例中,对所述低层模块间的边界路径进行时序分析和优化,包括:

根据所述当前模块和所述低层模块的网表数据进行时序分析;

判断所述时序分析的结果是否满足对应的时序约束条件;

如果满足,则所述低层模块间的边界路径时序约束条件收敛;

如果不满足,则对所述低层模块间的边界路径进行时序优化。

本发明实施例中,通过***缓冲器或改变逻辑门的大小来调整所述低层模块间边界路径的时延。

本发明实施例中,对所述低层模块间的边界路径进行时序分析和优化之后,还包括:

判断所述低层模块的内部路径是否满足时序约束条件,是则将优化后的边界路径数据作为当前模块的时序收敛数据;

否则,对所述低层模块的内部路径进行时序优化,使得所述低层模块的内部路径满足时序约束条件。

本发明实施例中,对所述低层模块的内部路径进行时序优化,使得所述低层模块的内部路径满足时序约束条件之后,再次对所述低层模块间的边界路径进行时序分析和优化,使得所述模块中的电路满足所述模块的时序约束条件。

本发明实施例中,对所述低层模块间的边界路径进行时序分析和优化,使得所述模块中的电路满足所述模块的时序约束条件,包括:

获取所述模块的层次化RC信息;

将所述低层模块间的边界路径的RC信息进行合并,扩展到所述模块的整个边界路径以产生所述模块的整个边界路径的RC信息;

对所述模块的整个边界路径的RC信息进行RC分析,来判定所述低层模块是否存在模块内部的时序约束条件冲突;

如果所述低层模块存在模块内部的时序约束条件冲突,则对所述低层模块的内部路径进行优化修改,使得所述低层模块的内部路径满足其相应的时序约束条件的同时,所述低层模块间的边界路径的时序约束条件也得到满足。

本发明实施例中,对所述低层模块的内部路径进行时序优化,使得所述低层模块的内部路径满足其相应的时序约束条件之后,再次对所述低层模块间的边界路径进行时序分析和优化,使得所述模块中的电路满足所述模块的时序约束条件。

本发明实施例中,还提供了一种具有层次结构的集成电路的优化系统,其对具有层次结构的集成电路进行优化时,采用上述的具有层次结构的集成电路的优化方法。

本发明实施例中,还提供了一种存储介质,所述存储介质中存储有计算机程序指令,所述计算机程序指令被计算机执行时,执行上述的具有层次结构的集成电路的优化方法。

与现有技术相比较,在本发明实施例所述层次电路优化方法中,首先由顶层设计的时序约束条件直接得到模块间的时序约束条件,针对模块间的电路进行时序分析及优化,得到满足模块间时序约束条件的电路布局布线实现,然后将模块间时序分析及优化修改作为输入,即考虑模块间时序优化修改的影响下,进行模块内部的电路布局布线实现,同时进行模块内部电路的时序分析及优化修改,根据模块内部电路的时序分析及优化修改的结果,再考虑其对模块间电路时序分析的影响,由于模块内部电路的自动布局布线是在考虑模块间的时序分析及优化修改的前提下进行,因此能够减少模块级及顶层设计布局布线的迭代次数,从而大大提高整个优化流程的计算效率。

附图说明

图1A为本发明实施例的集成电路的层次结构设计示意图;

图1B为本发明实施例的具有层次结构的集成电路的优化方法的流程图;

图2为本发明实施例的具有层次结构的集成电路的优化方法中取得模块间的时序收敛的流程图;

图3A-3B为本发明实施例对模块的边界路径进行时序分析与优化的示例图;

图4为本发明实施例采用RC分析对模块的边界路径进行时序分析与优化的流程图;

图5A-5B为本发明实施例对模块的边界路径进行时序分析与优化的示例图;

图6为发明实施例的具有层次结构的集成电路的优化方法进行模块内部时序收敛的流程图。

具体实施方式

下面揭示针对具有层次结构的集成电路进行时序分析和优化,以满足时序约束条件的方法和流程。所述集成电路的层次结构包括一个位于顶层的模块和多个位于其他层的模块,除了位于最低层的模块,每一模块都包括至少一个位于下一层的低层模块。在一些实施例中,本发明首先对所选择的电路进行时序分析和优化,例如选择顶层电路和下一层的模块电路,以期满足时序约束条件。在一些实施例中,所选择的电路包括模块间的时序电路路径。本发明的方法,在考虑模块间的时序路径优化的基础上,对于模块内部电路进行时序分析优化,以期满足模块内部的时序约束条件。

图1A说明了在布局布线过程中的一个设计实例。在这个例子中,100是一个集成电路的层次结构设计。存储器152中存储了顶层设计单元和下一层模块设计单元。这个层次结构中的每一个单元都可以看成一个容器,它储存下一个层次单元的信息。例如,容器102储存图形芯片顶层组装数据,它包括子容器104-110,这些子容器储存了与这些容器相应的子模块中的输入/输出,数字信号处理器等数据。输入输出设计数据的格式采用统一的项目文件格式,从而达成一个一致的设计环境。

在一些实施例中,电路设计包括电路元件网表和布线信息。RC信息(即寄生电阻和电容信息)可从布线信息中提取得到。在布局布线过程中,会保持层次化的数据结构。换而言之,在这个例子中,尽管下一层模块容器中的电路可以打平,并进行时序分析和优化,顶层处理则维持了顶层容器和下一层模块子容器的结构。因为层次结构和边界信息是一直保持住的,在顶层处理过程中,对顶层和下一个层次的模块数据所进行的优化可以被放回到对应的容器中。本发明实施例中,在顶层处理中直接对顶层设计和模块级设计进行时序分析和优化,从而满足整个芯片的时序约束条件。

图1B是一个展示了本发明的具有层次结构的集成电路的优化方法的一个流程图。过程180可以由一个计算机系统或者相应的设备来执行。

在步骤182中,层次结构电路数据通过层次化电路设计来存取。图1A便是一个层次结构设计的例子,存取的层次结构数据包括了下一个层次的模块数据(比如104-110)和顶层数据(比如120)。网表、布线、和/或RC数据都可被存取。在一些实施例中,数据用项目文件的方式存储在介质上,并且可以从介质读回内存。这样一直保持着层次化数据结构。

现有技术中,典型的布局布线过程包括这些主要步骤:布局规划、模块级设计,和芯片顶层组装。各个模块内部的时序约束条件通常在顶层组装之前就已经得到满足。然而,对于模块级设计师,他负责的模块之外的部分,他是不可见且无法进行时序分析优化的。所以,模块间的时序路径的延迟常常导致整个芯片的时序约束条件不能满足。这里所指的模块间的时序路径(通常指的就是边界路径),就是各个模块边界上的时序路径(例如图1A中路径122所示);模块内部路径指的是完全在各个模块内部的路径(如图1A中路径124所示)。

图1B的步骤184,对层次结构电路中选中的模块间时序路径进行时序分析和优化,使得模块间路径的时序约束条件满足。在一些实施例中,通过对模块间路经的网表、布线信息和电阻电容信息进行时序分析和优化,从而满足模块间的时序约束条件,在一些具体情形下,模块间的时序也是迭代循环后收敛的,下面是具体的说明。

在一些实施例中,模块级的布局布线步骤和顶层设计的布局布线步骤相同,在时序分析和优化过程中不需要重复存取下一层子模块的数据。既然这种方法是对当前的顶层中模块间时序路径直接优化,对于模块级的设计工程师不需要做ECO(Engineering ChangeOrder),因此设计流程的迭代周期将大幅缩短。

在图2中,具体说明了本发明实施例的具有层次结构的集成电路的优化方法,如何取得模块间的时序收敛。过程200可以在计算机上执行,也可以在其他任何合适的设备上执行。过程180中的步骤184可以通过图2所示的过程200来实现。

假设在步骤204中,层次结构电路的数据已经可以存取,并选择其中一部分数据来进行时序分析。

在一些实施例中,所选中的数据包括顶层模块和所有层次结构中的模块。由整个电路的时序约束条件经过一定的预算规划方法,可以得到每一个子模块的时序约束条件。时序分析优化的目的是修改电路使得整个电路满足总的时序约束条件。现有技术的典型设计流程中,在布局布线最后的组装过程之前,在模块级的设计阶段,首先要满足每一个模块的时序约束条件。对于模块级工程师,一般来说他们对于不是他们负责的电路部分是很难去规划时序约束条件,这样模块与模块之间的边界路径由于预算规划的不合理可能会导致整个芯片时序约束条件不能被满足。因此,在本发明实施例中,可以首先选中模块与模块之间的路径数据,将它们放到顶层处理的容器中,并首先对这部分数据进行时序分析和优化,而不是一开始就对整个芯片做时序分析和优化,这样的好处是能够大幅提升计算效率。

图3A-3B作为一个例子,详细说明了如何选择模块间的路径做时序分析与优化。

在一些实施例中,选中的数据会存放在处理器存取延时小的内部存储器中(例如RAM),这样处理时速度会比较快,而其他数据则会存放在处理器存取延时大的外部存储器中,例如虚拟存储器和硬盘,需要处理时再将其备份传入内部存储器中。

在步骤206中,对所选择的数据进行时序分析,也就是对选中的网表数据进行时序分析,包括采用静态时序分析(STA)、RC分析和其他合适的时序分析方法。

在步骤208中,判断所选中网表数据的时序分析结果是否满足对应的时序约束条件,也就是当前顶层的时序约束条件。如果满足,则当前的模块间时序约束条件收敛。如果不满足则转到步骤210,作为当前顶层的优化处理对所选中的模块间路径进行优化。其中优化方法包括许多标准的优化方法,选中的电路数据和对应的时序约束条件作为优化过程的输入,满足时序约束条件的优化后电路作为优化过程的输出。优化时,为了调整电路的时序将对电路做一些逻辑修改,例如可以***缓冲器(Buffer)和改变门的大小(gate size)来优化时序。在处理完模块间路径的当前时序分析与优化后,针对这些优化修改所引起的相关模块内的版图,在满足设计规则的前提下实现相应的物理修改。

在完成所选中部分的优化修改后,流程控制则转到步骤206,对优化修改后的电路重新进行时序分析。重新执行步骤208,即分析结果是否满足时序约束条件,如果需要重新执行步骤210,即进行进一步的优化修改。重复步骤206-210的迭代过程,最后使得模块间的时序约束条件收敛。

模块结构图3A-3B给出了图2中过程200对应布局布线处理的电路实例。在这个实例中,假设模块302和304的内部时序约束条件已经收敛,需要通过时序分析与优化使得模块间的时序约束条件收敛。

如图3A中的实例所示,时序元件A和D之间的边界路径是模块间的时序路径,对于这条时序路径的时序分析结果表明,时序约束条件没有满足。因此,对于这条时序路径执行当前顶层的时序优化,图3B给出了对这条路径进行时序优化修改的结果。具体的优化修改包括,门306的尺寸被放大,并且***了缓冲器308和310。

上面的优化修改改变了布线方式和电路的RC树,从而改变了时序路径的时间延迟。例如在图3B中,由于***了缓冲器308和310,改变了电路中路径的布线方式、RC树的拓扑结构和连线时间延迟。因此,对于优化修改电路的布线方式改变,应用RC分析进行评估,以确保布线方式改变后的时序约束条件仍然满足。

图4给出RC分析过程实例化的一个流程。在一些实施例中,作为时序分析的一个部分,过程400被用来使得时序约束条件收敛。例如,过程400可以并入上述过程200的步骤206-210,或者如下所述过程600的步骤608-610处。

假定层次化数据已经在步骤404处被存取,层次化的RC信息被获取并且保持层次化数据的层次化结构。换而言之,模块边界被维持住,与顶层和底层模块相对应的层次化的RC数据保存在各模块对应的容器内。在一些实施例中,可以得到边界上的RC信息,这些RC信息来源于边界路径上模块之间的RC树和边界路径上模块内部RC树。参考图3A的例子,路径B-C连接模块302和304,基于此路径的RC树由顶层模块305的容器获取;相应地,基于路径A-B和C-D的RC树由底层模块302和304的容器来获取。

在步骤406处,边界路径上的模块间和模块内的RC信息组合在一起,产生边界RC信息。在图3A的例子当中,路径B-C之间的RC树,以及路径A-B和C-D之间的RC树组合在一起,产生边界路径A-D的RC信息。

在步骤408处,使用边界路径RC信息进行RC分析。

在步骤410处,由RC分析得出的时序延迟将与期望的延迟进行比较。如果计算得出的延迟小于期望的延迟,则先前为了满足了模块间时序而进行的优化修改,并没有使得全局RC延迟变差。这样RC分析得到的时序约束条件就是收敛的。反过来,如果计算得出的延迟超出了期望的延迟,则应该在步骤414处进行电路的进一步优化和调整。在一些实施例中,重复进行过程400可以进一步优化和修改网表,直到时序预算得到的时序约束条件和RC延迟都得到满足。

在这种情形中,完全在模块内部而不穿越模块边界的RC树并没有用到。因为在大部分案例中,这样的数据量占据RC数据总量的80%,所以在进行分析时忽略这些完全存在于模块内部的RC信息,可以在很大程度上降低分析时对内存量的需求。在一些实施例中,在修改网表后,仅选取那些会引起RC树改变的边界路径来进行时序分析和优化,则进一步减少了所需要计算的数据量。

为了模块间时序约束条件收敛而对边界路径进行的修改,也可能会影响模块内部其它路径的时序,从而导致需要额外的处理。图5A-5B示意图展示了一个电路设计的例子,它的模块内部时序被边界路径上的时序修改所影响。图5A类似于图3A,不同之处在于除了边界路径外,还有被影响的模块内部路径,例如图5A中模块302的E-F内部路径和模块304的G-H内部路径。虽然模块间路径和模块内部路径之间并未直接电气相连,对模块间边界路径的修改仍可能通过耦合电容改变相邻的模块内部路径,从而改变这些路径的时序。例如,图5B所示,当额外的缓冲器310增加进来后,模块内部路径E-F被影响;当调整逻辑门306的大小之后,模块内部路径G-H也被影响。

如果一个模块的内部时序约束条件存在冲突,可以进行模块内部的修复,使得经过修改的模块内部路径满足时序约束条件,并且临近这个模块的模块间路径也没有违反时序约束条件。例如,路径E-F上的逻辑门314被调整大小使得模块302内部的时序约束条件得以满足,并且相应地在路径G-H中***了额外的缓冲器316使得模块304内部的时序约束条件得到满足。在一些实施例中,可能需要进行时序分析和优化的反复迭代,来达到时序收敛。

图6是本发明实施例中,根据边界路径对块内时序影响进行电路优化的流程图,图6描述了一个模块内部时序收敛的过程。过程600可能在模块间时序约束条件满足之后执行。

步骤602是对一个模块进行时序分析。在对模块进行时序分析过程中,边界路径和模块间路径时序分析的结果被作为已经条件,会考虑它们对模块内部路径的时序产生的影响。参考图5A的例子,当对模块302进行时序分析时,将边界路径A-D时序分析的结果作为输入,用来考虑其对模块内部路径E-F时序的影响。类似地,当对模块304进行时序分析时,将边界路径A-D时序分析的结果作为输入,从而考虑其对模块内路径G-H的影响。

回到图6的步骤604,对模块进行时序分析和优化后,检查模块内部的时序约束条件是否满足。如果模块内部时序约束条件满足,换而言之,在满足模块间时序约束条件的同时,模块内部时序约束条件也得以满足,即不需要对模块再做进一步的优化修改,也就是模块已有的优化修改得以生效提交。在不同的实现当中,模块内部时序约束条件可以来自于模块级的数据和/或顶层的时序约束条件文件。如果模块在串行处理过程中,并且有下一个模块将要处理,控制转移到步骤602。如果模块被并行处理,或者所有其他模块都已经处理完毕,则处理过程结束。

然而如果模块内部时序约束条件没有被满足,则转到步骤606,进行模块内部优化修改使得内部时序约束条件被满足。这次仍然将边界路径的时序分析结果作为输入,确保模块内部优化修改不会导致边界路径上时序约束条件冲突。换而言之,在进行模块内部优化修改时,需要保证不会损害边界路径的时序。在一些实施例中,步骤608进行模块间时序分析。模块间时序分析时同时要考虑模块内部优化修改及其对边界路径时序的影响。模块内部优化修改和边界路径都是模块间时序分析函数的输入变量。在步骤610处,模块间时序分析的结果,即检查模块间时序约束条件是否满足。如果模块间时序约束条件满足,则模块内部潜在的优化修改不会损害模块间时序,从而这个优化修改在步骤612处被接受。这个过程完成,或者推进处理下一个模块。然而如果模块间的时序约束条件没有被满足,则潜在的优化修改被拒绝,控制转移到步骤606处,进行再次的模块内部优化来寻找潜在的优化修改方案。步骤606-610反复迭代,直到找到可接受的优化修改方案。

综上所述,在本发明实施例所述层次电路优化方法中,首先由顶层设计的时序约束条件直接得到模块间的时序约束条件,针对模块间的电路进行时序分析及优化,得到满足模块间时序约束条件的电路布局布线实现,然后将模块间时序分析及优化修改作为输入,即考虑模块间时序优化修改的影响下,进行模块内部的电路布局布线实现,同时进行模块内部电路的时序分析及优化修改,根据模块内部电路的时序分析及优化修改的结果,再考虑其对模块间电路时序分析的影响,由于模块内部电路的自动布局布线是在考虑模块间的时序分析及优化修改的前提下进行,因此能够减少模块级及顶层设计布局布线的迭代次数,从而大大提高整个流程的计算效率。

本发明实施例中,还提供了一种具有层次结构的集成电路的优化系统,其对具有层次结构的集成电路进行优化时,采用上述的具有层次结构的集成电路的优化方法。

本发明实施例中,还提供了一种存储介质,所述存储介质中存储有计算机程序指令,所述计算机程序指令被计算机执行时,执行上述的具有层次结构的集成电路的优化方法。

上述实施例仅用于说明本发明的具体实施方式。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和变化,这些变形和变化都应属于本发明的保护范围。

15页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:无刷马达驱动板PCB布局结构、无刷马达驱动板和无刷马达

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类