韋純進(jìn),廖勇,張亭亭,李佳俊
(航天科工防御技術(shù)研究試驗(yàn)中心,北京,100854)
隨著存儲(chǔ)器的不斷發(fā)展,實(shí)現(xiàn)存儲(chǔ)器全地址多功能測(cè)試所需要的向量深度也急劇增加。針對(duì)大容量存儲(chǔ)器的測(cè)試開發(fā),利用傳統(tǒng)的手動(dòng)復(fù)制法實(shí)現(xiàn)全地址測(cè)試向量編寫會(huì)使軟件變得非??D,甚至需要耗費(fèi)十幾個(gè)小時(shí)才能完成一個(gè)完整向量的編寫。加之單個(gè)存儲(chǔ)器需要完成MSCAN、CheckBoard、對(duì)角線類、MARCH 等不同算法向量的編寫,若全部采用手動(dòng)復(fù)制法編寫,會(huì)使得開發(fā)效率非常低。并且,目前大容量FLASH 的測(cè)試時(shí)間花費(fèi)較長(zhǎng),主要因?yàn)槿刂窚y(cè)試向量編寫均采用的是字節(jié)寫(Word Program)模式,這種存儲(chǔ)器數(shù)據(jù)寫入方式的效率較低,進(jìn)而影響一線測(cè)試效率。
因此,研究如何實(shí)現(xiàn)存儲(chǔ)器的數(shù)據(jù)快速高效寫入對(duì)提高存儲(chǔ)器的開發(fā)和測(cè)試效率尤為關(guān)鍵。鑒于此,考慮到基于ATE 的DSRC 技術(shù)在向量自動(dòng)生成方面的便利性以及寫緩沖技術(shù)在存儲(chǔ)器數(shù)據(jù)快速寫入方面的高效性,本文將基于DSRC 技術(shù)和寫緩沖技術(shù),實(shí)現(xiàn)存儲(chǔ)器全地址測(cè)試向量自動(dòng)生成以及測(cè)試數(shù)據(jù)的快速寫入,并以MT28EW01GABA1HPC 為例,對(duì)測(cè)試開發(fā)效率及測(cè)試效率的提升情況進(jìn)行對(duì)比。
MT28EW01GABA1HPC 是Micron 公司生產(chǎn)的容量為1Gbit 的16 位NorFlash 存儲(chǔ)器,供電電壓為2.7V ~3.6V。該存儲(chǔ)器芯片典型的單字寫入時(shí)間25μs,片擦除時(shí)間208s,512 字寫緩沖時(shí)間1μs。芯片引腳定義如圖1 所示。
圖1 MT28EW01GABA1HPC引腳圖
(1)地址線:A0~A25;
(2)數(shù)據(jù)線:DQ0~DQ15;
(3)控制信號(hào):WE#、RST#、OE#、CE#、BYTE#、VPP/WP#;
(4)準(zhǔn)備/忙狀態(tài)標(biāo)志位:RY/BY#。
DSRC(Digital Source Setup:數(shù)據(jù)源設(shè)置)技術(shù)是ATE 測(cè)試系統(tǒng)自帶的數(shù)據(jù)源設(shè)置工具,可以極大地提高存儲(chǔ)器測(cè)試向量編寫的效率,本文通過DSRC 完成地址向量的自動(dòng)生成。但是DSRC 生成的測(cè)試向量的深度受限于ATE的License,可選的深度有1M、2M、8M、16M 不等,當(dāng)存儲(chǔ)器的容量超過DSRC 所支持的地址范圍時(shí),則需要通過底層代碼去遍歷存儲(chǔ)器高位地址,以實(shí)現(xiàn)全地址測(cè)試。MT28EW01GABA1HPC 的地址引腳范圍為A0~A25,如果ATE 只能生成2M 存儲(chǔ)深度的DSRC,覆蓋的地址范圍為A0~A20;則存儲(chǔ)器高位地址A21~A25 只能通過底層測(cè)試算法去遍歷。本文采用的是頁緩沖快速寫入,一次頁緩沖可寫入512 個(gè)Word,因此生成的地址范圍為A08~A0,基于DSRC 的測(cè)試向量生成步驟如圖2 所示。
圖2 基于DSRC 測(cè)試向量生成步驟示意圖
由圖2 可知,就要DSRC 的測(cè)試向量生成主要分為三步:
第一步:設(shè)置PORT。在Pin Configuration 中設(shè)置相應(yīng)的端口Port_A08_A0(A0~A08),由于DSRC 的存儲(chǔ)向量深度為2M,因此可覆蓋的地址引腳為A0~A08;
第二步:生成DSRC。根據(jù)所設(shè)置的PORT 端口生成DSRC,首先在向量中右鍵New Setup 進(jìn)入到DSRC 界面,然后根據(jù)相關(guān)需求配置Port 端口、幀數(shù)、偏移、DSRC 類型、Option、變量名、映射關(guān)系等參數(shù);
第三步:數(shù)據(jù)填充。在信號(hào)分析器界面對(duì)第二步生成的DSRC 進(jìn)行數(shù)據(jù)填充。首先在tool 中根據(jù)測(cè)試向量特征生成特定波形,本文生成的是斜率為1 的直線,x 的取值范圍根據(jù)設(shè)置port 端口而定,此處為0~511。然后在action 中將波形數(shù)據(jù)下載到生成的DSRC 向量中。通過DSRC 生成的自增地址向量A08~A0 如圖3 所示。
圖3 基于DSRC 自動(dòng)生成的地址向量
由于2M 的DSRC 生成的地址向量覆蓋范圍為A20~A0,因此高位地址A25~A21 的覆蓋需要通過底層算法去實(shí)現(xiàn),實(shí)現(xiàn)過程如圖4 所示。即借助于ATE 測(cè)試系統(tǒng)的開發(fā)環(huán)境,通過C++語言實(shí)現(xiàn)自定義測(cè)試方法,通過編譯后,可在流程圖界面的測(cè)試項(xiàng)中加載該自定義函數(shù),具有較強(qiáng)的靈活性。
圖4 底層算法遍歷高位地址實(shí)現(xiàn)過程
通過底層算法實(shí)現(xiàn)高位地址遍歷的具體過程如下:
第一步:切換顯示類型,進(jìn)入到ATE 測(cè)試系統(tǒng)的底層開發(fā)環(huán)境,并新建工程,后續(xù)在Testflow 中的方法引用則是通過該工程名進(jìn)行索引的;
第二步:一個(gè)工程中可以新建多個(gè)方法,在新建方法過程中會(huì)提示添加變量,此變量根據(jù)測(cè)試需求而定,本文添加了兩個(gè)變量page_addr_start(起始頁地址)和page_addr_stop(結(jié)束頁地址);
第三步:在virtual void run()函數(shù)中實(shí)現(xiàn)算法。
存儲(chǔ)器編程有字節(jié)寫(Word Program)和寫緩沖(Buffer Program)兩種方式。字節(jié)寫模式需要4 個(gè)周期完成一個(gè)Word 的寫入,其命令為555,AA;2AA,55;555,A0;PA,PD;該芯片寫入單個(gè)Word 需要25us 左右,編程效率極低。該芯片在寫緩沖模式則只需要517 個(gè)周期(包括指令周期和數(shù)據(jù)寫入周期)即可完成最多512Word的寫入。其命令為555,AA;2AA,55;BAd,25;BAd,N;PA,PD;BAd,29;一次寫緩沖需要200μs 左右,經(jīng)對(duì)比,通過寫緩沖模式進(jìn)行編程可以極大提高存儲(chǔ)器測(cè)試效率。
存儲(chǔ)器的故障檢測(cè)是基于特定的測(cè)試圖形算法實(shí)現(xiàn)的。針對(duì)存儲(chǔ)器的故障測(cè)試,一個(gè)高效、可靠的測(cè)試算法需要盡可能少的測(cè)試時(shí)間,覆蓋更多的故障類型。以下是幾種經(jīng)典的存儲(chǔ)器故障測(cè)試算法。
3.2.1 MSCAN 算法
MSCAN 算法是存儲(chǔ)器最基礎(chǔ)的一種測(cè)試算法,是對(duì)所有存儲(chǔ)單元進(jìn)行逐一掃描并統(tǒng)一寫入邏輯0 或邏輯1,也稱為全0/全1 算法。具體實(shí)現(xiàn)步驟為:對(duì)所有存儲(chǔ)單元寫入0 或者全1(NorFlash 通過擦除寫入邏輯1),然后再讀取所有存儲(chǔ)單元進(jìn)行比較,檢查是否存在錯(cuò)誤。全0/全1 算法測(cè)試圖形如圖5、圖6 所示。
圖5 MSCAN 全0 算法
圖6 MSCAN 全1 算法
3.2.2 Checkboard 算法
Checkboard 算法是將邏輯0 和邏輯1 奇偶相間地寫入存儲(chǔ)單元,形成類似于棋盤的格式,Anti-Checkboard 算法則與之相反,將邏輯1 和邏輯0 奇偶相間地寫入存儲(chǔ)單元,這兩種算法也稱為奇偶校驗(yàn)法。Checkboard 算法和Anti-Checkboard 算法的測(cè)試圖形如圖7、圖8 所示。
圖7 棋盤算法測(cè)試圖形
圖8 反棋盤算法測(cè)試圖形
3.2.3 對(duì)角線算法
對(duì)角線算法將整個(gè)存儲(chǔ)單元視為一個(gè)存儲(chǔ)陣列,對(duì)于處于存儲(chǔ)陣列對(duì)角線位置的存儲(chǔ)單元寫入邏輯值的同時(shí),使其他存儲(chǔ)單元保持初值或?qū)懭氩煌倪壿嬛怠D9 為對(duì)角線算法的測(cè)試圖形。
圖9 對(duì)角線算法測(cè)試圖形
本小節(jié)基于DSRC 技術(shù)和寫緩沖技術(shù)開展了芯片的全0 測(cè)試向量編寫。圖10 為基于DSRC 技術(shù)的寫緩沖向量圖形,第0、1 行向量為芯片上電復(fù)位后等待進(jìn)入工作狀態(tài),第3~6 行向量為寫緩沖指令,使芯片進(jìn)入寫緩沖狀態(tài),第8 行向量則通過SSRC 指令調(diào)用前述基于DSRC 生成的地址向量,第9~11 行向量則為通過512 次LOOP 循環(huán)指令向芯片內(nèi)寫入全0 數(shù)據(jù),該芯片一次寫緩沖最大可寫入512 個(gè)Word,第12 行向量為確認(rèn)寫緩沖指令。第12 行向量則通過RPTV 循環(huán)指令等待寫緩沖完成,該芯片一次512Word 的寫緩沖典型時(shí)間為512μs,選擇的芯片工作頻率為1MHz,因此循環(huán)了512 次。圖中第6 行、第8行、第11 行向量中的“.”表示該行向量地址A25~A09 的值與前一行對(duì)應(yīng)的值保持一致,需提前在Timing 文件的Waveform 中進(jìn)行定義。第9 行中A08~A00 的“...”表示調(diào)用通過DSRC 生成的地址向量值,SSRC 和SRCV 指令需成對(duì)使用才能完成調(diào)用,“SRCV 1 1”表示一次只執(zhí)行一行DSRC 向量。圖中第5 行紅色部分A25~A09 的地址向量值是通過底層算法去完成遍歷的。
圖10 基于DSRC 的底層寫緩沖向量
針對(duì)MT28EW01GABA1HPC 這款芯片,若通過手動(dòng)完成全0 測(cè)試向量的編寫則需要復(fù)制2.68 億行向量,在計(jì)算機(jī)性能滿足要求的前提下,需要復(fù)制將近10h 才能完成。若基于DSRC 技術(shù)和底層寫緩沖技術(shù)實(shí)現(xiàn)自動(dòng)向量生成,則只需要編寫如圖10 所示的一個(gè)循環(huán)向量(共計(jì)約13 行)以及通過DSRC 自動(dòng)生成一個(gè)如圖3 所示的A08~A0 的頁內(nèi)地址向量(共計(jì)約512 行),然后通過底層算法去遍歷高位頁地址(A25~A09)即可。經(jīng)過實(shí)際測(cè)試,采用該方法完成全0 向量測(cè)試只需要約0.3h(包括循環(huán)向量編寫時(shí)間和底層算法編寫時(shí)間),提升向量開發(fā)效率約3233%,具體效率提升情況還受開發(fā)人員熟練程度的影響。通過自動(dòng)生成和手動(dòng)復(fù)制完成向量編寫所需的開發(fā)時(shí)間以及寫緩沖與字節(jié)寫的測(cè)試時(shí)間對(duì)比如表1 所示。
表1 時(shí)間效率對(duì)比