D算法讲解
A. D算法的介绍
D算法,是拓扑结构测试中最经典的方法,也是最早实现自动化的测试生成算法之一。
B. 解密算法d是加密算法e的逆运算吗
1978年就出现了这种算法,它是第一个既能用于数据加密
也能用于数字签名的算法.它易于理解和操作,也很流行.算
法的名字以发明者的名字命名:Ron Rivest,AdiShamir 和
Leonard Adleman.但RSA的安全性一直未能得到理论上的证明.
RSA的安全性依赖于大数分解.公钥和私钥都是两个大素数
( 大于 100个十进制位)的函数.据猜测,从一个密钥和密文
推断出明文的难度等同于分解两个大素数的积.
密钥对的产生:选择两个大素数,p 和q .计算:
n = p * q
然后随机选择加密密钥e,要求 e 和 ( p - 1 ) * ( q - 1 )
互质.最后,利用Euclid 算法计算解密密钥d,满足
e * d = 1 ( mod ( p - 1 ) * ( q - 1 ) )
其中n和d也要互质.数e和
n是公钥,d是私钥.两个素数p和q不再需要,应该丢弃,不要让任
何人知道.加密信息 m(二进制表示)时,首先把m分成等长数据
块 m1 ,m2,...,mi ,块长s,其中 2^s
C. D算法介绍
从故障模型到D算法:测试电路的自动化之旅
在电路设计的世界里,理解故障模型是关键,它为我们构建测试自动化奠定了基础。现在,让我们聚焦在实际测试问题上:如何对H处的SA1进行精确的测试?
想象一下,通过控制输入端ABC的值,我们可以在输出端K观察到结果。为了测试SA1,需要选定恰当的测试向量。在简单的电路中,手动分析可能足够,但面对复杂电路,D算法就显得尤为重要,它能自动生成测试向量,让测试过程更为高效。
D算法的思想:逻辑与策略
在深入了解D算法之前,我们先定义几个基本概念。D算法中的5个核心值:0, 1, X, D, D(-)。X代表选择哪个值都无影响,D和D(-)分别表示正常和故障状态。测试的首要步骤是激活故障,形成D或D(-),然后通过传播让这些值影响输出,同时合理化其他节点,确保无冲突。D边界(D-frontier)和J边界(J-frontier)是算法的关键点,分别对应输入端的未确定和输出端的已知状态。
D算法巧妙地整合了故障激活、传播、合理化和回溯等步骤,通过电路线路值表格呈现过程,生成测试向量,确保每个选择都经过深思熟虑和检查,确保测试的准确性。
实战演示:复杂电路的D算法应用
让我们通过一个复杂的电路实例,深入理解D算法。这里,输入端abcdhjf和输出端G5是关键。D算法首先激活故障,然后沿着电路路径传播D值,同时通过合理化确定输入端。通过回溯处理可能的冲突,最终当D值抵达输出G5时,对应的输入组合abc...j就是测试向量,如图所示,输出为11111xx。
从D算法到更多优化:ATPG的演变
D算法作为ATPG算法的基石,它的核心思想是逐步揭示故障对电路输出的影响路径。然而,为了寻求更高效的测试策略,后续出现了如PODEM, FAN, CPT等优化算法,它们虽然各有特色,但目标都是为了提升测试效率。作为测试自动化领域的基石,掌握D算法的精髓对于进入DFT行业至关重要。