工具支持的三種testbench:
- MAX Testbench (通過stil2verilog將STIL pattern轉換為Verilog simulation testbench)
- Verilog DPV Testbench (Verilog Testbench 將測試激勵應用於DUT,並根據數據文件中指定的預期數據檢查響應)
- Legacy Verilog Testbench (Not recommanded)
一、MAX Testbench
- 沒有Verilog PLL——更快的仿真運行時間
- 降低內存使用量
- 簡化仿真調試
- 可以為測試平台生成Verilog仿真腳本
- 一個pattern文件,兩個使用者:驗證(模擬)、ATE(制造測試)
- 支持流行的Verilog simulators:VCS、NC-Verilog、Verilog-XL和MTI
MAX Testbench flow
方法一——先生成STIL,再轉換
從TetraMAX寫出STIL pattern文件
使用STIL pattern作為輸入運行stil2verilog以生成Verilog testbench
使用生成的測試pattern運行Verilog仿真
Example:
UNIX% stil2verilog <STIL_pattern_ file _name> <verilog_TB_file_name>
產生兩個文件:
verilog testbench file: <verilog_TB_file_name>.v
Data file: <Verilog TB file name>.dat
方法二——在tmax中直接轉換
在TetraMAX中將STIL pattern轉換為Verilog testbench:
write_testbench -input <stil_filename>
-output <testbench_name>
[-replace]
[-config_file config_filename]
[-parameters { list_of _parameters} ]
Unified STIL flow
write_patterns -unified_stil_ flow(USF)
- 是單個STIL文件,提供所有可能的模擬模式(串行,並行,混合串行/並行和並行N移位),用於標准掃描和壓縮掃描。
- USF可以與MAX Testbench或Verilog DPV一起使用
- STIL文件包含串行測試patern,並且是ATE的目標文件
- 消除了在並行負載下模擬壓縮pattern的一些限制
二、verilog DPV
使用PLl直接驗證ATE-ready的STIL pattern
pattern可以“on-the-fly”模擬
支持流行的Verilog模擬器(PLI): VCS,NC-Verilog,Verilog-XL和MTI
Simulate with Pattern
1. 寫出不同類型的pattern
write_patterns all_pats.stil -format stil -parallel
write_patterns fast_pats.stil -format stil -parallel -type fast
- 對於每個類型的pattern,TetraMAX 產生 2個文件:
Testbench:all_pats_stildpv.v & fast _pats_stildpv.v
Patterns: all_pats.stil & fast _pats.stil
- Patterns來自all_pats_stildpv.v:$STILDPV_setup ( "all_pats.stil" ,,, "test.dut" ) ;
2.對all pats_stildpv.v仿真:
vcs -R -Mupdate +ace+2 +tetramax \ -P $STILDPV_HOME/lib/stildpv _vcs.tab \ +define+tmax_parallel=2 \ -v ./libs/io.v ./libs/core.v \ ./libs/bboxes_sim.v ./libs/rams_sim.v \ ./design_data/orca_final.v ./all_pats_stildpv.v \ $STILDPV_HOME/lib/libstildpv.a -l all_pats.log -o simv
3.在不更改testbench的情況下對Fast-Sequential patterns運行仿真:
unix% mv all_pats.stil all_pats.stil.bak
unix% ln -s fast_pats.stil all_pats.stil
unix% ./ simv -l fast.log
三、Debug ATPG模擬不匹配或ATE failure
-- 即使具有完美的STA和模擬的DUT模型而沒有失配,實際的DUT仍然可能在ATE發生故障
-- 如果在STA和仿真中都使用了相同的ATE時序和post-route SDF,並且STA報告沒有違規,則由於以下原因仍可能發生仿真不匹配:
-- 如果在STA和仿真中都使用了相同的ATE時序和路由后SDF,並且STA報告沒有違規,則由於以下原因仍可能發生仿真不匹配:
- 仿真模式(zero,unit,typical)問題
- 基於0-delay環境預測的ATPG結果
- 仿真模型可能與ATPG模型不匹配
解決:
simulation失敗了可以查看timing、設置等哪里出現問題;
如果已經到ATE階段了,芯片流回來了,不能改了,但又不能讓這些問題讓整個設計block,因此使用命令將有問題的部分mask掉
Masking Commands
定義output masks
輸出掩碼用於防止ATPG算法通過特定的輸出端口觀察故障,在屏蔽輸出上不再觀察到故障,因此覆蓋范圍將下降
add po_masks <port_name> l -all
Scan Cell Constraints
加載(0、1、X)到特定掃描單元中
add_cell_constraints < 0 | 1 | X > < chain | inst >
[ -position {< cell_ pos1 | sci > [cell_pos2] } | -all>>]
no-Scan Cell mask
add_capture_masks /PROBLEM/NONSCAN/FLOP
mask multi-cycle or false path
add_slow_cells <instance_path>
timing exception
set_simulation -timing_exceptions_for_stuck_at