Sequential Circuits via ATPG论文阅读笔记)
摘要
作者提出了CLIC-A方法保护电路。
ATPG,Automatic Test Pattern Generation,自动测试向量生成是在半导体电器测试中使用的测试图形向量由程序自动生成的过程。测试向量按顺序地加载到器件的输入脚上,输出的信号被收集并与预算好的测试向量相比较从而判断测试的结果。ATPG有效性是衡量测试错误覆盖率的重要指标。
IC,integrated circuit,集成电路。
存疑:oracle的含义。
介绍
logic locking,逻辑锁定,固定电路模块。(存疑)
电路的状态是一个有限状态机(FSM),sequential (non-scanned) logic locking,顺序逻辑锁定,使用特定输入将复位状态转到工作状态。combinational (scanned) logic locking,组合逻辑锁定,在输入错误时会有一个额外的输入纠正输出(存疑:不会改变电路状态吗?会根据错误输入的类型而使用不同的额外输入从而导致输出不同? 还是两个输入共同决定电路状态而产生输出?)。
CLIC-A,Characterization of Locked ICs via ATPG,使用ATPG检测锁定IC的特征(或是输入输出故障?)。
作者提出CLIC-A来表征IC锁定强度。
相关工作
顺序逻辑锁定
被分为两类,一种使用入口FSM,一种是工作电路和混淆电路混合。
HARPOON,Hardware Protection through Obfuscation of Netlist,使用有入口的FSM保护IC。
存在的攻击方式
TimingSAT攻击,输入错误输入会导致时序问题。将电路展开为N个时间帧,使用TimingSAT攻击电路,捕获电路输出。
oracle,在不同IC中定义不同。在锁定扫描电路中,oracle是锁定电路中输入正确序列的操作;在应用入口FSM的顺序锁定电路中,oracle是需要正确输入序列的锁定非扫描电路;在应用工作电路和混淆电路相混合的锁定电路中,oracle是不确定的。
CLIC-A方法
CLIC-A方法通过错误分析来确定关键序列。
ILA ATPG
ILA,iterative logic array,迭代逻辑阵列。将IC按照时间序列展开,时间早的IC的输出为紧接其后的输入,从而模拟时钟循环。
Fault Dropping
通过CLIC-A方法检测每一时钟周期IC出现的故障,并对其进行分类:
DT:故障被激活(意思是电流通过故障之处了?),且至少影响了一个主要输出(主要输出是什么,是IC电路的向外的输出吗?)。
AU:由于ATPG的限制,不能测试的故障。
UC:没有激活的故障。
UO:故障没有产生影响。
UU:故障不影响主要输出。
RE:ATPG无法检测到的故障。
UDi:未检测到的故障,包括CLIC-A检测中第 i 时间帧的IC中未表现出的故障。UD=UU+UC+AU。
16,17行代码:将当前第 i 个时间帧之前的得到的UO、UD故障添加到当前时间帧的IC中。
当某一序列连续出现多次后,算法停止。
关键序列生成
test:all_tests数组中某一测试序列。
test[j]:在时间帧为j的IC中的test测试序列。(存疑)
22-27:记录最高频率的序列。