掌桥专利:专业的专利平台
掌桥专利
首页

基于时间窗图模型的时序电路关键性节点定位方法及设备

文献发布时间:2023-06-19 19:30:30


基于时间窗图模型的时序电路关键性节点定位方法及设备

技术领域

本发明属于集成电路的可靠性计算领域,涉及一种电路关键性节点定位方法,尤其是涉及一种基于时间窗图模型的时序电路关键性节点定位方法及设备。

背景技术

随着集成电路特征尺寸的不断减小、电源电压的降低及工作频率的增加,工艺技术也随之变得愈为复杂,使之不可避免地容易导致电路的可靠性容限下降,如器件尺寸的进一步减小使得电路的不确定性故障发生概率增加。因此,开展针对集成电路的可靠性评估对电路的高可靠设计有着非常重要的意义,它有助于选择或设计最为合适的结构以优化电路面积、功耗、时延等与可靠性之间的需求。

为标识出电路结构中的关键性电路单元,学术界与产业界提出了多种不同的定位策略,目前,大部分方法主要集中于解决组合电路中的关键性节点定位问题,时序电路由于电路规模往往更大,并且触发器的存在会导致故障不断积累和传播,使得评估更加困难。可用于时序电路关键性节点定位的方法主要包括基于图理论的分析方法与基于仿真的分析方法。有基于图神经网络定位时序电路关键性节点的方法,如通过GraphSAGE网络预测触发器节点对电路原始输出端的影响来定位时序电路关键性节点,但是没有考虑时序电路故障的积累,并且也较难获取有效的训练数据。也有基于蒙特卡罗方法对电路的行为特征进行了仿真以标识关键性电路节点,该方法有着较高的精度并受到业内人士的认可,但它往往有着非常高的时间开销。

发明内容

本发明的目的就是为了克服上述现有技术存在的仅适用于小规模组合电路、时间开销高的不足,而提供一种定位精度高、计算速度较快的基于时间窗图模型的时序电路关键性节点定位方法及设备,可适用于大规模及超大规模电路关键性单元的有效定位。

本发明的目的可以通过以下技术方案来实现:

一种基于时间窗图模型的时序电路关键性节点定位方法,包括以下步骤:

1)解析电路网表,根据电路节点类型初始化关键性计算矩阵,所述关键性计算矩阵包括单故障计算矩阵和多故障计算矩阵;

2)基于时间窗图模型,通过电路仿真模拟对电路节点状态进行聚合,获得电路节点切片;

3)基于概率和所述关键性计算矩阵计算切片中所有节点对于目标节点的关键性;

4)根据节点关键性排序,获取时序电路的关键性节点。

进一步地,所述解析电路网表具体包括:

提取电路的基本门信息,构建电路的完整性链表,记录原始输入端、原始输出端、触发器和电路节点的输入端在完整性链表中的位置,所述目标节点为原始输出端节点和触发器的并集。

进一步地,通过真值表法构建所述关键性计算矩阵。

进一步地,所述单故障计算矩阵和多故障计算矩阵具体表示为:

其中,式(1)为单故障计算矩阵

进一步地,通过统计各节点输入向量出现频率对电路节点状态进行聚合。

进一步地,步骤2)中,进行电路仿真模拟时,在仿真次数达到设定窗口大小时停止,获得电路节点切片。

进一步地,计算切片中所有节点对于目标节点的关键性时,基于聚合的节点信息计算节点对各切片电路原始输出端的影响概率。

进一步地,执行步骤4)前,以设定次数,多次重复执行步骤2)和步骤3),获得不同切片下的节点关键性。

进一步地,计算节点对于目标节点的关键性时,以触发器为媒介,通过计算节点对触发器的影响模式和触发器对电路原始输出端的影响模式来计算过往时钟信号中故障对当前时钟信号中电路原始输出端的影响。

进一步地,计算时序电路切片中每个节点的关键性包含公式如下:

节点输入端关键性计算公式:

其中,cri表示节点输入端的关键性,ipv表示节点的输入组合概率分布向量,通过节点的输入组合概率分布,结合单故障计算矩阵来计算得到节点输入端的关键性;

节点关键性传递计算公式:

ipt

其中,ipt

节点接收到错误信号组合概率向量计算公式:

其中vpcif表示节点接收到错误信号组合概率向量,pof表示节点在特定情况下输出改变的概率;

节点输出改变概率计算公式:

本发明还提供一种电子设备,包括一个或多个处理器、存储器和被存储在存储器中的一个或多个程序,所述一个或多个程序包括用于执行如上所述基于时间窗图模型的时序电路关键性节点定位方法的指令。

