Tessent Scan对设计的顺序元素执行可扫描性检查过程。为了使工具将扫描电路插入到设计中,它必须用可扫描的等效元件替换现有的顺序元件。
可扫描的顺序元素通过以下检查:
1.当所有时钟关闭时,顺序元素的所有时钟输入(包括set和reset输入)必须处于非活动状态(捕获转换的初始状态)。
2.顺序元件的每个时钟输入(不包括set和reset输入)必须能够在单个时钟主输入处于活动状态而所有其他时钟处于非活动状态时捕获数据。
默认情况下,Tessent Scan对所有触发器和锁存器执行可扫描性检查
可测试性自然因设计而异。有些功能和设计风格使设计很难(如果不是不可能的话)测试,而另一些功能和设计风格则增强了设计的可测试性。
以下小节将讨论这些设计特征,并描述它们对设计可测试性的影响:
扫描过程中的违规行为
不友好的设计
Testability Issues
Gated Clocks
ICG
Clock dividers
有些设计包含不可控时钟电路;也就是说,内部产生的信号扫描时钟,设置,或复位触发器。如果这些信号仍然不可控,则Tessent Scan不认为这些信号控制的序列元素是“可扫描的”。因此,它们会在扫描移位过程中干扰顺序元件。因此,系统无法将这些元素转换为扫描。
Pulse Generators
脉冲发生器是一种电路,它在有源时在输出端产生脉冲。
当设计人员在时钟路径中使用这种电路时,无法创建稳定的导通状态。如果没有稳定的导通状态,故障模拟器和测试生成器就无法将数据捕获到扫描单元中。脉冲发生器也可用于写入控制电路,这妨碍了RAM测试。
JTAG-Based Circuits
根据IEEE标准1149.1的定义,边界扫描电路会导致内部扫描结构和ATPG过程的复杂环境。
边界扫描电路的两个主要问题是:1。将边界扫描电路与内部扫描电路连接;确保在ATPG期间边界扫描电路设置正确。
RAM and ROM Test Overview
包含RAM和ROM的测试设计的三个基本问题是在ATPG过程中对行为建模、通过规则检查以启动测试和检测故障。
RAM / ROM支持
该工具将ROM视为严格的组合门。一旦初始化了ROM,生成测试就是一项简单的任务,因为ROM的内容不会改变。然而,测试RAM是一个更大的挑战,因为向RAM写入数据和从RAM读取数据的顺序行为。
该工具支持以下通过RAM传播故障影响的策略:
只读模式:工具假定在扫描测试之前对RAM进行了初始化,并且在扫描期间不能更改此初始化。
Pass_through模式:该工具有两种独立的直通测试模式:
•静态直通-为了检测数据输入线路上的故障,必须将已知值写入某个地址,然后从该地址读取该值,并将效果传播到观测点。
•动态直通-这种测试技术类似于静态直通测试,除了写时钟的一个脉冲同时执行写和读操作(如果写和读控制线是互补的)
Common Read and Clock lines
Ram_sequential仿真支持读线与扫描时钟共用的ram。该工具假设读取和捕获操作可以同时发生,并且捕获到扫描单元中的值是从RAM中读出的值的函数。
如果从RAM中捕获数据的时钟与用于读取的时钟相同,则该工具会发出C6时钟规则违规。
如果从RAM捕获数据的时钟与用于读取的时钟不同,则可能需要打开多个时钟来检测故障。
Common Write and Clock Lines
该工具支持常见的写线和时钟线
Basic ROM/RAM Rules Checks
重要的是,该工具提供基本的ROM/RAM规则检查。
规则检查器对ram和rom执行以下审计:
•检查程序读取RAM/ROM初始化文件并检查它们是否有错误。
•给定的RAM/ROM实例名必须包含一个RAM或ROM门。
•如果您定义了写控制线,并且电路中没有RAM门,则会发生错误情况。要纠正此错误,请删除写控制行。
•当写控制线关闭时,RAM设置和复位输入必须关闭,所有写端口的写使能输入必须关闭。
•一个RAM门不能传播到另一个RAM门。如果任何RAM未能通过此检查,则不能使用动态传递。
重要的是,该工具提供基本的ROM/RAM规则检查。
规则检查器对ram和rom执行以下审计:
•一个定义的扫描时钟不能直接传播(未被扫描或非扫描单元破坏)到RAM门。
•该工具检查写和读控制线连接到所有RAM门的地址和数据输入
•使用边缘触发属性的RAM也必须将read_off属性设置为保持。
•如果RAM规则检查识别出至少一个工具可以在只读模式下测试的RAM,则将RAM测试模式设置为只读。
•读控制线必须在load_unload过程的0时刻关闭。
Incomplete Designs
ATPG工具和Tessent Scan可以读取不完整的Verilog设计,因为它们能够生成黑盒子。Verilog解析器可以黑盒任何未在ATPG库或设计网表中定义的实例化模块或实例。
该工具为每个黑盒模块发出一条类似于以下内容的警告消息:
WARNING:Following modules are undefined:
ao21
and02
Use “add_black_box -auto” to treat these as black boxes.
Multiple Clock Sources for DFF
Make Latch Transparent
当时钟/使能引脚处于活动状态并且处于写透(透明)模式时,锁存具有组合行为。如果锁存器不可扫描或不透明,ATPG工具将把锁存器视为X发生器,从而导致故障覆盖损失。
Asynchronous Sets and Resets
Negative-edge and Positive-edge Scan Chains
在同一扫描链上具有负边缘和正边缘dff可能导致错误的扫描移位操作。创建扫描链时,请遵循以下规定:
一个扫描链应该只包含所有的负边缘或正边缘触发dff。
如果不满足上述条件,则应将负边缘dff放置在扫描链的开头。
当扫描链跨越时钟域时,必须插入锁定锁存器
Lockup latch used
Avoid Feedback Loop
组合循环在设计中引入了顺序行为。组合ATPG工具在为这种设计无法生成扫描测试,因此,导致较低的故障覆盖率
Avoid Tri-State Devices
三州总线是另一个可测试性挑战。三状态总线使能故障可能导致以下两种问题之一,即有多个活动驱动器,或总线浮动,即没有活动驱动器。这两种情况中的任何一种都可能导致总线上出现不可预测的逻辑值,从而允许未检测到使能线路故障。
Non-Scan Cell Handling
在规则检查和学习分析期间,ATPG工具学习所有不属于扫描电路的状态元素的行为。这个学习涉及到非扫描元素在扫描加载操作后的行为。作为学习分析的结果,ATPG工具对每个非扫描细胞进行分类。
ATPG Handling of Non-Scan Cells
ATPG工具将未扫描细胞置于以下类别之一:
TIEX:在此类别中,ATPG工具认为触发器或锁存器的输出在测试期间始终为X值。这种情况可能会阻止对许多故障的检测。
TIE0:在此类别中,ATPG工具认为触发器或锁存器的输出在测试期间始终为0值。这种情况可能会阻止对许多故障的检测。
TIE1:在此类别中,ATPG工具认为触发器或锁存器的输出在测试期间始终为1值。这种情况可能会阻止对许多故障的检测。
透明(组合):在此类别中,非扫描单元是锁存器,并且锁存器的行为是透明的。当锁存器透明地工作时,它实际上充当缓冲区——将数据输入值传递给数据输出。TLA仿真门模拟了这种行为。
顺序透明:顺序透明扩展了透明的概念,包括非扫描元素,这些元素可以在自然透明发生的同一点强制表现为透明。在这种情况下,非扫描元件可以是触发器、锁存器或RAM读取端口。如果给定一系列事件,它可以捕获一个值并将该值传递给其输出,而不会干扰关键扫描单元,则非扫描单元表现为顺序透明。
时钟顺序:如果一个非扫描单元遵循标准的扫描时钟释放——也就是说,如果该单元在所有时钟都关闭的情况下保持其值——工具将其视为一个时钟顺序单元。在这种情况下,在工具加载扫描链之后,它强制主输入并多次脉冲时钟/写/读行(基于非扫描单元的顺序深度),以设置测试的条件。然后是一个正常的观察周期。
Wrapper for Non-scan Module/Hard Macro
非扫描模块的故障覆盖率较低,因为模块内部的逻辑难以控制和观察。因为ATPG工具很难通过非扫描模块传播故障。
扫描dff可以插入到逻辑和非扫描模块的输入/输出之间。在ATPG过程中,这些扫描dff用于控制和观察点,并隔离非扫描模块。
Redundant Logic
在大多数情况下,您应该避免使用冗余逻辑,因为具有冗余逻辑的电路会导致可测试性问题。首先,对冗余故障进行分类需要大量的分析工作。
此外,冗余的错误,就其本质而言,是不可测试的,因此降低了您的错误覆盖率。
有些电路需要冗余逻辑。例如,消除竞争条件的电路或在设计中建立高可靠性的电路。在这些情况下,您应该添加测试点以在测试过程中删除冗余。