0 引言
隨著集成電路的發(fā)展,越來越多的ASIC和SoC開始使用嵌入式SRAM來完成數(shù)據(jù)的片上存取功能,。但嵌入式SRAM的高密集性物理結(jié)構(gòu)使得它很容易在生產(chǎn)過程中產(chǎn)生物理故障而影響芯片的良率,,所以,SRAM的測試設(shè)計(jì)顯得尤為重要。對(duì)于單片或者數(shù)量很小的幾片嵌入式SRAM,,常用的測試方法是通過存儲(chǔ)器內(nèi)建自測試MBIST來完成,,實(shí)現(xiàn)時(shí)只需要通過EDA軟件選取相應(yīng)的算法,并給每片SRAM生成MBIST控制邏輯,。但現(xiàn)實(shí)中,,大型ASIC和SoC設(shè)計(jì)常常需要使用很多片SRAM,簡單采用這種MBIST方法會(huì)生成很多塊MBIST控制邏輯,,從而增大芯片面積,,增加芯片功耗,甚至加長芯片測試時(shí)間,。
本文基于MBIST的一般測試方法來對(duì)多片SRAM的可測試設(shè)計(jì)進(jìn)行優(yōu)化,,提出了一種通過一個(gè)MBIST控制邏輯來實(shí)現(xiàn)多片SRAM的MBIST測試的優(yōu)化方法。
1 MBIST介紹
MBIST意即存儲(chǔ)器內(nèi)建自測試(Memory Build In Self Test),,是目前業(yè)界用來測試存儲(chǔ)器的一種常見方法,,其原理是通過多次反復(fù)讀寫SRAM來確定其是否存在制造中的缺陷。MBIST的EDA工具可針對(duì)內(nèi)嵌存儲(chǔ)器自動(dòng)創(chuàng)建BIST邏輯,,它支持多種測試算法的自動(dòng)實(shí)現(xiàn)(常用算法為March C+),,并可完成BIST邏輯與存儲(chǔ)器的連接。此外,,MBIST結(jié)構(gòu)中還可包括故障自動(dòng)診斷功能,,方便故障定位和特定測試向量的開發(fā)。MB-IST的基本結(jié)構(gòu)如圖1所示,。
整個(gè)SRAM和MBIST控制邏輯構(gòu)成的整體只是在原有SRAM端口的基礎(chǔ)上增加了復(fù)位信號(hào)rst_n和bist_start信號(hào)(為高表示開始測試)兩個(gè)輸入信號(hào),,同時(shí)增加了test_done(為高表示測試完成)、fail_h(為高表示出現(xiàn)故障),、addr_er(fail_h為高時(shí)輸出的故障地址有效)等三個(gè)輸出信號(hào),。
2 多片SRAM的MBIST測試結(jié)構(gòu)
基于SMIC 0.13um工藝的OSD (On Screen Display)顯示芯片需嵌入地址位寬為8-bit、數(shù)據(jù)位寬為512-bit,。即大小為256x512bit的SRAM來存儲(chǔ)大量的客戶定制字符,。由于Artisan的SPSRAM Generator支持的SRAM模型的最大數(shù)據(jù)位寬為64 bit,故可通過8片大小為256×64 bit的SRAM來實(shí)現(xiàn),。
利用Mentor公司的MBIST Architect選取March3算法可產(chǎn)生兩種MBIST結(jié)構(gòu),。其一為每片256x64 bit的SRAM各生成一套MBIST邏輯,以構(gòu)建MBIST并行結(jié)構(gòu),,圖2所示為其并行結(jié)構(gòu)示意圖,。該方法可對(duì)所有MBIST的test_done(完成標(biāo)志)進(jìn)行“與”操作,以保證所有SRAM都測試結(jié)束,;fail_h(失效標(biāo)志)可進(jìn)行“或”操作來實(shí)現(xiàn)(高有效),,只要有一個(gè)SRAM出現(xiàn)故障即停止測試,,否則表明所有SRAM測試都通過。
第二種方法是針對(duì)256×64bit大小的SRAM只生成一套MBIST,,然后通過附加的狀態(tài)機(jī)和數(shù)字邏輯來對(duì)多片SRAM逐一進(jìn)行測試,,即構(gòu)建如圖3所示的MBIST串行結(jié)構(gòu)。當(dāng)所測的某一個(gè)SRAM出現(xiàn)故障即停止測試,,若所有SRAM測試結(jié)束都未有error信號(hào)輸出,,則表明所有SRAM測試均通過。
3 結(jié)果比較
對(duì)于串行MBIST結(jié)構(gòu),,在前端設(shè)計(jì)時(shí)需要考慮到所有SRAM的大小等情況,,而多數(shù)設(shè)計(jì)中,嵌入的SRAM大小各不相同,,所以,,前端實(shí)現(xiàn)較復(fù)雜;復(fù)用同一套MBIST結(jié)構(gòu)(如激勵(lì)產(chǎn)生結(jié)構(gòu)和比較電路等)雖然節(jié)省面積,,但為了有利于時(shí)序收斂及繞線,,往往需要SRAM靠近與之有邏輯關(guān)系的功能單元,但這會(huì)對(duì)芯片整體物理版圖的設(shè)計(jì)帶來一定束縛,;SRAM數(shù)量較大時(shí),,逐一測試顯然能使功耗降到最低,但可能導(dǎo)致測試時(shí)間增長,,測試成本上升,。
對(duì)于并行MBIST結(jié)構(gòu),由于SRAM各成體系,,互不相擾,,前后端實(shí)現(xiàn)都很容易,芯片測試時(shí)間短,,但較之串行MBIST結(jié)構(gòu),,則會(huì)增加芯片面積和功耗,而且其功耗還有可能超過電源網(wǎng)供電容限而導(dǎo)致芯片燒掉,;
兩種實(shí)現(xiàn)方法的結(jié)果比較如表1所列,。
基于表1,該OSD芯片應(yīng)采用并行MBIST結(jié)構(gòu),。對(duì)多個(gè)不同大小的SRAM MBIST架構(gòu),,采用串行MBIST結(jié)構(gòu)可以大幅降低面積與功耗,但無論對(duì)于串測還是并測來說,,隨著數(shù)據(jù)位寬較大的SRAM (如位寬64 bit)數(shù)量的增多,,與SRAM直接相連的邏輯會(huì)顯著影響掃描測試的覆蓋率。
4 MBIST對(duì)掃描測試覆蓋率的影響
DFT設(shè)計(jì)有可控制性和可觀測性兩個(gè)基本原則,,即對(duì)DFT設(shè)計(jì)要求所有輸入邏輯是可控的和輸出邏輯是可測的,。不可控邏輯和不可測邏輯對(duì)測試覆蓋率提出了很大的挑戰(zhàn),。通常可以通過適當(dāng)添加測試點(diǎn)的方式,,使原來不可控和不可測的邏輯變化反映到掃描鏈上,使之變得間接可控和可觀測,,以提高整個(gè)芯片的測試覆蓋率和測試效率,。
Svnopsys公司的TetraMAX ATPG定義的故障覆蓋率(fault coverage)如下:
若測試覆蓋率較低,首先應(yīng)分析DRC(design rule constraint)Violations,,并盡量消除DRCViolations,。再分析AU(ATPG untestable)報(bào)告,減少AU的數(shù)量,。按照模塊層次來報(bào)告測試覆蓋率時(shí),,應(yīng)找到覆蓋率低的模塊重點(diǎn)分析。該項(xiàng)目的AU報(bào)告中和RAM有關(guān)的部分占了很大一部分,。RAM自測試模塊的測試覆蓋率只有6%,。分析工具把RAM當(dāng)做black box,由于這些SRAM的數(shù)據(jù)位很寬,,故SRAM數(shù)據(jù)端口不可控和不可測的邏輯(稱為陰影邏輯)更多,,芯片的測試覆蓋率也更低。給RAM加旁路(bypass)邏輯,,測試模式下將輸入和輸出連起來,,可使原來不可控和不可觀測的邏輯變化反映到掃描鏈上,使之變得間接可控和可觀測,,從而提高整個(gè)芯片的測試覆蓋率,。RAM的輸入比輸出多,故可用XOR連接,。對(duì)于XOR/XNOR門,,為了將故障響應(yīng)從它的一個(gè)輸入傳播到它的輸出,可根據(jù)方便程度設(shè)置所有其他的輸入為0或1,。而對(duì)于AND/NAND門,,為了將系統(tǒng)的故障響應(yīng)從它的一個(gè)輸入傳播到它的輸出,則必須通過將其他輸入設(shè)置為l來實(shí)現(xiàn),,其中“l”對(duì)于AND/NAND門是一個(gè)非控制值,。同理,“0”對(duì)于OR/NOR門也是一個(gè)非控制值,。圖4所示是旁路RAM的電路示意圖,。圖中,多路選擇器由test_mode信號(hào)控制,,與RAM的輸入輸出連接的邏輯可測,,RAM模塊的測試覆蓋率可提高到98.3%,,相應(yīng)的整個(gè)芯片的測試覆蓋率提高了4個(gè)百分點(diǎn)。
由此可見,,MBIST結(jié)構(gòu)可直接實(shí)例化地用在數(shù)字設(shè)計(jì)部分,。該系統(tǒng)的功能邏輯部分含有萬余寄存器,為了提高測試覆蓋率添,,加幾個(gè)寄存器及很少組合邏輯作為測試點(diǎn)后,,即可將測試覆蓋率提高且不會(huì)增加太大的面積開銷,因而這種方法是很有效率的,。如果前期設(shè)計(jì)時(shí)就能考慮這種測試結(jié)構(gòu),,DFT設(shè)計(jì)過程中就會(huì)減少反復(fù),減少測試設(shè)計(jì)周期,。
5 結(jié)束語
本文基于一個(gè)實(shí)際項(xiàng)目,,分別用常用的并行與串行兩種方式來實(shí)現(xiàn)MBIST的構(gòu)架,并對(duì)其開銷進(jìn)行了定量與定性討論,,結(jié)果是對(duì)于不同的設(shè)計(jì),,應(yīng)當(dāng)靈活構(gòu)建測試結(jié)構(gòu)以達(dá)到設(shè)計(jì)目的。對(duì)于在嵌入式存儲(chǔ)器數(shù)量較少,,位寬較小的情況下,,MBIST對(duì)掃描測試覆蓋率的影響并不明顯,易被人們忽視,,一旦這種影響顯著發(fā)生,,比較高效的方法是插入旁路電路,這樣,,在提高覆蓋率的同時(shí)也不會(huì)增加太大的面積開銷,。可見,,對(duì)于一個(gè)嵌入多片SRAM的SOC進(jìn)行DFT設(shè)計(jì)時(shí),。應(yīng)從多維度靈活處理,折中考慮,。