电路优化方法及装置制造方法

文档序号:6550958阅读:154来源:国知局
电路优化方法及装置制造方法
【专利摘要】本发明提供一种电路优化方法及装置。本发明提供的电路优化方法,包括:读取待优化电路的结构信息,生成初始网表;根据初始网表对电路中各时序器件进行功耗分析,建立该电路中各时序器件在多个应用场景中的功耗曲线模型;又根据初始网表对电路进行时序分析,获取该电路的时序约束信息;并根据电路中各时序器件在多个应用场景中的功耗曲线模型和电路的时序约束信息对该电路的峰值功耗进行优化,以获取适合电路运行的时钟延迟方案。本发明提供的方法解决了现有技术中主要根据时序器件翻转带来的电流变化进行建模来优化电路的方式,存在对电路中时序器件建模不准确的问题,提高了获取电路优化中性能指标的准确性。
【专利说明】电路优化方法及装置
【技术领域】
[0001]本发明涉及电路设计技术,尤其涉及一种电路优化方法及装置。
【背景技术】
[0002]在现代的电路设计中,在满足电路建立时间和保持时间的基础上,设计人员通常通过选择不同的时钟延迟方案,又称为时钟延迟调度(Clock Schedule),实现优化电路性能指标的目的。
[0003]目前电路优化的方案中,设计人员通常通过对电路中时序器件的模型构建,选择适合电路运行的时钟延迟方案以获取较优的电路模型;举例来说,具体可以对电路中的时序单元的时变电流曲线进行建模,将其分解为与时钟上升沿和下降沿延迟相关的两条时变电流曲线,电流曲线的发生时间窗口由该时序单元时钟信号的延迟决定,并认为电路中的组合逻辑消耗的电流是以时间为自变量的确定性函数,从而求解出电路的峰值电流,最后得到符合目标参数的优化电路。
[0004]然而,现有技术中主要根据时序器件翻转带来的电流变化进行建模来优化电路的方式,存在对电路中时序器件建模不准确的问题,获取电路优化中性能指标的准确性低。

【发明内容】

