Mentor-dft 学习笔记 day20-ATPG Event Simulation for DFFs and Latches

Mentor-dft 学习笔记 day20-ATPG Event Simulation for DFFs and Latches_第1张图片

 该过程的第一步是为ATPG执行可能需要的任何特殊设置。这包括对模式创建过程本身设置限制。第二步是使用默认设置创建pattern 。这是一种非常快速的方法来确定离可测试性目标有多近,甚至可以从第一次运行中获得所需的测试覆盖率。但是,如果测试覆盖率不在所需的水平,可能需要排除覆盖率不足的原因,并使用其他方法创建其他pattern。

ATPG Setup

在ATPG之前,您可能需要设置某些标准,以帮助测试生成过程中的测试生成器。如果只想使用默认设置在ATPG工具中快速生成模式,建议使用create_patterns命令创建模式。如果初始模式不令人满意,则再次运行create_patterns命令。但是,如果仍然无法创建令人满意的模式集,请使用set_pattern_type命令和create_patterns命令,使用以下顺序:

ANALYSIS> set_pattern_type -sequential 2
ANALYSIS> create_patterns
ATPG Constraints Definition
ATPG约束类似于引脚约束和scan cell约束。引脚约束和扫描单元约束分别限制引脚和扫描单元的值。ATPG约束对电路中任何位置的可接受值种类进行了限制。例如,可以使用ATPG约束来防止设计中的总线争用或其他不希望发生的事件。此外,设计可能具有在正常系统操作下永远不会发生的某些条件。如果要在ATPG期间在回路上放置这些相同的约束,请使用ATPG约束。 在确定性模式生成期间,仅允许约束电路上的受限值。与仅在设置模式下可用的引脚和扫描单元约束不同,可以在设计展平后在任何系统模式下定义ATPG约束。如果要在执行设计规则检查之前设置ATPG约束,必须首先使用create_flat_model命令创建设计的展平模型。
当了解电路的行为方式,希望ATPG过程检查时,ATPG约束非常有用。例如,该设计可以具有行为类似于总线系统的电路的一部分;也就是说,一次只能打开或选择各种输入中的一个。使用ATPG约束,结合定义的ATPG函数,可以将此信息指定给ATPG工具。ATPG函数在设计中的电路上放置布尔关系。在用ATPG函数定义了电路部分的功能之后,可以根据需要用ATPG约束约束函数的值。这比仅将设计中的点约束为特定值更有用。

要定义ATPG函数,请使用add_ATPG_functions命令。使用此命令时,指定名称、函数类型和应用该函数的对象。可以使用add_ATPG_constraints命令指定ATPG约束。使用此命令时,可以指定值、对象、位置和类型。测试生成考虑所有当前约束。但是,设计规则检查只考虑静态约束。只能在设置模式下添加或删除静态约束。设计规则检查通常不考虑动态约束,但set_drc_handling命令参考说明中详细说明了一些例外情况(请参阅Atpg_analysis和ATPGC选项)。您可以在会话期间随时添加或删除动态约束。默认情况下,ATPG约束是动态的。

Mentor-dft 学习笔记 day20-ATPG Event Simulation for DFFs and Latches_第2张图片

以下命令给出了如何将ATPG约束和函数一起使用的示例。假设知道,门/u5的四个输入中只有一个一次可以打开,例如,对于输出必须无争用的总线门,四个三态使能是正确的。可以使用以下命令指定:
ANALYSIS> add_atpg_functions sel_func1 select1 /u1/o /u2/o /u3/o /u4/o
ANALYSIS> add_atpg_constraints 1 sel_func1
这些命令指定“select1”函数应用于门/u1、/u2、/u3和/u4,select1函数的输出应始终为1。确定性模式生成必须确保满足这些条件。导致此约束为真的条件如所示, 表8-3.当该约束为真时,门/u5将无争用。
Mentor-dft 学习笔记 day20-ATPG Event Simulation for DFFs and Latches_第3张图片

 

给定电路上设置的定义函数和ATPG约束,ATPG工具仅使用表8-3中所示的值生成模式。通常,如果定义了ATPG约束,这些工具不会在ATPG期间执行随机模式生成。但是,使用ATPG工具,可以使用simulate_patterns命令执行随机模式模拟。在这种情况下,该工具在故障模拟期间拒绝不符合当前定义的ATPG约束的模式。处理ATPG约束时使用以下命令:

analyze_atpg_constraints — Analyzes a given constraint for either its ability to be
satisfied or for mutual exclusivity.
analyze_restrictions — Performs an analysis to automatically determine the source of
the problems from a failed ATPG run.
delete_atpg_constraints — Removes the specified constraint from the list.
delete_atpg_functions — Removes the specified function definition from the list.
report_atpg_constraints — Reports all ATPG constraints in the list.
report_atpg_functions — Reports all defined ATPG functions
Power and Ground Ports Exclusion from the Pattern Set
可以在电路设置和DRC期间约束电源和接地端口,也可以从模式集中排除这些端口。第一步是通过在顶级输入或inout端口上设置“function”属性的值来指定电源和接地端口。例如,以下命令将“vcc”端口指定为电源输入:SETUP> set_attribute_value vcc -name function -value power
请注意,该端口只能是顶级模块上的输入或输入端口,唯一允许的值是“电源”和“接地”。此外,该端口不能是ICL文件中的IJTAG端口(如果存在)。此外,在平面模型中读取后不能更改“function”属性。 将值设置为“power”的效果是在该端口上添加CT1的输入约束;并且将该值设置为“地”具有在该端口上添加CT0的输入约束的效果。 删除这些推断约束的唯一方法是使用reset_attribute_value命令。也就是说,delete_input_constraints和delete_pin_constraints命令在这种情况下不起作用。

