一、functional pattern
测试覆盖率不够,用functional pattern做为补充。
functional pattern保存在EVCD文件里:
TEST-T> set_patterns -external -strobe .. filename.evcd
怎么生成EVCD文件?
fault simulation after ATPG
##先进行ATPG过程 BUILD-T> run_build _model top_mod_name DRC-T> run_drc atpg_related.spf TEST-T> add_faults -all TEST-T> run_atpg -auto TEST-T> report_summaries TEST-T> write patterns pat.bin -f binary -replace TEST-T> write_faults atpg.flt -all -uncollapsed -replace ##从ATPG运行中读取故障列表,并保留故障分类、减少活动故障,以进行功能模式故障仿真 TEST-T> drc -force DRC-T> remove_pi_constraints -all DRC-T> remove_clocks -all DRC-T> set_drc -nofile DRC-T> test TEST-T> set_patterns -external -strobe . . . my_asic.evcd TEST-T> read_faults atpg.flt -force_retain TEST-T> run_simulation -sequential TEST-T> run_fault_sim -seauential
二、test point分析
run_testpoint_analysis [ -max_test_points <number>] 最多可写入的测试点数,默认为1000
[ -num_observe_points _per_cell <number>] 与扫描单元或PO异或的观察点数,默认8
[ -test _point_file <file_name>]
[ -replace]
[ -class <sub-class>] 默认分析所有未检测到的故障;可以选择特定的故障子类别,可同时选择多个子类别;
[ -dont_touch <instance>] 避免放置测试点
参考脚本:
run_build_model run_drc add_faults -all run_atpg -auto run_testpoint_analysis <options> run_atpg -auto -observe <test_point_file>
三、基于clock域的fault相关命令
launch与capture在同一时钟域
add_faults -launch CLKA -capture CLKA
add_faults -launch CLKB -capture CLKB
launch与capture在不同时钟域
add_faults -launch CLKA -capture CLKB
add_faults -launch CLKB -capture CLKA
四、clock grouping
- 禁用所有inter-clock路径
set_delay -common_launch_capture_clock
- 每次捕获多个时钟 ( 让多个时钟并行起来)
系统时钟启动:set_delay -allow_multiple_common_clocks
-common_launch_capture_clock选项在DRC之前发出
- 启用干扰时钟分组
set_delay -disturbed(默认为开启)