[0005]本发明提供一种电路优化方法及装置,以解决现有技术中主要根据时序器件翻转带来的电流变化进行建模来优化电路的方式,存在对电路中时序器件建模不准确的问题。
[0006]第一方面,本发明提供一种电路优化方法,包括:
[0007]读取待优化电路的结构信息,生成初始网表;
[0008]根据所述初始网表对所述电路中各时序器件进行功耗分析,建立所述电路中各时序器件在多个应用场景中的功耗曲线模型;
[0009]根据所述初始网表对所述电路进行时序分析,获取所述电路的时序约束信息;
[0010]根据所述电路中各时序器件在所述多个应用场景中的功耗曲线模型和所述电路的时序约束信息对所述电路的峰值功耗进行优化,以获取适合所述电路运行的时钟延迟方案。
[0011]在第一方面的第一种可能的实现方式中,所述根据所述初始网表对所述电路中各时序器件进行功耗分析,建立所述电路中各时序器件在多个应用场景中的功耗曲线模型,包括:
[0012]根据所述初始网表设置多个应用场景中的输入参数信息;
[0013]根据所述初始网表、所述多个应用场景中的输入参数信息和所述电路的工艺参数信息对所述电路进行功耗分析,分析出所述电路在所述多个应用场景中的功耗信息;
[0014]根据所述初始网表和所述电路在所述多个应用场景中的功耗信息,生成所述电路中各时序器件在所述多个应用场景中的功耗曲线模型。
[0015]根据第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述根据所述初始网表和所述电路在所述多个应用场景中的功耗信息,生成所述电路中各时序器件在所述多个应用场景中的功耗曲线模型,包括:
[0016]根据所述初始网表对所述电路中各时序器件进行分析,生成所述各时序器件在所述多个应用场景中自身的功耗曲线;
[0017]根据所述初始网表和所述电路在所述多个应用场景中的功耗信息,生成所述各时序器件在所述电路的组合逻辑中分配到的功耗曲线;
[0018]根据所述各时序器件在所述多个应用场景中自身的功耗曲线和所述各时序器件在所述电路的组合逻辑中分配到的功耗曲线,获取所述电路中各时序器件在所述多个应用场景中的功耗曲线模型。
[0019]在第一方面的第三种可能的实现方式中,所述根据所述电路中各时序器件在所述多个应用场景中的功耗曲线模型和所述电路的时序约束信息对所述电路的峰值功耗进行优化之前,还包括:
[0020]在所述电路中构建具有不同延迟时间的多个时钟单元,并根据所述电路的工艺参数信息形成所述多个时钟单元的功耗曲线模型;
[0021]则所述根据所述电路中各时序器件在所述多个应用场景中的功耗曲线模型和所述电路的时序约束信息对所述电路的峰值功耗进行优化,以获取适合所述电路运行的时钟延迟方案,包括:
[0022]根据所述电路中各时序器件在所述多个应用场景中的功耗曲线模型、所述多个时钟单元的功耗曲线模型,以及所述电路的时序约束信息对所述电路的峰值功耗进行优化,以获取适合所述电路运行的时钟延迟方案。
[0023]根据第一方面的第三种可能的实现方式,在第四种可能的实现方式中,所述根据所述电路中各时序器件在所述多个应用场景中的功耗曲线模型、所述多个时钟单元的功耗曲线模型,以及所述电路的时序约束信息对所述电路的峰值功耗进行优化,以获取适合所述电路运行的时钟延迟方案,包括:
[0024]根据所述电路中各时序器件在所述多个应用场景中的功耗曲线模型和所述多个时钟单元的功耗曲线模型,获取所述电路在所述多个应用场景中的峰值功耗函数;
[0025]根据所述电路在所述多个应用场景中的峰值功耗函数和所述多个应用场景在所述电路应用中重要等级,获得用于评估所述电路的加权峰值功耗函数;
[0026]通过优化算法对所述电路的加权峰值功耗函数进行评估,以获取所述加权峰值功耗函数中适合所述电路运行的时钟延迟方案,其中,所述电路的时序约束信息作为所述优化算法的解空间约束条件。
[0027]根据第一方面、第一方面的第一种到第四种可能的实现方式中任意一种,在第五种可能的实现方式中,还包括:
[0028]将已获取的所述时钟延迟方案用于所述初始网表,验证所述初始网表在所述多个应用场景中的峰值功耗;
[0029]将符合预置优化目标的峰值功耗所指示的时钟延迟方案构建为所述电路中相应的延迟结构以形成优化电路。
[0030]第二方面,本发明提供一种电路优化装置,包括:
[0031]获取模块,用于读取待优化电路的结构信息,生成初始网表;[0032]器件模型建立模块,用于根据所述获取模块生成的初始网表对所述电路中各时序器件进行功耗分析,建立所述电路中各时序器件在多个应用场景中的功耗曲线模型;
[0033]时序分析模块,用于根据所述获取模块生成的初始网表对所述电路进行时序分析,获取所述电路的时序约束信息;
[0034]优化模块,用于根据所述器件模型建立模块建立的所述电路中各时序器件在所述多个应用场景中的功耗曲线模型和所述时序分析模块获取的所述电路的时序约束信息对所述电路的峰值功耗进行优化,以获取适合所述电路运行的时钟延迟方案。
[0035]在第二方面的第一种可能的实现方式中,所述器件模型建立模块,包括:
[0036]输入单元,用于根据所述获取模块生成的初始网表设置多个应用场景中的输入参数信息;
[0037]功耗分析单元,用于根据所述获取模块生成的初始网表、所述输入单元设置的多个应用场景中的输入参数信息和所述电路的工艺参数信息对所述电路进行功耗分析,分析出所述电路在所述多个应用场景中的功耗信息;
[0038]模型生成单元,用于根据所述获取模块生成的初始网表和所述功耗分析单元分析得到的所述电路在所述多个应用场景中的功耗信息,生成所述电路中各时序器件在所述多个应用场景中的功耗曲线模型。
[0039]根据第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述模型生成单元包括:
[0040]第一生成子单元,用于根据所述获取模块生成的初始网表对所述电路中各时序器件进行分析,生成所述各时序器件在所述多个应用场景中自身的功耗曲线;
[0041]第二生成子单元,用于根据所述获取模块生成的初始网表和所述功耗分析单元分析得到的所述电路在所述多个应用场景中的功耗信息,生成所述各时序器件在所述电路的组合逻辑中分配到的功耗曲线;
[0042]模型生成子单元,用于根据所述第一生成子单元生成的各时序器件在所述多个应用场景中自身的功耗曲线和所述第二生成子单元生成的各时序器件在所述电路的组合逻辑中分配到的功耗曲线,获取所述电路中各时序器件在所述多个应用场景中的功耗曲线模型。
[0043]在第二方面的第三种可能的实现方式中,所述装置还包括:
[0044]延迟模型建立模块,用于在所述电路中构建具有不同延迟时间的多个时钟单元,并根据所述电路的工艺参数信息形成所述多个时钟单元的功耗曲线模型;
[0045]则所述优化模块,具体用于根据所述器件模型建立模块建立的所述电路中各时序器件在所述多个应用场景中的功耗曲线模型、所述多个时钟单元的功耗曲线模型,以及所述时序分析模块获取的所述电路的时序约束信息对所述电路的峰值功耗进行优化,以获取适合所述电路运行的时钟延迟方案。
[0046]根据第二方面的第三种可能的实现方式,在第四种可能的实现方式中,所述优化模块包括:
[0047]功耗获取单元,用于根据所述器件模型建立模块建立的所述电路中各时序器件在所述多个应用场景中的功耗曲线模型和所述多个时钟单元的功耗曲线模型,获取所述电路在所述多个应用场景中的峰值功耗函数;[0048]加权计算单元,用于根据所述功耗获取单元获取的所述电路在所述多个应用场景中的峰值功耗函数和所述多个应用场景在所述电路应用中重要等级,获得用于评估所述电路的加权峰值功耗函数;
[0049]优化评估单元,用于通过优化算法对所述加权计算单元获得的所述电路的加权峰值功耗函数进行评估,以获取所述加权峰值功耗函数中适合所述电路运行的时钟延迟方案,其中,所述电路的时序约束信息作为所述优化算法的解空间约束条件。
[0050]根据第二方面、第二方面的第一种到第四种可能的实现方式中任意一种,在第五种可能的实现方式中,还包括:
[0051]验证模块,用于将已获取的所述时钟延迟方案用于获取模块生成的所述初始网表,验证所述初始网表在所述多个应用场景中的峰值功耗;
[0052]电路生成模块,用于将所述验证模块验证符合预置优化目标的峰值功耗所指示的时钟延迟方案构建为所述电路中相应的延迟结构以形成优化电路。
[0053]本发明提供一种电路优化方法及装置,通过读取待优化电路的结构信息获取当前电路的初始网表,并根据该初始网表对该电路中各时序器件进行功耗分析以建立该电路中各时序器件在多个应用场景中的功耗曲线模型,并且基于该电路的时序约束信息和已建立的功耗曲线模型实现对该电路峰值功耗的优化,获取适合所述电路运行的时钟延迟方案,本实施例获取的时钟延迟方案的主要因素,即电路中各时序器件在多个应用场景中的该功耗曲线模型,基于该电路的初始网表和时序约束信息,以及该电路在多个应用场景的输入参数信息,因此,本实施例中通过建立功耗曲线模型来优化电路的峰值功耗的方法,解决了现有技术中主要根据时序器件翻转带来的电流变化进行建模来优化电路的方式,存在对电路中时序器件建模不准确的问题,提高了获取电路优化中性能指标的准确性。
【专利附图】

