Mentor-dft 学习笔记 day19-Tool Behavior Setup&Scan Data Definition&Good/Fault Simulation

发布于:2022-11-04 ⋅ 阅读:(1807) ⋅ 点赞:(1)
How to Tie Undriven Signals
在设计中,可能有几个未驱动的网络,这些网络是不与固定值绑定的输入信号。当您读取网表时,应用程序会为模块中的每个未驱动网或浮动引脚发出警告消息。ATPG工具必须在ATPG期间“虚拟”地将这些引脚绑定到固定的逻辑值。 如果未指定值,应用程序将使用默认值X,您可以使用set_tied_signals命令更改该值。set_tied_signals命令为被测电路的每个模块中未使用add_tied_signals命令指定的每个命名浮动网络或引脚指定一个固定值。 要添加绑定信号,请在设置模式提示符下使用add_tied_signals命令。 在处理未驱动信号时,delete_tied_signals、report_tied_signals和set_tied\usignals命令非常有用。
delete_tied_signals — Deletes the current list of specified tied signals.//删除
report_tied_signals — Displays current list of specified tied nets and pins.//展示
set_tied_signals — Sets default for tying unspecified undriven signals.//赋值
Primary Input Constraints
该工具可以在ATPG过程中约束主要输入。 要向特定接点添加接点约束,请使用add_input_constraints命令。您可以指定一个或多个主输入管脚路径名以约束为以下格式之一:常数0(C0)、常数1(C1)、高阻抗(CZ)或未知(CX)。
How to Mask Primary Outputs
设计可能包含某些没有选通功能的主输出引脚。或者,在类似的情况下,您可能希望通过观察来掩盖某些输出,以进行设计权衡实验。 在这些情况下,可以使用add_output_mask命令屏蔽这些主要输出。
Slow Pad Addition
在高速运行测试时(可能用于路径延迟测试模式),假设从内部寄存器通过I/Opad返回到内部寄存器的环回路径可以在单个时钟周期内稳定并不总是安全的。假设环回路径在单个时钟周期内稳定,可能导致验证ATPG pattern的问题,或者可能导致测试期间的产量损失。 为了防止此环回引起的问题,请使用add_input_constraints命令逐个引脚修改双向I/O引脚的模拟行为。 对于慢速焊盘,I/O焊盘的模拟会发生变化,以便在主输入未被驱动时,传播到内部逻辑的值为X。这将导致根据环回值捕获所有观测点的X。
delete_input_constraints — Resets the specified I/O pin back to the default simulation
mode.
report_input_constraints — Displays all I/O pins marked as slow
Bus Contention Checks
如果在三态驱动器总线和多端口触发器和锁存器上使用争用检查,该工具将拒绝(来自内部测试模式集)ATPG进程生成的可能导致总线争用的模式。 要设置争用检查,可以使用set_contention_check命令。 默认情况下,争用检查是打开的,开关-Warning和-Bus也是打开的,这会导致工具检查三态驱动程序总线,并在模拟期间发生总线争用时发出警告。

要显示争用检查的当前状态,请使用report_environment命令。检查总线争用时,可以使用以下命令:

analyze_bus — Analyzes the selected buses for mutual exclusion.
set_bus_handling — Specifies how to handle contention on buses.
set_driver_restriction — Specifies whether only a single driver or multiple drivers can
be on for buses or ports.
report_bus_data — Reports data for either a single bus or a category of buses.
report_gates — Reports netlist information for the specified gates.
 
