SOC的可測(cè)試性設(shè)計(jì)策略
可測(cè)試設(shè)計(jì)(DFT)是適應(yīng)集成電路的發(fā)展要求所出現(xiàn)的一種技術(shù),主要任務(wù)是對(duì)電路的結(jié)構(gòu)進(jìn)行調(diào)整,提高電路的可測(cè)性,即可控制性和可觀察性。按測(cè)試結(jié)構(gòu)分,目前比較成熟的技術(shù)主要有測(cè)試點(diǎn)插入、內(nèi)部掃描設(shè)計(jì)、內(nèi)建自測(cè)試(BIST)、邊界掃描設(shè)計(jì)等[1]。
內(nèi)部掃描設(shè)計(jì)技術(shù)有兩種:全掃描技術(shù)將電路中所有的觸發(fā)器用特殊設(shè)計(jì)的具有掃描功能的觸發(fā)器代替,使其在測(cè)試時(shí)鏈接成一個(gè)或幾個(gè)移位寄存器;部分掃描技術(shù)只選擇一部分觸發(fā)器構(gòu)成移位寄存器,降低了掃描設(shè)計(jì)的硬件消耗和測(cè)試響應(yīng)時(shí)間而受到重視。在測(cè)試向量自動(dòng)生成(ATPG)上,組合電路常采用D,PODEM和FAN等算法;時(shí)序電路可采用HITEC,GENTEST,CONTEST以及遺傳算法等 [2]。如果被測(cè)電路(CUT)具有自己產(chǎn)生測(cè)試信號(hào)、自己檢查輸出信號(hào)的能力,則稱該電路具有BIST功能。BIST主要完成測(cè)試序列生成和輸出響應(yīng)分析兩個(gè)任務(wù)。通過(guò)分析CUT的響應(yīng)輸出,判斷CUT是否有故障。BIST有存儲(chǔ)器BIST(MBIST)、邏輯電路BIST(LBIST)和 DBIST[3]等幾種。
2 IP核的DFT方法
在SOC中通常嵌入多個(gè)IP核,它們電路邏輯非常復(fù)雜且對(duì)時(shí)序要求非常嚴(yán)格,因此不同類型的IP核有不同的可測(cè)試性設(shè)計(jì)方法。
2.1 專用數(shù)字邏輯模塊
數(shù)字邏輯模塊的可測(cè)試性設(shè)計(jì)一般采用內(nèi)部掃描設(shè)計(jì)技術(shù),但隨著芯片規(guī)模向著上千萬(wàn)門級(jí)發(fā)展,傳統(tǒng)的內(nèi)部掃描設(shè)計(jì)會(huì)生成數(shù)目眾多的相當(dāng)長(zhǎng)的測(cè)試向量。由于測(cè)試生成和測(cè)試響應(yīng)分析都在外部ATE上,掃描輸入輸出時(shí)間過(guò)長(zhǎng),導(dǎo)致測(cè)試成本急劇增加,故需要對(duì)傳統(tǒng)的內(nèi)部掃描設(shè)計(jì)技術(shù)做出改進(jìn)。
可引入偽內(nèi)建自測(cè)試(PBIST)[8] 方法來(lái)減少測(cè)試數(shù)據(jù)和縮短測(cè)試時(shí)間。對(duì)于BIST來(lái)說(shuō),故障覆蓋率不高是其固有的缺點(diǎn),而PBIST是希望能利用內(nèi)部所產(chǎn)生的偽隨機(jī)序列,檢測(cè)到盡可能多的故障。一般電路中都會(huì)有相當(dāng)部分的故障是可以用隨機(jī)向量來(lái)檢測(cè)的,而這部分故障如果采用PBIST方法來(lái)測(cè)試,就可以充分發(fā)揮其在測(cè)試時(shí)間、測(cè)試數(shù)據(jù)量等方面的優(yōu)勢(shì)。在完成這部分故障的測(cè)試后,再由外部ATE提供確定性的測(cè)試向量來(lái)滿足最終的故障覆蓋率需求。
可引入片上多輸入鑒別寄存器(OPMISR)技術(shù)[9],對(duì)測(cè)試響應(yīng)進(jìn)行壓縮,輸出的測(cè)試結(jié)果是 MISR壓縮后的數(shù)據(jù),從而降低對(duì)ATE緩存容量的要求。利用OPMISR技術(shù)在測(cè)試模式時(shí)可把每條掃描鏈從中間一分為二,這樣原來(lái)的一條掃描鏈相當(dāng)于兩條掃描鏈了,從而倍增掃描鏈條數(shù),且單條掃描鏈上的寄存器數(shù)目是原來(lái)的一半,所以測(cè)試向量移位輸入所需的時(shí)鐘周期也相應(yīng)減半。同時(shí)增加的MIST電路把原本在ATE上完成的信號(hào)鑒別工作部分轉(zhuǎn)移到了片內(nèi)進(jìn)行,對(duì)測(cè)試響應(yīng)進(jìn)行了壓縮,減小了生成的ATPG文件。
Mentor Graphics[7]的嵌入式?jīng)Q定性測(cè)試(EDT)技術(shù),采用測(cè)試數(shù)據(jù)壓縮技術(shù),對(duì)測(cè)試激勵(lì)和測(cè)試響應(yīng)都進(jìn)行壓縮,通常能帶來(lái)數(shù)十倍的測(cè)試數(shù)據(jù)壓縮率。EDT在芯片上增加解壓縮模塊,利用環(huán)路發(fā)生器和相位轉(zhuǎn)換電路兩個(gè)邏輯塊,對(duì)來(lái)自于ATE的壓縮激勵(lì)向量進(jìn)行解壓處理,產(chǎn)生內(nèi)部掃描鏈上的測(cè)試激勵(lì)向量。EDT同時(shí)在芯片內(nèi)增加壓縮模塊,利用異或樹和掩蓋邏輯電路兩個(gè)邏輯塊,對(duì)內(nèi)部掃描鏈輸出的測(cè)試響應(yīng)向量進(jìn)行壓縮處理后輸出給ATE。
2.2 存儲(chǔ)器核
存儲(chǔ)器內(nèi)建自測(cè)試是將BIST邏輯電路嵌入芯片內(nèi)部,通過(guò)給相應(yīng)存儲(chǔ)器核的外圍加一層測(cè)試控制電路,作為存儲(chǔ)器核與芯片系統(tǒng)其他邏輯電路的接口,負(fù)責(zé)相應(yīng)的測(cè)試及控制功能,最終實(shí)現(xiàn)片上自動(dòng)測(cè)試存儲(chǔ)器核。以SRAM為例,重要的測(cè)試算法有MATS+,MarchC-,MarchA和MarchB等[10] 。
SOC芯片中片上存儲(chǔ)器占芯片面積比重不斷增大,導(dǎo)致了芯片成品率降低??梢圆捎没陔娮颖kU(xiǎn)絲的片上存儲(chǔ)器修復(fù)系統(tǒng)技術(shù) [11],利用冗余存儲(chǔ)器里的冗余行和列來(lái)替代失效行或列,從而使失效存儲(chǔ)器正常工作,來(lái)提高芯片的成品率。其結(jié)構(gòu)可以與MBIST結(jié)合在一起,修復(fù)功能運(yùn)行受 MBIST的控制器控制。
2.3 微處理器核
對(duì)一個(gè)上百萬(wàn)門的嵌入式微控制器,如采用全掃描設(shè)計(jì)可以取得較高的故障覆蓋率,但它由于可能在處理器關(guān)鍵路徑上增加可測(cè)試性電路,從而增加電路延時(shí),降低電路性能。因此芯核的數(shù)據(jù)通路通常采用基于指令的LBIST方法來(lái)進(jìn)行測(cè)試 [4,12]。
微處理器核的數(shù)據(jù)通路主要由三個(gè)部分組成:程序計(jì)數(shù)器及指令提取單元、指令譯碼邏輯以及微處理指令執(zhí)行單元。LBIST方法需要對(duì)此增加三個(gè)寄存器:測(cè)試控制寄存器(TCR)、線性反饋移位寄存器(LFSR)以及多輸入特征寄存器(MISR),如圖1所示。TCR在測(cè)試模式下掃描輸入微處理器的指令操作碼,LFSR生成隨機(jī)數(shù)據(jù),提供測(cè)試模式下的操作數(shù),而MISR壓縮指令執(zhí)行單元的執(zhí)行結(jié)果,生成測(cè)試響應(yīng)的特征值。掃描輸入和掃描輸出可以由邊界掃描來(lái)提供。
通常微處理器核中除數(shù)據(jù)通道外還通常包含許多寄存器堆以及RAM單元,這些存儲(chǔ)器單元通常采用MBIST方法。而芯核其他部分比如控制部分通??梢圆捎脙?nèi)部掃描設(shè)計(jì),以獲得期望的測(cè)試覆蓋率。因此微處理器核測(cè)試是多種測(cè)試策略組合在一起的混合測(cè)試策略。
2.4 模擬/混合電路核
模擬電路可測(cè)試性設(shè)計(jì)的主要思想是為測(cè)試提供對(duì)選定節(jié)點(diǎn)的訪問(wèn),可以采用以下技術(shù)提高電路的可測(cè)試性:插入測(cè)試點(diǎn),如加入電流傳感器來(lái)觀測(cè)錯(cuò)誤電路引起的錯(cuò)誤電流;進(jìn)行數(shù)模/模數(shù)轉(zhuǎn)換,通過(guò)加入模數(shù)轉(zhuǎn)換器和數(shù)模轉(zhuǎn)換器,從而實(shí)現(xiàn)激勵(lì)和響應(yīng)的傳播;功能結(jié)構(gòu)重組,通過(guò)對(duì)電路的功能結(jié)構(gòu)重組,產(chǎn)生區(qū)別于正常工作模式的測(cè)試模式來(lái)觀測(cè) [4]。
通過(guò)提高模擬電路的可測(cè)試性后,也可以采用 ATPG方法和BIST方法。較為典型的模擬電路ATPG方法如利用敏感性分析來(lái)產(chǎn)生測(cè)試向量的方法 [13],該方法可以看作是尋找一個(gè)輸入測(cè)試向量,使得正確電路的響應(yīng)和故障電路的響應(yīng)數(shù)據(jù)上相差最大。模擬電路BIST方法通過(guò)內(nèi)置測(cè)試信號(hào)發(fā)生器和特征分析器來(lái)實(shí)現(xiàn),有基于振蕩器的方法、基于頻譜特征分析的方法和基于∑△編碼的方法等 [4]。
2.5 第三方IP核
針對(duì)諸如CPU,DSP,MPEG這種通用的IP核可以采用DBIST(deterministic logic BIST)的測(cè)試方法[3]。這種面向IP核確定性故障模型進(jìn)行芯片結(jié)構(gòu)改變和測(cè)試模塊加入的DBIST ,采用高效的ATPG重播種的方法進(jìn)行測(cè)試向量生成。
可以利用基于掃描測(cè)試的向量生成DBIST的種子數(shù)據(jù)。DBIST結(jié)構(gòu)和測(cè)試過(guò)程數(shù)據(jù)流向如圖2所示。測(cè)試時(shí),ATE通過(guò)掃描輸入的方法送入以陰影寄存器(shadow register)的值來(lái)置PRPG的狀態(tài),然后PRPG產(chǎn)生一系列的向量(數(shù)量由步長(zhǎng)決定),這一系列的向量逐個(gè)地通過(guò)相位轉(zhuǎn)換電路進(jìn)一步地?cái)U(kuò)展到更寬的位數(shù),從而加載到CUT,其響應(yīng)輸出到壓縮電路中,然后輸入MISR產(chǎn)生一個(gè)鑒別碼,鑒別碼再被串行地送出到外界。在內(nèi)部IP核測(cè)試的過(guò)程中,就同時(shí)地移入下一個(gè)種子的值到陰影寄存器中。接著繼續(xù)用下一個(gè)種子來(lái)產(chǎn)生測(cè)試向量。
3 SOC的DFT策略
一個(gè)上百萬(wàn)/千萬(wàn)門級(jí)的SOC設(shè)計(jì),設(shè)計(jì)之初就要在宏觀上進(jìn)行考慮,以得到最優(yōu)DFT策略。比如嵌入式存儲(chǔ)器模塊是否需要用片上處理器進(jìn)行測(cè)試還是采用MBIST;處理器內(nèi)核本身有沒有采用內(nèi)部掃描或者是否帶有LBIST,它是否能被整合入總體芯片測(cè)試方案;怎樣才能使片上專用邏輯取得可以接受的故障覆蓋率;是采用全掃描還是部分掃描等。
3.1 邊界掃描設(shè)計(jì)的應(yīng)用
現(xiàn)在大多數(shù)SOC包含模擬信號(hào),一種切實(shí)可行的可測(cè)試性設(shè)計(jì)策略是將模擬部分、數(shù)字部分和存儲(chǔ)器部分分開。為了將測(cè)試信號(hào)傳遞給各部分和進(jìn)行互連測(cè)試,邊界掃描(IEEE 1149.1和1149.4)是現(xiàn)有的最好解決方案[10] 。
混合信號(hào)器件的模擬測(cè)試總線(ATB)(IEEE 標(biāo)準(zhǔn)1149.4)體系結(jié)構(gòu)。TAP表示測(cè)試訪問(wèn)端口、ATAP表示模擬測(cè)試訪問(wèn)端口、ABM表示模擬邊界模塊、D(DBM)表示數(shù)字邊界模塊、TBIC表示測(cè)試總線接口電路。AT1傳送模擬激勵(lì), AT2將模擬響應(yīng)發(fā)送回ATE。互連中的短路和開路故障很有可能發(fā)生在模擬內(nèi)核和數(shù)字內(nèi)核之間,采用以往的基于IEEE 1149.1邊界掃描方案是不能測(cè)試這類故障的,并且也無(wú)法測(cè)試模擬內(nèi)核,而上述的方案就能很好的解決這些問(wèn)題。
若SOC邊界掃描方案支持INTEST或RUNBIST指令,則邊界寄存器必須在芯片上電路的數(shù)字部分和模擬部分之間包含接口單元 [10],如圖4所示。這對(duì)在INTEST中控制和觀察在模擬部分和數(shù)字部分之間包含的信號(hào)是必須的。圖4給出了如何使用INTEST測(cè)試模擬內(nèi)核。在任何時(shí)間只有一個(gè)模擬管腳可以被激勵(lì),也只有一個(gè)被觀察。INTEST指令斷開數(shù)字內(nèi)核并將它用來(lái)自邊界寄存器的設(shè)置圖形替換。TBIC、ABM模塊和位于數(shù)字內(nèi)核與模擬內(nèi)核之間的三個(gè)邊界寄存器單元被用于設(shè)置測(cè)試。如果要測(cè)試的是數(shù)字內(nèi)核,所有標(biāo)注為D的單元將是有效的,TBIC和 ABM單元將配置成只能從TDI到TDO傳送信號(hào)。
3.2 TOP層測(cè)試解決方案
SOC的TOP層測(cè)試解決方案如圖5所示。先對(duì)存儲(chǔ)器、處理器核、模擬/混合電路核、第三方IP核、專用數(shù)字邏輯等模塊按照上文介紹的DFT方法進(jìn)行設(shè)計(jì)。然后用邊界掃描(符合IEEE 1149.1和1149.4)的控制器來(lái)控制芯片內(nèi)各個(gè)芯核及專用邏輯的測(cè)試,采用層次化的測(cè)試訪問(wèn)機(jī)制來(lái)實(shí)現(xiàn)對(duì)各模塊的控制(由邊界掃描控制器控制ITCM,再由ITCM對(duì)各子層TCM進(jìn)行控制)。圖中省略了LBIST和模擬BIST模塊。
內(nèi)部掃描和JTAG結(jié)合以后可以節(jié)省測(cè)試管腳數(shù),但不再支持原來(lái)的各掃描鏈并行輸入輸出方式,這樣必將使測(cè)試向量的掃描移位時(shí)間大大延長(zhǎng)。所以,如果專用數(shù)字邏輯門數(shù)龐大時(shí),還是應(yīng)采用傳統(tǒng)的并行方式,或者應(yīng)用PBIST,OPMISR, EDT等技術(shù)。各種BIST模塊和JTAG結(jié)合后,不再需要直接與ATE相連,自然也減少了測(cè)試管腳數(shù),各BIST模塊測(cè)試所需初始化數(shù)據(jù)也可由JTAG來(lái)提供。
4 結(jié)語(yǔ)
今天的SOC設(shè)計(jì)在測(cè)試方面所花的時(shí)間和費(fèi)用可能要比實(shí)際功能電路開發(fā)更多,導(dǎo)致產(chǎn)品成本升高,甚至喪失商機(jī)。要使新的IC設(shè)計(jì)具有全面可測(cè)試性的唯一途徑就是開展早期RTL可測(cè)試性分析,并綜合運(yùn)用內(nèi)部掃描、BIST、邊界掃描技術(shù)以及其他新的DFT技術(shù),以提高測(cè)試的故障覆蓋率,縮短設(shè)計(jì)周期,加快產(chǎn)品的上市速度。