CN116401977B - 用于集成电路的综合方法、综合装置、计算设备和存储介质 - Google Patents
用于集成电路的综合方法、综合装置、计算设备和存储介质 Download PDFInfo
- Publication number
- CN116401977B CN116401977B CN202310672235.4A CN202310672235A CN116401977B CN 116401977 B CN116401977 B CN 116401977B CN 202310672235 A CN202310672235 A CN 202310672235A CN 116401977 B CN116401977 B CN 116401977B
- Authority
- CN
- China
- Prior art keywords
- timing
- path
- timing path
- logic element
- combinational logic
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 150
- 238000003860 storage Methods 0.000 title claims description 9
- 230000004044 response Effects 0.000 claims abstract description 47
- 238000005457 optimization Methods 0.000 claims description 21
- 238000012546 transfer Methods 0.000 claims description 13
- 238000012545 processing Methods 0.000 claims description 7
- 238000013507 mapping Methods 0.000 claims description 4
- 238000001308 synthesis method Methods 0.000 claims description 4
- 230000010354 integration Effects 0.000 description 13
- 230000015572 biosynthetic process Effects 0.000 description 8
- 238000003786 synthesis reaction Methods 0.000 description 8
- 238000004590 computer program Methods 0.000 description 7
- 239000004065 semiconductor Substances 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000011144 upstream manufacturing Methods 0.000 description 3
- 230000000704 physical effect Effects 0.000 description 2
- 230000001737 promoting effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003071 parasitic effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000010618 wire wrap Methods 0.000 description 1
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/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/39—Circuit design at the physical level
- G06F30/392—Floor-planning or layout, e.g. partitioning or placement
-
- 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/398—Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Architecture (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本申请实施例提供了一种用于集成电路的综合方法,包括:获取用于集成电路的初始版图;对初始版图进行优化处理以优化集成电路的功耗、性能和面积中的至少一个,并获得优化版图;从优化版图中确定时序未收敛IO时序路径;从时序未收敛IO时序路径中追踪目标组合逻辑元件,目标组合逻辑元件包括初始版图中影响时序未收敛IO时序路径时序收敛的组合逻辑元件;根据目标组合逻辑元件确定参考时序路径,参考时序路径包括经过目标组合逻辑元件的各条时序路径中除时序未收敛IO时序路径之外时序最差的时序路径;确定参考时序路径的时间裕量;响应于参考时序路径的时间裕量宽松,调整目标组合逻辑元件的在初始版图中的位置以促进时序未收敛IO时序路径时序收敛。
Description
技术领域
本申请涉及集成电路技术领域,尤其涉及用于集成电路的综合方法、用于集成电路的综合装置、计算设备和计算机可读存储介质。
背景技术
在集成电路领域中,逻辑综合是所设计的数字电路的一种抽象级描述,一般指的是用于集成电路的寄存器转移级(RTL)代码经化简、优化后再转换到逻辑门级别的电路连线网表的过程。随着工艺制成的不断演进,逻辑综合逐渐呈现出缺陷。在完成对集成电路中的元件和连线的物理布局设计之后,集成电路中与连线和寄生效应等相关的物理效应使得物理布局设计之后的集成电路的特性与逻辑综合获得的电路的特性存在较大差别。因此,需要经过大量的逻辑综合与元件布局布线的反复迭代才能实现较好的设计效果。
物理综合可以实现所设计的集成电路的较快收敛和迭代次数的减少,因为其通过设计初始版图以及较为详细的绕线预估方法来实现对物理效应的较为精确的模拟。常规的物理综合过程可包括以下步骤:获取用于集成电路的寄存器转移级(RTL)代码;基于寄存器转移级代码获得包括逻辑符号的初级版图,即初级版图中的各个元件均以相应的逻辑符号表示;以工艺厂商的工艺库中的工艺元件替代初级版图中的逻辑符号,获得初始版图;以及对初始版图进行PPA(性能、功耗和面积)优化处理以优化集成电路的功耗、性能或面积。
发明内容
本申请的实施例提供了一种用于集成电路的综合方法,该综合方法包括:获取用于所述集成电路的初始版图;对所述初始版图进行优化处理以优化所述集成电路的功耗、性能和面积中的至少一个,并获得优化版图;从所述优化版图中确定时序未收敛IO时序路径;从所述时序未收敛IO时序路径中追踪目标组合逻辑元件,所述目标组合逻辑元件包括所述初始版图中影响所述时序未收敛IO时序路径的时序收敛的组合逻辑元件;根据所述目标组合逻辑元件确定参考时序路径,所述参考时序路径包括经过所述目标组合逻辑元件的各条时序路径中除所述时序未收敛IO时序路径之外时序最差的时序路径;确定所述参考时序路径的时间裕量;以及响应于所述参考时序路径的时间裕量宽松,调整所述目标组合逻辑元件的在所述初始版图中的位置以促进所述时序未收敛IO时序路径的时序收敛。
在一些实施例中,上述综合方法还包括: 响应于所述参考时序路径的时间裕量不宽松,从所述参考时序路径的下一级时序路径中追踪第一级目标时序路径,所述参考时序路径的下一级时序路径包括以所述参考时序路径的起点为终点的各条时序路径,所述第一级目标时序路径包括以所述参考时序路径的起点为终点的各条时序路径中时序最差的时序路径;以及响应于所述第一级目标时序路径的时间裕量宽松,调整所述目标组合逻辑元件的在所述初始版图中的位置以促进所述时序未收敛IO时序路径的时序收敛。
在一些实施例中,所述综合方法还包括:响应于所述参考时序路径的时间裕量不宽松,从所述参考时序路径的下一级时序路径中追踪第一级目标时序路径,所述参考时序路径的下一级时序路径包括以所述参考时序路径的终点为起点的各条时序路径,所述第一级目标时序路径包括以所述参考时序路径的终点为起点的各条时序路径中时序最差的时序路径;以及响应于所述第一级目标时序路径的时间裕量宽松,调整所述目标组合逻辑元件的在所述初始版图中的位置以促进所述时序未收敛IO时序路径的时序收敛
在一些实施例中,所述综合方法还包括: 响应于所述第一级目标时序路径的时间裕量不宽松,从所述第一级目标时序路径的下一级时序路径中追踪第二级目标时序路径,所述第一级目标时序路径的下一级时序路径包括以所述第一级目标时序路径的起点为终点的各条时序路径,所述第二级目标时序路径包括以所述第一级目标时序路径的起点为终点的各条时序路径中时序最差的时序路径;以及响应于所述第二级目标时序路径至第k级目标时序路径中的每个目标时序路径的时间裕量不宽松,且k大于第一阈值,终止所述综合方法,其中所述第k级目标时序路径是以第k-1级目标时序路径的起点为终点的各条时序路径中时序最差的时序路径,k为大于等于3的正整数。
在一些实施例中,所述综合方法还包括:响应于所述参考时序路径的时间裕量小于零而确定所述参考时序路径的时间裕量不宽松;以及响应于所述参考时序路径的时间裕量大于第一正数而确定所述参考时序路径的时间裕量宽松。
在一些实施例中,所述综合方法还包括:响应于所述参考时序路径的时间裕量大于零而小于所述第一正数,判断所述参考时序路径上的各逻辑元件中未采用最低阈值电压的逻辑元件的数目;以及响应于所述参考时序路径中未采用最低阈值电压的逻辑元件的数目大于第二正数而确定所述参考时序路径的时间裕量宽松。
在一些实施例中,从所述时序未收敛IO时序路径中追踪目标组合逻辑元件包括:从所述时序未收敛IO时序路径中的各个组合逻辑元件中确定第一组合逻辑元件,所述第一组合逻辑元件的位置影响所述时序未收敛IO时序路径的时序收敛;以及响应于所述第一组合逻辑元件不在对所述初始版图进行优化处理的过程中形成,将所述第一组合逻辑元件确定为所述目标组合逻辑元件。
在一些实施例中,从所述时序未收敛IO时序路径中追踪目标组合逻辑元件还包括:响应于所述第一组合逻辑元件是在对所述初始版图进行优化处理的过程中形成,确定所述第一组合逻辑元件的第一输入端,所述时序未收敛IO时序路径经过所述第一输入端;从经过所述第一组合逻辑元件的除所述第一输入端以外的余下输入端的各条时序路径中确定第二组合逻辑元件,所述第二组合逻辑元件的位置影响所述时序未收敛IO时序路径的时序收敛;以及响应于所述第二组合逻辑元件不在对所述初始版图进行优化处理的过程中形成,将所述第二组合逻辑元件确定为所述目标组合逻辑元件。
在一些实施例中,所述综合方法还包括:响应于所述第二组合逻辑元件至第M组合逻辑元件中的每个组合逻辑元件是在对所述初始版图进行优化处理的过程中形成,且M大于第二阈值,终止所述综合方法,其中所述第M组合逻辑元件是从经过第M-1组合逻辑元件的各输入端的各条时序路径中确定的组合逻辑元件,且所述第M组合逻辑元件的位置影响所述时序未收敛IO时序路径的时序收敛,其中M为大于等于3的正整数。
在一些实施例中,从经过所述第一组合逻辑元件的除所述第一输入端以外的余下输入端的各条时序路径中确定第二组合逻辑元件包括:从经过所述第一组合逻辑元件的除所述第一输入端以外的余下输入端的各条时序路径中确定时序最差的第三时序路径;以及从所述第三时序路径上的各个组合逻辑元件中确定所述第二组合逻辑元件。
在一些实施例中,从所述时序未收敛IO时序路径上的各个组合逻辑元件中确定第一组合逻辑元件包括: 基于所述时序未收敛IO时序路径的起点和时序未收敛IO时序路径的终点构建第一四边形,所述第一四边形的对角线为所述时序未收敛IO时序路径的起点到所述时序未收敛IO时序路径的终点的直线连线; 确定所述时序未收敛IO时序路径上的各个组合逻辑元件相对于所述第一四边形所在区域的偏离度;以及从所述时序未收敛IO时序路径上的各个组合逻辑元件中选择所述偏离度超过第一偏离度阈值的组合逻辑元件作为所述第一组合逻辑元件。
在一些实施例中,从述第三时序路径上的各个组合逻辑元件中确定所述第二组合逻辑元件包括: 基于所述第三时序路径的起点和所述第三时序路径的终点构建第二四边形,所述第二四边形的对角线为所述第三时序路径的起点和所述第三时序路径的终点的直线连线; 确定所述第三时序路径上的各个组合逻辑元件相对于所述第二四边形所在区域的偏离度;从所述第三时序路径上的各个组合逻辑元件中选择所述偏离度超过第二偏离度阈值的组合逻辑元件作为所述第二组合逻辑元件。
在一些实施例中,所述调整所述目标组合逻辑元件的在所述初始版图中的位置以促进所述时序未收敛IO时序路径的时序收敛包括:调整所述第一组合逻辑元件在所述初始版图中的位置,以减小所述第一组合逻辑元件相对于所述第一四边形所在区域的偏离度。
在一些实施例中,根据所述目标组合逻辑元件确定参考时序路径包括:确定所述目标组合逻辑元件的第一输入端,所述时序未收敛IO时序路径经过所述第一输入端;从经过所述目标组合逻辑元件的除所述第一输入端以外的余下输入端的各条时序路径中确定时序最差的时序路径,将所述时序最差的时序路径确定为所述参考时序路径。
在一些实施例中,所述综合方法还包括:通过调整所述目标组合逻辑元件的在所述初始版图中的位置获得更新版图;对所述更新版图进行优化处理以优化所述集成电路的功耗、性能和面积中的至少一个,并获得用于所述集成电路的再优化版图;以及响应于所述再优化版图中的各条IO时序路径时序收敛,将所述再优化版图确定为用于所述集成电路的目标版图。
在一些实施例中,所述获取用于所述集成电路的初始版图包括:获取用于所述集成电路的寄存器转移级代码;至少基于所述寄存器转移级代码获得包括逻辑符号的初级版图;将所述初级版图中的各个逻辑符号映射至工艺库中的工艺元件,从而获得所述初始版图。
本申请的另一实施例提供了一种用于集成电路的综合装置,包括:初始版图获取模块,其被配置成获取用于所述集成电路的初始版图;版图优化模块,其被配置成对所述初始版图进行优化处理以优化所述集成电路的功耗、性能和面积中的至少一个,并获得优化版图;未收敛IO时序路径确定模块,其被配置成从所述优化版图中确定时序未收敛IO时序路径;目标组合逻辑元件追踪模块,其被配置成从所述时序未收敛IO时序路径中追踪目标组合逻辑元件,所述目标组合逻辑元件包括所述初始版图中对所述时序未收敛IO时序路径的时序收敛造成影响的组合逻辑元件;参考时序路径确定模块,其被配置成根据所述目标组合逻辑元件确定参考时序路径,所述参考时序路径包括经过所述目标组合逻辑元件的各条时序路径中除所述时序未收敛IO时序路径之外时序最差的时序路径;时间裕量确定模块,其被配置成确定所述参考时序路径的时间裕量;以及目标组合逻辑元件调整模块,其被配置成响应于所述参考时序路径的时间裕量宽松,调整所述目标组合逻辑元件的在所述初始版图中的位置以促进所述时序未收敛IO时序路径的时序收敛。
本申请的另外的实施例提供了一种计算设备,包括:存储器,其被配置成存储计算机可执行指令;处理器,其被配置成当所述计算机可执行指令被处理器执行时执行如前述用于集成电路的综合方法实施例中任一实施例所述的综合方法。
本申请的又一实施例提供了一种计算机可读存储介质,其存储有计算机可执行指令,当所述计算机可执行指令被执行时,执行前述用于集成电路的综合方法实施例中任一实施例所述的综合方法。
本申请的又一实施例提供了一种计算机程序产品,包括计算机程序,其中所述计算机程序被处理器执行时实现前述用于集成电路的综合方法实施例中任一实施例所述的综合方法中的步骤。
根据下文描述的实施例,本申请的这些和其它优点将变得清楚,并且参考下文描述的实施例来阐明本申请的这些和其它优点。
附图说明
现在将更详细并且参考附图来描述本申请的实施例,其中:
图1示出了用于集成电路的常规综合方法的示例;
图2示出了根据本申请一个实施例提供的用于集成电路的综合方法所包括的一些步骤;
图3示出了根据本申请另一实施例提供的用于集成电路的综合方法所包括的一些步骤;
图4示出了根据本申请的一个实施例提供的用于集成电路的综合方法涉及的追踪目标组合逻辑元件的过程的示例;
图5示出了根据本申请的一个实施例提供的用于集成电路的综合方法涉及的如何确定其位置影响时序未收敛IO时序路径的时序收敛的组合逻辑元件的过程示例;
图6用于图示时序未收敛IO时序路径上的各个组合逻辑元件相对于第一四边形所在区域的偏离度;
图7示出了根据本申请又一实施例提供的用于集成电路的综合方法所包括的一些步骤。
具体实施方式
下面的描述提供了本申请的各种实施例的特定细节,以便本领域的技术人员能够充分理解和实施本申请的各种实施例。应当理解,本申请的技术方案可以在没有这些细节中的一些细节的情况下被实施。在某些情况下,本申请并没有示出或详细描述一些熟知的结构或功能,以避免这些不必要的描述使对本申请的实施例的描述模糊不清。在本申请中使用的术语应当以其最宽泛的合理方式来理解,即使其是结合本申请的特定实施例被使用的。
在现有的用于集成电路的综合方法中,鲜有基于版图的时序收敛优化方法。例如,图1示出了常规的用于集成电路的综合方法的示例,如图1所示,用于集成电路的常规综合方法可包括如下步骤:S110、获取用于集成电路的寄存器转移级(RTL)代码;S120、至少基于寄存器转移级代码获得包括逻辑符号的初级版图;S130、将初级版图中的各个逻辑符号映射至工艺库中的工艺元件,从而获得初始版图;S140、对初始版图进行PPA(功耗、性能和面积)优化处理以优化集成电路的功耗、性能和或面积。上述的步骤S110至S140可以利用现有的一些针对集成电路的综合工具或软件来完成。而且,在时序约束的设置方面,通常是针对集成电路的IO接口设置较紧的约束,以为集成电路中不同模块的拼接处预留足够的余量,从而减少不同模块拼接后的时序违例的发生。相应地,在综合的过程中,一般都会通过提高集成电路模块内部的时序路径的优化权重的方式优先对模块内部的逻辑进行时序优化,而针对IO接口的时序优化不设置权重或者仅设置较低的权重。在这种情况下,IO接口的时序往往是非常难收敛的,尤其是对于时序比较紧张的模块,综合过程结束之后往往会发生较严重的时序违例。而如果加大IO接口的时序优化的权重,势必又会影响模块内部逻辑的时序的优化效果。
本申请的实施例提出了一种用于集成电路的改进的综合方法,图2示出了该综合方法所包括的主要步骤。如图2所示,用于集成电路的综合方法包括:S210、获取用于所述集成电路的初始版图;S220、对所述初始版图进行优化处理以优化所述集成电路的功耗、性能和面积中的至少一个,并获得优化版图;S230、从所述优化版图中确定时序未收敛IO时序路径;S240、从所述时序未收敛IO时序路径中追踪目标组合逻辑元件,所述目标组合逻辑元件包括所述初始版图中影响所述时序未收敛IO时序路径的时序收敛的组合逻辑元件;S250、根据所述目标组合逻辑元件确定参考时序路径,所述参考时序路径包括经过所述目标组合逻辑元件的各条时序路径中除所述时序未收敛IO时序路径之外时序最差的时序路径;S260、确定所述参考时序路径的时间裕量;以及S270、响应于所述参考时序路径的时间裕量宽松,调整所述目标组合逻辑元件的在所述初始版图中的位置以促进所述时序未收敛IO时序路径的时序收敛。本文提到的“IO时序路径”指的是包括IO接口(输入输出接口)的时序路径,本文提到的“组合逻辑元件”指的是具有至少两个输入端的逻辑元件,组合逻辑元件的示例包括但不限于与门、或门、与非门等。
与图1所示的用于集成电路的综合方法不同,在图2所示的实施例中,在对初始版图进行PPA(性能、功耗和面积)优化处理获得优化版图后,从优化版图中确定时序未收敛的IO时序路径,并从时序未收敛IO时序路径中追踪初始版图中影响该时序未收敛IO时序路径的时序收敛的组合逻辑元件,即目标组合逻辑元件,在此基础上,可以确定经过目标组合逻辑元件的各条时序路径中除所述时序未收敛IO时序路径之外时序最差的时序路径,并将该时序最差的时序路径作为参考时序路径,进一步地,通过确定参考时序路径的时间裕量,可以判断参考时序路径的时间裕量是否宽松。在参考时序路径的时间裕量宽松的情况下,调整目标组合逻辑元件的在上述初始版图中的位置以促进所述时序未收敛IO时序路径的时序收敛。因此,利用图2实施所示的综合方法,可以从初始版图中追踪到影响时序未收敛IO时序路径的时序收敛的目标组合逻辑元件,初始版图中的逻辑元件是从工艺厂商的工艺库中选择的具有具体参数的工艺元件,因此,调整目标组合逻辑元件在初始版图中的位置可以对布局不合理的组合逻辑元件的位置偏差进行纠正,这对于促进时序未收敛IO时序路径的时序收敛具有实际意义。而且,对目标组合逻辑元件的位置调整是在确定经过该目标组合逻辑元件的各条时序路径中除上述时序未收敛IO时序路径之外时序最差的时序路径的时间裕量宽松的情况下进行的,所以,通过调整目标组合逻辑元件的位置来优化IO时序路径的时序不会影响集成电路的内部时序路径的时序收敛。
根据本申请的一些实施例,在参考时序路径的时间裕量不宽松的情况下,可以从该参考时序路径的下一级时序路径中继续寻找是否存在时间裕量宽松的目标时序路径。这里提到的下一级时序路径可以是以参考时序路径的起点为终点的各条时序路径,也可以是以参考时序路径的终点为起点的各条时序路径。在追踪到与参考时序路径相关联的目标时序路径的时间裕量宽松情况下,可以对目标组合逻辑元件的在初始版图中的位置进行调整修正,以促进上述时序未收敛IO时序路径的时序收敛。因此,在一些实施例中,上述的综合方法还包括如下步骤:响应于参考时序路径的时间裕量不宽松,从参考时序路径的下一级时序路径中追踪第一级目标时序路径,参考时序路径的下一级时序路径包括以参考时序路径的起点为终点的各条时序路径,第一级目标时序路径包括以参考时序路径的起点为终点的各条时序路径中时序最差的时序路径;响应于第一级目标时序路径的时间裕量宽松,调整上述目标组合逻辑元件的在初始版图中的位置以促进时序未收敛IO时序路径的时序收敛。在该实施例中,从参考时序路径的下一级时序路径中追踪第一级目标时序路径可以被理解为向参考时序路径的上游追踪第一级目标时序路径。替代性地,在另一实施例中,上述的综合方法还包括:响应于参考时序路径的时间裕量不宽松,从参考时序路径的下一级时序路径中追踪第一级目标时序路径,所述参考时序路径的下一级时序路径包括以参考时序路径的终点为起点的各条时序路径,第一级目标时序路径包括以所述参考时序路径的终点为起点的各条时序路径中时序最差的时序路径;响应于第一级目标时序路径的时间裕量宽松,调整所述目标组合逻辑元件的在所述初始版图中的位置以促进所述时序未收敛IO时序路径的时序收敛。在该实施例中,从参考时序路径的下一级时序路径中追踪第一级目标时序路径可以被理解为向参考时序路径的下游追踪第一级目标时序路径。在其它实施例中,可以同时向参考时序路径的上游和下游追踪第一级目标时序路径,即,在该情形中,参考时序路径的下一级时序路径包括以参考时序路径的终点为起点的各条时序路径以及以参考时序路径的终点为起点的各条时序路径。此时,第一级目标时序路径即为以参考时序路径的终点为起点的各条时序路径和以参考时序路径的终点为起点的各条时序路径中时序最差的时序路径。
根据本申请的一些实施例,在上述的第一级目标时序路径的时间裕量不宽松的情况下,可以从第一级目标时序路径的下一级时序路径中继续追踪第二级目标时序路径,并判断第二级目标时序路径的时间裕量是否宽松。在第二级目标时序路径的时间裕量宽松的情况下,调整目标组合逻辑元件的在所述初始版图中的位置以促进时序未收敛IO时序路径的时序收敛。这里的第二级目标时序路径与上述的第一级目标时序路径具有类似的含义,即,第一级目标时序路径的下一级时序路径包括以所述第一级目标时序路径的起点为终点的各条时序路径,第二级目标时序路径包括以第一级目标时序路径的起点为终点的各条时序路径中时序最差的时序路径。或者,第一级目标时序路径的下一级时序路径包括以第一级目标时序路径的终点为起点的各条时序路径,第二级目标时序路径包括以第一级目标时序路径的终点为起点的各条时序路径中时序最差的时序路径。在一些实施例中,上述的综合方法包括如下步骤:响应于第一级目标时序路径的时间裕量不宽松,从第一级目标时序路径的下一级时序路径中追踪第二级目标时序路径,第一级目标时序路径的下一级时序路径包括以所述第一级目标时序路径的起点为终点的各条时序路径,第二级目标时序路径包括以所述第一级目标时序路径的起点为终点的各条时序路径中时序最差的时序路径;响应于第二级目标时序路径至第k级目标时序路径中的每个目标时序路径的时间裕量不宽松,且k大于第一阈值,终止所述综合方法。这里提到的第k级目标时序路径可以是以第k-1级目标时序路径的起点为终点的各条时序路径中时序最差的时序路径,类似地,第k+1级目标时序路径是以所述第k级目标时序路径的起点为终点的各条时序路径中时序最差的时序路径,且k为大于等于3的正整数。替代性地,第k级目标时序路径也可以是以第k-1级目标时序路径的终点为起点的各条时序路径中时序最差的时序路径,第k+1级目标时序路径也可以是以第k级目标时序路径的终点为起点的各条时序路径中时序最差的时序路径。通过利用上述的第一阈值来限制追踪与参考时序路径相关联的目标时序路径的次数,可以降低综合方法的复杂性,有利于提升综合方法的执行效率。
可以参照图3来进一步理解本申请的上述实施例。图3所示的综合方法中的步骤S310至步骤S360分别与图2中所示的步骤S210至步骤S260相同。如果在步骤S370中确定参考时序路径的时间裕量宽松,则在步骤S370a中,调整目标组合逻辑元件在初始版图中的位置以促进时序未收敛IO时序路径的时序收敛。否则,在步骤S370b中,从参考时序路径的下一级时序路径中追踪第一级目标时序路径,参考时序路径的下一级时序路径包括以参考时序路径的终点为起点的各条时序路径,第一级目标时序路径包括以所述参考时序路径的终点为起点的各条时序路径中时序最差的时序路径。接下来,如果在步骤S380中确定第一级目标时序路径的时间裕量宽松,可以执行前述的步骤S370a以调整所述目标组合逻辑元件的在所述初始版图中的位置。否则,可以执行步骤S380a,从第一级目标时序路径的下一级时序路径中追踪第二级目标时序路径。也就是说,在前一级目标时序路径的时间裕量不宽松的情况下,可以继续向该前一级目标时序路径的上游或下游继续追踪下一级目标时序路径。但是,在图3的实施例中,以第一阈值限制了追踪与参考时序路径相关联的目标时序路径的次数。如步骤S390、步骤S390a所示,在第k级目标时序路径的时间预留不宽松的情况下,判断k是否大于第一阈值。如果k大于第一阈值,则可以终止本次综合过程。在k未超过该第一阈值的情况下,可以从第k级目标时序路径的下一级时序路径中追踪第k+1级目标时序路径,如图3中的步骤S390所示。
根据本申请的一些实施例,用于集成电路的综合方法还包括如下步骤:响应于参考时序路径的时间裕量小于零而确定所述参考时序路径的时间裕量不宽松;以及响应于所述参考时序路径的时间裕量大于第一正数而确定所述参考时序路径的时间裕量宽松。本文提到的“时间裕量”可以通过对某一时序路径(例如,参考时序路径)进行时序分析而获得,例如,通过时序分析而得到的时序报告中的slack值可以表征上述时间裕量,同时,与不同时序路径对应的不同的slack值的大小也可以反映不同时序路径上的时序优劣。
在另一实施例中,判断参考时序路径的时间裕量是否宽松还可包括如下步骤:响应于参考时序路径的时间裕量大于零而小于第一正数,判断所述参考时序路径上的各逻辑元件中未采用最低阈值电压的逻辑元件的数目;响应于所述参考时序路径中未采用最低阈值电压的逻辑元件的数目大于第二正数而确定参考时序路径的时间裕量宽松。集成电路中的逻辑元件通常包括半导体开关器件,半导体开关器件的运行参数包括允许该半导体开关器件开启运行的阈值电压。逻辑元件中的半导体开关器件的阈值电压越高,越容易导致该逻辑元件所在时序路径上的信号延迟。因此,如果参考时序路径中存在足够数量的逻辑元件没有使用所允许的最低阈值电压(这意味着可以容许降低一部分逻辑元件的阈值电压),可以确定参考时序路径的时间裕量是宽松的。因此,该实施例可以提高判断参考时序路径的时间裕量是否宽松的精确性。
下面,通过示例的方式具体说明上述的综合方法中提到的从时序未收敛IO时序路径中追踪目标组合逻辑元件的过程。
在一些实施例中,图2中所示的步骤S240—从时序未收敛IO时序路径中追踪目标组合逻辑元件包括如下步骤:从时序未收敛IO时序路径中的各个组合逻辑元件中确定第一组合逻辑元件,第一组合逻辑元件的位置影响所述时序未收敛IO时序路径的时序收敛;以及响应于第一组合逻辑元件不在对所述初始版图进行优化处理的过程中形成,将所述第一组合逻辑元件确定为所述目标组合逻辑元件。进一步地,从时序未收敛IO时序路径中追踪目标组合逻辑元件的步骤还可包括:响应于第一组合逻辑元件是在对所述初始版图进行优化处理的过程中形成,确定第一组合逻辑元件的第一输入端,所述时序未收敛IO时序路径经过所述第一输入端;从经过所述第一组合逻辑元件的除所述第一输入端以外的余下输入端的各条时序路径中确定第二组合逻辑元件,所述第二组合逻辑元件的位置影响所述时序未收敛IO时序路径的时序收敛;以及响应于第二组合逻辑元件不在对所述初始版图进行优化处理的过程中形成,将所述第二组合逻辑元件确定为所述目标组合逻辑元件。在对初始版图进行优化处理的过程中,为了优化前述的PPA参数,往往会产生一些不同于与初始版图中的工艺元件的新的逻辑元件,这些在对初始版图进行优化处理的过程中产生的逻辑元件可被称为虚拟逻辑元件。因此,该实施例中所说明的目标组合逻辑元件的确定方法避免了将虚拟逻辑元件视为其在初始版图中的位置待调整的工艺元件,这有利于提升优化IO时序路径的时序的实际效果。
在一些实施例中,上述的综合方法还可包括如下步骤:响应于上述第二组合逻辑元件至第M组合逻辑元件中的每个组合逻辑元件是在对初始版图进行优化处理的过程中形成,且M大于第二阈值,终止所述综合方法,其中第M组合逻辑元件是从经过第M-1组合逻辑元件的各输入端的各条时序路径中确定的组合逻辑元件,该第M组合逻辑元件的位置影响所述时序未收敛IO时序路径的时序收敛,其中M为大于等于3的正整数。也就是说,在该实施例中,在第一组合逻辑元件和第二组合逻辑元件都是在对初始版图进行优化处理的过程中形成的不同于初始版图中的工艺元件的新的逻辑元件的情况下,可以进行多次的目标组合逻辑元件追踪。但是,追踪目标组合逻辑元件的次数收到上述的第二阈值的限制。由此可以降低综合方法的复杂性,有利于提升综合方法的执行效率。
参照图4可以进一步理解上述实施例所述的追踪目标组合逻辑元件的过程。如图4所示,在步骤S410,从时序未收敛IO时序路径中的各个组合逻辑元件中确定第一组合逻辑元件,第一组合逻辑元件的位置影响所述时序未收敛IO时序路径的时序收敛;如果在步骤S420中确定第一组合逻辑元件不在对所述初始版图进行优化处理的过程中形成,则在步骤S420a中,将第一组合逻辑元件确定为所述目标组合逻辑元件。否则,在步骤S420b,从经过第一组合逻辑元件的除第一输入端(所述时序未收敛IO时序路径经过该第一输入端)以外的余下输入端的各条时序路径中确定第二组合逻辑元件,所述第二组合逻辑元件的位置影响所述时序未收敛IO时序路径的时序收敛。类似地,如果在步骤S430中确定第二组合逻辑元件不在对初始版图进行优化处理的过程中形成,则在步骤S430a中将第二组合逻辑元件确定为所述目标组合逻辑元件。通过前述的类似的方法,可以追踪到第M组合逻辑元件,第M组合逻辑元件是从经过第M-1组合逻辑元件的各输入端的各条时序路径中确定的组合逻辑元件,该第M组合逻辑元件的位置影响所述时序未收敛IO时序路径的时序收敛。如果在步骤S440中确定第M组合逻辑元件不在对初始版图进行优化处理的过程中形成,则在步骤S440a中将该第M组合逻辑元件确定为目标组合逻辑元件。如果在步骤S450中确定M大于第二阈值,则终止该综合过程。否则,可以在步骤S450a中确定从经过第M组合逻辑元件的各输入端的各条时序路径中确定第M+1组合逻辑元件,第M+1组合逻辑元件的位置影响所述时序未收敛IO时序路径的时序收敛。
根据本申请的一些实施例,图4中所示的步骤S420b——从经过所述第一组合逻辑元件的除所述第一输入端以外的余下输入端的各条时序路径中确定第二组合逻辑元件可包括如下步骤:从经过所述第一组合逻辑元件的除所述第一输入端以外的余下输入端的各条时序路径中确定时序最差的第三时序路径;以及从所述第三时序路径上的各个组合逻辑元件中确定所述第二组合逻辑元件。
如前所述,上述实施例中提到的第一组合逻辑元件、第二组合逻辑元件以及第M组合逻辑元件的位置影响上述时序未收敛IO时序路径的时序收敛,下面通过示例的方式进一步说明如何确定其位置影响上述时序未收敛IO时序路径的时序收敛的组合逻辑元件。在一些实施例中,如图5所示,从时序未收敛IO时序路径上的各个组合逻辑元件中确定第一组合逻辑元件可包括如下步骤:S510、基于所述时序未收敛IO时序路径的起点和时序未收敛IO时序路径的终点构建第一四边形,所述第一四边形的对角线为所述时序未收敛IO时序路径的起点到所述时序未收敛IO时序路径的终点的直线连线;S520、确定所述时序未收敛IO时序路径上的各个组合逻辑元件相对于所述第一四边形所在区域的偏离度;以及S530、从所述时序未收敛IO时序路径上的各个组合逻辑元件中选择所述偏离度超过第一偏离度阈值的组合逻辑元件作为所述第一组合逻辑元件。
可以参照图6示例性地说明确定时序未收敛IO时序路径上的各个组合逻辑元件相对于第一四边形所在区域的偏离度。时序未收敛IO时序路径的起点和终点可以分别是该时序未收敛IO时序路径的起点元件和终点元件。可以获取起点元件和终点元件的坐标位置,如图6所示,起点元件S和终点元件E的坐标分别为(x1,y1)和(x2,y2)。以起点元件S和终点元件E之间的连线构建四边形,在图6的示例中,该四边形为长方形。长方形的中心点为O,其坐标为((x1+x2)/2,(y1+y2)/2)。可以从时序未收敛IO时序路径上确定除上述的起点元件和终点元件之外的全部的组合逻辑元件。图6示意性地示出了时序未收敛IO时序路径上的三个组合逻辑元件A、B和C。由此,可以通过各个组合逻辑元件A、B和C的坐标位置来计算各个组合逻辑元件A、B和C相对长方形所在区域的偏离度。例如,对于图6中所示的组合逻辑元件A,其坐标为(x0,y0),可以分别计算该组合逻辑元件A相对于长方形在X方向上的偏离度、以及该组合逻辑元件A相对于长方形在Y方向上的偏离度。在一个示例中,组合逻辑元件A相对于长方形在X方向的偏离度被表示为:(|x0-(x1+x2)/2|-|x1-x2|/2)/|x1-x2|,组合逻辑元件A相对于长方形在Y方向的偏离度被表示为:(|y0-(y1+y2)/2|-|y1-y2|/2)/|y1-y2|。组合逻辑元件A相对于长方形的偏离度可以为上述的X方向的偏离度和Y方向的偏离度组合,例如,上述的X方向的偏离度和Y方向的偏离度的加权平均值等。接下来,可以从时序未收敛IO时序路径上的各个组合逻辑元件中选择偏离度超过第一偏离度阈值的组合逻辑元件作为第一组合逻辑元件。例如,在图6的示例中,组合逻辑元件C被确定为第一组合逻辑元件,而组合逻辑元件A不被确定为第一组合逻辑元件。
可以采用类似的方法来确定上部步骤S420b中提到的第二组合逻辑元件,即前述实施例中提到的从第三时序路径上的各个组合逻辑元件中确定所述第二组合逻辑元件可包括:基于所述第三时序路径的起点和所述第三时序路径的终点构建第二四边形,所述第二四边形的对角线为所述第三时序路径的起点和所述第三时序路径的终点的直线连线;确定所述第三时序路径上的各个组合逻辑元件相对于所述第二四边形所在区域的偏离度;从所述第三时序路径上的各个组合逻辑元件中选择所述偏离度超过第二偏离度阈值的组合逻辑元件作为所述第二组合逻辑元件。
在一些实施例中,前述实施例中提到的调整目标组合逻辑元件的在初始版图中的位置以促进时序未收敛IO时序路径的时序收敛包括: 调整所述第一组合逻辑元件或所述第二组合逻辑元件在所述初始版图中的位置,以减小所述第一组合逻辑元件相对于所述第一四边形所在区域的偏离度或所述第二组合逻辑元件相对于所述第二四边形所在区域的偏离度。例如,可以将图6中所示的组合逻辑元件C的位置调整至图6中所示的C'的位置,以减小第一组合逻辑元件C相对于第一四边形所在区域的偏离度,从而促进促进时序未收敛IO时序路径的时序收敛。
在一些实施例中,图2中所示的步骤S250中提到的根据目标组合逻辑元件确定参考时序路径可包括如下步骤:确定目标组合逻辑元件的第一输入端,所述时序未收敛IO时序路径经过所述第一输入端;从经过所述目标组合逻辑元件的除所述第一输入端以外的余下输入端的各条时序路径中确定时序最差的时序路径,将所述时序最差的时序路径确定为所述参考时序路径。可以对经过目标组合逻辑元件的除所述第一输入端以外的余下输入端的各条时序路径进行时序分析,从而获得各条时序路径之间的时序优劣状况。将经过目标组合逻辑元件的除第一输入端以外的余下输入端的各条时序路径中时序最差的时序路径确定为参考时序路径,可以尽可能降低优化IO时序路径的时序对其它时序路径的时序收敛的影响,有利于实现在不影响集成电路的其它内部时序路径的时序收敛的情况下对时序未收敛IO时序路径的时序进行优化。
利用图2和图3所示的实施例,经过其中的步骤S270或步骤S370a对目标组合逻辑元件的在初始版图中的位置进行调整,由此可以获得针对集成电路的更新版图。在一些实施例中,可以循环执行获取更新版图和对更新版图进行PPA优化处理的步骤,直到最终获得的版图中的各条IO时序路径时序收敛,并将上述最终获得额版图确定为用于集成电路的目标版图。因此,在一些实施例中,上述的综合方法还包括如下步骤:通过调整所述目标组合逻辑元件的在所述初始版图中的位置获得更新版图;对所述更新版图进行优化处理以优化所述集成电路的功耗、性能和面积中的至少一个,并获得用于所述集成电路的再优化版图;以及响应于所述再优化版图中的各条IO时序路径时序收敛,将所述再优化版图确定为用于所述集成电路的目标版图。
如前所述,本文提到的用于集成电路的初始版图可通过如下步骤获得:获取用于所述集成电路的寄存器转移级代码;至少基于所述寄存器转移级代码获得包括逻辑符号的初级版图;将所述初级版图中的各个逻辑符号映射至工艺库中的工艺元件,从而获得所述初始版图。初始版图可通过本领域已有的综合工具或软件来完成,在此不再赘述。
图7图示了根据本申请的另一实施例提供的用于集成电路的综合方法涉及的步骤。如图7所示,在步骤S1,可以基于针对集成电路的寄存器转移级(RTL)代码获得包括逻辑符号的初级版图,在步骤S2中,将初级版图中的各个逻辑符号映射至工艺厂商提供的工艺库中的工艺元件,从而获得初始版图。在步骤S3中,对初始版图进行PPA(功耗、性能和面积)优化处理,以优化集成电路的功耗、性能和面积中的至少一个,并获得针对集成电路的优化版图。与常规的集成电路综合方法不同,在步骤S3中完成对初始版图的PPA优化后,并不直接进入步骤S4而终止综合方法。在步骤S5,判断初始版图中的IO时序路径(即, 包括输入输出接口的时序路径)的时序是否收敛。如果不存在时序未收敛IO时序路径,则进入步骤S4,综合方法终止。如果存在时序未收敛IO时序路径,则进入步骤S6。在步骤S6中,对于时序未收敛IO时序路径,在初始版图中确定时序未收敛IO时序路径中是否包含位置布局不合理的组合逻辑元件(即,前述的第一组合逻辑元件),因为位置布局不合理的组合逻辑元件影响时序未收敛IO时序路径的时序收敛。第一组合逻辑元件可能是在步骤S2中应用的工艺元件,也可能是步骤S3中执行对初始版图的PPA优化过程中产生的新的逻辑元件。在第一组合逻辑元件是在对初始版图的PPA优化过程中产生的新的逻辑元件的情况下,需要进行多次的追踪过程才可能获得期望的目标组合逻辑元件,例如,可能需要追踪前述实施例中提到的第二组合逻辑元件、第M组合逻辑元件。为了对目标组合逻辑元件的追踪次数进行限制,可以设定组合逻辑元件追踪级数,并在步骤S6中将组合逻辑元件追踪级数的初始值设置为1。因此,在步骤S7中,判断步骤S6中追踪到的第一组合逻辑元件是否是在步骤2中获得的工艺元件。如果是,则将第一组合逻辑元件确定为目标组合逻辑元件,并进入步骤S8,根据目标组合逻辑元件确定参考时序路径,参考时序路径包括经过目标组合逻辑元件的各条时序路径中除所述时序未收敛IO时序路径之外时序最差的时序路径。参考时序路径的时间裕量不一定宽松,在参考时序路径的时间裕量不宽松的情况下,需要从参考时序路径的下一级时序路径中追踪第一级目标时序路径。即,为了追踪到时间裕量宽松的目标时序路径,可能需要进行多次目标时序路径的追踪,例如,前述的第一级目标时序路径、第二级目标时序路径、第k级目标时序路径。为了对目标时序路径的追踪次数进行限制,可以设定目标时序路径追踪级数,并在步骤S8中将目标时序路径追踪级数的初始值设置为1。在步骤S9,判断在步骤S8中追踪到的参考时序路径的时间裕量是否宽松。在参考时序路径的时间裕量宽松的情况下,进入步骤S10,调整目标组合逻辑元件在初始版图中的位置,例如,减小目标组合逻辑元件相对于前述实施例中提到的第一四边形所在区域的偏离度。在步骤S11中,对目标组合逻辑元件在初始版图中调整后的位置予以固定。之后,可以再次执行前述的步骤S3,获得用于集成电路的再优化版图,如果在步骤S5中确定再优化版图中的各条IO时序路径时序收敛,将在步骤S4中终止综合过程,将再优化版图确定为用于集成电路的目标版图。
如果在步骤S7中确定步骤S6中追踪到的第一组合逻辑元件不是在步骤2中获得的工艺元件,那么进入步骤S12,判断组合逻辑元件追踪级数的值是否小于第二阈值,在组合逻辑元件追踪级数的值小于第二阈值的情况下,进入步骤S13,否则进入步骤S4,即终止综合方法。通过步骤S13和S14,可以追踪前述实施例所述的第二组合逻辑元件。例如,在步骤S13中,可以追踪经过第一组合逻辑元件的除第一输入端(时序未收敛IO时序路径经过所述第一输入端)以外的余下输入端的各条时序路径中时序最差的时序路径,在步骤S14中,在步骤S13中追踪到的时序最差的时序路径上追踪第二组合逻辑元件,即在步骤S13中追踪到的时序最差的时序路径上追踪布局位置不合理的组合逻辑元件,并在步骤S15中对组合逻辑元件追踪级数的值加1。在第二组合逻辑元件仍不是在步骤2中获得的工艺元件的情况下,可以循环执行上述步骤S12、S13以及S15,只要组合逻辑元件追踪级数的值未超过所设定的第二阈值。当然,如果在步骤S14中未追踪到布局位置不合理的组合逻辑元件,也可以进入步骤S4而终止综合方法。
如果在步骤S9中判断在步骤S8中追踪到的参考时序路径的时间裕量不宽松,则进入步骤S16,判断目标时序路径追踪级数的值是否超过第一阈值,如果目标时序路径追踪级数的值超过第一阈值,则进入步骤S4而终止综合方法,否则,可以进入步骤S17,从参考时序路径的下一级时序路径中追踪第一级目标时序路径,参考时序路径的下一级时序路径包括以参考时序路径的起点为终点的各条时序路径,或则以参考时序路径的终点为起点的各条时序路径,第一级目标时序路径可以是以参考时序路径的起点为终点的各条时序路径中时序最差的时序路径,也可以是以参考时序路径的终点为起点的各条时序路径中时序最差的时序路径。或者,第一级目标时序路径还可以是以参考时序路径的起点为终点的各条时序路、以及以参考时序路径的终点为起点的各条时序路径中时序最差的时序路径。接着,在步骤S9中判断第一级目标时序路径的时间裕量是否宽松。在追踪到的第一级目标时序路径的时间裕量不宽松的情况下,取决于针对目标时序路径追踪级数设置的第一阈值,可能需要循环执行步骤S16和S17。
本申请的另一实施例提供了一种用于集成电路的综合装置,该综合装置包括:初始版图获取模块,其被配置成获取用于所述集成电路的初始版图;版图优化模块,其被配置成对所述初始版图进行优化处理以优化所述集成电路的功耗、性能和面积中的至少一个,并获得优化版图;未收敛IO时序路径确定模块,其被配置成从所述优化版图中确定时序未收敛IO时序路径;目标组合逻辑元件追踪模块,其被配置成从所述时序未收敛IO时序路径中追踪目标组合逻辑元件,所述目标组合逻辑元件包括所述初始版图中对所述时序未收敛IO时序路径的时序收敛造成影响的组合逻辑元件;参考时序路径确定模块,其被配置成根据所述目标组合逻辑元件确定参考时序路径,所述参考时序路径包括经过所述目标组合逻辑元件的各条时序路径中除所述时序未收敛IO时序路径之外时序最差的时序路径;时间裕量确定模块,其被配置成确定所述参考时序路径的时间裕量;以及目标组合逻辑元件调整模块,其被配置成响应于所述参考时序路径的时间裕量宽松,调整所述目标组合逻辑元件的在所述初始版图中的位置以促进所述时序未收敛IO时序路径的时序收敛。在一些实施中,这里描述的综合装置中的上述各个模块可以以计算机软件编程的形式实现。
上述实施例中的用于集成电路的综合方法中的各个步骤可以通过计算机软件的形式被实施,该计算机软件可以由计算设备运行。因此,本申请的另一实施例提供了一种计算设备,该计算设备包括存储器和处理器,存储器被配置成存储计算机机可执行指令,处理器被配置成当计算机可执行指令被处理器执行时执行如前述的用于集成电路的综合方法的各实施例中任一实施例所述的综合方法。
特别地,上文参考流程图描述的方法可以被实现为计算机程序。例如,本申请的再一实施例提供一种计算机机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行上述实施例所述的用于集成电路的综合方法的各实施例中任一实施例所述的综合方法中的至少一个步骤的程序代码。
本申请的另一实施例提供了一种或多种计算机可读存储介质,其上存储有计算机可读指令,该计算机可读指令在被执行时实现根据本申请一些实施例的用于集成电路的综合方法。用于集成电路的综合方法的各个步骤可以通过程序设计被转化为计算机可读指令,从而存储在计算机可读存储介质中。当这样的计算机可读存储介质被计算设备读取或访问时,其中的计算机可读指令被计算设备上的处理器执行以实现用于集成电路的综合方法。
本文描述的技术可以由计算设备的各种配置来支持,并且不限于本文所描述的技术的具体示例。 在本说明书的描述中,术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、或者特点被包含于本公开的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必针对的是相同的实施例或示例。而且,描述的具体特征、结构或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。通过上述结合或组合而获得的与前述实施例不同的另外的实施例同样属于本申请的保护范围。
Claims (19)
1.一种用于集成电路的综合方法,其特征在于,所述综合方法包括:
获取用于所述集成电路的初始版图;
对所述初始版图进行优化处理以优化所述集成电路的功耗、性能和面积中的至少一个,并获得优化版图;
从所述优化版图中确定时序未收敛IO时序路径;
从所述时序未收敛IO时序路径中追踪目标组合逻辑元件,所述目标组合逻辑元件包括所述初始版图中影响所述时序未收敛IO时序路径的时序收敛的组合逻辑元件;
根据所述目标组合逻辑元件确定参考时序路径,所述参考时序路径包括经过所述目标组合逻辑元件的各条时序路径中除所述时序未收敛IO时序路径之外时序最差的时序路径;
确定所述参考时序路径的时间裕量;以及
响应于所述参考时序路径的时间裕量宽松,调整所述目标组合逻辑元件的在所述初始版图中的位置以促进所述时序未收敛IO时序路径的时序收敛。
2.根据权利要求1所述的综合方法,其中所述综合方法还包括:
响应于所述参考时序路径的时间裕量不宽松,从所述参考时序路径的下一级时序路径中追踪第一级目标时序路径,所述参考时序路径的下一级时序路径包括以所述参考时序路径的起点为终点的各条时序路径,所述第一级目标时序路径包括以所述参考时序路径的起点为终点的各条时序路径中时序最差的时序路径;以及响应于所述第一级目标时序路径的时间裕量宽松,调整所述目标组合逻辑元件的在所述初始版图中的位置以促进所述时序未收敛IO时序路径的时序收敛。
3.根据权利要求1所述的综合方法,其中所述综合方法还包括:
响应于所述参考时序路径的时间裕量不宽松,从所述参考时序路径的下一级时序路径中追踪第一级目标时序路径,所述参考时序路径的下一级时序路径包括以所述参考时序路径的终点为起点的各条时序路径,所述第一级目标时序路径包括以所述参考时序路径的终点为起点的各条时序路径中时序最差的时序路径;以及
响应于所述第一级目标时序路径的时间裕量宽松,调整所述目标组合逻辑元件的在所述初始版图中的位置以促进所述时序未收敛IO时序路径的时序收敛。
4.根据权利要求2所述的综合方法,其中所述综合方法还包括:
响应于所述第一级目标时序路径的时间裕量不宽松,从所述第一级目标时序路径的下一级时序路径中追踪第二级目标时序路径,所述第一级目标时序路径的下一级时序路径包括以所述第一级目标时序路径的起点为终点的各条时序路径,所述第二级目标时序路径包括以所述第一级目标时序路径的起点为终点的各条时序路径中时序最差的时序路径;以及
响应于所述第二级目标时序路径至第k级目标时序路径中的每个目标时序路径的时间裕量不宽松,且k大于第一阈值,终止所述综合方法,
其中所述第k级目标时序路径是以第k-1级目标时序路径的起点为终点的各条时序路径中时序最差的时序路径,k为大于等于3的正整数。
5.根据权利要求1所述的综合方法,其中所述综合方法还包括:
响应于所述参考时序路径的时间裕量小于零而确定所述参考时序路径的时间裕量不宽松;以及
响应于所述参考时序路径的时间裕量大于第一正数而确定所述参考时序路径的时间裕量宽松。
6.根据权利要求5所述的综合方法,其中所述综合方法还包括:
响应于所述参考时序路径的时间裕量大于零而小于所述第一正数,判断所述参考时序路径上的各逻辑元件中未采用最低阈值电压的逻辑元件的数目;以及
响应于所述参考时序路径中未采用最低阈值电压的逻辑元件的数目大于第二正数而确定所述参考时序路径的时间裕量宽松。
7.根据权利要求1所述的综合方法,其中从所述时序未收敛IO时序路径中追踪目标组合逻辑元件包括:
从所述时序未收敛IO时序路径中的各个组合逻辑元件中确定第一组合逻辑元件,所述第一组合逻辑元件的位置影响所述时序未收敛IO时序路径的时序收敛;以及
响应于所述第一组合逻辑元件不在对所述初始版图进行优化处理的过程中形成,将所述第一组合逻辑元件确定为所述目标组合逻辑元件。
8.根据权利要求7所述的综合方法,其中从所述时序未收敛IO时序路径中追踪目标组合逻辑元件还包括:
响应于所述第一组合逻辑元件是在对所述初始版图进行优化处理的过程中形成,确定所述第一组合逻辑元件的第一输入端,所述时序未收敛IO时序路径经过所述第一输入端;
从经过所述第一组合逻辑元件的除所述第一输入端以外的余下输入端的各条时序路径中确定第二组合逻辑元件,所述第二组合逻辑元件的位置影响所述时序未收敛IO时序路径的时序收敛;
以及
响应于所述第二组合逻辑元件不在对所述初始版图进行优化处理的过程中形成,将所述第二组合逻辑元件确定为所述目标组合逻辑元件。
9.根据权利要求8所述的综合方法,其中所述综合方法还包括:
响应于所述第二组合逻辑元件至第M组合逻辑元件中的每个组合逻辑元件是在对所述初始版图进行优化处理的过程中形成,且M大于第二阈值,终止所述综合方法,
其中所述第M组合逻辑元件是从经过第M-1组合逻辑元件的各输入端的各条时序路径中确定的组合逻辑元件,且所述第M组合逻辑元件的位置影响所述时序未收敛IO时序路径的时序收敛,其中M为大于等于3的正整数。
10.根据权利要求8所述的综合方法,其中从经过所述第一组合逻辑元件的除所述第一输入端以外的余下输入端的各条时序路径中确定第二组合逻辑元件包括:
从经过所述第一组合逻辑元件的除所述第一输入端以外的余下输入端的各条时序路径中确定时序最差的第三时序路径;以及
从所述第三时序路径上的各个组合逻辑元件中确定所述第二组合逻辑元件。
11.根据权利要求7所述的综合方法,其中从所述时序未收敛IO时序路径上的各个组合逻辑元件中确定第一组合逻辑元件包括:
基于所述时序未收敛IO时序路径的起点和时序未收敛IO时序路径的终点构建第一四边形,所述第一四边形的对角线为所述时序未收敛IO时序路径的起点到所述时序未收敛IO时序路径的终点的直线连线;
确定所述时序未收敛IO时序路径上的各个组合逻辑元件相对于所述第一四边形所在区域的偏离度;以及
从所述时序未收敛IO时序路径上的各个组合逻辑元件中选择所述偏离度超过第一偏离度阈值的组合逻辑元件作为所述第一组合逻辑元件。
12.根据权利要求10所述的综合方法,其中从述第三时序路径上的各个组合逻辑元件中确定所述第二组合逻辑元件包括:
基于所述第三时序路径的起点和所述第三时序路径的终点构建第二四边形,所述第二四边形的对角线为所述第三时序路径的起点和所述第三时序路径的终点的直线连线;
确定所述第三时序路径上的各个组合逻辑元件相对于所述第二四边形所在区域的偏离度;
从所述第三时序路径上的各个组合逻辑元件中选择所述偏离度超过第二偏离度阈值的组合逻辑元件作为所述第二组合逻辑元件。
13.根据权利要求11所述的综合方法,其中所述调整所述目标组合逻辑元件的在所述初始版图中的位置以促进所述时序未收敛IO时序路径的时序收敛包括:
调整所述第一组合逻辑元件在所述初始版图中的位置,以减小所述第一组合逻辑元件相对于所述第一四边形所在区域的偏离度。
14.根据权利要求1所述的综合方法,其中根据所述目标组合逻辑元件确定参考时序路径包括:
确定所述目标组合逻辑元件的第一输入端,所述时序未收敛IO时序路径经过所述第一输入端;
从经过所述目标组合逻辑元件的除所述第一输入端以外的余下输入端的各条时序路径中确定时序最差的时序路径,将所述时序最差的时序路径确定为所述参考时序路径。
15.根据权利要求1-3中任一项所述的综合方法,其中所述综合方法还包括:
通过调整所述目标组合逻辑元件的在所述初始版图中的位置获得更新版图;
对所述更新版图进行优化处理以优化所述集成电路的功耗、性能和面积中的至少一个,并获得用于所述集成电路的再优化版图;以及
响应于所述再优化版图中的各条IO时序路径时序收敛,将所述再优化版图确定为用于所述集成电路的目标版图。
16.根据权利要求1所述的综合方法,其中所述获取用于所述集成电路的初始版图包括:
获取用于所述集成电路的寄存器转移级代码;
至少基于所述寄存器转移级代码获得包括逻辑符号的初级版图;
将所述初级版图中的各个逻辑符号映射至工艺库中的工艺元件,从而获得所述初始版图。
17.一种用于集成电路的综合装置,包括:
初始版图获取模块,其被配置成获取用于所述集成电路的初始版图;
版图优化模块,其被配置成对所述初始版图进行优化处理以优化所述集成电路的功耗、性能和面积中的至少一个,并获得优化版图;
未收敛IO时序路径确定模块,其被配置成从所述优化版图中确定时序未收敛IO时序路径;目标组合逻辑元件追踪模块,其被配置成从所述时序未收敛IO时序路径中追踪目标组合逻辑元件,所述目标组合逻辑元件包括所述初始版图中对所述时序未收敛IO时序路径的时序收敛造成影响的组合逻辑元件;
参考时序路径确定模块,其被配置成根据所述目标组合逻辑元件确定参考时序路径,所述参考时序路径包括经过所述目标组合逻辑元件的各条时序路径中除所述时序未收敛IO时序路径之外时序最差的时序路径;
时间裕量确定模块,其被配置成确定所述参考时序路径的时间裕量;以及
目标组合逻辑元件调整模块,其被配置成响应于所述参考时序路径的时间裕量宽松,调整所述目标组合逻辑元件的在所述初始版图中的位置以促进所述时序未收敛IO时序路径的时序收敛。
18.一种计算设备,包括
存储器,其被配置成存储计算机可执行指令;
处理器,其被配置成当所述计算机可执行指令被处理器执行时执行如权利要求1-16中的任一项所述的综合方法。
19.一种计算机可读存储介质,其存储有计算机可执行指令,当所述计算机可执行指令被执行时,执行如权利要求1-16中的任一项所述的综合方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310672235.4A CN116401977B (zh) | 2023-06-08 | 2023-06-08 | 用于集成电路的综合方法、综合装置、计算设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310672235.4A CN116401977B (zh) | 2023-06-08 | 2023-06-08 | 用于集成电路的综合方法、综合装置、计算设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116401977A CN116401977A (zh) | 2023-07-07 |
CN116401977B true CN116401977B (zh) | 2023-08-29 |
Family
ID=87012748
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310672235.4A Active CN116401977B (zh) | 2023-06-08 | 2023-06-08 | 用于集成电路的综合方法、综合装置、计算设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116401977B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10209681A (ja) * | 1997-01-17 | 1998-08-07 | Suzuki:Kk | 電子部品実装最適化方法 |
CN111027270A (zh) * | 2019-11-26 | 2020-04-17 | 西安电子科技大学 | 一种用于集成电路设计流程可信设计的方法及电路 |
CN114841104A (zh) * | 2022-05-09 | 2022-08-02 | Oppo广东移动通信有限公司 | 时序优化电路和方法、芯片及电子设备 |
CN115796093A (zh) * | 2023-01-03 | 2023-03-14 | 摩尔线程智能科技(北京)有限责任公司 | 电路时序优化方法、装置、电子设备及存储介质 |
WO2023051217A1 (zh) * | 2021-09-30 | 2023-04-06 | 上海商汤智能科技有限公司 | 集成电路的时序约束方法、装置、电子设备及芯片 |
-
2023
- 2023-06-08 CN CN202310672235.4A patent/CN116401977B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10209681A (ja) * | 1997-01-17 | 1998-08-07 | Suzuki:Kk | 電子部品実装最適化方法 |
CN111027270A (zh) * | 2019-11-26 | 2020-04-17 | 西安电子科技大学 | 一种用于集成电路设计流程可信设计的方法及电路 |
WO2023051217A1 (zh) * | 2021-09-30 | 2023-04-06 | 上海商汤智能科技有限公司 | 集成电路的时序约束方法、装置、电子设备及芯片 |
CN114841104A (zh) * | 2022-05-09 | 2022-08-02 | Oppo广东移动通信有限公司 | 时序优化电路和方法、芯片及电子设备 |
CN115796093A (zh) * | 2023-01-03 | 2023-03-14 | 摩尔线程智能科技(北京)有限责任公司 | 电路时序优化方法、装置、电子设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
时序快速收敛的区域约束式版图设计;韩晓霞, 张明, 姚庆栋;浙江大学学报(工学版)(03);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116401977A (zh) | 2023-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109783984B (zh) | 一种适用于cpu核频率提升的布局布线方法 | |
US8051399B2 (en) | IC design flow incorporating optimal assumptions of power supply voltage drops at cells when performing timing analysis | |
US8281267B2 (en) | Circuit design support apparatus, circuit design support method, and circuit design support program | |
CN111241778B (zh) | 一种基于机器学习的fpga自动调参优化方法及系统 | |
US7849429B2 (en) | Methods for conserving memory in statistical static timing analysis | |
CN115796093A (zh) | 电路时序优化方法、装置、电子设备及存储介质 | |
JP2001357090A (ja) | 論理合成方法及び論理合成装置 | |
KR19980080808A (ko) | 집적 회로 장치의 제조 방법 및집적 회로 장치에 대한 논리 검사 방법 | |
CN116401977B (zh) | 用于集成电路的综合方法、综合装置、计算设备和存储介质 | |
WO2012015689A1 (en) | Hyper-concurrent multi-scenario optimization | |
US20100115488A1 (en) | Circuit design device, circuit design method, and circuit design program | |
CN115859897A (zh) | 模型的生成方法、版图面积预测方法、装置及相关设备 | |
JP2000091506A (ja) | 半導体集積回路 | |
CN112001140B (zh) | 一种基于pso算法的有用偏差时序优化方法 | |
US5894421A (en) | Method and apparatus for calculating slew rates and signal propagation times for signal waveforms | |
JP2004280439A (ja) | クロストークノイズ検出方法、並びに半導体集積回路の設計方法及び設計検証方法 | |
CN117313602B (zh) | 模块边界时序约束方法及相关设备 | |
CN116861842B (zh) | 一种可调节分段式反向时钟树的实现方法及相关装置 | |
JP3005588B1 (ja) | 半導体装置の回路設計方法及びそのプログラムを記憶した記憶媒体 | |
US9069921B2 (en) | Verification apparatus for semiconductor integrated circuit, verification method for semiconductor integrated circuit, and program therefor | |
CN116842897B (zh) | 全流程布局布线增量优化方法、装置及计算机设备 | |
CN113688587B (zh) | 一种电路布图的生成方法、装置、计算机设备及存储介质 | |
CN113449477B (zh) | 数字电路的连接方法、装置、电子设备和存储介质 | |
CN117634379B (zh) | 一种ic设计的优化方法及系统 | |
CN117471504B (zh) | Gnss基带芯片验证方法、电子设备和介质 |
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 |