ATPG原理及實現——5.ATPG


Basic-Scan(優先使用)

速度極快,覆蓋范圍廣,可進行全掃描

Fast-Sequential(如果有需要使用)

全掃描設計的覆蓋范圍更大;

適用於memory周圍的陰影邏輯、有限的no--scan

Full-Sequential(最后使用)

強大的引擎支持更復雜的設計

 

run_atpg -auto自動執行最好的結果

一、Basic-Scan VS. Fast-Sequential

Basic-Scan

全掃描,單捕獲時鍾脈沖

Fast-Sequential

數量有限的no-scan(非掃描觸發器,latches,bus keepers,RAMs),可能有多個捕獲時鍾脈沖

 

 

 

 

 

 

二、降低AU fault,提高測試覆蓋率

1、在basic scan后啟動fast sequential

如果在Basic-Scan ATPG之后仍然存在AU故障,那么可啟用fast sequential ATPG:

set_patterns  -histogram_summary

set_atpg  -capture_cycles  <d>     d設置為2-10之間的整數

run_atpg -auto

capture_cycles常用設置:

最優的runtime——set_atpg -capture_cycles 3
最優的覆蓋率——set_atpg -capture_cycles 10
RAMs最小的設置—— set atpg -capture cycles 4

顯示每個捕獲深度的pattern數量以及multi-load pattern的數量

set_patterns  -histogram_summary

 

 

 

2、啟動full dequential

set_atpg  -full_seq_atpg <other_opts>

run_atpg  -auto

run_atpg  -auto full_sequential_only

 

三、降低ND fault

ATPG嘗試檢測故障次數的限制,提高此限制可能會減少ND fault的數量——以較長的運行時間和較高的pattern計數為代價

在basic-scan和fast-sequential中,限制次數:

set_atpg  -abort <N>(默認為10)

在full-sequential中,ATPG主要控制-full_seq_time,它指定每個故障花費的最長時間(以秒為單位):

set_atpg  -full_seq_time <N>(默認為10)

 

  • 推薦逐漸增加abort limit

   run_atpg -auto
   set_atpg -abort 100
   run _atpg -auto
   set_atpg -abort 1000
   run_atpg -auto

四、Debug 較低的測試覆蓋率

層次化報告測試覆蓋率

便於定位哪個模塊有問題

 

 

 

report_summaries——看哪類fault較多

report pi_constraints——查看約束是否合理,主要解決AU問題

 

 

 

report_clocks -verbose

lnvestigate DRC rule violations

report_faults

 

 

analyze_faults

 

 

 

 

提高測試覆蓋率的方法:

  • 無需更改設計

   增加abort limit——減少ND
   啟用快速順序和全順序ATPG——減少AU
   創建TetraMAX memory模型——增加memory shodow logic測試覆蓋率
   消除一些Pl約束 (eg.異步reset上的Pl約束導致覆蓋率降低)
   使用analyst_faults

  • 更改設計

   修復DRC違規
   add scan to non-scan cell——使用TMAX set_scan_ability進行假設分析
   添加測試點

 


免責聲明!

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



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