Multi-Driven Net Behavior Setup
使用set_net_dominance命令指定三态网络上总线争用的故障影响时,您将使该工具能够检测连接到三态总线的三态驱动器的启用线上的一些故障。 在设置模式提示下,使用set_net_dominance命令。 总线争用故障影响的三种选择是And、Or和Wire(未知行为),默认为Wire。Wire选项表示任何不同的二进制值都会导致X状态。Tessent Shell参考手册中set_net_dominance描述的参考页面上显示了每种类型的总线争用故障影响的真值表。 如果有一个具有多个非三态驱动程序的网络,当其驱动程序具有不同值时,您可能需要指定这种类型的网络的输出值。使用set_net_resolution命令,可以将网络的行为设置为And、Or或Wire(未知行为)。默认的“导线”选项要求所有输入处于相同状态,以创建已知的输出值。除非将行为设置为And(有线和)或or(有线或),否则可能会导致测试覆盖率的损失。要设置多驱动程序网络行为,请在设置模式提示符下使用set_net_resolution命令。
Z-State Handling Setup
如果您的测试仪能够区分高阻抗(Z)状态,您应该使用Z状态进行故障检测,以提高测试覆盖率。如果测试仪能够区分高阻抗值和二进制值,则某些故障可能会被检测到,否则 至多可能被检测到(pos_det)。这种能力对于三态驱动器的使能线电路中的故障检测尤其重要。 ATPG工具的默认设置是将Z状态视为X状态。如果要在模拟期间计算Z状态值,可以发出set_Z_handling命令。

内部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

ATPG工具在模拟期间仅评估一次门,模拟顺序门之前模拟所有组合门。如果设计模型通过了设计规则检查,特别是规则C3和C4,则此默认模拟行为与同步设计的正常行为密切相关。但是,如果您的设计未通过这些检查,则应检查情况,以查看设计是否会受益于不同类型的数据捕获模拟。

例如,检查图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号、管脚名称、实例名称或单元模型名称标识)。

Transient Detection Setup
Y 可以设置该工具如何处理状态元素的时钟线上的零宽度。该工具允许您使用set_transient_detection命令打开或关闭瞬态检测。 在瞬态检测关闭的情况下,DRC模拟将状态元素上的所有事件视为有效。 因为模拟器是一个零延迟模拟器,所以DRC有可能模拟具有理想行为的零宽度单稳态电路,这在硅中很少匹配。该工具将单稳态电路产生的零宽度输出脉冲视为其他电路的有效时钟事件 状态元素。因此,状态元素改变状态,尽管它们的时钟线没有显示时钟事件。

在启用瞬态检测的情况下,如果零宽度事件导致状态元素的状态发生变化,该工具会将状态元素设置为X值。这是调用工具时的默认行为。

Scan Clocks Definition
该工具将任何信号捕获到序列元素(如系统时钟、设置和重置)的信号视为扫描时钟。因此,为了利用扫描电路,需要通过将这些“时钟信号”添加到时钟列表中来定义它们。 必须为添加到时钟列表的管脚指定关闭状态。关闭状态是锁存器的时钟输入不活动的状态。对于边缘触发设备,关闭状态是时钟捕获转换之前的时钟值。可以使用add_clocks命令将时钟引脚添加到列表中。delete_clocks命令从时钟列表中删除指定的管脚。report_clocks命令所有定义的时钟引脚。 可以将时钟引脚限制为关闭状态,以抑制其在ATPG过程中用作捕获时钟。约束值必须与时钟关闭状态相同,否则会发生错误。如果将等效管脚添加到时钟列表中,其定义的所有等效管脚也会自动添加到时钟表中。
Scan Groups Definition
扫描组包含一组由单个测试过程文件控制的扫描链。在定义引用它的扫描链组之前,必须创建此测试过程文件。 要定义扫描组,可以使用add_scan_groups命令。这些命令也很有用:
delete_scan_groups — Deletes specified scan groups and associated chains.//删除
report_scan_groups — Displays current list of scan chain groups.//报告
Scan Chains Definition
定义扫描组后,可以定义与组关联的扫描链。对于每个扫描链,必须指定分配给链的名称、链组的名称、扫描链输入引脚和扫描链输出引脚。
delete_scan_chains — Deletes the specified scan chains.
report_scan_chains — Displays current list of scan chains.
Clock Restriction Setup
可以指定是否允许测试生成器创建同时激活多个非等效捕获时钟的模式。 要设置时钟限制,可以使用set_clock_restriction命令。

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