与现有技术相比,本发明具有以下有益效果:

1、本发明以时间窗图模型聚合节点状态为基础,结合关键性计算矩阵和概率计算方法等实现了电路节点关键性评估的迭代计算,实现了电路单元关键性水平的有效量化,有利于在保证评估精度的前提下降低计算的复杂性,极大地降低时序电路关键性节点定位的计算开销,从而扩展了该方法的适用范围,便于应用于时序电路节点关键性的计算。本发明不仅有较高的定位精度,还有着较快的计算速度,可适用于大规模及超大规模电路关键性单元的有效定位。

2、本发明通过不同节点对触发器的影响概率和触发器对目标节点的影响概率,来计算过往切片中节点对当前切片中目标节点产生影响的概率,使得本方法在计算中能够以较小的代价考虑时序电路中故障的积累问题,弥补了现有关键性节点定位方法较少考虑故障的积累,使其难以拓展应用于时序电路,并且难以兼顾时间开销与精度的不足。

3、本发明在考虑时序电路故障会在不同时序帧之间传递积累的情况下定位时序电路关键性节点,在50个ISCAS-89和6个ITC-99基准电路的实验验证了本方法在保持较高精度的同时,时空开销远小于蒙特卡罗方法。

4、本发明获得的定位结果有助于电路设计人员及时掌握所设计产品中电路各节点的关键性,以便合理选择与决策。

附图说明

图1是基于时间窗图模型的时序电路关键性节点定位方法的流程图;

图2是时间窗内节点状态的聚合示例;

图3是关键性计算矩阵应用示例;

图4是本方法在50个ISCAS-89基准电路上的实验结果;

图5是本方法在6个ITC-99基准电路上的实验结果。

具体实施方式

下面结合附图和具体实施例对本发明进行详细说明。本实施例以本发明技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。

本发明的实施例提供一种基于时间窗图模型的时序电路关键性节点定位方法,如图1所示,包括以下步骤:

步骤1:网表解析及相关量的初始化

1.1)读取网表,提取电路的基本门信息等,构建电路的完整性链表LC,标识出电路的所有原始输入端PI、原始输出端PO、触发器FF以及电路节点的输入端在LC的位置ipt,并初始化节点数量变量m=length(LC)、窗口大小变量w、目标节点列表变量tns为PO和FF的并集、循环变量simi=0、模拟次数simn以及关键性计算允许误差e;其中完整性链表LC指链表中任意节点的输入端信息均可从该节点的前序节点的输出端信息中提取得到,length表示取列表的元素数量;

1.2)依据基本门的类型tp与输入端个数iptn,并通过iptn个输入端信号的排列特点利用真值表法构建tp类型输入端个数iptn的基本门的单故障计算矩阵

其中

ivn=[s

isv=[is

其中,s

步骤2:定位时序电路关键性节点

2.1)针对LC中的每个节点,初始化节点关键性CGR=0、节点故障模式列表fmdl为空,此处节点关键性是指节点对电路整体可靠性的影响;

2.2)跳转到步骤3,计算获取切片slc

2.3)针对LC中的每一个节点ni和POs中的每一个节点PO,判断ni.pos(PO)不等于0是否成立,若是,更新ni.CGR=ni.CGR+ni.pos(PO),其中,ni.CGR表示节点ni的关键性,ni.pos(PO)表示ni对PO的关键性,若ni不会对PO产生影响,则ni.pos(PO)等于0;

2.4)针对fmdl中的每一个节点故障模式,首先提取对应的节点ni和ft,并初始化LC中所有节点的输出改变概率pof为0,然后针对ft中的每一个触发器FF和对应的pos,设置FF.pof=pos,跳转到步骤5计算得到以前切片节点对slc

2.5)针对LC中的每一个节点ni和FFs中的每一个节点FF,判断ni.pos(FF)不等于0是否成立,若是,更新ft(FF)=ni.pos(FF);将组合加入到fmdl中,其中ft存储节点ni可以产生影响的触发器节点以及关键性,如ft(FF)表示ni对触发器节点FF的关键性;

2.6)执行simi=simi+1,判断simi等于simn是否成立,若是,跳转到2.7);否则,跳转到2.2);

2.7)关键性节点即为CGR较大的节点。根据LC中每一个节点的CGR对节点进行排序,并返回关键性节点。

步骤3:电路节点状态模拟和电路节点状态聚合

3.1)针对LC中的每一个节点n,初始化输入组合概率分布向量n.ipv为1×2

3.2)针对LC中的每一个原始输入端节点,随机产生输入向量,并初始化循环变量i=0,j=0;

