CN108763660B - 组合电路瞬态脉冲重汇聚现象可满足性分析方法及系统 - Google Patents
组合电路瞬态脉冲重汇聚现象可满足性分析方法及系统 Download PDFInfo
- Publication number
- CN108763660B CN108763660B CN201810432652.0A CN201810432652A CN108763660B CN 108763660 B CN108763660 B CN 108763660B CN 201810432652 A CN201810432652 A CN 201810432652A CN 108763660 B CN108763660 B CN 108763660B
- Authority
- CN
- China
- Prior art keywords
- node
- list
- checked
- sensitization
- path
- 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
Images
Classifications
-
- 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]
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)
- Tests Of Electronic Circuits (AREA)
Abstract
本发明公开了一种组合电路瞬态脉冲重汇聚现象可满足性分析方法及系统,方法的步骤为读入与非图格式文件,随机选取某一起始节点V,使用深度优先的方法搜索并任意选择V可达的输出节点P,计算路径上任意节点到输出节点P的最大距离和最小距离,初始化待检查列表C,将元素(V,V)加入待检查列表C,对待检查列表C中每个元素添加敏化约束条件,并利用SAT求解器求解判断是否存在满足要求的输入向量可以使起始节点V和输出节点P之间直接有两条可以同时敏化的路径,如果不满足则更新待检查列表C,对待检查列表C中的元素进行排序并重新进行SAT求解器求解。本发明具有可分析规模大、精确度更高、计算规模小、计算效率高、算法运行时间短的优点。
Description
技术领域
本发明涉及集成电路的电路分析技术领域,尤其涉及一种快速、准确分析脉冲信号重汇聚现象可满足性的组合电路瞬态脉冲重汇聚现象可满足性分析方法及系统。
背景技术
重汇聚现象在现代集成电路设计中非常普遍。有研究指出,对于一些经典芯片的分析发现,一半以上的单元是扇出单元,芯片输出引脚的限制,扇出的分支必然会发生大量的重汇聚。某个单元产生的瞬态脉冲会延后续多条路径传播,并可能在某一点会合,重汇聚后的脉冲在波形、幅度和脉宽上存在极大不确定性。此外,由于逻辑屏蔽的存在,瞬态脉冲并不能同时沿着所有的路径传播,物理上重汇聚的路径也不一定发生重汇聚现象,与输入向量密切相关。
如图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所示的组合电路的真值表。
a | b | c | x | y |
0 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 0 | 0 |
0 | 1 | 0 | 1 | 1 |
0 | 1 | 1 | 1 | 1 |
1 | 0 | 0 | 1 | 1 |
0 | 1 | 1 | 0 | |
1 | 1 | 0 | 0 | 0 |
1 | 1 | 1 | 0 | 0 |
目前研究重汇聚现象的方法主要有三种,模拟的方法、二叉决策树的方法和概率分析的方法。模拟的方法输入向量随机生成,可能无法覆盖所有能发生重汇聚现象的输入向量。采用概率分析的方法会存在精确度上的问题,以图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中有三个元素(C3 2),分别是(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之间直接有两条可以同时敏化的路径,过程结束并退出。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (6)
1.一种组合电路瞬态脉冲重汇聚现象可满足性分析方法,其特征在于实施步骤包括:
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之间直接有两条可以同时敏化的路径,过程结束并退出。
2.根据权利要求1所述的组合电路瞬态脉冲重汇聚现象可满足性分析方法,其特征在于,步骤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,则记录每个后续分支搜索停止的节点分别为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,则记录每个后续分支搜索停止的节点分别为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);
7.8)对待检查列表C中的元素进行排序。
3.根据权利要求2所述的组合电路瞬态脉冲重汇聚现象可满足性分析方法,其特征在于,步骤7.1)从待检查列表C中选择至少一个当前的元素(V1,V2)时,具体是指根据优化窗口来选择当前的元素(V1,V2)的数量,所述优化窗口包含指定数量N个被选择的元素,N为大于或等于1的正整数。
4.根据权利要求2所述的组合电路瞬态脉冲重汇聚现象可满足性分析方法,其特征在于,步骤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上节点越少排序越靠前。
5.一种组合电路瞬态脉冲重汇聚现象可满足性分析系统,包括计算机设备,其特征在于,所述计算机设备被编程以执行权利要求1~4中任意一项所述组合电路瞬态脉冲重汇聚现象可满足性分析方法的步骤。
6.一种组合电路瞬态脉冲重汇聚现象可满足性分析系统,其特征在于包括:
读取程序单元,用于读入被分析组合电路的与非图格式文件;
节点选择程序单元,用于针对被分析组合电路中随机选取某一起始节点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之间直接有两条可以同时敏化的路径,过程结束并退出。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810432652.0A CN108763660B (zh) | 2018-05-08 | 2018-05-08 | 组合电路瞬态脉冲重汇聚现象可满足性分析方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810432652.0A CN108763660B (zh) | 2018-05-08 | 2018-05-08 | 组合电路瞬态脉冲重汇聚现象可满足性分析方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108763660A CN108763660A (zh) | 2018-11-06 |
CN108763660B true CN108763660B (zh) | 2022-05-03 |
Family
ID=64009794
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810432652.0A Active CN108763660B (zh) | 2018-05-08 | 2018-05-08 | 组合电路瞬态脉冲重汇聚现象可满足性分析方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108763660B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001014298A (ja) * | 1999-07-01 | 2001-01-19 | Nec Corp | 合成及びレイアウトのオーバーヘッドが少ないsatソルバー・アーキテクチャーを得るための方法及び装置 |
CN1450617A (zh) * | 2003-05-21 | 2003-10-22 | 中国科学院计算技术研究所 | 基于电路静态时延特性的冒险检测和消除方法 |
US6714902B1 (en) * | 2000-03-02 | 2004-03-30 | Cadence Design Systems, Inc. | Method and apparatus for critical and false path verification |
CN103093006A (zh) * | 2011-10-28 | 2013-05-08 | 清华大学 | 集成电路最长可测路径选择测试方法及系统 |
-
2018
- 2018-05-08 CN CN201810432652.0A patent/CN108763660B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001014298A (ja) * | 1999-07-01 | 2001-01-19 | Nec Corp | 合成及びレイアウトのオーバーヘッドが少ないsatソルバー・アーキテクチャーを得るための方法及び装置 |
US6714902B1 (en) * | 2000-03-02 | 2004-03-30 | Cadence Design Systems, Inc. | Method and apparatus for critical and false path verification |
CN1450617A (zh) * | 2003-05-21 | 2003-10-22 | 中国科学院计算技术研究所 | 基于电路静态时延特性的冒险检测和消除方法 |
CN103093006A (zh) * | 2011-10-28 | 2013-05-08 | 清华大学 | 集成电路最长可测路径选择测试方法及系统 |
Non-Patent Citations (5)
Title |
---|
An soft error propagation analysis considering logical masking effect on reconvergent path;YOSHIDA S et al.;《IEEE》;20161230;第13-16页 * |
The effiect of reconvergence on SER estination in combinational circuits;LIU B et al.;《IEEE》;20090615;第56卷(第6期);第3122-3129页 * |
基于AIG的双逻辑功耗优化技术;吴世雄;《无线通信技术》;20170315;第26卷(第3期);第43-47页 * |
基于硬件可编程逻辑的SAT求解算法研究与进展;马柯帆 等;《计算机工程与科学》;20160415(第04期);第634-639页 * |
集成电路单粒子效应建模与加固方法研究;刘必慰;《中国博士学位论文全文数据库信息科技辑》;20100415;第I135-14页 * |
Also Published As
Publication number | Publication date |
---|---|
CN108763660A (zh) | 2018-11-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8875082B1 (en) | System and method for detecting and prescribing physical corrections for timing violations in pruned timing data for electronic circuit design defined by physical implementation data | |
US10372856B2 (en) | Optimizing constraint solving by rewriting at least one bit-slice constraint | |
CN101877017B (zh) | 使用快速估计技术的有效的采用穷尽法的基于路径的sta | |
US20110138346A1 (en) | Measure of analysis performed in property checking | |
US20220398373A1 (en) | Multi-stage fpga routing method for optimizing time division multiplexing | |
Pomeranz et al. | An efficient nonenumerative method to estimate the path delay fault coverage in combinational circuits | |
CN110119539B (zh) | 一种组合逻辑电路单粒子翻转效应传播规律的分析方法 | |
CN114510866B (zh) | 用于追踪逻辑系统设计的错误的方法及相关设备 | |
US9965575B2 (en) | Methods and systems for correcting X-pessimism in gate-level simulation or emulation | |
CN104486222B (zh) | 基于蚁群优化算法的小时延缺陷测试关键路径选择方法 | |
CN115062570A (zh) | 一种形式验证方法、装置、设备及计算机存储介质 | |
US8266573B2 (en) | Method and system for test point insertion | |
CN102968515A (zh) | 用于计算集成电路模型的验证覆盖率的方法和设备 | |
CN108763660B (zh) | 组合电路瞬态脉冲重汇聚现象可满足性分析方法及系统 | |
Zheng et al. | Topopart: a multi-level topology-driven partitioning framework for multi-fpga systems | |
US10078720B2 (en) | Methods and systems for circuit fault diagnosis | |
Sivaraman et al. | Primitive path delay fault identification | |
JP3168988B2 (ja) | 順序回路の故障箇所推定方法及び故障箇所推定における候補抽出並びにその重み付け方法更にはその装置 | |
Jürimägi et al. | Application specific true critical paths identification in sequential circuits | |
US7120829B2 (en) | Failure propagation path estimate system | |
US7412677B1 (en) | Detecting reducible registers | |
Tsai et al. | Sensitization criterion for threshold logic circuits and its application | |
Hahanov et al. | Vector Simulation of Logic Faults based on XOR-Relations | |
US7650579B2 (en) | Model correspondence method and device | |
Abolmaali et al. | Efficient critical path identification based on viability analysis method considering process variations |
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 |