CN117454813B - 电路的翻转概率信息计算方法、装置和计算机设备 - Google Patents
电路的翻转概率信息计算方法、装置和计算机设备 Download PDFInfo
- Publication number
- CN117454813B CN117454813B CN202311783605.8A CN202311783605A CN117454813B CN 117454813 B CN117454813 B CN 117454813B CN 202311783605 A CN202311783605 A CN 202311783605A CN 117454813 B CN117454813 B CN 117454813B
- Authority
- CN
- China
- Prior art keywords
- node
- target
- probability information
- circuit
- nodes
- 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 68
- 230000007306 turnover Effects 0.000 claims abstract description 142
- 238000011144 upstream manufacturing Methods 0.000 claims abstract description 49
- 238000012216 screening Methods 0.000 claims abstract description 14
- 238000012937 correction Methods 0.000 claims description 51
- 238000004364 calculation method Methods 0.000 claims description 28
- 238000004590 computer program Methods 0.000 claims description 14
- 238000012986 modification Methods 0.000 claims description 4
- 230000004048 modification Effects 0.000 claims description 4
- 230000003068 static effect Effects 0.000 description 32
- 238000003066 decision tree Methods 0.000 description 17
- 230000008569 process Effects 0.000 description 17
- 230000000750 progressive effect Effects 0.000 description 17
- 238000013461 design Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 8
- 238000004458 analytical method Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 3
- 238000011156 evaluation Methods 0.000 description 3
- 230000008054 signal transmission Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- NAWXUBYGYWOOIX-SFHVURJKSA-N (2s)-2-[[4-[2-(2,4-diaminoquinazolin-6-yl)ethyl]benzoyl]amino]-4-methylidenepentanedioic acid Chemical compound C1=CC2=NC(N)=NC(N)=C2C=C1CCC1=CC=C(C(=O)N[C@@H](CC(=C)C(O)=O)C(O)=O)C=C1 NAWXUBYGYWOOIX-SFHVURJKSA-N 0.000 description 1
- 108010001267 Protein Subunits Proteins 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000000546 chi-square test Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000007704 transition Effects 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/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/08—Probabilistic or stochastic CAD
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)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本申请涉及一种电路的翻转概率信息计算方法、装置和计算机设备,其中,该电路的翻转概率信息计算方法包括:获取目标电路中节点的翻转概率信息;基于目标电路中不同节点之间的信号相关性,从目标电路中筛选至少一个目标节点;根据目标节点和目标节点的上游节点间的逻辑关系,修正至少一个目标节点的翻转概率信息。其能够以较高效率实现对翻转概率信息的准确计算,进而提高了门级网表的翻转概率信息的计算的准确度。
Description
技术领域
本申请涉及集成电路技术领域,特别是涉及电路的翻转概率信息计算方法、装置和计算机设备。
背景技术
随着目前集成电路的集成度和功耗密度的增加,集成电路的功耗是集成电路设计的重要考量因素。目前集成电路工作时,动态功耗占重要部分,而动态功耗评估中,需要获取集成电路中逻辑单元的翻转率。
目前,针对逻辑单元的翻转率的评估,常常采用以下两种方式来实现:一种是由电路设计人员基于以往设计经验,手动指定逻辑单元的翻转率,该种方式所获得的翻转率为估计值,准确度较低,进而无法实现功耗的准确计算。另一种方式是基于仿真工具对电路进行仿真,从而计算得到翻转率。在只有部分节点标注了翻转概率信息的情况下,无法准确地计算出其他节点的翻转概率信息。因此,相关技术中存在计算翻转概率信息的准确度较低的问题。
发明内容
在本实施例中提供了一种电路的翻转概率信息计算方法、装置和计算机设备,以解决相关技术中针对门级网表计算翻转概率信息的准确度较低的问题。
第一个方面,在本实施例中提供了一种电路的翻转概率信息计算方法,包括:
获取目标电路中节点的翻转概率信息;
基于所述目标电路中不同节点之间的信号相关性,从所述目标电路中筛选至少一个目标节点;
根据所述目标节点和所述目标节点的上游节点间的逻辑关系,修正所述至少一个目标节点的翻转概率信息。
在其中的一些实施例中,所述方法还包括:
根据修正后的所述目标节点的翻转概率信息,更新所述目标节点的下游节点的翻转概率信息。
在其中的一些实施例中,所述根据所述目标节点和所述目标节点的上游节点间的逻辑关系,修正所述至少一个目标节点的翻转概率信息,包括:
根据所述目标节点的上级节点的信号相关性确定待修正的子电路,根据所述子电路中的所述目标节点的上游节点间的逻辑关系,为所述目标节点建立修正模型;
至少根据所述修正模型,修正所述至少一个目标节点的翻转概率信息。
在其中的一些实施例中,所述根据所述目标节点的上级节点的信号相关性确定待修正的子电路,包括:
根据所述目标节点的上级节点的信号相关性,从所述目标节点向所述目标节点的上游节点进行追溯,根据终止条件确定追溯终止节点;
根据所述追溯终止节点与所述目标节点之间的电路确定待修正的子电路;
其中,所述终止条件为:所述子电路达到预设长度,和/或,所述追溯终止节点间不存在信号相关性。
在其中的一些实施例中,所述根据所述子电路中的所述目标节点的上游节点间的逻辑关系,为所述目标节点建立修正模型,包括:
利用待修正的子电路中的追溯终止节点为所述目标节点建立修正模型,其中,所述待修正的子电路中最上游的节点为追溯终止节点,所述修正模型用于表征所述追溯终止节点与所述目标节点的逻辑关系。
在其中的一些实施例中,所述至少根据所述修正模型,修正所述至少一个目标节点的翻转概率信息,包括:
利用所述追溯终止节点的传播状态集以及所述修正模型修正所述至少一个目标节点的翻转概率信息。
在其中的一些实施例中,所述方法还包括:
将各所述目标节点在更新前的翻转概率信息,以及各所述目标节点的下游节点在更新前的翻转概率信息均识别为第一翻转概率信息;
将各所述目标节点在更新后的翻转概率信息,以及各所述目标节点的下游节点在更新后的翻转概率信息均识别为第二翻转概率信息;
将第一翻转概率信息和第二翻转概率信息的差值大于预设相差阈值的任意所述目标节点,以及第一翻转概率信息和第二翻转概率信息的差值大于所述预设相差阈值的任意所述下游节点,均识别为新的目标节点;
继续基于所述新的目标节点和所述新的目标节点的上游节点间的逻辑关系,修正所述新的目标节点的翻转概率信息。
在其中的一些实施例中,所述获取目标电路中节点的翻转概率信息,包括:
获取目标电路中关键节点的翻转概率信息,其中,所述关键节点包括原始输入节点和/或寄存器节点;
根据所述关键节点的翻转概率信息从所述关键节点逐级传播获得所述目标电路中各个节点的翻转概率信息。
在其中的一些实施例中,所述根据所述关键节点的翻转概率信息从所述关键节点逐级传播获得所述目标电路中各个节点的翻转概率信息,包括:
根据所述关键节点的翻转概率信息建立所述目标电路中各个节点的传播状态集;
根据所述关键节点的传播状态集,以及所述目标电路中各个逻辑单元的单元模型,逐级求解所述目标电路中各个节点的翻转概率信息。
在其中的一些实施例中,所述根据所述关键节点的传播状态集,以及所述目标电路中各个逻辑单元的单元模型,逐级求解所述目标电路中各个节点的翻转概率信息,包括:
根据所述目标电路的当前逻辑单元的单元模型,确定所述当前逻辑单元中,当前输出节点的各传播状态对应的所述当前逻辑单元的输入节点的传播状态,得到当前对应关系;其中,所述当前逻辑单元的输入节点,为所述当前逻辑单元的上一级逻辑单元的输出节点;所述当前输出节点,为所述当前逻辑单元的下一逻辑单元的输入节点;
根据所述当前逻辑单元的当前对应关系,和所述当前逻辑单元的输入节点的传播状态集,计算所述当前输出节点的传播状态概率,得到所述当前输出节点的翻转概率信息。
在其中的一些实施例中,在基于所述目标电路中不同节点之间的信号相关性,从所述目标电路中筛选至少一个目标节点前,所述方法还包括:
针对所述目标电路中的每一节点,判断各个节点的上级节点是否存在信号相关性,将上级节点存在信号相关性的节点确定为所述目标节点。
在其中的一些实施例中,所述方法还包括:
在所述目标电路的一组节点中的上游节点和下游节点均为目标节点的情况下,先修正所述一组节点中作为上游节点的所述目标节点的翻转概率信息。
在其中的一些实施例中,所述基于所述目标电路中不同节点之间的信号相关性,从所述目标电路的所有节点中筛选至少一个目标节点,包括:
计算所述目标电路中各个节点的上级节点之间的信号相关系数,得到上级相关系数;
将所述上级相关系数高于预设相关性阈值的节点识别为所述目标节点。
第二个方面,在本实施例中提供了一种电路的翻转概率信息计算装置,包括:求解模块、筛选模块以及修正模块;其中:
所述求解模块,用于获取目标电路中节点的翻转概率信息;
所述筛选模块,用于基于所述目标电路中不同节点之间的信号相关性,从所述目标电路中筛选至少一个目标节点;
所述修正模块,用于根据所述目标节点和所述目标节点的上游节点间的逻辑关系,修正所述至少一个目标节点的翻转概率信息。
第三个方面,在本实施例中提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述电路的翻转概率信息计算方法。
第四个方面,在本实施例中提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一个方面所述的电路的翻转概率信息计算方法。
与相关技术相比,在本实施例中提供的电路的翻转概率信息计算方法、装置和计算机设备,首先获取目标电路中节点的翻转概率信息;再基于目标电路中不同节点之间的信号相关性,从目标电路中筛选至少一个目标节点;最后根据目标节点和目标节点的上游节点间的逻辑关系,修正至少一个目标节点的翻转概率信息。其能够通过实现快速的翻转概率信息的计算,进而再基于相关性对节点的筛选,实现对翻转概率信息的修正,从而能够实现对翻转概率信息的准确计算,进而提高了门级网表的翻转概率信息的计算准确度。
本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是本实施例的电路的翻转概率信息计算方法的终端的硬件结构框图;
图2是本实施例的电路的翻转概率信息计算方法的流程图;
图3是计数器中一种逻辑单元的结构示意图;
图4是本实施例的一种二分决策树的结构示意图;
图5是本优选实施例的电路的翻转概率信息计算方法的流程图;
图6是本实施例的电路的翻转概率信息计算装置的结构框图。
具体实施方式
为更清楚地理解本申请的目的、技术方案和优点,下面结合附图和实施例,对本申请进行了描述和说明。
除另作定义外,本申请所涉及的技术术语或者科学术语应具有本申请所属技术领域具备一般技能的人所理解的一般含义。在本申请中的“一”、“一个”、“一种”、“该”、“这些”等类似的词并不表示数量上的限制,它们可以是单数或者复数。在本申请中所涉及的术语“包括”、“包含”、“具有”及其任何变体,其目的是涵盖不排他的包含;例如,包含一系列步骤或模块(单元)的过程、方法和系统、产品或设备并未限定于列出的步骤或模块(单元),而可包括未列出的步骤或模块(单元),或者可包括这些过程、方法、产品或设备固有的其他步骤或模块(单元)。在本申请中所涉及的“连接”、“相连”、“耦接”等类似的词语并不限定于物理的或机械连接,而可以包括电气连接,无论是直接连接还是间接连接。在本申请中所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。通常情况下,字符“/”表示前后关联的对象是一种“或”的关系。在本申请中所涉及的术语“第一”、“第二”、“第三”等,只是对相似对象进行区分,并不代表针对对象的特定排序。
在本实施例中提供的方法实施例可以在终端、计算机或者类似的运算装置中执行。比如在终端上运行,图1是本实施例的电路的翻转概率信息计算方法的终端的硬件结构框图。如图1所示,终端可以包括一个或多个(图1中仅示出一个)处理器102和用于存储数据的存储器104,其中,处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置。上述终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述终端的结构造成限制。例如,终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示出的不同配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如在本实施例中的电路的翻转概率信息计算方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
在本实施例中提供了一种电路的翻转概率信息计算方法,图2是本实施例的电路的翻转概率信息计算方法的流程图,如图2所示,该流程包括如下步骤:
步骤S210,获取目标电路中节点的翻转概率信息。
其中,目标电路可以为在集成电路设计过程中需要利用设计数据进行功耗分析,因而需要进行各个节点的翻转概率信息求解的电路结构,可以是集成电路内部的各个电路结构。该目标电路中包含各个逻辑单元。其中逻辑单元,指的是主要基于门电路构成的,输入信号与输出信号之间产生逻辑关系的电路单元,例如与门电路、非门电路、或门电路以及与非门电路等。翻转概率信息为目标电路中节点的翻转率和静态概率的总称。
目标电路中的各个节点,即目标电路中各个逻辑单元的输入节点和输出节点。其中,基于目标电路中信号传输方向,可以将目标电路中的各个节点作为具有相对性的上游节点、下游节点、上一级节点以及下一级节点。其中,在两个节点中,信号从一个节点传输至另一个节点,例如从输入节点传输至输出节点,那么传输出信号的节点为上一级节点,接收到信号的节点可以为下一级节点。例如输入节点为输出节点的上一级节点,输出节点为输入节点的下一级节点。另外,基于信号传输方向,位于某个节点之前的所有节点可以视为该节点的上游节点,相对地,位于某个节点之后的所有节点可以视为该节点的下游节点。
具体可以基于预先获取的目标电路设计信息,例如网表信息、波形信息以及库单元信息等,确定目标电路中各个节点的翻转概率信息。其中,各个逻辑单元的单元模型,表征各个逻辑单元中输入节点与输出节点之间的信号计算关系,也即逻辑单元中输入节点与输出节点之间的逻辑关系。单元模型是逻辑单元的数学抽象,该单元模型具体可以基于预先获取的目标电路的网表信息、波形信息以及库单元信息等设计信息确定。
在本实施例中,在为目标电路中各个逻辑单元建立对应的单元模型后,可以仅基于各个逻辑单元的输入节点的翻转概率信息,也即输入节点的静态概率和翻转率,结合输入节点与输出节点之间的逻辑关系,求解得到相应逻辑单元输出节点的翻转概率信息也即输出节点的静态概率和翻转率。其中,静态概率是指节点的引脚为高电平的概率。翻转率是指节点的引脚每秒的电平翻转次数。具体地,可以基于目标电路中各个逻辑单元之间的逻辑关系,由接收原始输入信号的逻辑单元开始,逐级求解出各个逻辑单元的各个节点的翻转概率信息。其中,逐级求解过程中,在对下级节点进行翻转概率信息求解时,无需考虑其上级节点之间的相关性,因而能实现求解效率较高的逐级传播。即逐级求解时针对每一节点仅仅根据该节点与该节点的上一级节点的信号关系求解该节点的翻转概率信息。
具体地,在进行逐级传播之前,可以获取目标电路设计信息,例如网表信息、波形信息以及库单元信息等。其中网表信息能够表征目标电路的电路结构;波形信息能够表征原始输入信号的静态概率和翻转率;库单元信息可以提供目标电路中每个逻辑单元内部的逻辑,得到每个逻辑单元中输出引脚关于输入引脚的逻辑表达式,即输入节点与输出节点之间的逻辑关系。示例性地,网表信息可以由门级硬件描述语言verilog文件或设计交换格式(design exchange format,简称为DEF)文件提供;波形信息可以由逻辑电路各线网详细翻转信息(value change dump,简称为VCD)文件、逻辑电路翻转汇总信息(switchingactivity interchange format,简称为SAIF)文件、或者逻辑电路各线网详细翻转信息(fastsignal data base,简称为FSDB)文件提供;库单元信息可以由标准单元库liberty文件提供。
由于逐级传播中,待计算的节点的传播状态概率,可以根据其上一级节点的传播状态概率计算得出。因此,逐级传播可以基于目标电路中的各个单元模型,从输入的原始信号开始,逐级计算出各个节点的传播状态概率,进而完成逐级传播。因此,在进行逐级传播前,可以将节点的静态概率和翻转率转换为传播状态概率,逐级传播的过程体现为目标电路中各级逻辑单元中各个节点的传播状态概率的计算的过程,最后再基于传播状态概率与静态概率和翻转率的关系,确定出各级节点的静态概率和翻转率。
其中,传播状态概率用当前时钟周期状态和下一时钟周期状态表示,一般可以包括P(00)、P(01)、P(10)以及P(11)。其中,P(00)表示节点当前时钟周期状态为0,下一时钟周期状态也为0的概率;P(01)表示节点当前时钟周期状态为0,下一时钟周期状态为1的概率;P(10)表示节点当前时钟周期状态为1,下一时钟周期状态为0的概率;P(11)表示节点当前时钟周期状态为1,下一时钟周期状态也为1的概率。根据某一逻辑单元的单元模型,获取逻辑单元的每一节点的第一时钟状态以及与第一时钟状态关联的下一时钟状态。
假设节点的翻转率TR相对于时钟频率frequency的相对值为tr=TR/frequency,则由静态概率SP和翻转率TR计算传播状态概率的过程可以通过下式表示:
P(00)=(1-SP)–0.5×tr (1)
P(01)=0.5×tr (2)
P(10)=0.5×tr (3)
P(11)=SP–0.5×tr (4)
由传播状态概率计算静态概率SP和翻转率TR的过程可以通过下式表示:
SP=P(10)+P(11) (5)
tr=2×P(10) (6)
TR=tr×frequency (7)
假设某个节点的状态由n个其他节点的状态来确定,则对于该节点的状态i,都有对于这n个节点的一个状态集P(f=i),也即:
(8)
其中,P(f=i)表示目标节点f的信号状态为i的概率,xk表示目标节点f的第k个输入节点,式(8)表示目标节点f的信号状态为i时,其各个上一级节点状态为ik时的概率之积再求和,其中在上一级节点状态为ik时,目标节点f的信号状态为i。i表示节点的状态,一般为0和1,表示所有使目标节点f的信号状态为i的,目标节点f的上一级节点的信号状态概率集合。
例如,若目标节点f的上一级节点为x1、x2,且节点x1、节点x2、节点f的信号状态如下表所示:
表一
也即,当节点x1和节点x2的信号状态均为0时,或者节点x1和节点x2的信号状态均为1时,目标节点f的信号状态为0,则基于式(8),P(f=0)=P(x1=0)×P(x2=0)+P(x1=1)×P(x2=1)。其中,x1=0,x2=0是上级节点x1、x2的一种信号状态;x1=1,x2=1也是一种信号状态,00和11组成一个状态集,这个状态集中的每一个状态都能导致f=0。
对于上述节点的每个传播状态,都有对应这n个节点的一个传播状态集P(fi→j),也即:
(9)
其中,表示目标节点f由信号状态i变为信号状态j的概率。为节点xk由信号状态ik变为信号状态jk。由此,可以得到目标电路中所有待传播节点的状态集和传播状态集。
接下来以建立目标电路中各个逻辑单元的单元模型用于逐级传播为例进行说明。例如,对于一个计数器,通过读取器网表文件能够得到其电路结构。图3为计数器中一种逻辑单元的结构示意图。如图3所示,对于计数器中的一个逻辑单元U8,输出是一个节点,用U8/ZN表示,其上级节点是U8的输入U8/A1和U8/A2。在逐级传播时,对于逻辑单元U8,不需要考虑U8/A1和U8/A2之间的相关性,用概率独立的方式根据U8/A1的静态概率和翻转率,以及U8/A2的静态概率和翻转率,能够计算出U8/ZN的静态概率和翻转率。因而,U8的输出节点U8/ZN可以表示成关于U8/A1和U8/A2的逻辑表达式,该逻辑表达式从库文件中获取。由此,可以构建出逻辑单元U8的单元模型。
对于一个电路,包括至少一个上级节点和该上级节点的下级节点,即,对于进行一级传播过程,上级节点为当前逻辑单元的输入节点,该上级节点的下级节点为当前逻辑单元的输出节点。可以根据上级节点的静态概率和翻转率求解下级节点的静态概率和翻转率。若获得节点ZN的传播状态集,则根据节点ZN的传播状态集求传播状态概率以及状态概率。0、1表示两种信号状态,一个节点的状态集由0、1组成。当目标节点的上级节点有多个时,目标节点的状态集就需要排列组合目标节点的所有上游节点的状态,将其进行全排列。例如节点A1、节点A2为上游节点,目标节点ZN为下游节点。例如节点A1、节点A2以及目标节点ZN构成与门电路时,该三个节点的信号状态如下表所示:
表二
表三
基于上表,若需要求ZN的状态为01的概率,则首先从ZN的传播状态集中,确认传播状态为01的概率,利用式(9)计算的传播状态概率P(ZN=01),再根据状态表,在Tn-1时刻ZN=0,在Tn时刻ZN=1。在Tn-1时刻ZN=0时,节点A1和节点A2的信号状态的组合为00、01、10,在Tn时刻ZN=1时,节点A1和节点A2的信号状态的组合为11、11、11。
因此,对于ZN=01的传播状态,对应A1,A2的传播状态集为(01,01)(01,11)(11,01);由此,可以得出P(ZN=01)=P(A1=01,A2=01)+P(A1=01,A2=11)+P(A1=11,A2=01)=P(A1=01)×P(A2=01)+P(A1=01)×P(A2=11)+P(A1=11)×P(A2=01),也即式(9)。通过式(1)至(4)可以求得节点A1和节点A2的传播状态概率,进而获得节点ZN的传播状态概率。另外,根据式(8)可以求得节点ZN的状态概率,即ZN=0或1的概率。
也即,在已知上级节点的静态概率和翻转率的情况下,可以通过式(1)至(4)计算求得上级节点的传播状态概率。之后,再根据下级节点的传播状态以及上下级节点的逻辑关系确定各下级节点的各传播状态对应的上级节点的传播状态;之后,再基于式(9),根据上级节点的传播状态集,求下级节点各传播状态的传播状态概率;如此,再基于式(5)至(7),根据下级节点的传播状态概率计算下级节点的静态概率SP和翻转率TR。与此同时,也可以根据式(8)求出下级节点的状态概率。
例如,节点ZN为0的状态集P(ZN=0)=P(A1=0,A2=0)+P(A1=0,A2=1)+P(A1=1,A2=0)=P(A1=0)×P(A2=0)+P(A1=0)×P(A2=1)+P(A1=1)×P(A2=0)。
当目标电路的逻辑关系比较复杂时,可以利用逻辑关系建立二分决策树,用二分决策树确定各节点状态的真值表,即,获得下级节点的某个状态对应的上级节点的状态,从而也可以得到下级节点的某个传播状态集对应的上级节点的传播状态集。
在单元模型建立后,将可以开始进行逐级传播。其中,先基于原始输入信号的静态概率和翻转率,计算出目标电路中原始输入端的输入节点的传播状态概率,然后从原始输入信号开始,通过建好的单元模型,求解下一级节点的传播状态概率,通过逐级完成各个单元模型中上下级节点的传播状态概率的计算,实现逐级迭代计算,得到目标电路中所有节点的传播状态概率。最后,根据所有节点的传播状态概率计算静态概率和翻转率,从而完成一次逐级传播。
步骤S220,基于目标电路中不同节点之间的信号相关性,从目标电路中筛选至少一个目标节点。
其中,节点之间的具有信号相关性是指,两个节点各自的信号状态,同时受两个节点以外的另一个节点的信号状态的影响,也即,两个节点的信号状态互相影响。由于逐级传播过程中,每个待计算节点的传播状态概率仅根据上级节点的传播状态概率计算得出,不考虑上一级节点间的信号相关性,因此传播速度较快,但传播结果存在较大误差。在一个集成电路设计中,往往存在的信号汇聚(converge)现象,也即,电路中同一个节点的信号的逻辑电平驱动了若干个逻辑单元,而这几个逻辑单元的输出又送到了同一个逻辑单元的不同输入上,导致这个逻辑单元的不同输入信号间存在相关性,不能用概率独立的方法直接从逻辑单元输入的传播状态概率计算得到逻辑单元输出的传播状态概率。因此,在经过前面的逐级传播后,部分节点的传播状态概率需要进行修正。
因此在完成步骤S210的逐级传播后,再基于节点间的信号相关性,从目标电路中筛选出部分需要进行翻转概率信息修正的节点。具体地,可以先完成目标电路中不同节点的信号相关性的评估。具体可以基于线性相关系数的求解,计算每个节点与该节点的上级节点之间的线性相关系数,从而确定每个节点与该节点的上级节点之间的相关性大小。若存在一个节点,其上级节点之间的线性相关系数大于预设的相关性阈值,则将该节点作为筛选出的目标节点。由此,可以通过分析目标电路中各节点的上级节点之间的信号相关性,筛选出若干个目标节点。具体地,可以基于下式计算线性相关系数:
(10)
其中,r xy 为变量x和变量y的线性相关系数,Cov(x,y)为变量x和变量y的协方差,V(x)为变量x的方差,V(y)为变量y的方差。在计算出上级节点间的线性相关系数后,线性相关系数的取值范围为-1~1,当该系数大于0,则表示对应的两个上级节点正相关,当该系数小于0,则表示对应的两个上级节点负相关,当该系数越趋向于0,则表示该两个上级节点的相关性越弱。由此,可以设置符合实际应用需求的相关性阈值,通过遍历目标电路中各个节点,计算其上级节点间的线性相关系数,来筛选出上述目标节点。此外,还可以基于其他相关系数计算方式来确定节点间的信号相关性。例如可以利用卡方检验、计算信息增益等方式来确定,本实施例对此不作具体限定。
其中,上述相关性阈值可以基于实际应用场景中对于运算效率的需求进行适应性设置。当需要较快得到翻转概率信息的修正结果,则可以将相关性阈值的绝对值调高,若需要得到更为精确的翻转概率信息的修正结果,则可以将相关性阈值的绝对值调低。基于此,本实施例能够在可接受的时间内得到较高精度的翻转概率信息的修正结果。
步骤S230,根据目标节点和目标节点的上游节点间的逻辑关系,修正至少一个目标节点的翻转概率信息。
其中,上述逻辑关系包括节点之间的信号相关性。在筛选得到目标节点后,可以基于目标节点的上级节点的信号相关性,对步骤S210通过逐级传播求解得到的目标节点的翻转概率信息进行修正。具体地,基于目标节点的上级节点的相关性,和该目标节点的若干上游节点间的逻辑关系,建立该目标节点的逻辑表达式,并将逻辑表达式中存在相关性的上级节点,替换为更上级节点的表达式,若仍存在相关性,则继续迭代替换,直至逻辑表达式中每个节点间不存在相关性,或者该逻辑表达式节点的个数达到预先设置的上限值,从而得到目标节点最终的逻辑表达式,进而基于该逻辑表达式求解目标节点在考虑上级节点的相关性情况下的翻转概率信息,从而对步骤S210求解得到翻转概率信息进行修正。示例性地,在实际求解过程中,可以借助于二分决策树或是其他求解模型,将逻辑表达式替换为二分决策树或其他求解模型等修正模型,最终利用修正模型获得上游节点与目标节点的传播状态集,以及利用传播状态集以及上游节点的翻转概率信息计算得到修正后的目标节点翻转概率信息。
由此,在完成步骤S210的逐级传播后,本实施例从目标电路中筛选出上级节点间的相关性高于预设相关性阈值的节点作为目标节点,再基于相关性对目标节点进行翻转概率信息的修正,从而提高了翻转概率信息计算的精度。
在相关技术中,需要为目标电路中的每个节点建立二分决策树,通过迭代替换分解每个节点的逻辑表达式直至表达式中只剩原始输入节点。通过二分决策树获取使待求解节点取1的原始输入状态集和使待求解节点去0的原始输入状态集,以计算该待求解节点的静态概率和翻转率。二分决策树需要从当前节点往前追溯,追溯过程经过的逻辑运算决定了二分决策树的结构,最终计算复杂度与追溯到的输入数量相关,二分决策树的大小与原始输入信号的数量n有关,在不进行优化的情况下,二分决策树的节点树为2的n次幂。
与此不同的是,本实施例将翻转概率传播过程分为两步,第一步先进行一次效率较高的、不考虑上级节点相关性的逐级传播,从而较为快速地得到所有节点的翻转概率信息;第二步再检查目标电路中上级节点间相关性较强的目标节点,基于相关性为这些目标节点进行精度更高的翻转概率传播,以提高翻转概率传播的精度。由此,相比于相关技术,本实施例能够提高翻转概率信息求解的效率和计算结果的准确度。
上述步骤S210至S230,获取目标电路中各个节点的翻转概率信息;基于目标电路中不同节点之间的信号相关性,从目标电路的所有节点中筛选至少一个目标节点;根据目标节点和目标节点的上游节点间的逻辑关系,修正至少一个目标节点的翻转概率信息。其能够实现快速的翻转概率信息的计算,进而再基于相关性对节点的筛选,实现对翻转概率信息的修正,从而能够以较高效率实现对翻转概率信息的准确计算。
在一个实施例中,上述电路的翻转概率信息计算方法还可以包括:
根据修正后的目标节点的翻转概率信息,更新目标节点的下游节点的翻转概率信息。
其中,在得到修正后的目标节点的翻转概率信息之后,再基于步骤S210的逐级传播形式,更新目标节点的下游节点的翻转概率信息。此外,若目标节点以及目标节点的下游节点在更新前后的翻转概率信息的差值大于预设相差阈值,则继续基于步骤S220,对所有目标节点的翻转概率信息进行迭代修正,并再基于修正后的翻转概率信息更新下游节点的翻转概率信息,直至下游节点在当前迭代次数中更新前后的翻转概率信息的差值小于预设相差阈值,则结束传播过程。由此,可以得到目标电路中所有节点的翻转概率信息。
在一个实施例中,基于上述步骤S230,根据目标节点和目标节点的上游节点间的逻辑关系,修正至少一个目标节点的翻转概率信息,具体可以包括:
根据目标节点的上级节点的信号相关性确定待修正的子电路,根据子电路中的目标节点的上游节点间的逻辑关系,为目标节点建立修正模型;至少根据该修正模型,修正至少一个目标节点的翻转概率信息。
其中,根据目标节点的上级节点的相关性将基于上级节点组成的目标节点的表达式中,相关性的部分替换为更为上级节点的表达式,若仍存在相关性,则继续往前追溯迭代替换,以此确定目标电路中待修正的子电路部分,直至该子电路达到预设的终止条件,将最后得到子电路中目标节点的上游节点间的逻辑关系转换为修正模型。其中,上述修正模型可以用二分决策树表示,此外还可以为其他任意一种适用于电路节点的建模方法得到的模型。另外,修正模型还可以基于电路节点的仿真统计的方法构建得到。目标节点的上游节点间的逻辑关系,可以构成目标节点的逻辑表达式。
例如,若目标节点的逻辑表达式为:
(11)
其中,x1、x2、x3均为目标节点的上游节点。图4为本实施例的一种二分决策树的结构示意图。可以将上述逻辑表达式转换为如图4所示的二分决策树。如图4所示,节点x1、x2、x3均包括0和1两种状态,最终构成目标节点在图4中方框中状态为0和状态为1的路径。为目标节点建立二分决策树后,所有最终到达0的路径组成能使表达式为0的静态状态集,所有最终到达1的路径组成能使表达式为1的静态状态集,传播状态集由静态状态集两两组合获得。在得到目标节点的传播状态集后,基于式(9)可以计算出目标节点的传播状态概率。
基于图4,节点x1、x2、x3均包括0和1两种状态,目标节点的静态状态包括P(0)和P(1)。其中:
(12)
(13)
其中,P(0)表示目标节点状态为1的概率,P(1)表示目标节点状态为0的概率。P(011)表示x1状态为1、x2状态为1、x3状态为1的概率,式(12)、(13)中的其他部分以此类推。
目标节点的传播状态包括P(00)、P(01)、P(10)、以及P(11)。其中,以P(00)为例,其可以表示为:
(14)
其中,P(00×11×11)表示x1当前时钟周期状态为0,下一时钟周期状态也为0,且x2当前时钟周期状态为1,下一时钟周期状态也为1,且x3当前时钟周期状态为1,下一时钟周期状态也为1。式(14)中的其他部分以此类推。
因此,由于图4中x1、x2、x3的静态概率和传播状态概率已知,从而可以计算出目标节点的传播状态概率,进而再计算出目标节点的静态概率和翻转率,由此得到目标节点修正后的翻转概率信息。
进一步地,在一个实施例中,根据目标节点的上级节点的信号相关性确定待修正的子电路,具体可以包括:
根据目标节点的上级节点的信号相关性,从目标节点向目标节点的上游节点进行追溯,根据终止条件确定追溯终止节点;根据追溯终止节点与目标节点之间的电路确定待修正的子电路;其中,该终止条件为:子电路达到预设长度,和/或,追溯终止节点间不存在信号相关性。
其中,从目标节点往前逐级追溯上游节点时,若追溯到的上游节点间已无相关性,或者子电路达到预设长度,则最后追溯到的上游节点作为追溯终止节点。例如,用以表示子电路中各节点的逻辑关系的二分决策树中的节点树的数量达到预设数量,则停止追溯,基于当前的二分决策树求解目标节点的翻转概率信息。其中,子电路的长度可以根据实际应用场景对运算效率的需求进行设定。在一实施例中,追溯终止节点之间不具有信号相关性。由此,本实施例能够在实际应用场景中,在可接受的时间内得到精度最高的翻转概率信息。
在一个实施例中,根据子电路中的目标节点的上游节点间的逻辑关系,为目标节点建立修正模型,可以包括:
利用待修正的子电路中的追溯终止节点为目标节点建立修正模型,其中,待修正的子电路中最上游的节点为追溯终止节点,修正模型用于表征追溯终止节点与目标节点的逻辑关系。
也即,当从目标节点向前逐级追溯到追溯终止节点后,则可以基于追溯终止节点与目标节点的逻辑关系,为目标节点建立修正模型,进而基于该修正模型对目标节点进行修正。
在一个实施例中,至少根据修正模型,修正至少一个目标节点的翻转概率信息,可以包括:
利用追溯终止节点的传播状态集以及修正模型修正至少一个目标节点的翻转概率信息。
也即,本实施例可以根据追溯终止节点与目标节点之间的逻辑关系,以及追溯终止节点本身的传播状态集,确定目标节点的各传播状态对应的追溯终止节点的传播状态,进而求解目标节点各传播状态的传播状态概率。最后,基于式(5)至(7),根据目标节点的传播状态概率计算目标节点的静态概率SP和翻转率TR,从而得到目标节点的翻转概率信息。
另外地,在一个实施例中,上述电路的翻转概率信息计算方法还可以包括:
将各目标节点在更新前的翻转概率信息,以及各目标节点的下游节点在更新前的翻转概率信息均识别为第一翻转概率信息;将各目标节点在更新后的翻转概率信息,以及各目标节点的下游节点在更新后的翻转概率信息均识别为第二翻转概率信息;将第一翻转概率信息和第二翻转概率信息的差值大于预设相差阈值的任意目标节点,以及第一翻转概率信息和第二翻转概率信息的差值大于预设相差阈值的任意下游节点,均识别为新的目标节点;继续基于新的目标节点和新的目标节点的上游节点间的逻辑关系,修正新的目标节点的翻转概率信息。
也即,当待修正的子电路中的各个节点,以及目标节点的下游节点在更新前后的翻转概率信息的差值较大,则继续基于相关性对差值较大的目标节点进行迭代修正,直至修正后更新的子电路的各个节点与子电路更新前的各个节点的翻转概率信息的差值、下游节点更新前后的翻转概率信息的差值小于预设相差阈值。其中,由于是对目标电路中筛选出的部分节点进行修正,其中部分目标节点基于相关性修正时,由于其逻辑表达式中所有节点已无相关性或者表达式节点树达到预设数量阈值,因此目标节点的表达式中可能存在非原始节点,而这些非原始节点可能在其他部分目标节点被更新的下游节点。因此通过逐级传播和分析修正的迭代,可以提高最终翻转概率信息的精度。
另外地,若第一翻转概率信息和第二翻转概率信息的差值小于预设相差阈值,则得到目标电路中各节点最终的翻转概率信息。此外,在逐级传播中,在建好单元模型之后,逐级传播过程只需要进行查表,因此逐级传播过程较为快速,且在之后迭代的逐级传播中均可以复用建好的单元模型,后续逐级传播的效率较高。在基于相关性的分析修正过程中,单元模型、电路节点的相关性信息以及二分决策树等数据均可以复用,因此之后迭代修正的效率也较高。由此,迭代更新仅用较小的运算代价,能够实现对翻转概率信息的进一步提升。
在一个实施例中,基于上述步骤S210,获取目标电路中各个节点的翻转概率信息,包括:
获取目标电路中关键节点的翻转概率信息,其中,关键节点包括原始输入节点和/或寄存器节点;根据关键节点的翻转概率信息从关键节点逐级传播获得目标电路中各个节点的翻转概率信息。
其中,首先获取目标电路中,原始输入节点或者寄存器节点的翻转概率信息,原始输入节点或寄存器节点的静态概率和翻转率是已知的,无需求解。之后,再基于关键节点的翻转概率信息,从该关键节点开始,逐级对该目标电路的各个节点的翻转概率信息进行求解,从而实现逐级传播。
具体地,在一个实施例中,根据关键节点的翻转概率信息从关键节点逐级传播获得目标电路中各个节点的翻转概率信息,包括:
根据关键节点的翻转概率信息建立目标电路中各个关键节点的传播状态集;根据关键节点的传播状态集,以及目标电路中各个逻辑单元的单元模型,逐级求解目标电路中各个节点的翻转概率信息。
其中,可以根据网表信息、波形信息以及库单元信息,建立目标电路中各个关键节点的传播状态集。在得到目标电路中各个关键节点的传播状态集后,可以用于后续的各个逻辑单元的输入节点和输出节点的翻转概率信息的逐级求解提供数据。具体地,可以基于上述式(1)至(4),计算得到上级节点的传播状态概率。之后,再根据下级节点的传播状态以及上下级节点间的逻辑关系确定各下级节点的各传播状态对应的上级节点的传播状态。之后,基于式(9),根据上级节点的传播状态集,求解下级节点各传播状态的传播状态概率。最后,基于式(5)至(7),根据下级节点的传播状态概率计算下级节点的静态概率SP和翻转率TR,从而逐级求解得到目标电路中各个节点的翻转概率信息。
此外,还可以首先基于原始输入信号的静态概率和翻转率计算出传播状态概率,再从原始输入信号开始,基于单元模型逐步计算得到各个节点的传播状态概率,进而得到电路中所有节点的传播状态概率,最后再根据所有节点的传播状态概率计算静态概率和翻转率。通过建立各个逻辑单元的单元模型,再基于原始输入信号的翻转概率信息,逐级求解各个逻辑点云的输入节点和输出节点的翻转概率信息,从而能够实现较为快速的翻转概率传播。
进一步地,在一个实施例中,根据关键节点的传播状态集,以及目标电路中各个逻辑单元的单元模型,逐级求解目标电路中各个节点的翻转概率信息,包括:
根据目标电路的当前逻辑单元的单元模型,确定该当前逻辑单元中,当前输出节点的各传播状态对应的当前逻辑单元的输入节点的传播状态,得到当前对应关系;其中,当前逻辑单元的输入节点,为当前逻辑单元的上一级逻辑单元的输出节点;当前输出节点,为当前逻辑单元的下一逻辑单元的输入节点;根据当前逻辑单元的当前对应关系,和当前逻辑单元的输入节点的传播状态集,计算当前输出节点的传播状态概率,得到当前输出节点的翻转概率信息;其中,当前逻辑单元的输入节点为关键节点,或者当前逻辑单元的输入节点的传播状态集基于关键节点的传播状态集确定,或者当前逻辑单元的输入节点的传播状态集基于关键节点的传播状态集逐级传播至当前逻辑单元确定。
其中,本实施例在逐级对目标电路中各个逻辑单元的节点进行翻转概率信息求解时,将当前求解的逻辑单元作为当前逻辑单元。该当前逻辑单元的输入节点为已求解出翻转概率信息的节点,该当前逻辑单元的输出节点,也即当前输出节点为需要进行翻转概率信息求解的节点。
首先根据当前逻辑单元的单元模型,获取当前输出节点的各个传播状态,与当前逻辑单元的输入节点的传播状态之间的当前对应关系。也即,对于要实现当前输出节点的各个传播状态所需的当前逻辑单元的输入节点的对应传播状态。进而,再基于上述当前对应关系,基于当前逻辑单元的输入节点的传播状态集,基于式(9)计算出当前输出节点的传播状态概率,进而根据式(5)至(7)由当前传播状态概率确定当前输出节点的静态概率和翻转率。由此,可以实现对当前逻辑单元中输出节点的翻转概率信息的求解,从而完成一级传播。之后,再将当前逻辑单元的下一级逻辑单元作为新的当前逻辑单元,将当前逻辑单元的下一级逻辑单元作为新的当前逻辑单元,将新的当前逻辑单元的输出节点作为新的当前输出节点,求解新的当前逻辑单元中节点的翻转概率信息,重复上述过程,求解下一级逻辑单元中输出节点的翻转概率信息。
另外地,在一个实施例中,在基于目标电路中不同节点之间的信号相关性,从目标电路中筛选至少一个目标节点前,上述电路的翻转概率信息计算方法还可以包括:
针对目标电路中的每一节点,判断各个节点的上级节点是否存在信号相关性,将上级节点存在信号相关性的节点确定为目标节点。
本实施例依次对目标电路的每一节点进行上级节点的相关性的检测,若存在一个节点的上级节点间存在信号相关性,则将该节点确定为目标节点。基于此,本实施例能够基于信号相关性实现对目标节点的筛选,从而提高后续的数据处理效率。
在一个实施例中,上述电路的翻转概率信息计算方法,还可以包括:
在目标电路的一组节点中的上游节点和下游节点均为目标节点的情况下,先修正该一组节点中作为上游节点的目标节点的翻转概率信息。也即,若目标电路中的某一部分结构(一组节点)中,上下游节点均为筛选出的目标节点,则根据信号传输的方向,先修正其中作为上游节点的目标节点的翻转概率信息,再基于修正后的上游节点的翻转概率信息,修正作为下游节点的目标节点的翻转概率信息,以此提高修正的准确度。
在一个实施例中,基于上述步骤S220,基于目标电路中不同节点之间的信号相关性,从目标电路中筛选至少一个目标节点,可以包括:
计算目标电路中各个节点的上级节点之间的信号相关系数,得到上级相关系数;将上级相关系数高于预设相关性阈值的节点识别为目标节点。
可以基于式(10)计算上级节点之间的信号相关系数,通过计算上级节点的相关系数的方式,从目标电路中筛选目标节点,能够提高翻转概率信息计算的准确度和效率。
下面通过优选实施例对本实施例进行描述和说明。
图5是本优选实施例的电路的翻转概率信息计算方法的流程图。如图5所示,该电路的翻转概率信息计算方法包括如下步骤:
步骤S501,获取目标电路的网表信息、波形信息以及库单元信息;
步骤S502,根据上述网表信息、波形信息以及库单元信息,建立目标电路中各逻辑单元的单元模型,并基于关键节点的翻转概率信息和各逻辑单元的单元模型,逐级求解目标电路所有节点的翻转概率信息;该关键节点包括原始输入节点和/或寄存器节点;
步骤S503,基于目标电路中不同节点的信号相关性,从目标电路的所有节点中筛选出上级节点间的信号相关性高于预设相关性阈值的节点作为目标节点;
步骤S504,根据目标节点的上级节点的相关性,和目标节点的上游节点间的逻辑关系,修正目标节点的翻转概率信息;
步骤S505,根据修正后的目标节点的翻转概率信息,更新目标节点的下游节点的翻转概率信息;
步骤S506,判断下游节点更新前后的翻转概率信息的差值是否大于预设相差阈值,若是,则执行步骤S507;否则执行S508;
步骤S507,对目标节点进行迭代修正,直至根据修正后的目标节点的翻转概率信息,更新得到的下游节点的翻转概率信息与更新前的翻转概率信息的差值小于预设相差阈值,则停止迭代修正,并结束流程;
步骤S508,停止迭代修正,结束流程。
步骤S501至步骤S508,通过针对相关性设置相关性阈值,能够实现翻转概率精度与求解效率的平衡;通过逐级传播和分析修正实现目标电路中所有节点的翻转概率信息的求解,能够提高求解效率;基于逐级传播和分析修正的迭代,能够提高翻转概率信息的精度。
在本实施例中还提供了一种电路的翻转概率信息计算装置,该电路的翻转概率信息计算装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。以下所使用的术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管在以下实施例中所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图6是本实施例的电路的翻转概率信息计算装置60的结构框图,如图6所示,该电路的翻转概率信息计算装置60包括:求解模块62、筛选模块64以及修正模块66;其中:
求解模块62,用于获取目标电路中节点的翻转概率信息;筛选模块64,用于基于目标电路中不同节点之间的信号相关性,从目标电路中筛选至少一个目标节点;修正模块66,用于根据目标节点和目标节点的上游节点间的逻辑关系,修正至少一个目标节点的翻转概率信息。
需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。
需要说明的是,在本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,在本实施例中不再赘述。
在本实施例中还提供了一种计算机设备,该计算机设备可以是终端。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种电路的翻转概率信息计算方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
此外,结合上述实施例中提供的电路的翻转概率信息计算方法,在本实施例中还可以提供一种存储介质来实现。该存储介质上存储有计算机程序;该计算机程序被处理器执行时实现上述实施例中的任意一种电路的翻转概率信息计算方法。
应该明白的是,这里描述的具体实施例只是用来解释这个应用,而不是用来对它进行限定。根据本申请提供的实施例,本领域普通技术人员在不进行创造性劳动的情况下得到的所有其它实施例,均属本申请保护范围。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
显然,附图只是本申请的一些例子或实施例,对本领域的普通技术人员来说,也可以根据这些附图将本申请适用于其他类似情况,但无需付出创造性劳动。另外,可以理解的是,尽管在此开发过程中所做的工作可能是复杂和漫长的,但是,对于本领域的普通技术人员来说,根据本申请披露的技术内容进行的某些设计、制造或生产等更改仅是常规的技术手段,不应被视为本申请公开的内容不足。
“实施例”一词在本申请中指的是结合实施例描述的具体特征、结构或特性可以包括在本申请的至少一个实施例中。该短语出现在说明书中的各个位置并不一定意味着相同的实施例,也不意味着与其它实施例相互排斥而具有独立性或可供选择。本领域的普通技术人员能够清楚或隐含地理解的是,本申请中描述的实施例在没有冲突的情况下,可以与其它实施例结合。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对专利保护范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (14)
1.一种电路的翻转概率信息计算方法,其特征在于,包括:
逐级求解获取目标电路中节点的不考虑相关性的翻转概率信息;
计算所述目标电路中各个节点的上级节点之间的信号相关系数,得到上级相关系数;
将所述上级相关系数高于预设相关性阈值的节点识别为目标节点;
根据所述目标节点和所述目标节点的上游节点间的逻辑关系,修正至少一个目标节点的翻转概率信息;其中:
根据所述目标节点的上级节点的信号相关性确定待修正的子电路,根据所述子电路中的所述目标节点的上游节点间的逻辑关系,为所述目标节点建立修正模型;
至少根据所述修正模型,修正所述至少一个目标节点的翻转概率信息。
2.根据权利要求1所述的电路的翻转概率信息计算方法,其特征在于,所述方法还包括:
根据修正后的所述目标节点的翻转概率信息,更新所述目标节点的下游节点的翻转概率信息。
3.根据权利要求1所述的电路的翻转概率信息计算方法,其特征在于,所述根据所述目标节点的上级节点的信号相关性确定待修正的子电路,包括:
根据所述目标节点的上级节点的信号相关性,从所述目标节点向所述目标节点的上游节点进行追溯,根据终止条件确定追溯终止节点;
根据所述追溯终止节点与所述目标节点之间的电路确定待修正的子电路;
其中,所述终止条件为:所述子电路达到预设长度,和/或,所述追溯终止节点间不存在信号相关性。
4.根据权利要求1所述的电路的翻转概率信息计算方法,其特征在于,所述根据所述子电路中的所述目标节点的上游节点间的逻辑关系,为所述目标节点建立修正模型,包括:
利用待修正的子电路中的追溯终止节点为所述目标节点建立修正模型,其中,所述待修正的子电路中最上游的节点为追溯终止节点,所述修正模型用于表征所述追溯终止节点与所述目标节点的逻辑关系。
5.根据权利要求3或权利要求4所述的电路的翻转概率信息计算方法,其特征在于,所述至少根据所述修正模型,修正所述至少一个目标节点的翻转概率信息,包括:
利用所述追溯终止节点的传播状态集以及所述修正模型修正所述至少一个目标节点的翻转概率信息。
6.根据权利要求1所述的电路的翻转概率信息计算方法,其特征在于,所述方法还包括:
将各所述目标节点在更新前的翻转概率信息,以及各所述目标节点的下游节点在更新前的翻转概率信息均识别为第一翻转概率信息;
将各所述目标节点在更新后的翻转概率信息,以及各所述目标节点的下游节点在更新后的翻转概率信息均识别为第二翻转概率信息;
将第一翻转概率信息和第二翻转概率信息的差值大于预设相差阈值的任意所述目标节点,以及第一翻转概率信息和第二翻转概率信息的差值大于所述预设相差阈值的任意所述下游节点,均识别为新的目标节点;
继续基于所述新的目标节点和所述新的目标节点的上游节点间的逻辑关系,修正所述新的目标节点的翻转概率信息。
7.根据权利要求1所述的电路的翻转概率信息计算方法,其特征在于,所述获取目标电路中节点的翻转概率信息,包括:
获取目标电路中关键节点的翻转概率信息,其中,所述关键节点包括原始输入节点和/或寄存器节点;
根据所述关键节点的翻转概率信息从所述关键节点逐级传播获得所述目标电路中各个节点的翻转概率信息。
8.根据权利要求7所述的电路的翻转概率信息计算方法,其特征在于,所述根据所述关键节点的翻转概率信息从所述关键节点逐级传播获得所述目标电路中各个节点的翻转概率信息,包括:
根据所述关键节点的翻转概率信息建立所述目标电路中各个所述关键节点的传播状态集;
根据所述关键节点的传播状态集,以及所述目标电路中各个逻辑单元的单元模型,逐级求解所述目标电路中各个节点的翻转概率信息。
9.根据权利要求8所述的电路的翻转概率信息计算方法,其特征在于,所述根据所述关键节点的传播状态集,以及所述目标电路中各个逻辑单元的单元模型,逐级求解所述目标电路中各个节点的翻转概率信息,包括:
根据所述目标电路的当前逻辑单元的单元模型,确定所述当前逻辑单元中,当前输出节点的各传播状态对应的所述当前逻辑单元的输入节点的传播状态,得到当前对应关系;其中,所述当前逻辑单元的输入节点,为所述当前逻辑单元的上一级逻辑单元的输出节点;所述当前输出节点,为所述当前逻辑单元的下一逻辑单元的输入节点;
根据所述当前逻辑单元的当前对应关系,和所述当前逻辑单元的输入节点的传播状态集,计算所述当前输出节点的传播状态概率,得到所述当前输出节点的翻转概率信息。
10.根据权利要求1所述的电路的翻转概率信息计算方法,其特征在于,在基于所述目标电路中不同节点之间的信号相关性,从所述目标电路中筛选至少一个目标节点前,所述方法还包括:
针对所述目标电路中的每一节点,判断各个节点的上级节点是否存在信号相关性,将上级节点存在信号相关性的节点确定为所述目标节点。
11.根据权利要求1或权利要求2所述的电路的翻转概率信息计算方法,其特征在于,所述方法还包括:
在所述目标电路的一组节点中的上游节点和下游节点均为目标节点的情况下,先修正所述一组节点中作为上游节点的所述目标节点的翻转概率信息。
12.一种电路的翻转概率信息计算装置,其特征在于,包括:求解模块、筛选模块以及修正模块;其中:
所述求解模块,用于逐级求解获取目标电路中节点的不考虑相关性的翻转概率信息;
所述筛选模块,用于计算所述目标电路中各个节点的上级节点之间的信号相关系数,得到上级相关系数;将所述上级相关系数高于预设相关性阈值的节点识别为目标节点;
所述修正模块,用于根据所述目标节点的上级节点的信号相关性确定待修正的子电路,根据所述子电路中的所述目标节点的上游节点间的逻辑关系,为所述目标节点建立修正模型;至少根据所述修正模型,修正所述至少一个目标节点的翻转概率信息。
13.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行权利要求1至权利要求11中任一项所述的电路的翻转概率信息计算方法。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至权利要求11中任一项所述的电路的翻转概率信息计算方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311783605.8A CN117454813B (zh) | 2023-12-22 | 2023-12-22 | 电路的翻转概率信息计算方法、装置和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311783605.8A CN117454813B (zh) | 2023-12-22 | 2023-12-22 | 电路的翻转概率信息计算方法、装置和计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117454813A CN117454813A (zh) | 2024-01-26 |
CN117454813B true CN117454813B (zh) | 2024-07-16 |
Family
ID=89589537
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311783605.8A Active CN117454813B (zh) | 2023-12-22 | 2023-12-22 | 电路的翻转概率信息计算方法、装置和计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117454813B (zh) |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101038601A (zh) * | 2007-04-19 | 2007-09-19 | 复旦大学 | 在vlsi电路与系统设计中高层次估计功耗的方法 |
US8161434B2 (en) * | 2009-03-06 | 2012-04-17 | Synopsys, Inc. | Statistical formal activity analysis with consideration of temporal and spatial correlations |
CN107609287A (zh) * | 2017-09-21 | 2018-01-19 | 电子科技大学 | 一种面向fpga硬件木马植入的逻辑网表分析方法 |
CN109063475A (zh) * | 2018-07-31 | 2018-12-21 | 西南交通大学 | 一种硬件木马的检测方法、设备及计算机存储介质 |
CN114880976A (zh) * | 2022-04-28 | 2022-08-09 | 华中科技大学 | 一种数字电路能耗优化方法 |
US11837312B1 (en) * | 2022-06-21 | 2023-12-05 | Taiwan Semiconductor Manufacturing Co., Ltd. | Magnetic memory device |
-
2023
- 2023-12-22 CN CN202311783605.8A patent/CN117454813B/zh active Active
Non-Patent Citations (3)
Title |
---|
A Parallel Algorithm for Power Estimation at Gate level;M. Nourani等;The 2002 45th Midwest Symposium on Circuits and Systems, 2002. MWSCAS-2002;20020320;第2-3节 * |
M. Nourani等.A Parallel Algorithm for Power Estimation at Gate level.The 2002 45th Midwest Symposium on Circuits and Systems, 2002. MWSCAS-2002.2002,第2-3节. * |
李跃平等.时延差驱动的门级功耗估算算法.计算机辅助设计与图形学学报.2004,第14卷(第5期),第2节. * |
Also Published As
Publication number | Publication date |
---|---|
CN117454813A (zh) | 2024-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6278964B1 (en) | Hot carrier effect simulation for integrated circuits | |
US8302041B1 (en) | Implementation flow for electronic circuit designs using choice networks | |
US10275553B2 (en) | Custom circuit power analysis | |
CN115796093B (zh) | 电路时序优化方法、装置、电子设备及存储介质 | |
US7469393B2 (en) | Method and device for supporting verification, and computer product | |
US20060129957A1 (en) | Method and computer program product for register transfer level power estimation in chip design | |
CN112149380A (zh) | 一种标准单元库的指标分析方法及装置 | |
CN114861591A (zh) | 一种可微分时序驱动的芯片布局优化方法 | |
JP2004054756A (ja) | 消費電力見積り装置及び方法 | |
JPH07200642A (ja) | 半導体集積回路の遅延時間計算装置 | |
US9836567B2 (en) | Method of simulating a semiconductor integrated circuit, computer program product, and device for simulating a semiconductor integrated circuit | |
CN112580279B (zh) | 逻辑电路的优化方法、优化装置以及存储介质 | |
CN112836454B (zh) | 一种集成电路仿真方法及系统 | |
US9483593B2 (en) | Method for decomposing a hardware model and for accelerating formal verification of the hardware model | |
CN117454813B (zh) | 电路的翻转概率信息计算方法、装置和计算机设备 | |
US8762922B1 (en) | System for reducing leakage power of electronic circuit | |
US20120290992A1 (en) | Logical circuit netlist reduction and model simplification using simulation results containing symbolic values | |
CN117933152A (zh) | 电路的翻转概率信息传播方法、装置和存储介质 | |
CN110763984B (zh) | 逻辑电路失效率确定方法、装置、设备及存储介质 | |
CN115826911A (zh) | 基于多类型近似计算单元的可变位宽加法器树生成系统 | |
CN109188256B (zh) | 功耗优化方案确定方法、装置及设备 | |
US20150269304A1 (en) | System and method for employing signoff-quality timing analysis information concurrently in multiple scenarios to reduce total power within a circuit design | |
US10289786B1 (en) | Circuit design transformation for automatic latency reduction | |
CN111563355A (zh) | 考虑多输入切换的操作时序分析装置和方法 | |
US8938705B1 (en) | Systems and methods for partial retention synthesis |
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 |