ATPG原理及實現——10.write testbench


工具支持的三種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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM