一、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(默認為開啟)