要显示争用检查的当前状态,请使用report_environment命令。检查总线争用时,可以使用以下命令:
Z-State Handling Setup
内部Z处理指定了当三态网络馈送内部逻辑门时如何处理高阻抗状态。外部处理指定了如何处理电路主输出处的高阻抗状态,要设置内部或外部Z处理,请在设置模式提示符下使用set_Z_handling命令。对于内部三态驱动器网络,可以将高阻抗处理指定为0状态、1状态和未知状态。
对于不能处理高阻态,则输入:SETUP> set_z_handling external X
The ATPG Learning Process
ATPG工具在从设置到其他系统模式的转换过程中对电路进行广泛的学习。这种学习减少了ATPG期间所需的工作量。该工具允许控制此学习过程。例如,该工具允许您关闭学习过程或更改分析中的工作量。可以使用set_static_learning命令为组合逻辑完成此操作。默认情况下,静态学习处于启用状态,模拟活动限制为1000。此数字确保了分析工作和过程时间之间的良好平衡。如果您希望ATPG工具执行最大程度的电路学习,则应将活动限制设置为设计中的门数。
Capture Handling Setup
例如,检查图8-4的设计。它显示了一个未通过C3规则检查的设计片段。
规则检查器标记C3规则,因为Q2在Q1使用的相同时钟的后沿上捕获数据。ATPG工具将顺序门Q1视为数据源,将Q2视为数据宿主。默认情况下,该工具模拟q2从q1捕获旧数据行为很可能与电路的实际操作方式不符。在这种情况下,C3违规应提醒模拟可能与实际电路操作不同。为了在这些情况下更灵活地处理捕获,该工具提供了一些更改默认模拟行为的命令。例如,set_split_capture_cycle命令会影响工具是否在时钟边缘之间更新模拟数据。当设置为“开”时,该工具能够确定后缘和水平敏感状态元素的正确捕获值,尽管存在C3和C4违规。如果出现这些冲突,请发出set_split_capture_cycle ON命令。可以为级别敏感门或后缘门选择修改的捕获处理。对于这些类型的门,您可以选择是希望模拟使用旧数据、新数据还是X值。set_capture_handling命令全局更改所有C3和C4失败的指定类型的门。如果您想有选择地更改捕获处理,可以使用add_capture_handling命令。可以指定要捕获的数据类型,指定的门是源点还是汇点,以及要应用特殊捕获处理的门或对象(由ID号、管脚名称、实例名称或单元模型名称标识)。
在启用瞬态检测的情况下,如果零宽度事件导致状态元素的状态发生变化,该工具会将状态元素设置为X值。这是调用工具时的默认行为。
扫描组包含一组由单个测试过程文件控制的扫描链。在定义引用它的扫描链组之前,必须创建此测试过程文件。 要定义扫描组,可以使用add_scan_groups命令。这些命令也很有用:
How to Add Constraint to Scan Cells
该工具可以在ATPG过程中将扫描单元约束为恒定值(C0或C1),以增强可控性或可观测性。此外,这些工具可以将扫描单元限制为不可控制(CX)、不可观察(OX)或两者兼而有(XX),可以通过引脚路径名或扫描链名称加上扫描单元在扫描链中的位置来识别扫描单元。要向扫描单元添加约束,请使用add_cell_constraints命令。要从特定扫描单元中删除约束,请使用delete_cell_constraints命令。可以使用report_cell_constraints报告所有定义的扫描单元约束。如果指定管脚路径名,它必须是直接连接(仅通过缓冲器和反相器)到扫描存储元件的输出管脚的名称。在这种情况下,该工具将扫描存储元件设置为一个值,使得引脚处于约束值。如果管脚路径名未解析为扫描存储元件,则会出现错误情况。如果按链和位置识别扫描单元,则扫描链必须是当前定义的扫描链,且位置是有效的扫描单元位置号。最靠近扫描输出引脚的扫描单元位于0。该工具将扫描单元的主存储元件限制为选择的值。如果主元件和扫描单元输出之间有反相器,它们可能会将输出值反相。
Nofault Settings
在设计中,可能有一些实例不应在故障列表中包含内部故障。您可以使用无故障设置标记这些部件。要添加nofault设置,可以使用add_noffaults命令。要删除指定的nofault设置,请使用delete_nofults命令。使用report_noffaults命令报告所有指定的无故障设置。可以指定列出的管脚路径名或边界上和命名实例内的所有管脚不允许故障包含在故障列表中。
Fault Simulation
以下小节讨论了使用ATPG工具设置和运行故障模拟的过程。故障模拟在分析模式下运行,无需额外设置。使用以下命令进入分析模式:
SETUP> set_system_mode analysis
如果希望将故障类型更改为toggle, pseudo stuck-at (IDDQ), transition, path delay, or bridge,可以发出set_fault_type命令。无论何时更改故障类型,应用程序都会删除当前故障列表和当前内部模式集。
Faults List Creation
在运行故障模拟之前,您需要从中运行活动故障列表。可以使用add_faults命令创建故障列表。通常,将使用以下所有故障创建此列表:> add_faults -all
Good-Machine Simulation Preparation
良好的机器模拟在分析模式下运行,无需额外设置。使用以下命令进入分析模式:
Tool Setup for Random Pattern Simulation
可以在分析系统模式下运行随机模式模拟。如果尚未处于分析系统模式,请使用set_system_mode命令,如以下示例:SETUP> set_system_mode analysis
Faults List Addition
可以生成故障列表并消除所有不可测试的故障。要生成故障列表并消除所有不可测试的故障,请同时使用add_faults和delete_fault命令,如下例所示:
1.输入“simulate_patterns-source random”命令。
2.模拟运行后,使用report_faults命令显示未检测到的故障。
3.一些未检测到的故障可能是多余的。在未检测到的故障上运行ATPG,以识别那些冗余故障。