DFT,可測試性設計 概念理解

2021-07-27 16:03:49 字數 3391 閱讀 9507

工程會接觸dft。需要了解dft知識,但不需要深入。

三種基本的測試(概念來自參考文件): 

1. 邊界掃瞄測試;boundary scan test。測試目標是io-pad,利用jtag介面互連以方便測試。(jtag介面,實現不同晶元之間的互連。這樣可以形成整個系統的可測試性設計。) 

2. 內建自測試bist;(個人理解:模擬ip的關鍵功能,可以開發bist設計。一般情況,bist造成系統複雜度大大增加。memory ip一般自帶bist,簡稱mbist) 

3. 掃瞄測試(又叫atpg)。scan path。與邊界掃瞄測試的區別,是內部移位暫存器實現的測試資料輸入輸出。測試目標是std-logic,即標準單元庫。(個人理解:掃瞄測試和邊界掃瞄,不是乙個概念。需要區別對待。內部的觸發器,全部要使用帶scan功能的觸發器型別。)

補充: 

還有一種測試: 

4. 全速測試at-speed-test(其實是屬於掃瞄測試的一種。只不過測試時鐘**頻率更快。) 

at-speed 就是實速測試, 主要用於scan測試-即ac測試,和mbist測試。這種測試手段的目的是-測試晶元在其工作頻率下是否能正常工作,實速即實際速度。測試時鐘往往是由晶元 內部的pll產生很快的測試時鐘,用於實速測試。 

相對而言 ,一般的測試是20~40兆的測試時鐘,頻率低,測不到transition fault,即使測試通過,實際使用中還會由於使用高頻時鐘發生晶元電路故障。

常見的dft/occ結構如下: 

特點: 

1. clock mux必須放在occ模組/dft mux之前。 

2. 時鐘大於50mhz時,使用occ模組,否則使用dft mux。 

3. clock gate放在occ模組/dft mux之後。 

4. 對於手動新增的clock gate,dft_se埠接到 dft_glb_gt_se。 

5. 對於綜合工具新增的clock gate,dft_se埠接到dft_syn_gt_se 

注意: 

1. dft_mode有效時,clock mux的sel訊號要保證dft_clk**於最高頻率的時鐘源。 

2. dft_mux或者occ,不能串聯。 

occ(on chip clock)結構如下: 

注意: 

1. slow_clk是類似dft_clk;這個時鐘源由後端提供。個人認為所有dft_clk的**,頻率不一樣,**由後端決定,應該是測試引腳輸入的吧?! 

2. fast_clk是正常工作時鐘源。 

dft工程師手裡有三**寶: 

法寶一:bscan技術– 測試io pad,主要實現工具是mentor-bsdarchit,sysnopsy-bsd compiler; 

法寶二:mbist技術– 測試mem,主要實現工具是mentor的mbistarchitect 和 tessent mbist; 

法寶三:atpg 技術– 測試std-logic,主要實現工具是:產生atpg使用mentor的 testkompress 和synopsys tetramax,插入scan chain主要使用synopsys 的dft compiler。 

以下對工具的使用原則做一些介紹:

atpg工具 

insert scan: 

1、雖然教科書會介紹很多種dft drc但是在實際設計中95%的工作在修復scan_clk和scan_reset的drc violation; 

2、修復clk/reset violation 的方法主要是用dc插入mux ,目的是使在scan_mode下clk和reset被晶元scan_clk和scan_reset pad控制。 同時,scan_clk和scan_reset pad會用於ate給晶元施加激勵; 

3、插入scan時,dft compiler必須修復的drc violations 類別為d1/d2/d3/d9; 

4、做全片級的dft設計時,需要在scan_in,scan_out,scan_reset,scan_clk的io pad 的oen/ie/ren端插入mux,控制pad的輸入和輸出方向。

atpg patterns產生和**: 

1、所有的模擬模組,例如pll、por等,一般設定為black-box,無法用atpg測試其內部; 

2、晶元clk、power、reset的控制暫存器,一般不會放到scan_chain上,以免在測試時由於暫存器的動作,改變晶元工作狀態; 

3、考慮power domain的開關,一般必須保證在scan測試時,所有power domain都開啟,每個數字標準單元都能測試到; 

4、如果有模擬的io pad,一般必須在產生pattern時mask掉,因為他們不是數字的,atpg工具無法控制它們; 

5、業界一般使用dc插入occ (on chip clocking)模組,實現at-speed scan測試電路。

mbist工具 

目前使用較多的是mbistarchi,但是tessent mbist以後會成為主流。原因是mentor公司2023年已經宣布mbistarchi將不再提供技術支援,而且tessent mbist技術更為先進。 

1、所有的mbist設計應該考慮diagnose。加入diagnose電路,方便診斷mem故障,這會在晶元量產時大大提高成品率; 

2、由於arm與mentor有合作,coretex-a9以上的arm核具有share-bus介面,可以很好支援tessent mbist,就能夠實現arm核心的mem的高速測試和訪問,也提高了arm cpu的效能; 

3、tessent mbist會使用jtap,只占用tck/tms/tdo/tdi/trst五個pad,比mbistarich使用更少的pad資源。 

bscan 工具 

1、所有的模擬io,一般無法用bscan來測試,不要加上bscan_cells; 

2、所有需要測試的數字pad的oen/ie/ren 在bscan_mode下,需要插mux來控制; 

3、所有需要測試的數字pad的pu/pd 在bscan_mode下,一般需要插mux來控制,保證在bscan_mode下,pu和pd=0,才能使bscan highz測試**通過; 

4、所有jtag的強制要求指令如idcode,exist必須在bscan電路中實現,特別是bypass。

那麼對dft工具的使用,kevin he拋磚引玉,請朋友們暢所欲言。 

1)如何用可測性設計atpg工具實現at-speed測試? 

2)如何使用bscan工具中實現pll測試? 

3)使用tessent mbist實現at-speed測試? 

4)bscan工具會在pad的那些埠上連上bscan cell?

參考文件:

Memory的可測試性設計Mbist

隨著半導體工藝尺寸不斷縮小,ic設計的規模越來越大,高度複雜的ic產品正面臨著高可靠性 高質量 低成本以及更短的產品上市週期等日益嚴峻的挑戰。一方面隨著半導體工藝尺寸的縮小,嵌入式儲存器可能存在的缺陷型別越來越多 另一方面,隨著ic產品的複雜度的提高,rom ram eeprom在ic產品中的比重越...

如何提公升軟體的可測試性架構設計

在軟體研發過程中需要單元測試 整合測試 使用者驗收測試等一系列的測試,然而我們遇到的很多軟體由於在系統設計的時候沒有考慮可測試性,經常會使人工測試變得很艱難,更難說有效實現自動化測試。那麼如何提高軟體的可測試性,從而實現有效的單元測試自動化 介面測試自動化?任何軟體都需要測試,沒有測試過的 是不可靠...

效能和可測試性的選擇

服務端存放的是所有使用者的資訊,資料同步的功能是獲取本使用者的資訊到本地資料庫。服務端將各資訊以json的格式發到客戶端,客戶端比較資料庫的每條記錄和json內容是否完全相同,如果完全相同則不更新,否則更新。這樣做,提高了新能,但大幅降低了可測試性。63個表,估計平均每個表7條記錄,必須測試400次...