1.一种面向门级电路的精确快速敏感性单元定位方法,其特征在于,所述方法包括以下步骤:步骤1:解析网表,相关量初始化并生成满足均匀非伯努利序列分布特点的输入向量,过程如下:
1.1)读取网表,构建电路的完整性链表LC,提取电路的原始输入端数PI及电路的单元个数Ng,其中完整性链表LC指链表中任意节点的输入端信息均可从该节点的前序节点的输出端信息中提取得到;
1.2)初始化序列长度n,然后随机产生规模为PI×n的二进制输入向量矩阵input_vector;
1.3)修正input_vector使其满足均匀非伯努利序列分布特点;
步骤2:利用剪枝技术生成敏感性电路单元集合,过程如下:初始化循环变量i=1,定义且初始化规模为1×Ng的数组Sensitive_times,用于存储各电路单元被标识为敏感性单元的次数;
2.2)从input_vector中读取第i个输入向量;
2.3)利用剪枝技术,返回在当前第i个输入向量下所对应的敏感性电路单元集合gate_set;
2.4)遍历gate_set,并给Sensitive_times中具有相同编号的单元的取值分别加1;
2.5)若i
2.6)定义并初始化变量M,用于表示需要定制的敏感性电路单元数目;
2.7)返回Sensitive_times中取值最大的前M个敏感性电路单元集合Sensitive_set;
步骤3:基于基准化分析策略,对Sensitive_set中的敏感性电路单元实施定位,过程如下:
3.1)更新输入向量矩阵input_vector,并初始化循环变量j=1,r=1,s=0;
3.2)初始化规模为1×M的基准序列ST={0},再通过随机方式从Sensitive_set中选取第t个单元为基准单元,并执行ST(t)=1,其中t∈{1,2,…,M};
3.3)基于均匀非伯努利序列产生规模为1×M的电路敏感性单元序列SG,其中SG(k)=
1,其它元素为0,k∈{1,2,…,M};
3.4)从input_vector中提取第j个输入向量,并利用SCA算法分别计算序列SG与ST所对应的电路敏感性fit_SG与fit_ST;
3.5)通过fit_SG与fit_ST的差值运算获取序列SG与ST的敏感性增量Δfit,并将该结果存入矩阵RF的第r行与第k列RF(r,k),且执行s=s+1;
3.6)若s=M,则执行r=r+1,s=0,并转至步骤3.7);否则,直接转至步骤3.7);
3.7)若j>n,则转至步骤3.8);否则,执行j=j+1,并转至步骤3.3);
3.8)利用式(1)计算第h个电路单元的平均敏感性增量avg_fit(h),其中,h=1,2,…,M,sum(RF(:,h))指求取矩阵RF第h列的和;
avg_fit(h)=sum(RF(:,h))/(n/M) (1)
3.9)根据步骤3.8)所得结果的大小次序按降序输出Sensitive_set中所对应的电路单元。