Fault Type Designation
默认情况下,故障类型stuck-at 。如果想模拟模式来检测卡滞故障,则不需要发出此命令。

如果希望将故障类型更改为toggle, pseudo stuck-at (IDDQ), transition, path delay, or bridge,可以发出set_fault_type命令。无论何时更改故障类型,应用程序都会删除当前故障列表和当前内部模式集。

Faults List Creation

在运行故障模拟之前,您需要从中运行活动故障列表。可以使用add_faults命令创建故障列表。通常,将使用以下所有故障创建此列表:> add_faults -all

Pattern Source Designation
要使用外部模式源,可以使用read_patterns命令。ATPG工具可以使用选定数量的随机模式执行模拟。可以让工具对选定的模式源执行模拟和测试生成,并可以随时更改。
set_capture_clock — Specifies the capture clock for random pattern simulation.
set_random_clocks — Specifies the selection of clock_sequential patterns for random
pattern simulation.
set_random_patterns — Specifies the number of random patterns to be simulated
Fault Simulation Execution
可以使用simulate_patterns命令执行故障模拟过程。对于不同的模式源,可以根据需要多次重复此命令。 这些命令用于故障模拟:
simulate_patterns — Executes the fault simulation process.
report_faults — Displays faults for selected fault classes.
report_statistics — Displays a statistics report.
Undetected Faults List Writing
在对外部模式集执行故障模拟之后,需要保存故障列表。然后,可以使用此列表作为ATPG的起点。 要保存故障,可以使用write_faults命令。  要重新读取ATPG的故障,请转到分析模式(使用set_system_mode)并输入read_faults命令。
Fault Simulation Debugging
T要调试故障模拟,可以使用add_lists和set_list_file命令编写故障machine和正常machine之间不同的引脚值列表。add_lists命令指定要报告的管脚。set_list_file命令指定要在其中放置选定接点的仿真值的文件的名称。默认行为是将管脚值写入标准输出。
Circuit and Fault Status Reset
可以将故障列表中所有可测试故障的电路状态和状态重置为未检测。 这样可以使用当前故障列表重新运行故障模拟,这不会导致删除当前内部模式集。 要重置当前故障列表中的可测试故障,请输入reset_state命令。
Good-Machine Simulation
给定测试向量,您可以使用良好的machine模拟来预测所有电路输出的良好(无故障)电路中的逻辑值。以下小节讨论了使用ATPG工具在现有手动或ATPG生成的模式集上运行良好模拟的过程。
Good-Machine Simulation Preparation
良好的机器模拟在分析模式下运行,无需额外设置。使用以下命令进入分析模式:
SETUP> set_system_mode analysis
External Pattern Source Specification
默认情况下,模拟使用内部ATPG生成的模式源运行。要使用外部pattern集运行模拟,请输入以下命令:ANALYSIS> read_patterns filename
Good Machine Simulation Debug
如果要在批处理模式下运行模拟并保存某些管脚的值,可以使用add_lists和set_list_file命令。add_lists命令指定要报告的管脚。set_list_file命令指定要在其中放置选定接点的仿真值的文件的名称。 如果执行交互式调试,可以使用simulate_patterns和report_gates命令来检查内部引脚值。

Tool Setup for Random Pattern Simulation

可以在分析系统模式下运行随机模式模拟。如果尚未处于分析系统模式,请使用set_system_mode命令,如以下示例:SETUP> set_system_mode analysis

Faults List Addition

可以生成故障列表并消除所有不可测试的故障。要生成故障列表并消除所有不可测试的故障,请同时使用add_faults和delete_fault命令,如下例所示:

> add_faults -all
> delete_faults -untestable
Running Random Pattern Simulation
run random pattern simulation.
Procedure

1.输入“simulate_patterns-source random”命令。

2.模拟运行后,使用report_faults命令显示未检测到的故障。

3.一些未检测到的故障可能是多余的。在未检测到的故障上运行ATPG,以识别那些冗余故障。

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到