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