扫描测试步骤

    首先用扫描单元(scan cell)替换触发器(flip-flop)创建控制和观测点,将扫描触发器连接在一起形成扫描链,利用这些扫描链,生成符合条件的测试向量:1)在指定节点设置成指定值(控制);2)传播结果使其可以被测量到(观测)。

扫描触发器/扫描单元

 当前的标准模型

     多路复用器(MUX)选择数据输入:D端用于正常模式(功能模式),scan in(SI)用于扫描模式。scan_enable(SE)选择工作模式。

基本扫描测试

 测试设置(Test setup)

    初始化设计,设置状态进入测试模式 (只有测试开始时需要)

 移入/移出数据(load/unload)-shift模式

    连续地移动数据进入扫描链,测试结果被移出

 捕获(capture)

    使用已知值(scan和PI)定义的激励,允许组合电路在功能模式下工作,测量输出(PO),把测试结果记录进扫描链;重复移入、移出(shift)/捕获(capture)直到测试完成。

    基本扫描测试包含以下事件:1)加载数据进入扫描链(需要很多个循环);2)Force PI(primary input);3)测量PO(primary output);4)pulse capture clock;5)将scan cell的值移出,同时加载下一个向量。

    

 load:给扫描单元加载值

    1.force SE to "1"(scan enable)

    2.force SI(scan chain input pin)

    3.pulse shift clock

    4.重复步骤2和3直到所有scan cell都被加载值

    load过程演示(如下图)

  

    force normal primary inputs(func 端口给值),force SE to "0"(退出shift模式),现在内部所有pin/cell的值都可以被预测了。

force PI过程演示(如下图)

measure  primary output(PO)过程演示(如下图)

    measure "1"on Y。

pulse capture clock过程演示(如下图)

    将func inputs的值加载进扫描单元来观察电路状态。

load/unload示意图(如下图)

    在串行加载过程中,新的数据被加载移进扫描链中(shift in),之前的内部电路状态也被串行地移出来(shift out),扫描单元之前的内部状态(111)在scan out这里被测量。

总结

 控制

    给扫描链加载已知的值,把内部节点设置成已知状态;把primary input(PI,func输入端口)设置成已知的值。

 观测

    测量primary output(PO,func输出端口),与期望值比较;把扫描链的值移出,与已知的期望值比较。

 仿真通过/失败(pass/fail)

    如果期望值等于设计扫描测量值,测试通过;如果期望值不等于扫描测量值,测试失败。

参考

mentor:tessent  scan and ATPG学习手册

    

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