Mentor-dft 学习笔记 day1--overview部分

发布于:2022-12-06 ⋅ 阅读:(200) ⋅ 点赞:(0)

一.dftoverview(仅仅是前瞻,我会按照mentor手册的顺序更新)

(1)What is Design-for-Test?

 测试最本质的目的是如何简单的设计一个程序可完全的测试成品的设计的质量。但是对于传统的工艺来说,设计和测试的流程是分开的,设计阶段一般是在设计的周期结束。但是对于现在的design flows来说,测试在更早的阶段融合(merge)在设计中,被称为 design-for-test process flow。
(Testable circuitry is both controllable and observable. In a testable design, setting specific values on the primary inputs results in values on the primary outputs that indicate whether or not the internal circuitry works properly. )
controllable 和observable在设计测试中是灵魂,所以现在大部分测试都在使用激励的手段,来进行输入输出前后的信号对比来达到目的
(2) DFT Strategies
对于high level的测试,总共分为两个部分,ad hoc dft 和 structured dft
1.ad hoc dft
ad-hoc dft 最大的特征就是你无需对内部结构进行大的修改,加入一些特殊的技术
Minimizing redundant logic(冗余逻辑)
Minimizing asynchronous logic(异步逻辑)
Isolating clocks from the logic(时钟和逻辑分离)
Adding internal control and observation points(增加了内部控制和观察的点)
2. Structured DFT
(Structured DFT provides a more systematic and automatic approach to enhancing design
testability.)
为了提高电路的可控性和可观测性,最常见的方法修改设计内部顺序电路(scan design),还可以设置内部自检(bist),还可以添加边界扫描(boundary sacn)提高性能。
#插一句我自己的感想 可能我们一味的去追求错误覆盖率而忘记了最本质的东西,其实软件的效率才是最关键的
(3) Top-Down Design Flow with DFT

 这个流程是自上而下典型的asic设计流程

创建初始的rtl设计---(model sim)verilog描述/(Design Architect)原理图----model sim验证模拟

#在此过程中,看到灰色图的两个格子i,上面是插入扫描链的过程,下面灰色的格子是通过atpg工具形成向量的过程,这个过程后面会详细描述,这个部分仅仅是overview

#手册提醒你,尽量在早期和供应商核实具体的dft策略(单链和多链/几个core......)来保障其正常运行

二.Scan Design Overview

我觉得这段话写的非常好,放上去大家一起欣赏欣赏(

The goal of scan design is to make a difficult-to-test sequential circuit behave (during the testing
process) like an easier-to-test combinational circuit. Achieving this goal involves replacing
sequential elements with scannable sequential elements (scan cells) and then stitching the scan
cells together into scan registers, or scan chains. You can then use these serially-connected scan
cells to shift data in and out when the design is in scan mode.)
#内部扫描的目标是增加设计电路的可测试性,让难以测试的时序电路变为 easier-to-test combinational circuit。如果想实现这个目标,需要更换序列元素和可扫描序列,串行链接

观察扫描前的版本,设计有abc三个输入,以及out1,out2两个输出,我们很难初始化一个已知状态,导致我们很难控制内部的输入输出观察设计

所以在添加扫描电路后,加入了两个附加输入 sc_in 和 sc_en,以及一个附加输出sc_out,扫描内存元素变为原始内存元素,在shift的时候(sc_en处于活跃状态时)从sc_in读取数据

具体做法:

1. Enable the scan operation to allow shifting (to initialize scan cells).#允许移位初始化扫描cell
2. After loading the scan cells, hold the scan clocks off and then apply stimulus to the primary inputs.#加载后,对主要输入施加激励
3. Measure the outputs.
4. Pulse the clock to capture new values into scan cells.#将捕捉的新值放到扫描单元
5.Enable the scan operation to unload and measure the captured values while simultaneously loading in new values via the shifting procedure (as in step 1). #卸载捕获的值再通过shifting procedure加载新的值

三.About Scan Design Methodology

 这就是扫描链的一种设计方法,将内存元素穿不替换为可扫描的等价物,然后链接到扫描链中,如2-2图片所示,黑色矩形为扫描元素,连接他们的线就是扫描路径(一种扫描设计),所有的存储单元全在扫描路径上,圆形方框为电路组合(具体信息下面再讲)

四.About Wrapper Chains

扫为解决设计大且复杂,atpg无法预测的问题,hierarchical techniques(分层技术)出现。拆分设计块的数量,将可控性可观察性器件添加到设计链中,将低控制性外部模块转化为可扫描的时序单元,具体看图

 如2-3 无法控制从设计阶段控制输入(Because these lines are not directly accessible 
at the design level, the circuitry controlled by these pins can cause testability problems for the 
design.)说人话就是还有两个pin,测试会导致测试混乱

2-4 既然他不允许,那么清高,那直接用强!加入装饰链,提高覆盖率,减少运行时间

#详细内容我之后再将,仅仅是overview

#注释 仅仅直连第一个模块,让不可控的主输入和主输出成为装饰链的一部分

#mentor 建议 可以将 scan 和wrap 合在一起使用减少时间

欲知后事如何,且听下回分解