组合电路瞬态脉冲重汇聚现象可满足性分析方法及系统与流程

文档序号:15851888发布日期:2018-11-07 10:09阅读:386来源:国知局
组合电路瞬态脉冲重汇聚现象可满足性分析方法及系统与流程
本发明涉及集成电路的电路分析
技术领域
,尤其涉及一种快速、准确分析脉冲信号重汇聚现象可满足性的组合电路瞬态脉冲重汇聚现象可满足性分析方法及系统。
背景技术
重汇聚现象在现代集成电路设计中非常普遍。有研究指出,对于一些经典芯片的分析发现,一半以上的单元是扇出单元,芯片输出引脚的限制,扇出的分支必然会发生大量的重汇聚。某个单元产生的瞬态脉冲会延后续多条路径传播,并可能在某一点会合,重汇聚后的脉冲在波形、幅度和脉宽上存在极大不确定性。此外,由于逻辑屏蔽的存在,瞬态脉冲并不能同时沿着所有的路径传播,物理上重汇聚的路径也不一定发生重汇聚现象,与输入向量密切相关。如图1所示的组合电路中,输入端a点到输出端y点的路径有三条(如图中的实线所示),从上到下分别为p1、p2、p3,考虑逻辑重汇聚时,假设a点发生瞬态脉冲,若脉冲通过某条路径传播到输出端y点,则称这条路径为敏化路径。若脉冲同时通过多条敏化路径传播到输出y则表示发生了重汇聚现象,可能的重汇聚路径组合包括(p1,p2)(p1,p3)(p2,p3)(p1,p2,p3)。通过对电路分析发现,p1和p2无法同时敏化,因此可能发生重汇聚现象的组合是(p1,p3)和(p2,p3)。根据真值表表1,可以发现,(p1,p3)重汇聚对应的输入向量为(0,1,1)和(1,1,1),(p2,p3)重汇聚对应的输入向量为(0,0,1)和(1,0,1)。表1:图1所示的组合电路的真值表。abcxy000000010001011011111001101101100011100目前研究重汇聚现象的方法主要有三种,模拟的方法、二叉决策树的方法和概率分析的方法。模拟的方法输入向量随机生成,可能无法覆盖所有能发生重汇聚现象的输入向量。采用概率分析的方法会存在精确度上的问题,以图1为例,输出y为1的概率为37.5%(真值表),但是通过概率传播的方法算出为42.19%,这是因为没有考虑信号之间的相关性。二叉决策树的方法可以较为精确的分析重汇聚现象,但是求解规模是指数级的,对于大规模电路不适用。技术实现要素:本发明要解决的技术问题:针对现有技术的上述问题,提供一种组合电路瞬态脉冲重汇聚现象可满足性分析方法及系统。布尔可满足问题(sat)是第一个被证明是可满足的非确定多项式问题(np问题),基于sat的模型检验算法被广泛应用于电路设计、测试和形式化验证。本发明提出的方法利用sat求解器分析组合电路重汇聚现象,对电路中任意一点产生的瞬态脉冲,方法可以判断瞬态脉冲是否能够同时经过两条路径在某个输出端重汇聚,本发明利用约束求解的方法分析电路重汇聚现象,可分析的电路规模可以更大,精确度更高,本发明采用的边搜索边求解的方法可以较早排除不可能满足的路径,减少计算规模,本发明的优化窗口设计可以避免算法陷入大量计算,提高效率,本发明根据优化信息对待检查列表c中的元素进行排序,可以将更容易得到可满足解的元素筛选出来,减少算法运行时间。为了解决上述技术问题,本发明采用的技术方案为:一种组合电路瞬态脉冲重汇聚现象可满足性分析方法,实施步骤包括:1)读入被分析组合电路的与非图格式文件;2)针对被分析组合电路中随机选取某一起始节点v,使用深度优先的方法搜索所有可能到达的输出节点,并任意选择一个输出节点p;3)从输出节点p出发,使用深度优先的方法逆着电路传播方向反向搜索到达起始节点v的所有路径,并将路径上任意节点到起始节点v间隔的最大节点数量以及最少节点数量分别记录为该节点到输出节点p的最大距离和最小距离;4)初始化建立待检查列表c,所述待检查列表c中任意元素(v1,v2)的元素结构包含从起始节点v出发同时到达的节点v1和v2、起始节点v分别到节点v1和v2的路径p1和p2、以及路径p1和p2的分别敏化判断结果和同时敏化判断结果,敏化判断结果为满足sat或不满足unsat;将元素(v,v)加入待检查列表c,其中v为起始节点;5)对待检查列表c中每个元素添加敏化约束条件,并将元素中从起始节点v出发同时到达的两个节点的敏化约束条件利用sat求解器求解其对应的两条路径的分别敏化判断结果和同时敏化判断结果;6)针对待检查列表c中的任意元素(v1,v2),如果节点v1和v2均为输出节点p、路径p1和p2不相同、且同时敏化判断结果为满足sat,则判定存在满足要求的输入向量可以使起始节点v和输出节点p之间直接有两条可以同时敏化的路径,过程结束并退出;否则,跳转执行下一步;7)更新待检查列表c,对待检查列表c中的元素进行排序;8)判断待检查列表c是否为空,若待检查列表c不为空,则跳转执行步骤5),否则,判定不存在满足要求的输入向量可以使起始节点v和输出节点p之间直接有两条可以同时敏化的路径,过程结束并退出。优选地,步骤7)的详细步骤包括:7.1)从待检查列表c中选择当前的元素(v1,v2);7.2)分别判断路径p1和p2的分别敏化判断结果:如果路径p1的分别敏化判断结果为不满足unsat、且路径p2的分别敏化判断结果为不满足unsat,则跳转执行步骤7.3);如果路径p1的分别敏化判断结果为满足sat、且路径p2的分别敏化判断结果为不满足unsat,则跳转执行步骤7.4);如果路径p1的分别敏化判断结果为不满足unsat、且路径p2的分别敏化判断结果为满足sat,则跳转执行步骤7.5);如果路径p1的分别敏化判断结果为满足sat、路径p2的分别敏化判断结果为满足sat、且路径p1和p2的同时敏化判断结果为不满足unsat,则跳转执行步骤7.6);如果路径p1的分别敏化判断结果为满足sat、路径p2的分别敏化判断结果为满足sat、且路径p1和p2的同时敏化判断结果为满足sat,则跳转执行步骤7.7);7.3)判定瞬态脉冲不能从起始节点v传播到节点v1或节点v2,则将当前的元素(v1,v2)从待检查列表c中删除;跳转执行步骤7.8);7.4)判定瞬态脉冲能从起始节点v传播到节点v1但不能传播到节点v2,将当前的元素(v1,v2)从待检查列表c中删除;沿着节点v1后续分支逐一搜索,遇到输出节点p或者分支点vn时停止,若遇到分支点,则记录每个后续分支搜索停止的节点分别为vn+1,vn+2,…,vn+i,其中i表示分支点分支个数,且i≥2,将记录的节点两两组合得到新的元素(vn+1,vn+2),(vn+1,vn+3),…,(vn+i-1,vn+i)、并将新的元素加入待检查列表c;跳转执行步骤7.8);7.5)判定瞬态脉冲能从起始节点v传播到节点v2但不能传播到节点v1,将当前的元素(v1,v2)从待检查列表c中删除;沿着节点v2后续分支逐一搜索,遇到输出节点p或者分支点vn时停止,若遇到分支点,则记录每个后续分支搜索停止的节点分别为vn+1,vn+2,…,vn+i,其中i表示分支点分支个数,且i≥2,将记录的节点两两组合得到新的元素(vn+1,vn+2),(vn+1,vn+3),…,(vn+i-1,vn+i)、并将新的元素加入待检查列表c;跳转执行步骤7.8);7.6)判定瞬态脉冲能分别从起始节点v传播到节点v2和节点v1,但不能同时到达节点v2和节点v1,将当前的元素(v1,v2)从待检查列表c中删除;沿着节点v1后续分支逐一搜索,遇到输出节点p或者分支点vm时停止,若遇到分支点vm,则记录每个后续分支搜索停止的节分别为vm+1,vm+2,…,vm+j,其中j表示分支点分支个数,且j≥2,将记录的节点两两组合得到新的元素(vm+1,vm+2),(vm+1,vm+3),…,(vm+j-1,vm+j)、并将新的元素加入待检查列表c;沿着节点v2后续分支逐一搜索,遇到输出节点p或者分支点vn时停止,若遇到分支点vn,则记录每个后续分支搜索停止的节点分别为vn+1,vn+2,…,vn+i,其中i表示分支点分支个数,且i≥2,将记录的节点两两组合得到新的元素(vn+1,vn+2),(vn+1,vn+3),…,(vn+i-1,vn+i)、并将新的元素加入待检查列表c;跳转执行步骤7.8);7.7)判定瞬态脉冲能分别从起始节点v传播到节点v2和节点v1,且能同时到达节点v2和节点v1,将当前的元素(v1,v2)从待检查列表c中删除;沿着节点v1后续分支逐一搜索,遇到输出节点p或者分支点vm时停止,若遇到分支点vm,则记录每个后续分支搜索停止的节分别为vm+1,vm+2,…,vm+j,其中j表示分支点分支个数,且j≥2,将记录的节点两两组合得到新的元素(vm+1,vm+2),(vm+1,vm+3),…,(vm+j-1,vm+j)、并将新的元素加入待检查列表c;沿着节点v2后续分支逐一搜索,遇到输出节点p或者分支点vn时停止,若遇到分支点vn,则记录每个后续分支搜索停止的节点分别为vn+1,vn+2,…,vn+i,其中i表示分支点分支个数,且i≥2,将记录的节点两两组合得到新的元素(vn+1,vn+2),(vn+1,vn+3),…,(vn+i-1,vn+i)、并将新的元素加入待检查列表c;将两次每个后续分支搜索停止的节点vm+1,vm+2,…,vm+j以及vn+1,vn+2,…,vn+i进行两两组合得到新的元素(vm+1,vn+1),(vm+1,vn+2),…,(vm+j,vn+i)、并将新的元素加入待检查列表c;7.8)对待检查列表c中的元素进行排序。优选地,步骤7.1)从待检查列表c中选择至少一个当前的元素(v1,v2)时,具体是指根据优化窗口来选择当前的元素(v1,v2)的数量,所述优化窗口包含指定数量n个被选择的元素,n为大于或等于1的正整数。优选地,步骤7.8)对待检查列表c中的元素进行排序的详细步骤包括:7.8.1)根据第一优先顺序对待检查列表c中的元素进行排序,所述第一优先顺序根据任意元素(v1,v2)中节点v1和v2到起始节点v的距离进行排序,节点v1和v2到起始节点v的距离越远则排序越靠前;7.8.2)根据第二优先顺序对待检查列表c中的元素进行排序,所述第二优先顺序根据任意元素(v1,v2)中路径p1和p2的节点数量进行排序,路径p1和p2上节点越少排序越靠前。本发明还提供一种组合电路瞬态脉冲重汇聚现象可满足性分析系统,包括计算机设备,其特征在于,所述计算机设备被编程以执行本发明组合电路瞬态脉冲重汇聚现象可满足性分析方法的步骤。本发明还提供一种组合电路瞬态脉冲重汇聚现象可满足性分析系统,包括:读取程序单元,用于读入被分析组合电路的与非图格式文件;节点选择程序单元,用于针对被分析组合电路中随机选取某一起始节点v,使用深度优先的方法搜索所有可能到达的输出节点,并任意选择一个输出节点p;反向节点搜索程序单元,用于从输出节点p出发,使用深度优先的方法逆着电路传播方向反向搜索到达起始节点v的所有路径,并将路径上任意节点到起始节点v间隔的最大节点数量以及最少节点数量分别记录为该节点到输出节点p的最大距离和最小距离;列表初始化程序单元,用于初始化建立待检查列表c,所述待检查列表c中任意元素(v1,v2)的元素结构包含从起始节点v出发同时到达的节点v1和v2、起始节点v分别到节点v1和v2的路径p1和p2、以及路径p1和p2的分别敏化判断结果和同时敏化判断结果,敏化判断结果为满足sat或不满足unsat;将元素(v,v)加入待检查列表c,其中v为起始节点;sat求解处理程序单元,用于对待检查列表c中每个元素添加敏化约束条件,并将元素中从起始节点v出发同时到达的两个节点的敏化约束条件利用sat求解器求解其对应的两条路径的分别敏化判断结果和同时敏化判断结果;结果分析程序单元,用于针对待检查列表c中的任意元素(v1,v2),如果节点v1和v2均为输出节点p、路径p1和p2不相同、且同时敏化判断结果为满足sat,则判定存在满足要求的输入向量可以使起始节点v和输出节点p之间直接有两条可以同时敏化的路径,过程结束并退出;否则,跳转执行列表更新程序单元;列表更新程序单元,用于更新待检查列表c,对待检查列表c中的元素进行排序;列表循环检查单元,用于判断待检查列表c是否为空,若待检查列表c不为空,则跳转执行sat求解处理程序单元,否则,判定不存在满足要求的输入向量可以使起始节点v和输出节点p之间直接有两条可以同时敏化的路径,过程结束并退出。与现有技术相比,本发明具有下述优点:1、本发明利用约束求解的方法分析电路重汇聚现象,可分析的电路规模可以更大,精确度更高。2、本发明采用的边搜索边求解的方法可以较早排除不可能满足的路径,减少计算规模。3、本发明的优化窗口设计可以避免算法陷入大量计算,提高效率。4、本发明根据优化信息对待检查列表c中的元素进行排序,可以将更容易得到可满足解的元素筛选出来,减少算法运行时间。附图说明图1为现有技术的组合电路重汇聚现象示意图。图2为本发明实施例方法的基本流程示意图。图3为本发明实施例的组合电路的搜索得到的节点及其最大距离和最小距离示意图。图4为本发明实施例中待检查列表c的元素结构示意图。图5为本发明实施例中敏化路径约束条件示意图。图6为本发明实施例中待检查列表c的变化过程示意图。具体实施方式下文将以minisat作为sat求解器的实例,对本发明组合电路瞬态脉冲重汇聚现象可满足性分析方法及系统进行进一步的详细说明。但是,本发明组合电路瞬态脉冲重汇聚现象可满足性分析方法及系统并不局限于特定的sat求解器,且sat求解器既可以使用本地的sat求解器,也可以根据需要使用云端的sat求解器。如图2所示,本实施例组合电路瞬态脉冲重汇聚现象可满足性分析方法的实施步骤包括:1)读入被分析组合电路的与非图格式文件;与非图格式文件为只用与门和非门表示电路结构的文件,本实施例中,被分析组合电路的与非图格式文件具体为aig文件,毫无疑问也可以根据需要选择其他类型的与非图格式文件。2)针对被分析组合电路中随机选取某一起始节点v,使用深度优先的方法搜索所有可能到达的输出节点,并任意选择一个输出节点p;本实施例中,起始节点v是在电路中任意选择的,输出节点p也是任意选出的,但是输出节点p选择的范围是信号从起始节点v能到达的所有输出节点。3)从输出节点p出发,使用深度优先的方法逆着电路传播方向反向搜索到达起始节点v的所有路径,并将路径上任意节点到起始节点v间隔的最大节点数量以及最少节点数量分别记录为该节点到输出节点p的最大距离和最小距离;如图3所示,本实施例中起始节点v到输出节点p之间所有路径用实线标出,节点上括号内的数字表示该节点到v的最大距离和最小距离,例如节点6的最大距离和最小距离为(3,3)。4)初始化建立待检查列表c,如图4所示,待检查列表c中任意元素(v1,v2)的元素结构包含:从起始节点v出发同时到达的节点v1和v2、起始节点v分别到节点v1和v2的路径p1和p2、以及路径p1和p2的分别敏化判断结果和同时敏化判断结果,敏化判断结果为满足sat或不满足unsat;将元素(v,v)加入待检查列表c,其中v为起始节点;参见图4,本实施例中,建立待检查列表c的结构包括:1)两个节点v1和v2,表示从节点v出发的信号,能同时到达的两个节点;2)起始节点v分别到节点v1和v2的路径p1(a1,a2,…)和p2(b2,b2,…),ai和bi分别是两条路径p1和p2上的节点;3)路径p1和p2的分别敏化判断结果和同时敏化(p1&p2)判断结果。图4中,p1表示从v到v1的路径,sat表示路径敏化是可以满足的,unsat表示路径敏化是不可满足的。p2表示从v到v2的路径,sat表示路径敏化是可以满足的,unsat表示路径敏化是不可满足的。p1&p2=sat表示p1和p2同时可以满足,p1&p2=unsat表示p1和p2不能同时满足。5)对待检查列表c中每个元素添加敏化约束条件,并将元素中从起始节点v出发同时到达的两个节点的敏化约束条件利用minisat求解其对应的两条路径的分别敏化判断结果和同时敏化判断结果;对于待检查列表c中任意元素(v1,v2)而言,敏化约束条件具体是指每一条路径中从输入起始节点v的瞬态脉冲可以经过路径后到达节点v1或v2并输出的条件。以图5所示组合电路为例,输入a的瞬态脉冲可以经过路径a1-a2-a3-i1-a4到达i的敏化条件是b,c,e,h均设置为高电平,输入a的瞬态脉冲可以经过路径a1-a5-a6-a4到达i的敏化条件是b,d,f,g均设置为高电平。6)针对待检查列表c中的任意元素(v1,v2),如果节点v1和v2均为输出节点p、路径p1和p2不相同、且同时敏化判断结果为满足sat,则判定存在满足要求的输入向量可以使起始节点v和输出节点p之间直接有两条可以同时敏化的路径,过程结束并退出;否则,跳转执行下一步;7)更新待检查列表c,对待检查列表c中的元素进行排序;8)判断待检查列表c是否为空,若待检查列表c不为空,则跳转执行步骤5),否则,判定不存在满足要求的输入向量可以使起始节点v和输出节点p之间直接有两条可以同时敏化的路径,过程结束并退出。本实施例中,步骤7)的详细步骤包括:7.1)从待检查列表c中选择当前的元素(v1,v2);7.2)分别判断路径p1和p2的分别敏化判断结果:如果路径p1的分别敏化判断结果为不满足unsat、且路径p2的分别敏化判断结果为不满足unsat,则跳转执行步骤7.3);如果路径p1的分别敏化判断结果为满足sat、且路径p2的分别敏化判断结果为不满足unsat,则跳转执行步骤7.4);如果路径p1的分别敏化判断结果为不满足unsat、且路径p2的分别敏化判断结果为满足sat,则跳转执行步骤7.5);如果路径p1的分别敏化判断结果为满足sat、路径p2的分别敏化判断结果为满足sat、且路径p1和p2的同时敏化判断结果为不满足unsat,则跳转执行步骤7.6);如果路径p1的分别敏化判断结果为满足sat、路径p2的分别敏化判断结果为满足sat、且路径p1和p2的同时敏化判断结果为满足sat,则跳转执行步骤7.7);7.3)判定瞬态脉冲不能从起始节点v传播到节点v1或节点v2,则将当前的元素(v1,v2)从待检查列表c中删除;跳转执行步骤7.8);7.4)判定瞬态脉冲能从起始节点v传播到节点v1但不能传播到节点v2,将当前的元素(v1,v2)从待检查列表c中删除;沿着节点v1后续分支逐一搜索,遇到输出节点p或者分支点vn时停止,若遇到分支点,则记录每个后续分支搜索停止的节点分别为vn+1,vn+2,…,vn+i,其中i表示分支点分支个数,且i≥2,将记录的节点两两组合得到新的元素(vn+1,vn+2),(vn+1,vn+3),…,(vn+i-1,vn+i)、并将新的元素加入待检查列表c;跳转执行步骤7.8);7.5)判定瞬态脉冲能从起始节点v传播到节点v2但不能传播到节点v1,将当前的元素(v1,v2)从待检查列表c中删除;沿着节点v2后续分支逐一搜索,遇到输出节点p或者分支点vn时停止,若遇到分支点,则记录每个后续分支搜索停止的节点分别为vn+1,vn+2,…,vn+i,其中i表示分支点分支个数,且i≥2,将记录的节点两两组合得到新的元素(vn+1,vn+2),(vn+1,vn+3),…,(vn+i-1,vn+i)、并将新的元素加入待检查列表c;跳转执行步骤7.8);7.6)判定瞬态脉冲能分别从起始节点v传播到节点v2和节点v1,但不能同时到达节点v2和节点v1,将当前的元素(v1,v2)从待检查列表c中删除;沿着节点v1后续分支逐一搜索,遇到输出节点p或者分支点vm时停止,若遇到分支点vm,则记录每个后续分支搜索停止的节分别为vm+1,vm+2,…,vm+j,其中j表示分支点分支个数,且j≥2,将记录的节点两两组合得到新的元素(vm+1,vm+2),(vm+1,vm+3),…,(vm+j-1,vm+j)、并将新的元素加入待检查列表c;沿着节点v2后续分支逐一搜索,遇到输出节点p或者分支点vn时停止,若遇到分支点vn,则记录每个后续分支搜索停止的节点分别为vn+1,vn+2,…,vn+i,其中i表示分支点分支个数,且i≥2,将记录的节点两两组合得到新的元素(vn+1,vn+2),(vn+1,vn+3),…,(vn+i-1,vn+i)、并将新的元素加入待检查列表c;跳转执行步骤7.8);7.7)判定瞬态脉冲能分别从起始节点v传播到节点v2和节点v1,且能同时到达节点v2和节点v1,将当前的元素(v1,v2)从待检查列表c中删除;沿着节点v1后续分支逐一搜索,遇到输出节点p或者分支点vm时停止,若遇到分支点vm,则记录每个后续分支搜索停止的节分别为vm+1,vm+2,…,vm+j,其中j表示分支点分支个数,且j≥2,将记录的节点两两组合得到新的元素(vm+1,vm+2),(vm+1,vm+3),…,(vm+j-1,vm+j)、并将新的元素加入待检查列表c;沿着节点v2后续分支逐一搜索,遇到输出节点p或者分支点vn时停止,若遇到分支点vn,则记录每个后续分支搜索停止的节点分别为vn+1,vn+2,…,vn+i,其中i表示分支点分支个数,且i≥2,将记录的节点两两组合得到新的元素(vn+1,vn+2),(vn+1,vn+3),…,(vn+i-1,vn+i)、并将新的元素加入待检查列表c;将两次每个后续分支搜索停止的节点vm+1,vm+2,…,vm+j以及vn+1,vn+2,…,vn+i进行两两组合得到新的元素(vm+1,vn+1),(vm+1,vn+2),…,(vm+j,vn+i)、并将新的元素加入待检查列表c;7.8)对待检查列表c中的元素进行排序。对于图3所示的一个电路结构,其待检查列表c的更新示意图如图6所示。在求解阶段结束后,待查列表c在更新阶段更新。第一次循环中,求解阶段待检查列表c中只有一个元素(v,v),判断结果是p1=sat,p2=sat,p1&p2=sat,起始节点v后有三条分支,沿着每条路径搜索更新后待检查列表c中有三个元素(c32),分别是(12,p),(12,p)和(p,p),前两个元素代表的都是两条从起始节点v分别到12和p的路径,但是两个元素经过的路径不同。在第二次循环中,求解阶段待检查列表c中第一个元素(p,p)的p1&p2=unsat,因为分支搜索都已到达输出节点p,从待检查列表c中删除后没有新的元素产生。本实施例中,步骤7.1)从待检查列表c中选择至少一个当前的元素(v1,v2)时,具体是指根据优化窗口来选择当前的元素(v1,v2)的数量,优化窗口包含指定数量n个被选择的元素,n为大于或等于1的正整数。通过优化窗口的设置,求解阶段和更新阶段不再遍历整个待查列表c,而是只处理优化窗口内的元素,从而将深度优先和广度优先的思想结合起来,避免算法陷入海量的搜索中,加快算法速度。本实施例中,优化窗口n=2,参见图6,求解阶段只对c中前两个元素进行求解,第三个元素未求解。更新阶段也只是对前两个元素进行更新,保留第三个元素,不做任何操作。本实施例中,步骤7.8)对待检查列表c中的元素进行排序的详细步骤包括:7.8.1)根据第一优先顺序对待检查列表c中的元素进行排序,第一优先顺序根据任意元素(v1,v2)中节点v1和v2到起始节点v的距离进行排序,节点v1和v2到起始节点v的距离越远则排序越靠前;7.8.2)根据第二优先顺序对待检查列表c中的元素进行排序,第二优先顺序根据任意元素(v1,v2)中路径p1和p2的节点数量进行排序,路径p1和p2上节点越少排序越靠前。本实施例中,第一优先顺序和第二优先顺序的设置,是因为:节点v1和节点v2离起始节点v越远,离目标输出就越近,越容易找到可满足的结果;路径上节点越少,意味着约束越少,更可能被满足。通过上述方法对待检查列表c中的元素进行排序,能够有效加快得到可满足条件的结果。如图6所示,在第一次循环的更新阶段结束后,待查列表c中有三个元素,标记为①②③,在第二次循环的排序阶段,元素③中v1和v2距离v最远,排在第一位,元素①的两条路径上总节点数小于元素②的两条路径上总节点数,因此元素①排在元素②的前面。本实施例还提供一种组合电路瞬态脉冲重汇聚现象可满足性分析系统,包括计算机设备,计算机设备被编程以执行本实施例组合电路瞬态脉冲重汇聚现象可满足性分析方法的步骤。本实施例还提供一种组合电路瞬态脉冲重汇聚现象可满足性分析系统,包括:读取程序单元,用于读入被分析组合电路的与非图格式文件;节点选择程序单元,用于针对被分析组合电路中随机选取某一起始节点v,使用深度优先的方法搜索所有可能到达的输出节点,并任意选择一个输出节点p;反向节点搜索程序单元,用于从输出节点p出发,使用深度优先的方法逆着电路传播方向反向深度搜索到达起始节点v的所有路径,并将路径上任意节点到起始节点v间隔的最大节点数量以及最少节点数量分别记录为该节点到输出节点p的最大距离和最小距离;列表初始化程序单元,用于初始化建立待检查列表c,待检查列表c中任意元素(v1,v2)的元素结构包含从起始节点v出发同时到达的节点v1和v2、起始节点v分别到节点v1和v2的路径p1和p2、以及路径p1和p2的分别敏化判断结果和同时敏化判断结果,敏化判断结果为满足sat或不满足unsat;将元素(v,v)加入待检查列表c,其中v为起始节点;sat求解处理程序单元,用于对待检查列表c中每个元素添加敏化约束条件,并将元素中从起始节点v出发同时到达的两个节点构成的输入向量及其敏化约束条件利用minisat求解其对应的两条路径的分别敏化判断结果和同时敏化判断结果;结果分析程序单元,用于针对待检查列表c中的任意元素(v1,v2),如果节点v1和v2均为输出节点p、路径p1和p2不相同、且同时敏化判断结果为满足sat,则判定存在满足要求的输入向量可以使起始节点v和输出节点p之间直接有两条可以同时敏化的路径,过程结束并退出;否则,跳转执行列表更新程序单元;列表更新程序单元,用于更新待检查列表c,对待检查列表c中的元素进行排序;列表循环检查单元,用于判断待检查列表c是否为空,若待检查列表c不为空,则跳转执行sat求解处理程序单元,否则,判定不存在满足要求的输入向量可以使起始节点v和输出节点p之间直接有两条可以同时敏化的路径,过程结束并退出。以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本
技术领域
的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1