指定电源和接地端口后,可以使用“write_patters-parameter_list”命令写入排除这些端口的模式。此外,参数文件有一个关键字ALL_EXCLUDE_POWER_GROUND,允许您控制电源和接地端口是否从测试仪模式文件格式(如STIL和WGL)中排除。

Event Simulation for DFFs and Latches

下面解释了该工具的模拟内核如何对DFF和锁存器进行建模。内核将时钟脉冲模拟为“010”“101”。三位符号表示构成时钟周期的三个帧的状态:clock_off帧、post-LE帧和post-TE帧。那里每个周期总是至少有三个事件。

内核仅区分“边缘触发”和“级别敏感”序列元素:

Edge-triggered elements update during 0→1 transitions of their clock input.

Level-sensitive elements update when their clock is high

内核会立即更新同一帧中的所有元素。有关更多信息,请参阅图8-7。

Mentor-dft 学习笔记 day20-ATPG Event Simulation for DFFs and Latches_第4张图片

Figure 8-8解释了仿真内核如何使用DFF和锁存器对波形进行建模。
Mentor-dft 学习笔记 day20-ATPG Event Simulation for DFFs and Latches_第5张图片

 Flattened Model Saves Time and Memory

可以展平设计,然后使用该工具使用展平模型而不是设计网表。使用扁平网表而不是常规网表的一个优点是可以节省内存,并为更多模式留出空间。当重新调用该工具时,可以通过指定“-flat”开关来使用此flat网表。该工具将以保存展平模型时该工具所处的相同模式(设置或分析)重新启动。根据工具的当前模式,可以使用以下方法之一使用工具展平设计:

analysis mode — The tool automatically creates the flat model when you change from
setup to analysis mode using the set_system_mode command. After model flattening,
you save the flattened design using the write_flat_model command.(自动分析及两个指令)
setup mode — You can manually create a flattened model in setup mode using the
create_flat_model command. After model flattening, you save the flattened design using
the write_flat_model command.(创建,写入扁平化model)
Checkpointing Setup
“检查点”指的是在整个pattern创建过程中,该工具在称检查点的定期自动保存测试模式。当ATPG需要很长时间并且有可能意外中断时,这很有用。例如,如果在ATPG期间发生系统故障,检查点使您能够从接近中断点的位置恢复并继续运行。您不必从头开始重做整个模式创建过程。继续运行使用在中断之前保存在检查点的数据,从而节省了重新创建模式所需的时间

 set_checkpointing_options命令打开或关闭检查点功能,并指定每次写入测试模式之间的时间间隔,以及工具写入模式的模式文件的名称。

Example Checkpointing
假设ATPG工具处理一个大型设计需要几天时间。如果系统故障在ATPG开始后一天结束,您不希望从头开始重新启动模式创建。以下dofile段定义了90分钟的检查点间隔并启用检查点。
set_checkpointing_options on -pattern_file my_checkpoint_file -period 90 \
-replace -pattern_format ascii -faultlist_file my_checkpoint_fault_file
如果需要执行连续运行,对扁平模型的调用可能比重新格式化网表快得多。工具加载设计后,但在继续中断的之前,请确保设置在中断中使用的所有相同约束。下一个dofile段使用检查点数据恢复中断的运行:
# Load the fault population stored by the checkpoint.
#
# The ATPG process can spend a great deal of time proving
# faults to be redundant (RE) or ATPG untestable (AU). By
# loading the fault population using the -retain option, the
# status of these fault sites will be restored. This will
# save the time required to reevaluate these fault sites.
read_faults my_checkpoint_fault_file -retain
#
# The report_statistics command shows if the fault coverage
# is at the same level as at the last checkpoint the tool
# encountered.
report_statistics
#
# Set the pattern source to the pattern set that was stored
# by the checkpoint. Then fault simulate these patterns.
# During the fault simulation, the external patterns will be
# copied into the tool’s internal pattern set. Then, by
# setting the pattern source back to the internal pattern
# set, additional patterns can be added during a subsequent
# ATPG run. This sequence is accomplished with the following
# segment of the dofile.
#
# Fault grade the checkpoint pattern set.
read_patterns my_checkpoint_file
#
# Reset the fault status to assure that the patterns
# simulated do detect faults. When the pattern set is fault
# simulated, if no faults are detected, the tool will not
# retain the patterns in the internal pattern set.
reset_state
simulate_patterns
report_statistics
#
# Create additional ATPG patterns
create_patterns
执行上述命令后,该工具的故障等级和模式数应与上次在中断运行期间保存检查点数据时相同。要完成模式创建过程,现在可以使用create_patterns命令,如“使用默认设置创建模式”中所述。
Pattern Creation with Default Settings
By

默认情况下,create_patterns命令启动包括高效模式压缩的最佳ATPG过程。这是创建pattern的基本命令:

ANALYSIS> create_patterns
如果创建pattern失败,请使用analyze_ATPG_constraints命令和analyze_restrictions命令。

你可能感兴趣的:(eda-dft,学习,网络,开发语言)