【技術(shù)領(lǐng)域】
本發(fā)明屬于soc、dsp等超大規(guī)模集成電路的嵌入式flash的可測性設(shè)計(jì)技術(shù)領(lǐng)域,涉及一種片上嵌入式flash的內(nèi)建自測試結(jié)構(gòu)。
背景技術(shù):
隨著集成電路制造工藝步入超深亞微米階段,嵌入式存儲器在soc片上系統(tǒng)芯片中占據(jù)的比例越來越大,據(jù)預(yù)測,到2016年,片上嵌入式存儲器的面積將占到復(fù)雜soc芯片面積的95%以上。
flash,作為一種基于浮柵技術(shù)的非揮發(fā)性存儲器,具有自身獨(dú)特的優(yōu)點(diǎn):非易失、不需特殊的外部高壓即可進(jìn)行電擦除和重復(fù)編程,成本低,密度大。正是基于上述特點(diǎn),flash被越來越多地應(yīng)用于嵌入式系統(tǒng)中。然而,隨著半導(dǎo)體器件特性尺寸的不斷縮小,包括flash在內(nèi)的嵌入式存儲器存在的缺陷類型也越來越多。如何對其進(jìn)行簡潔有效的高覆蓋性測試,是超大規(guī)模集成電路可測性設(shè)計(jì)中亟需解決的關(guān)鍵問題。
目前,通過傳統(tǒng)的功能測試方法對flash進(jìn)行的測試,主要存在測試覆蓋性低、測試時(shí)間長,測試生成困難,測試效率低下等諸多弊端。而依托eda工具,針對片上嵌入式存儲器的內(nèi)建自測試技術(shù)已成為存儲器的主流測試技術(shù),但鑒于flash的讀寫、擦除和編程等特點(diǎn),eda工具對flash的內(nèi)建自測試技術(shù)還不能夠有效支持。
當(dāng)前針對flash的內(nèi)建自測試研究也有一些成果,“soc嵌入式flash存儲器的內(nèi)建自測試設(shè)計(jì)”(微電子學(xué)與計(jì)算機(jī)2005年第22卷第4期)一文中介紹的采用硬件方式的存儲器內(nèi)建自測試方案,其利用一塊專門的rom存儲器存儲fbist控制器所需的測試算法和測試進(jìn)程信息,存儲器bist封裝器采用裁剪后的ieee1500結(jié)構(gòu),所有的測試命令和結(jié)果都通過wsi/wso串行輸入輸出。該結(jié)構(gòu)硬件開銷較大,測試指令的執(zhí)行需要依托ieee1500結(jié)構(gòu),測試控制較為復(fù)雜;尤其對于內(nèi)嵌的多組flash存儲器,該方法需要有較大的硬件開銷,并且該方法通過總線接口模塊將系統(tǒng)總線與fbist控制器連接,在一定程度上依賴處理器的功能和軟件的支持,仍然沒有擺脫功能性測試的范疇。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于提供一種結(jié)構(gòu)獨(dú)立、測試控制簡單的片上嵌入式flash的內(nèi)建自測試結(jié)構(gòu),完全意義上實(shí)現(xiàn)芯片級或系統(tǒng)級嵌入式flash的內(nèi)建自測試。
為實(shí)現(xiàn)上述目的,本發(fā)明采用以下技術(shù)方案:
一種片上嵌入式flash的內(nèi)建自測試結(jié)構(gòu),包括自定義控制模塊、fbist控制器、erase模塊和bypass模塊;
自定義控制模塊用于擦除操作和讀寫操作的狀態(tài)控制與調(diào)度;
fbist控制器為讀寫操作的算法實(shí)現(xiàn)電路,flash的讀出數(shù)據(jù)通過fbist控制器內(nèi)部比較器與期望值進(jìn)行自動比對,fbist控制器讀寫操作的執(zhí)行受控于自定義控制模塊,通過測試流程控制實(shí)現(xiàn)對控制信號的接收、停止或喚醒算法執(zhí)行以及擦除操作的執(zhí)行;
erase模塊在自定義控制模塊的調(diào)度下負(fù)責(zé)控制flash的擦除操作;
bypass模塊用于實(shí)現(xiàn)電路全掃描測試模式下的flash旁路功能;
當(dāng)fbist控制器使能后,fbist控制器發(fā)起操作,依據(jù)內(nèi)部控制器狀態(tài)機(jī)與自定義控制模塊和erase模塊的相互配合,實(shí)現(xiàn)對其地址、讀寫的序列操作和擦除切換,并將讀出結(jié)果與片上比較器進(jìn)行測試結(jié)果比對,輸出結(jié)果表征信號,測試結(jié)束時(shí),測試完成標(biāo)識跳高。
進(jìn)一步,在測試過程中若測試存在失效,則依靠診斷模塊,采集失效數(shù)據(jù)。
進(jìn)一步,診斷模塊由診斷控制、診斷掃描兩個(gè)狀態(tài)機(jī)及保持控制模塊組成,診斷控制狀態(tài)機(jī)實(shí)現(xiàn)整個(gè)診斷過程的控制,診斷掃描狀態(tài)機(jī)用于控制診斷數(shù)據(jù)的串行輸出。
進(jìn)一步,診斷模塊與fbist控制器通過信號握手的方式實(shí)現(xiàn)整個(gè)自測試和診斷工作的進(jìn)行。
進(jìn)一步,當(dāng)期望值與實(shí)際輸出不匹配時(shí),fbist控制器的測試失效信號跳高,并通過failure信號與診斷狀態(tài)機(jī)交互,同時(shí)使能內(nèi)部診斷模塊,進(jìn)入診斷模式,通過保持控制模塊控制bist電路在失效診斷階段算法的保持和恢復(fù),診斷模塊通過monitor端口并行采集失效時(shí)的相關(guān)數(shù)據(jù),并將該信息通過dout端口串行輸出至片外,待失效信息移位完成,fbist控制器再次啟動,繼續(xù)后續(xù)的測試算法操作。
本發(fā)明的片上嵌入式flash的內(nèi)建自測試結(jié)構(gòu)包括自定義控制模塊、fbist控制器、erase模塊和bypass模塊,實(shí)現(xiàn)了對flash的內(nèi)部訪問以及測試結(jié)果比較,外部僅需一個(gè)測試啟動信號和控制器時(shí)鐘信號,在測試結(jié)束后通過測試完成標(biāo)志位與測試失效標(biāo)志位表征測試結(jié)果,同時(shí),通過對診斷串行輸出結(jié)果的分析,可以掌握flash的失效地址、算法執(zhí)行狀態(tài)、讀寫狀態(tài)以及輸出數(shù)據(jù)信息,從而為進(jìn)一步的故障定位提供依據(jù),實(shí)現(xiàn)芯片級或系統(tǒng)級嵌入式flash的內(nèi)建自測試。
本發(fā)明和現(xiàn)有技術(shù)相比還具有以下有益效果:
(1)本發(fā)明測試控制簡單,外部僅需觸發(fā)一個(gè)測試啟動信號,即可通過內(nèi)部的狀態(tài)機(jī)操作和算法控制,實(shí)現(xiàn)對flash的讀寫、擦除等序列操作,進(jìn)而完成片上自測試。
(2)本發(fā)明結(jié)構(gòu)獨(dú)立,避免了對功能處理器和軟件的依賴,能夠直接表征flaship的正確性。
(3)本發(fā)明的測試算法生成、測試執(zhí)行和測試比對均依靠內(nèi)部自測試電路自主完成,大大降低了flash測試的難度。
(4)本發(fā)明的flash內(nèi)建自測試結(jié)構(gòu)能夠匹配多種主流flash測試算法,依靠自定義算法模型,均可實(shí)現(xiàn)硬件算法生成,有效提高了針對flash的故障覆蓋。
【附圖說明】
圖1嵌入式flash內(nèi)建自測試結(jié)構(gòu)示意圖
圖2嵌入式flash內(nèi)建自測試診斷模塊示意圖
圖3片上嵌入式fbist結(jié)構(gòu)應(yīng)用實(shí)例示意圖
【具體實(shí)施方式】
下面結(jié)合附圖和具體實(shí)施例對本發(fā)明作進(jìn)一步詳細(xì)描述,但不作為對本發(fā)明的限定。
本發(fā)明在借鑒存儲器bist設(shè)計(jì)的基礎(chǔ)上,通過構(gòu)建片上flash的fbist控制器及其他控制電路,并自定義算法,來實(shí)現(xiàn)針對flaship的內(nèi)建自測試。
如圖1所示,整個(gè)自測試結(jié)構(gòu)包括:自定義控制模塊、fbist(flashbist)控制器、erase控制和bypass等模塊。其中自定義控制模塊用于擦除操作和讀寫操作的狀態(tài)控制與調(diào)度;fbist控制器為讀寫操作的算法實(shí)現(xiàn)電路。flash的讀出數(shù)據(jù)通過fbist控制器內(nèi)部比較器與期望值進(jìn)行自動比對。與普通存儲器的bist電路不同,讀寫操作的執(zhí)行受控于自定義控制模塊,通過測試流程控制實(shí)現(xiàn)對控制信號的接收、停止或喚醒算法執(zhí)行以及擦除操作的執(zhí)行;erase模塊在自定義控制模塊的調(diào)度下負(fù)責(zé)控制flash的擦除操作。bypass模塊用于實(shí)現(xiàn)電路全掃描測試模式下的flash旁路功能,以確保fbist控制器的掃描測試覆蓋性。
當(dāng)fbist控制器使能后,fbist控制器發(fā)起操作,依據(jù)內(nèi)部控制器狀態(tài)機(jī)與自定義控制模塊和擦除模塊的相互配合,實(shí)現(xiàn)對其地址、讀寫的序列操作和擦除切換,并將讀出結(jié)果與片上比較器進(jìn)行測試結(jié)果比對,輸出結(jié)果表征信號,測試結(jié)束時(shí),測試完成標(biāo)識跳高。若期間,測試存在失效,則可依靠診斷模塊,采集失效數(shù)據(jù)。
診斷模塊由診斷控制、診斷掃描兩個(gè)狀態(tài)機(jī)及保持控制模塊組成,如圖2所示。診斷控制狀態(tài)機(jī)實(shí)現(xiàn)整個(gè)診斷過程的控制;診斷掃描狀態(tài)機(jī)用于控制診斷數(shù)據(jù)的串行輸出。診斷模塊與fbist控制器通過信號握手的方式實(shí)現(xiàn)整個(gè)自測試和診斷工作的進(jìn)行。當(dāng)期望值與實(shí)際輸出不匹配時(shí),fbist控制器的測試失效信號跳高,并通過failure信號與診斷狀態(tài)機(jī)交互,同時(shí)使能內(nèi)部診斷模塊,進(jìn)入診斷模式,通過保持控制模塊控制fbist控制器在失效診斷階段算法的保持和恢復(fù),診斷模塊通過monitor端口并行采集失效時(shí)的相關(guān)數(shù)據(jù),并將該信息通過dout端口串行輸出至片外。待失效信息移位完成,fbist控制器再次啟動,繼續(xù)后續(xù)的測試算法操作。
實(shí)施例
在某款0.18um工藝的超大規(guī)模soc芯片上,集成了四塊128k容量的flaship,該ip支持宏擦除和頁擦除,功能測試訪問耗時(shí)較長,且控制較為復(fù)雜,為了能夠?qū)崿F(xiàn)針對電路中嵌入式flaship的高效測試,可測性設(shè)計(jì)時(shí),采用了本發(fā)明的片上嵌入式flash內(nèi)建自測試結(jié)構(gòu),接口邏輯如圖3所示。
設(shè)計(jì)中,考慮到flash的規(guī)模和測試時(shí)間,采用了并行測試技術(shù),在本發(fā)明內(nèi)建自測試結(jié)構(gòu)的支持下,對四塊128k的flash實(shí)現(xiàn)并行測試,由一塊fbist控制器統(tǒng)一進(jìn)行測試控制。當(dāng)fbist電路使能時(shí),控制器在狀態(tài)機(jī)操作和自定義模塊的控制下,依據(jù)算法序列,產(chǎn)生測試數(shù)據(jù)、地址和控制信號,并通過測試流程控制,實(shí)現(xiàn)對控制信號的接收、停止或喚醒算法執(zhí)行以及擦除操作的執(zhí)行;flash兩種擦除模式(宏擦除和頁擦除)的切換與操作則在erase模塊的控制下進(jìn)行。通過fbist內(nèi)部比較器,實(shí)現(xiàn)了對flash讀取數(shù)據(jù)的自動比對;當(dāng)測試失效時(shí),診斷控制電路依據(jù)控制器算法執(zhí)行狀態(tài)從端口串行輸出失效地址、數(shù)據(jù)和讀寫狀態(tài)。
為了實(shí)現(xiàn)對flash的高覆蓋性測試,設(shè)計(jì)依據(jù)flash的內(nèi)部工作時(shí)序進(jìn)行了建模,并采用業(yè)界認(rèn)可的針對flash測試具有高覆蓋性的cocktail-march和march-ft算法,覆蓋寫柵極干擾、擦柵極失效、寫漏極干擾、擦漏極干擾、讀干擾、過擦失效和橋接失效等故障模型。針對flash主存儲空間采用cocktail-march算法,算法步驟如下:
{e}↑r1,↑w0r0,↑r0,{e}↓r1,↓w0r0,↓r0
{e}↑w(1100)r(1100),{e}↓w(1100)r(1100)
{e}↑w(0011)r(0011),{e}↓w(0011)r(0011)
{e}↑w(1010)r(1010),{e}↓w(1010)r(1010)
{e}↑w(0101)r(0101),{e}↓w(0101)r(0101)
cocktail-march算法采用了類似普通存儲器的經(jīng)典march算法的數(shù)據(jù)背景,并根據(jù)flash的操作要求,增加了相應(yīng)的擦除過程({e}為擦除操作),實(shí)現(xiàn)了對flash多種故障的檢測。
flash的擦除操作分為宏擦除{me}和頁擦除{pe},為了檢測頁擦除干擾故障,使用了改進(jìn)的march-ft-page算法,其步驟如下:
{me}w0
↑pr0,{pe},↑pr1pw0pr0
↓pr0,{pe},↓pr1pw0pr0
r0
在全擦除后對全地址寫0,然后分別以升序和降序按頁執(zhí)行讀操作和擦除及當(dāng)前頁的讀寫讀操作,并在最后進(jìn)行全地址讀0操作,以此檢測出頁擦除干擾類故障。
本電路中使用的flash還包含一個(gè)256byte的信息存儲陣列,在進(jìn)行內(nèi)建自測試設(shè)計(jì)時(shí),測試序列中增加了專門的信息存儲陣列選通信號,通過選中信息模塊后,通過施加算法,實(shí)現(xiàn)了對該部分存儲空間的測試。
為簡化控制邏輯,針對flash的內(nèi)建自測試結(jié)構(gòu)與其他存儲器內(nèi)建自測試均通過外部jtag端口實(shí)現(xiàn)控制和啟動,并可以通過jtag進(jìn)行結(jié)果觀測,使flash的內(nèi)建自測試與整個(gè)電路的可測性設(shè)計(jì)高度融合?;谠摻Y(jié)構(gòu),我們在v93k測試平臺上成功實(shí)現(xiàn)了對flaship的測試,有效縮短了測試時(shí)間,提高了測試效率。
以上內(nèi)容是結(jié)合具體的優(yōu)選實(shí)施方式對本發(fā)明所作的進(jìn)一步詳細(xì)說明,不能認(rèn)定本發(fā)明的具體實(shí)施方式僅限于此,對于本發(fā)明所屬技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干簡單的推演或替換,都應(yīng)當(dāng)視為屬于本發(fā)明由所提交的權(quán)利要求書確定專利保護(hù)范圍。