3.3)提取LC中的第i个节点ni,判断ni是否是电路的原始输入端节点,若是,则转3.4);否则,计算并更新ni的输出信号,提取ni的输入端节点的输出信号,构建输入信号组合ni.ivn,计算ni.ivn的十进制表示divn,执行ni.ipv(divn)=ni.ipv(divn)+1/w,其中ni.ipv(divn)表示节点ni输入信号组合divn出现的频率;

3.4)判断是否到达LC的末尾,若是,则转3.5);否则,执行i=i+1,并转3.3);

3.5)执行j=j+1,并判断j等于w是否成立,若是,则转步骤4;否则,转2.2)。

步骤4:计算切片中所有节点对于目标节点的关键性

4.1)针对LC中的每一个节点n,初始化n对tns中节点的影响概率n.pos为空,初始化循环变量i=m,n.pos(nn)用于表示节点n出现的故障对节点nn产生影响的概率,即节点n对节点nn的关键性;

4.2)提取LC中的第i个节点ni,判断ni是否属于tns,若是,则执行ni.pos(ni)=1,并跳转到4.3);否则,跳转到4.3);

4.3)根据下式计算ni各输入端的关键性传递系数cri,提取ni的输入端节点ipt,初始化循环变量j=0;

4.4)提取ni的第j个输入端节点ipt

4.5)提取第k个目标节点tn,判断n.pos(tn)小于e是否成立,若是,则跳转到4.6);否则,判断ipt

4.6)执行k=k+1,判断k等于length(tns)是否成立,若是,则跳转到4.8);否则,跳转到4.5);

4.7)初始化ipt

4.8)执行j=j+1,判断j小于ni.iptn是否成立,若是,跳转到4.4);否则,执行i=i-1,判断i等于-1是否成立,若是,跳转到4.9);否则,跳转到4.2);

4.9)步骤4结束,返回结果。

步骤5:根据节点输出改变的概率pof计算目标节点tns输出改变的概率

5.1)初始化循环变量ii=0;

5.2)提取LC中的第ii个节点n

5.3)提取n

5.4)执行ii=ii+1,判断ii等于m是否成立,若是,跳转到5.5);否则,跳转到5.2);

5.5)步骤5结束,返回结果。

上述方法通过时间窗图模型聚合节点状态,通过基于概率的计算方法计算不同切片内节点的关键性,使该方法在保证精度的情况下仍然有较快的计算速度,同时在考虑时序电路故障积累的前提下,定位时序电路中的关键性节点,提高可靠性。

上述方法如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

本实施例通过将在50个ISCAS-89基准电路上的实验结果与蒙特卡罗方法获得的结果对比,来验证本方法的精度、时间开销、内存开销和结果稳定性;在6个ITC-99基准电路上的实验结果与随机方法获得结果对比,用于说明本方法在大规模时序电路上的有效性和时间开销。

通过向量距离来度量结果的准确性(acc),如下式所示

其中rp

其中rp

图4所示为本方法在50个ISCAS-89基准电路上的性能,平均性能通过计算在50个电路上性能的平均值得到,图中展示其中20个电路的性能表现。实验结果表明,相比于蒙特卡罗方法,本方法具有较高的精度和稳定性。本方法的时间开销远小于蒙特卡罗方法,内存开销低于蒙特卡罗方法,并且随着电路规模的增加,本方法时空开销增长速度小于蒙特卡罗方法,使其能够适应更大规模的电路。

图5所示为本方法在6个ITC-99基准电路上的实验结果与随机方法获得结果对比。(5a)所示为本方法和随机方法时间开销和电路各类型节点数量的关系,其中nff和npriipt分别表示电路触发器和原始输入端的数量。结果表明,本方法的时间开销受nff和Ng影响较大。(5b)中,方案一和方案二分别加固前0.5%和1%的节点,方案设置加固节点的故障概率为0.5%,其余节点为1%。结果表明,根据本方法计算得到的关键性节点进行加固可以得到更好的效果。综上表明,相比于随机方法,本方法有更小的时间开销和更高的精度。

总体来说,本方法弥补了现有关键性节点定位方法较少考虑故障的积累,使其难以拓展应用于时序电路,并且难以兼顾时间开销与精度的不足。基于时间窗图模型,通过聚合不同时序帧的节点状态和相应的基于概率的计算方法在牺牲一定精度的同时,极大地降低时序电路关键性节点定位的计算开销。通过不同节点对触发器的影响概率和触发器对目标节点的影响概率,来计算过往切片中节点对当前切片中目标节点产生影响的概率,使得本方法在计算中能够以较小的代价考虑时序电路中故障的积累问题。

以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。

技术分类

06120115937888