【附图说明】
[0054]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0055]图1为本发明实施例一所提供的一种电路优化方法的流程图;
[0056]图2为本发明实施例二所提供的一种电路优化方法的流程图;
[0057]图3为本发明实施例所提供的另一种电路优化方法的流程图;
[0058]图4为本发明实施例三所提供的一种电路优化装置的结构示意图;
[0059]图5为本发明实施例四所提供的一种电路优化装置的结构示意图。
【具体实施方式】
[0060]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0061]图1为本发明实施例一所提供的一种电路优化方法的流程图。本实施例提供的方法适用于对电路的功耗进行优化的方法,该方法可以由电路优化装置执行,该电路优化装置通常以硬件和/或软件的方法来实现,可以集成在终端设备的存储器中,例如集成在处理器芯片中,供处理器调用执行。如图1所示,本实施例的方法可以包括:
[0062]S110,读取待优化电路的结构信息,生成初始网表。
[0063]对待优化电路的优化处理,通常需要获取该电路硬件连接方面的物理信息和该电路中各器件的逻辑关系,在实际使用中,例如可以通过电子设计自动化(ElectronicDesign Automat1n,简称为:EDA)工具读取并分析该电路的结构信息,例如结构信息可以包括电路中的器件、各器件的连接关系,以及各器件的属性,生成针对该电路的初始网表,对电路的优化分析通常可以基于该初始网表中包含的电路结构以及逻辑关系的结构信息。
[0064]需要说明的是,生成初始网表的过程中对电路进行的分析,还包括对电路中各器件的工艺参数的分析,不同的工艺参数的器件的属性和其在电路中可以实现的功能是不同的。
[0065]S120,根据该初始网表对该电路中各时序器件进行功耗分析,建立该电路中各时序器件在多个应用场景中的功耗曲线模型。
[0066]根据该初始网表所指示的器件连接关系和时序器件的逻辑关系,对该电路中各时序器件的功耗进行分析,该时序器件例如可以为电路中的触发器,该电路中每个时序器件的翻转都会产生一定时间窗口上连续分布的功耗曲线,且电路中的各时序器件形成组合逻辑以实现相应的功能,进而可知该电路中各时序器件的功耗也不仅取决于该器件单独的翻转功耗,还与该时序器件在所属组合逻辑中的功耗有关,即本实施例提供的方法不仅分析电路中各时序器件自身所产生的功耗,还分析了各时序器件在所属组合逻辑中占用的功耗,依次对该电路中各时序器件的功耗进行建模。
[0067]需要说明的是,相同的电路在不同的应用场景下的功耗模型是不同的,具体地,对电路的处理方式不同,例如使用同一电路进行不同类型的运算时各时序器件的翻转频率和功耗是不同的,即电路的处理类型、内容和待处理的数据特征影响该电路的功耗模型,因此,本实施例提供的电路优化方法针对几种典型应用场景分别建立该电路中各时序器件的功耗曲线模型。
[0068]在具体实现时,建立电路中各时序器件在多个应用场景中的功率曲线模型可以包括:根据该初始网表设置多个应用场景中的输入参数信息;从而根据该初始网表、该多个应用场景中的输入参数信息和该电路的工艺参数信息对该电路进行功耗分析,分析该电路在该多个应用场景中的功耗信息;实现根据该初始网表和该电路在该多个应用场景中的功耗信息,生成该电路中各时序器件在该多个应用场景中的功耗曲线模型。
[0069]现有技术中通过构建时变电流曲线进行建模的电路优化方法,其中的时序器件的翻转是不随输入参数的变化而变的,但在实际的设计中,各个时序器件是否发生翻转或翻转后产生的时序电流曲线都会受到输入参数的影响,因此峰值电流优化的结果也将受到影响,可能造成在某一组输入参数影响下,该时钟延迟调度方案使得电路的峰值电流减小了,而在其他输入参数下则可能造成峰值电流的增加;然而,在本实施例中,根据预置的多个应用场景的输入参数信息,实现对初始网表在不同应用场景下的动态功耗分析,具体地,该输入参数信息可以包括该电路所运行的处理类型、内容和数据特征,即不同应用场景的输入参数信息由电路运行的程序决定,对于每个时序器件的时间功耗曲线具有决定性的作用,另外,在特定程序场景下,某些特定的时序器件具有很高的翻转概率,而在另外一些应用场景下,它们又几乎不发生翻转,这就导致在不同的应用场景下,决定电路峰值功耗的主要时序器件不同,本实施例提供的方法,在时钟延迟调度时综合考虑到多种应用场景对时序器件功耗的影响;本实施例还将该电路的工艺参数信息作为分析电路功耗的因素之一;相比之下,现有技术主要根据时序器件翻转带来的电流变化进行建模,显然,通过本实施例所提供的电路优化方法所建立的功耗曲线模型较现有技术相比考虑了影响曲线模型的更多因素,可以更准确地获取实现电路优化的目标性能指标。
[0070]S130,根据该初始网表对该电路进行时序分析,获取该电路的时序约束信息。
[0071]在本实施例中,还可以通过静态时序分析工具完成对初始网表的时序分析,给出电路中各时序器件之间的建立时间和保持时间与时序器件的时钟延迟之间的关系。举例来说,该电路中的任意两个时序器件为触发器i和触发器j,触发器i的时钟延迟值为Li,触发器j的时钟延迟值为Lj,若存在从触发器i到触发器j的数据路径,则它们的时钟延迟需要满足以下关系式:
[0072]
L1-Lj > Hold( j) - min(Z)(y}, L: - Li > Setnpij) + max(z)..)(I)
[0073]其中,Hold(j)和Setup(j)分别为触发器j的保持时间和建立时间,Hiin(Dij)和Max(Dij)分别表示从触发器i到触发器j的最短数据路径延迟和最长数据路径延迟。
[0074]本实施例提供的电路优化方法,在电路优化的过程中可以建立约束条件,使得电路在满足时序约束信息的条件下可以更改输入参数信息;需要说明的是,本实施例中S120和S130没有明确的先后顺序,都是基于对初始网表进行分析获得的,图1中仅以S120在S130之前执行为例予以说明,可以不限制S120与S130的先后顺序,也可以同时执行S120与 S130。
[0075]S140,根据该电路中各时序器件在该多个应用场景中的功耗曲线模型和该电路的时序约束信息对该电路的峰值功耗进行优化,以获取适合该电路运行的时钟延迟方案。
[0076]在本实施例中,通过将该时序电路的时序约束信息应用于已建立的时序器件在该多个应用场景中的功耗曲线模型,进行不同输入参数信息的功耗曲线对比,获取该电路在多种应用场景下普遍适用的时钟延迟方案,即适合该电路运行的时钟延迟方案;需要说明的是,最终获取的时钟延迟方案不一定为使得某一特定应用场景下功耗曲线最优的方案,通常可以为在多数应用场景中均可以达到较优功耗曲线的方案,从而将该时钟延迟方案以硬件形式应用于该电路时,可以在多数应用场景中达到降低功耗峰值的目的。
[0077]本实施例所提供的电路优化方法,通过读取待优化电路的结构信息获取当前电路的初始网表,并根据该初始网表对该电路中各时序器件进行功耗分析以建立该电路中各时序器件在多个应用场景中的功耗曲线模型,并且基于该电路的时序约束信息和已建立的功耗曲线模型实现对该电路峰值功耗的优化,获取适合所述电路运行的时钟延迟方案,本实施例获取的时钟延迟方案的主要因素,即电路中各时序器件在多个应用场景中的该功耗曲线模型,基于该电路的初始网表和时序约束信息,以及该电路在多个应用场景的输入参数信息,因此,本实施例中通过建立功耗曲线模型来优化电路的峰值功耗的方法,解决了现有技术中主要根据时序器件翻转带来的电流变化进行建模来优化电路的方式,存在对电路中时序器件建模不准确的问题,提高了获取电路优化中性能指标的准确性。
[0078]实施例二
[0079]图2为本发明实施例二所提供的一种电路优化方法的流程图。如图2所示,本实施例的方法可以包括:
[0080]S210,读取待优化电路的结构信息,生成初始网表。
[0081]S220,根据该初始网表设置多个应用场景中的输入参数信息。
[0082]S230,根据该初始网表、该多个应用场景中的输入参数信息和该电路的工艺参数信息对该电路进行功耗分析,分析出该电路在该多个应用场景中的功耗信息。
[0083]需要说明的是,电路的工艺参数信息通常是根据电路中各器件的设计需求确定的,工艺参数信息即是器件的生产规则,例如某一功率器件的最小线宽根据其集成度可以定制为65nm或者90nm,对于不同工艺参数的器件,在电路中可以承受的最大功耗也是不同的。
[0084]S240,根据该初始网表和该电路在该多个应用场景中的功耗信息,生成该电路中各时序器件在该多个应用场景中的功耗曲线模型。
[0085]具体地,S210?S240的具体实现方式参照实施例一中的SllO?S120。
[0086]S250,根据该初始网表对该电路进行时序分析,获取该电路的时序约束信息。
[0087]具体地,S250的具体实现方式参照实施例一中的S130 ;需要说明的是,本实施例中S250与S220?S240没有明确的先后顺序,都是基于对初始网表进行分析获得的,图2中仅以S220?S240在S250之前执行为例予以说明,可以不限制S220?S240与S250的先后顺序,也可以同时执行S220?S240与S250。
[0088]S260,在电路中构建具有不同延迟时间的多个时钟单元,并根据该电路的工艺参数信息形成该多个时钟单元的功耗曲线模型。
[0089]在本实施例中,通过插入具有不同延迟的时钟单元构建不同的时钟延迟方案,这些时钟单元的组合也可以构建不同的时钟延迟方案,因此,对于特定的工艺来说,本实施例中的时钟单元的构建形式是可以预先制定的,通常是延迟时间覆盖一定的范围,具体可以根据电路设计的规则而制定,并且这些时钟单元在其延迟窗口上会有不同的功耗表现,因此需要预先设置相应工艺参数信息中不同延迟对应的时钟单元与其功耗的关系函数,即生成该多个时钟单元的功耗曲线模型,记做:P(t,deltaP),其中deltaP表示时钟信号的延迟差异。
[0090]需要说明的是,在理想情况下,时钟单元的延迟和功耗连续可调,则延迟和功耗能够保持较好的线性关系;实际使用的时钟单元延迟是不连续的,具有一定的梯度特征,可以建立分段线性的函数来表征延迟与功耗之间的关系;更一般的情况下,对于离散的时钟单元延迟可以通过查找表的方式来表征延迟与功耗之间的关系。
[0091]在本实施例中,S260与S250,以及S220?S240均没有明确的先后顺序,都是已获取的用于电路优化的相关因素,图2中仅以S260在S250之后执行为例予以说明,可以不限制S260与S220?S240或S250的先后顺序,也可以同时执行S220?S240、S250和S260。
[0092]S270,根据该电路中各时序器件在该多个应用场景中的功耗曲线模型、该多个时钟单元的功耗曲线模型,以及该电路的时序约束信息对该电路的峰值功耗进行优化,以获取适合该电路运行的时钟延迟方案。
[0093]本实施例提供的电路优化方法,通过插入时钟单元的方式为了生成具有一定时钟延迟差异的时钟分布网络来构建时钟调度方案,然而,在该方案中时钟延迟差异的构建是以插入时钟单元为代价的,具体地,在时序单元信号发生翻转之前,这部分的时钟单元也将会持续发生翻转,并消耗一部分的电流。现有技术提供的时变电流曲线模型中,忽略时钟单元的功耗将使得峰值功耗优化模型丧失一部分的精确性;另外,电路中的时序单元在翻转和不翻转的逻辑状态下其时变电流曲线也是不一样的,并不是所有的时序单元都会同时发生电平翻转。本实施例建立的功耗曲线模型,考虑了时钟单元在时序器件翻转前的一段时间持续产生的功耗,即在电路的峰值优化过程中加入了以时钟单元的延迟和功耗关系构建的功耗曲线模型,进而可以获得更加准确的电路功耗曲线模型。
[0094]本实施例所提供的电路优化方法,通过读取待优化电路的结构信息获取当前电路的初始网表,并根据该初始网表对该电路中各时序器件进行功耗分析以建立该电路中各时序器件在多个应用场景中的功耗曲线模型,并且基于该电路的时序约束信息和已建立的功耗曲线模型实现对该电路峰值功耗的优化,获取适合所述电路运行的时钟延迟方案,本实施例获取的时钟延迟方案的主要因素,即电路中各时序器件在多个应用场景中的该功耗曲线模型,基于该电路的初始网表、时序约束信息和工艺参数信息,以及该电路在多个应用场景的输入参数信息,因此,本实施例中通过建立功耗曲线模型来优化电路的峰值功耗的方法,解决了现有技术中主要根据时序器件翻转带来的电流变化进行建模来优化电路的方式,存在对电路中时序器件建模不准确的问题,提高了获取电路优化中性能指标的准确性。另外,本实施例提供的方法中加入通过时钟单元构建时钟延迟调度的方案,将以时钟单元的延迟和功耗关系构建的功耗曲线模型作为影响电路峰值优化的因素之一,进而获取到更加准确的电路功耗曲线模型。
[0095]图3为本发明实施例所提供的另一种电路优化方法的流程图,在本实施例中,上述实施例在具体实现时,S240可以包括:
[0096]S241,根据该初始网表对该电路中各时序器件进行分析,生成各时序器件在该多个应用场景中自身的功耗曲线。
[0097]在本实施例中,通过对几种典型应用场景的输入参数信息的设置,可以获取到该电路中各时序器件在电路中自身的功耗曲线;本实施例中的时序器件可以随着时钟信号跳变产生一个功耗时变曲线,该曲线可以分为两个部分,一部分是在时序器件中的时钟翻转引起的功耗,一部分是时序器件中数据发生翻转所引起的功耗,并且第二部分的功耗与其翻转概率有关,这两部分功耗大小可以根据对初始网表的动态功耗分析来获取,持续的时间窗口可以从时序分析中获取。
[0098]在具体实现时,例如本实施例中的时序器件可以为触发器i,该触发器i中时钟翻转功耗曲线为pff—&α,t),数据翻转功耗曲线为pff—Da,t),触发器i的翻转概率为pMg α),则单个触发器i自身的功耗曲线为:
[0099]Pff (i, t) = Pff—clk(i, t)+preJi)*Pff—D(i, t) (2)
[0100]S242,根据该初始网表和该电路在该多个应用场景中功耗信息,生成该各时序器件在该电路的组合逻辑中分配到的功耗曲线。
[0101]在实际电路中,实现特定功能的组合逻辑通常由多个时序器件组成,同样以触发器作为时序器件为例进行说明,组合逻辑在不同的应用场景中跟随不同的触发器发生翻转,但是体现为触发器翻转后的某个时间窗口内发生,该时间窗口可以从对初始网表的静态时序分析的结果中获取;如果该组合逻辑的扇入来自多个触发器,则可以使用概率传播的方式将其功耗分配到不同的触发器上;举例来说,一个两端输入的逻辑门,存在输入引脚A和B,其发生翻转的概率分别记做P (A)和P (B),该逻辑门的翻转功耗为Pgate,那么由引脚A产生的功耗记做:
[0102]Pa = Pgate*p ⑷ / (P ⑷ +p ⑶)(3)
[0103]反复应用上述式(3)的这一规则便可以将该逻辑门功耗分配到其所有的扇入的触发器上,电路中的各个节点的翻转概率则可以从所有的输入端口或触发器向其扇出方向传播得到。
[0104]S243,根据该各时序器件在该多个应用场景中自身的功耗曲线和该各时序器件在该电路的组合逻辑中分配到的功耗曲线,获取该电路中各时序器件在该多个应用场景中的功耗曲线模型。
[0105]本实施例提供的电路优化方法,通过对上述时序器件自身在多个应用场景中的功耗曲线建模和时序器件在电路的组合逻辑中分配到的功耗曲线建模,即通过式(2)和式(3)所指示的两个功耗模型,得到时序器件在多个应用场景中的功耗曲线建模可以为:Pjt-ti),其中,表示触发器i的时钟信号的到达时间。
[0106]现有技术中通过构建时变电流曲线进行建模的电路优化方法,实际上是假定电路中组合逻辑的电流曲线是不随各时序器件的时钟延迟的变化而变化的,使得模型的准确性降低;然而,本实施例提供的电路优化方法,充分考虑电路中组合逻辑翻转是时序器件翻转引起的因素,将其翻转的时间窗口是由时序器件的翻转时间决定的因素加入功耗曲线模型中,以构建更加准确的时序器件的功耗曲线模型。
[0107]进一步地,本实施例所提供的电路优化方法中,S270具体可以包括:
[0108]S271,根据该电路中各时序器件在该多个应用场景中的功耗曲线模型和该多个时钟单元的功耗曲线模型,获取该电路在该多个应用场景中的峰值功耗函数;
[0109]S272,根据该电路在该多个应用场景中的峰值功耗函数和该多个应用场景在该电路应用中重要等级,获得用于评估该电路的加权峰值功耗函数;
[0110]S273,通过优化算法对该电路的加权峰值功耗函数进行评估,以获取该加权峰值功耗函数中适合该电路运行的时钟延迟方案,其中,该电路的时序约束信息作为该优化算法的解空间约束条件。
[0111]在本实施例中,通过对电路中各时序器件在多个应用场景中的功耗曲线建模,以及在实现时钟延迟调度中通过对插入的时钟单元进行功耗曲线的建模,获取待优化电路在多个应用场景中的峰值功耗函数;具体地,在应用场景η (η = 1,2,…,N)下,在获取每个触发器以及不同时钟延迟的功耗时变曲线后,在某个时钟延迟方案T=,…,tm}条件下,设计电路的峰值功耗可以表示为:
[0112]
【权利要求】
1.一种电路优化方法,其特征在于,包括: 读取待优化电路的结构信息,生成初始网表; 根据所述初始网表对所述电路中各时序器件进行功耗分析,建立所述电路中各时序器件在多个应用场景中的功耗曲线模型; 根据所述初始网表对所述电路进行时序分析,获取所述电路的时序约束信息; 根据所述电路中各时序器件在所述多个应用场景中的功耗曲线模型和所述电路的时序约束信息对所述电路的峰值功耗进行优化,以获取适合所述电路运行的时钟延迟方案。
2.根据权利要求1所述的方法,其特征在于,所述根据所述初始网表对所述电路中各时序器件进行功耗分析,建立所述电路中各时序器件在多个应用场景中的功耗曲线模型,包括: 根据所述初始网表设置多个应用场景中的输入参数信息; 根据所述初始网表、所述多个应用场景中的输入参数信息和所述电路的工艺参数信息对所述电路进行功耗分析,分析出所述电路在所述多个应用场景中的功耗信息; 根据所述初始网表和所述电路在所述多个应用场景中的功耗信息,生成所述电路中各时序器件在所述多个应用场景中的功耗曲线模型。
3.根据权利要求2所述的方法,其特征在于,所述根据所述初始网表和所述电路在所述多个应用场景中的功耗信息,生成所述电路中各时序器件在所述多个应用场景中的功耗曲线模型,包括: 根据所述初始网表对所述电路中各时序器件进行分析,生成所述各时序器件在所述多个应用场景中自身的功耗曲线; 根据所述初始网表和所述电路在所述多个应用场景中的功耗信息,生成所述各时序器件在所述电路的组合逻辑中分配到的功耗曲线; 根据所述各时序器件在所述多个应用场景中自身的功耗曲线和所述各时序器件在所述电路的组合逻辑中分配到的功耗曲线,获取所述电路中各时序器件在所述多个应用场景中的功耗曲线模型。
4.根据权利要求1所述的方法,其特征在于,所述根据所述电路中各时序器件在所述多个应用场景中的功耗曲线模型和所述电路的时序约束信息对所述电路的峰值功耗进行优化之前,还包括: 在所述电路中构建具有不同延迟时间的多个时钟单元,并根据所述电路的工艺参数信息形成所述多个时钟单元的功耗曲线模型; 则所述根据所述电路中各时序器件在所述多个应用场景中的功耗曲线模型和所述电路的时序约束信息对所述电路的峰值功耗进行优化,以获取适合所述电路运行的时钟延迟方案,包括: 根据所述电路中各时序器件在所述多个应用场景中的功耗曲线模型、所述多个时钟单元的功耗曲线模型,以及所述电路的时序约束信息对所述电路的峰值功耗进行优化,以获取适合所述电路运行的时钟延迟方案。
5.根据权利要求4所述的方法,其特征在于,所述根据所述电路中各时序器件在所述多个应用场景中的功耗曲线模型、所述多个时钟单元的功耗曲线模型,以及所述电路的时序约束信息对所述电路的峰值功耗进行优化,以获取适合所述电路运行的时钟延迟方案,包括: 根据所述电路中各时序器件在所述多个应用场景中的功耗曲线模型和所述多个时钟单元的功耗曲线模型,获取所述电路在所述多个应用场景中的峰值功耗函数; 根据所述电路在所述多个应用场景中的峰值功耗函数和所述多个应用场景在所述电路应用中重要等级,获得用于评估所述电路的加权峰值功耗函数; 通过优化算法对所述电路的加权峰值功耗函数进行评估,以获取所述加权峰值功耗函数中适合所述电路运行的时钟延迟方案,其中,所述电路的时序约束信息作为所述优化算法的解空间约束条件。
6.根据权利要求1~5中任一项所述的方法,其特征在于,还包括: 将已获取的所述时钟延迟方案用于所述初始网表,验证所述初始网表在所述多个应用场景中的峰值功耗; 将符合预置优化目标的峰值功耗所指示的时钟延迟方案构建为所述电路中相应的延迟结构以形成优化电路。
7.一种电路优化装置,其特征在于,包括: 获取模块,用于读取待优化电路的结构信息,生成初始网表; 器件模型建立模块, 用于根据所述获取模块生成的初始网表对所述电路中各时序器件进行功耗分析,建立所述电路中各时序器件在多个应用场景中的功耗曲线模型; 时序分析模块,用于根据所述获取模块生成的初始网表对所述电路进行时序分析,获取所述电路的时序约束信息; 优化模块,用于根据所述器件模型建立模块建立的所述电路中各时序器件在所述多个应用场景中的功耗曲线模型和所述时序分析模块获取的所述电路的时序约束信息对所述电路的峰值功耗进行优化,以获取适合所述电路运行的时钟延迟方案。
8.根据权利要求7所述的装置,其特征在于,所述器件模型建立模块,包括: 输入单元,用于根据所述获取模块生成的初始网表设置多个应用场景中的输入参数信息; 功耗分析单元,用于根据所述获取模块生成的初始网表、所述输入单元设置的多个应用场景中的输入参数信息和所述电路的工艺参数信息对所述电路进行功耗分析,分析出所述电路在所述多个应用场景中的功耗信息; 模型生成单元,用于根据所述获取模块生成的初始网表和所述功耗分析单元分析得到的所述电路在所述多个应用场景中的功耗信息,生成所述电路中各时序器件在所述多个应用场景中的功耗曲线模型。
9.根据权利要求8所述的装置,其特征在于,所述模型生成单元包括: 第一生成子单元,用于根据所述获取模块生成的初始网表对所述电路中各时序器件进行分析,生成所述各时序器件在所述多个应用场景中自身的功耗曲线; 第二生成子单元,用于根据所述获取模块生成的初始网表和所述功耗分析单元分析得到的所述电路在所述多个应用场景中的功耗信息,生成所述各时序器件在所述电路的组合逻辑中分配到的功耗曲线; 模型生成子单元,用于根据所述第一生成子单元生成的各时序器件在所述多个应用场景中自身的功耗曲线和所述第二生成子单元生成的各时序器件在所述电路的组合逻辑中分配到的功耗曲线,获取所述电路中各时序器件在所述多个应用场景中的功耗曲线模型。
10.根据权利要求7所述的装置,其特征在于,还包括: 延迟模型建立模块,用于在所述电路中构建具有不同延迟时间的多个时钟单元,并根据所述电路的工艺参数信息形成所述多个时钟单元的功耗曲线模型; 则所述优化模块,具体用于根据所述器件模型建立模块建立的所述电路中各时序器件在所述多个应用场景中的功耗曲线模型、所述多个时钟单元的功耗曲线模型,以及所述时序分析模块获取的所述电路的时序约束信息对所述电路的峰值功耗进行优化,以获取适合所述电路运行的时钟延迟方案。
11.根据权利要求10所述的装置,其特征在于,所述优化模块包括: 功耗获取单元,用于根据所述器件模型建立模块建立的所述电路中各时序器件在所述多个应用场景中的功耗曲线模型和所述多个时钟单元的功耗曲线模型,获取所述电路在所述多个应用场景中的峰值功耗函数; 加权计算单元,用于根据所述功耗获取单元获取的所述电路在所述多个应用场景中的峰值功耗函数和所述多个应用场景在所述电路应用中重要等级,获得用于评估所述电路的加权峰值功耗函数; 优化评估单元,用于通过优化算法对所述加权计算单元获得的所述电路的加权峰值功耗函数进行评估,以获取所述加权峰值功耗函数中适合所述电路运行的时钟延迟方案,其中,所述电路的时序约束信息作为所述优化算法的解空间约束条件。
12.根据权利要求7~11中任一项所述的装置,其特征在于,还包括: 验证模块,用于将已获取的所述时钟延迟方案用于获取模块生成的所述初始网表,验证所述初始网表在所述多个应用场景中的峰值功耗; 电路生成模块,用于将所述验证模块验证符合预置优化目标的峰值功耗所指示的时钟延迟方案构建为所述电路中相应的延迟结构以形成优化电路。
【文档编号】G06F17/50GK104036090SQ201410292959
【公开日】2014年9月10日 申请日期:2014年6月25日 优先权日:2014年6月25日
【发明者】肖斌, 杨梁 申请人:龙芯中科技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1