Testability用來表征一個manufactured design的quality。
將testability放在ASIC前端來做,成為DFT(Design For Test),用可控(controllable)可觀(observable)來表征。
DFT的實現的兩個大方向:ad hoc和structure。
1)ad hoc:利用良好的設計習慣,來保證testability。減少無關邏輯,異步邏輯,增加可控可查點。
2)structured:更加系統,自動的方法。包括三個方法:
scan design:需要改變內部時序邏輯。
Built-in Self-Test(BIST):需要在器件中插入測試功能。
boundary scan:增加電路,來保證板級測試性。
其中bist和boundary需要在DC之前來做,scan design在DC之后做增量型編譯。
bist邏輯中也需要scan design。
scan操作的流程:
1)使能scan mode;
2)打開scan clock,輸入stimulus;
3)比較output,再關掉scan clock,來輸入下一stimulus。
scan操作可以分為full scan和Partial scan。full scan的覆蓋率最高而且ATPG容易產生,但是對面積和時序不友好。
Partition Scan:針對大型設計,從block的層次來進行scan設計,加入scan input/output/enable
Test Points:針對一些難以觀察控制的點,額外加入mux來進行控制。
如或門的輸出,輸入還有一個1,另一個輸入,就難以觀察,后續邏輯就難以控制,
此時可以在或門之后,加入一個mux,以及一個input和一個output來保證coverage。(例程見相冊)
ATPG(Automatic Test Pattern Generation),Test patterns也叫做test vector。
有random pattern和Deterministic pattern兩種,不過多數使用random,包含兩部分:
1)generation patterns;
2)完成fault simulation;
測試種類(Test Type):分為三類:
1)functional test,主要針對static defects,(open,short,stuck-on,stuck-open)
2)IDDQ,測試靜態功耗current。以Pseudo stuck-at模型來進行分析。
對於Full static的CMOS電路,IDDQ接近於零,上拉下拉,三態總線的IDDQ較高,
RAM這樣的動態存儲器中也會產生較高IDDQ。
3)At-Speed test:主要分析transaction,path delay。如slow-to-rise,slow-to-fall。
以上都是單一的fault模型,也可能發生fault collapsing。
scan中的專業術語:
Scan Cells:一個scan cell,在一條scan chain中至少包含一個memory element(FF或latch)。
Master Element:直接從上一個scan cell中,得到數據的scan cell,與scan input直接相連接。
Slave Element:在scan chain中的同一個clock的scan cell。
Shadow Element:在scan chain之外的FF或latch。
Copy Element:與上下的scan cell擁有相同或相反的數據的scan cell。
Extra Element:在master element和slave element之間的任意一個element。
Scan chain:一系列連接起來的scan cell,包括一個input ,output,enable。靠近output的scan cell編號0。
Scan Groups:一系列可並行處理的scan chain(有自己的輸入和輸出)。
Scan Clocks:scan操作的時鍾信號,包括reset和set信號。
scan architecture:主要有三種:
1)mux-scan:在傳統的DFF數據輸入端,加入mux。
2)clocked-scan:替換FF為一個mux clock的FF。
3)LSSD(Level-Sensitive Scan Design) architecture:將一個latch替換為主從兩個latch。
其中mux-scan和clocked_scan,主要用在FF電路,LSSD主要用在鎖存器電路,框圖見相冊。
Test Procedure Files:描述scan circuirty的操作。用STIL語言編寫(Standard Test Interface Lauguage)。
Model Flattening:一些DFT有內部自己的model,他們通過將netlist中的單元替換為自己的model,再進行操作。
