專(zhuān)利名稱(chēng):隨機(jī)激勵(lì)閃存模型驗(yàn)證方法
技術(shù)領(lǐng)域:
本發(fā)明屬于集成電路設(shè)計(jì)、封裝與測(cè)試技術(shù)領(lǐng)域,具體是涉及一種閃存模型驗(yàn)證方法。
背景技術(shù):
Nandflash (與非快閃存儲(chǔ)器)是目前業(yè)界非常流行的存儲(chǔ)介質(zhì),具有存儲(chǔ)單元面積小,編程速度快,擦除時(shí)間短等優(yōu)勢(shì),所以Nandflash幾乎被用于所有可擦除的存儲(chǔ)卡。在常用的數(shù)字SOC (system on chip,片上系統(tǒng))芯片架構(gòu)中,常會(huì)使用Nandflash控制器負(fù)責(zé)與芯片外側(cè)的Nandflash閃存設(shè)備進(jìn)行通訊。作為SOC芯片內(nèi)處理器與Nandflash閃存之間的橋梁,閃存控制器通過(guò)向閃存發(fā)出指令實(shí)現(xiàn)對(duì)Nandflash編程、擦除等操作。所以Nandflash控制器在數(shù)字SOC芯片與Nandflash閃存設(shè)備通訊過(guò)程中起著不可替代的作用。因此Nandflash控制器的功能正確性是至關(guān)重要的。為了更好的驗(yàn)證Nandflash控制器,通常需要在Nandflash控制器的驗(yàn)證平臺(tái)中設(shè)計(jì)驗(yàn)證完備的Nandflash模型以協(xié)同工作。并且所設(shè)計(jì)的Nandflash控制器需要支持各種型號(hào)的Nandflash閃存芯片。因此在前端驗(yàn)證中需要針對(duì)市面上的各種型號(hào)的Nandflash閃存芯片的仿真模型進(jìn)行協(xié)調(diào)工作驗(yàn)證。然而,隨著Nandflash的越來(lái)越流行,越來(lái)越多的廠商開(kāi)始生產(chǎn)Nandflash閃存芯片,三星、美光及東芝等都是業(yè)界主流的Nandflash芯片制造商。目前市場(chǎng)上的各種Nandflash閃存芯片型號(hào)越來(lái)越多,由于缺少必要的規(guī)范做支撐,使得各種閃存芯片之間的差異性也越來(lái)越大。不同廠商提供的Nandflash仿真模型只針對(duì)各自的芯片功能進(jìn)行設(shè)計(jì),甚至同一廠商的不同芯片其仿真模型也不相同,單一的仿真模型具有很大的局限性和較低的靈活性,無(wú)法滿足Nandflash控制器對(duì)仿真模型的要求,尤其是這些模型(model)也存在一些問(wèn)題,如對(duì)設(shè)計(jì)規(guī)范具有相對(duì)滯后性,往往這些模型沒(méi)有實(shí)現(xiàn)最新的規(guī)范要求。因此,如果集成這些仿真模型用以驗(yàn)證Nandflash控制器,很難完成充分驗(yàn)證的要求,以及技術(shù)更新的要求。如圖I所示,Nandflash模型的接口信號(hào)有8或16根指令數(shù)據(jù)信號(hào)io以及6根控制信號(hào)芯片啟動(dòng)信號(hào)CEn,寫(xiě)使能信號(hào)WEn,讀使能信號(hào)REn,指令鎖存使能信號(hào)CLE,地址鎖存使能信號(hào)ALE,就緒/忙信號(hào)R/Bn。Nandflash控制器通過(guò)上述信號(hào)對(duì)Nandflash閃存進(jìn)行相應(yīng)的操作,如串行的復(fù)位、讀寫(xiě)Nandflash閃存芯片內(nèi)數(shù)據(jù)、讀取Nandflash閃存芯片狀態(tài)及芯片標(biāo)示符、擦除Nandflash閃存芯片內(nèi)數(shù)據(jù)、對(duì)NandfIash閃存芯片內(nèi)數(shù)據(jù)進(jìn)行ECC (Error Check Correct)算法校驗(yàn)等各項(xiàng)操作,操作相對(duì)復(fù)雜,且具有很多限制。例 如,與非閃存最小的讀寫(xiě)單位是頁(yè)(page),最小的擦除單位是塊(block),支持對(duì)已經(jīng)編程的page進(jìn)行編程操作之前要執(zhí)行擦除操作,執(zhí)行多個(gè)plane (平面)操作時(shí)候?qū)Φ刂返南拗频鹊?。顯然,由于與非閃存操作的復(fù)雜性和各種限制,使得采用常規(guī)的驗(yàn)證方法很難達(dá)到完備驗(yàn)證的要求。由于Nandflash復(fù)雜的操作時(shí)序,以及對(duì)生成的激勵(lì)有較強(qiáng)的限制要求。采用Verilog (硬件描述)以及System Verilog (系統(tǒng)級(jí)硬件描述)語(yǔ)言無(wú)法滿足隨機(jī)產(chǎn)生的要求。參考文獻(xiàn)“System Verilog中的隨機(jī)化激勵(lì)”,《CIC中國(guó)集成電路》2007年第10期(總第101期),指出在傳統(tǒng)的驗(yàn)證方法中,也有將激勵(lì)隨機(jī)化的方法,這樣可以用較少的測(cè)試代碼生成較多、較全面的測(cè)試激勵(lì)。System Verlog中強(qiáng)調(diào)在驗(yàn)證中使用可重用的驗(yàn)證IP(Intellectual Property),包括如何生成隨機(jī)化激勵(lì),只是使用簡(jiǎn)單的實(shí)例化方的激勵(lì)發(fā)生器不夠靈活,其中一個(gè)主要問(wèn)題是如何通過(guò)激勵(lì)發(fā)生器添加新的約束塊;這就形成了隨機(jī)化激勵(lì)的靈活性要求與約束塊編制不夠靈活的矛盾。
發(fā)明內(nèi)容
因此,本發(fā)明的目的在于提供一種隨機(jī)激勵(lì)閃存模型驗(yàn)證方法,能夠針對(duì)不同的閃存模型提供較高的測(cè)試覆蓋率。為了解決上述技術(shù)問(wèn)題,本發(fā)明采用以下技術(shù)方案
一種隨機(jī)激勵(lì)閃存模型驗(yàn)證方法,依據(jù)與非閃存操作命令權(quán)重編寫(xiě)偽匯編命令權(quán)重腳
本;
依據(jù)與非閃存模型讀取與非閃存參數(shù)和測(cè)試條件,配置與非閃存模型接口驅(qū)動(dòng);
調(diào)用所述偽匯編命令權(quán)重腳本隨機(jī)產(chǎn)生匯編偽命令,并通過(guò)以命令權(quán)重為約束條件產(chǎn)生預(yù)定總數(shù)的匯編偽命令,而生成偽匯編測(cè)試序列;
解析所述偽匯編測(cè)試序列,通過(guò)接口驅(qū)動(dòng)對(duì)閃存模型進(jìn)行測(cè)試。依據(jù)本發(fā)明的上述方案,依據(jù)與非閃存操作命令權(quán)重編寫(xiě)權(quán)重腳本,能夠覆蓋與非閃存操作命令及其重要程度,當(dāng)然這里的重要程度說(shuō)的是相關(guān)命令的使用頻率。當(dāng)權(quán)重腳本被隨機(jī)產(chǎn)生命令并被權(quán)重約束時(shí),能夠產(chǎn)生匹配實(shí)際操作的指令序列,命令被隨機(jī)到的概率預(yù)期權(quán)重理應(yīng)是一致的,因此所產(chǎn)生的測(cè)試序列具有代表性,并且據(jù)以可產(chǎn)生比較多的測(cè)試用例,提高了與非閃存模型驗(yàn)證的覆蓋率。人為介入的是權(quán)重文件的生成,當(dāng)然,通過(guò)既有的命令集可以獲取相關(guān)與非閃存的命令權(quán)重,進(jìn)而可以生成權(quán)重文件。中間不需要人為介入,可大大縮短研發(fā)周期,降低研發(fā)成本。借助匯編偽指令不產(chǎn)生機(jī)器語(yǔ)言代碼且不由CPU執(zhí)行的特點(diǎn),減小對(duì)系統(tǒng)資源的占用,且語(yǔ)法簡(jiǎn)單,使得不懂驗(yàn)證但懂偽匯編的人員也可以輕松的寫(xiě)出測(cè)試序列。上述隨機(jī)激勵(lì)閃存模型驗(yàn)證方法,隨機(jī)產(chǎn)生的匯編偽命令后,判斷該匯編偽命令對(duì)應(yīng)的與非閃存命令是否必須跟隨其他與非閃存命令,若需要?jiǎng)t產(chǎn)生跟隨與非閃存命令,若不需要,則判斷是否完成預(yù)定的匯編偽命令總數(shù),若已完成,則聲稱(chēng)偽匯編測(cè)試序列終止,否則繼續(xù)隨機(jī)產(chǎn)生匯編偽命令。上述隨機(jī)激勵(lì)閃存模型驗(yàn)證方法,根據(jù)所產(chǎn)生的匯編偽命令對(duì)應(yīng)的與非閃存命令是否需要定位與非閃存地址,若需要,則在所產(chǎn)生的匯編偽指令后約束操作地址,若不需要,省略操作地址。上述隨機(jī)激勵(lì)閃存模型驗(yàn)證方法,匯編偽指令包含的內(nèi)容為首先是發(fā)送的操作指令,然后依據(jù)該操作指令操作與非閃存模型,最后是含有操作地址時(shí)定位與非閃存操作地址。上述隨機(jī)激勵(lì)閃存模型驗(yàn)證方法,在測(cè)試平臺(tái)中集成參考模型,進(jìn)而,在對(duì)與非閃存模型進(jìn)行操作后,與該參考模型進(jìn)行匹配比對(duì),以保證與非閃存工作的正確性。上述隨機(jī)激勵(lì)閃存模型驗(yàn)證方法,所述參考模型為一個(gè)讀參考模型,對(duì)讀與非閃存模型操作的結(jié)果進(jìn)行對(duì)比。上述隨機(jī)激勵(lì)閃存模型驗(yàn)證方法,還包括對(duì)與非閃存操作時(shí)的時(shí)序檢測(cè)步驟。上述隨機(jī)激勵(lì)閃存模型驗(yàn)證方法, 測(cè)試環(huán)境有Verilog編寫(xiě),且所述時(shí)序檢測(cè)的時(shí)序檢測(cè)模塊為Verilog生成。
圖I為依據(jù)本發(fā)明的一種隨機(jī)激勵(lì)閃存模型驗(yàn)證方法依賴(lài)的測(cè)試平臺(tái)與測(cè)試序列結(jié)構(gòu)圖。圖2為測(cè)試序列生成的流程圖。
具體實(shí)施例方式參照說(shuō)明書(shū)附圖1,一種隨機(jī)激勵(lì)閃存模型驗(yàn)證方法,依據(jù)與非閃存操作命令權(quán)重編寫(xiě)偽匯編命令權(quán)重腳本,用磁盤(pán)文件保存,使用文件讀寫(xiě)方式;
依據(jù)與非閃存模型讀取與非閃存參數(shù)和測(cè)試條件,配置與非閃存模型接口驅(qū)動(dòng);
調(diào)用所述偽匯編命令權(quán)重腳本隨機(jī)產(chǎn)生匯編偽命令,并通過(guò)以命令權(quán)重為約束條件產(chǎn)生預(yù)定總數(shù)的匯編偽命令,而生成偽匯編測(cè)試序列;
解析所述偽匯編測(cè)試序列,通過(guò)接口驅(qū)動(dòng)對(duì)閃存模型進(jìn)行測(cè)試。偽匯編為計(jì)算機(jī)通訊類(lèi)專(zhuān)業(yè)匯編語(yǔ)言所包含,其他學(xué)科涉及計(jì)算機(jī)/微機(jī)原理課程時(shí)也有涉及,為本領(lǐng)域技術(shù)人員的為了使本領(lǐng)域的技術(shù)人員更清楚的了解偽匯編,在此簡(jiǎn)單介紹一下匯編語(yǔ)言。匯編語(yǔ)言除了定義了匯編指令外,還定義了一些匯編偽指令(本文指令與命令相通),以支持匯編的運(yùn)行。偽指令是匯編時(shí)不產(chǎn)生機(jī)器語(yǔ)言代碼的指令,是CPU不能執(zhí)行的指令,僅提供匯編用的某些控制信息。如在微機(jī)原理中ORG定位偽指令,格式是ORG m ;其中m —般是16位二進(jìn)制數(shù),m指出在該指令后的(偽)指令的匯編地址,即生成的機(jī)器指令的起始存儲(chǔ)器地址。它必須放在每段源程序或數(shù)據(jù)段的開(kāi)始行,在一個(gè)匯編語(yǔ)言的源程序中允許存在多條定位偽指令,但其中每一個(gè)m值都應(yīng)和前面生成的機(jī)器指令存放地址不重疊。例如下面段一段代碼
ORG 1000H
START M0V A, #10H
ORG 2000HSECOND CLR A
上述代碼第I條定位偽指令指定了標(biāo)號(hào)START的地址為1000H,“M0V A, #10H”指令及其后面的指令匯編成的機(jī)器碼放在從1000H開(kāi)始的存儲(chǔ)單元中。第2條定位偽指令指定了標(biāo)號(hào)SECOND的地址為2000H。從START開(kāi)始的程序段所占用的存儲(chǔ)地址最多為1FFFH,否則與從SECOND開(kāi)始的程序段地址重疊,程序在編譯時(shí)不會(huì)發(fā)生錯(cuò)誤,但在運(yùn)行時(shí)就會(huì)發(fā)生錯(cuò)誤。ONFI (Open NAND Flash Interface,開(kāi)放式 NAND 快閃存儲(chǔ)器接口)規(guī)范是一種Flash閃存接口的標(biāo)準(zhǔn),它是Intel為統(tǒng)一當(dāng)初混亂的閃存接口所倡導(dǎo)的標(biāo)準(zhǔn)。目前幾乎所有主要的閃存廠商都參入進(jìn)該標(biāo)準(zhǔn)的制定和推行。ONFI3. 0于2011年3月9日發(fā)布,其文本第14廣143頁(yè)對(duì)接口命令進(jìn)行了規(guī)范定義,那么針對(duì)這些 指令可制訂一套偽匯編代碼,然后根據(jù)定義時(shí)確定的偽匯編代碼格式進(jìn)行解析,根據(jù)偽匯編的規(guī)范編碼和解碼即可,實(shí)現(xiàn)起來(lái)也非常簡(jiǎn)單。這里不涉及偽匯編代碼的定義和實(shí)現(xiàn),僅涉及偽匯編的應(yīng)用,再次不多做贅述。不過(guò),本領(lǐng)域的技術(shù)人員可以參考依據(jù)ONFI規(guī)范定義的一些常用的偽匯編代碼,如下表
權(quán)利要求
1.一種隨機(jī)激勵(lì)閃存模型驗(yàn)證方法,其特征在于,依據(jù)與非閃存操作命令權(quán)重編寫(xiě)偽匯編命令權(quán)重腳本; 依據(jù)與非閃存模型讀取與非閃存參數(shù)和測(cè)試條件,配置與非閃存模型接口驅(qū)動(dòng); 調(diào)用所述偽匯編命令權(quán)重腳本隨機(jī)產(chǎn)生匯編偽命令,并通過(guò)以命令權(quán)重為約束條件產(chǎn)生預(yù)定總數(shù)的匯編偽命令,而生成偽匯編測(cè)試序列; 解析所述偽匯編測(cè)試序列,通過(guò)接口驅(qū)動(dòng)對(duì)閃存模型進(jìn)行測(cè)試。
2.根據(jù)權(quán)利要求I所述的隨機(jī)激勵(lì)閃存模型驗(yàn)證方法,其特征在于,隨機(jī)產(chǎn)生的匯編偽命令后,判斷該匯編偽命令對(duì)應(yīng)的與非閃存命令是否必須跟隨其他與非閃存命令,若需要?jiǎng)t產(chǎn)生跟隨與非閃存命令,若不需要,則判斷是否完成預(yù)定的匯編偽命令總數(shù),若已完成,則聲稱(chēng)偽匯編測(cè)試序列終止,否則繼續(xù)隨機(jī)產(chǎn)生匯編偽命令。
3.根據(jù)權(quán)利要求2所述的隨機(jī)激勵(lì)閃存模型驗(yàn)證方法,其特征在于,根據(jù)所產(chǎn)生的匯編偽命令對(duì)應(yīng)的與非閃存命令是否需要定位與非閃存地址,若需要,則在所產(chǎn)生的匯編偽指令后約束操作地址,若不需要,省略操作地址。
4.根據(jù)權(quán)利要求3所述的隨機(jī)激勵(lì)閃存模型驗(yàn)證方法,其特征在于,匯編偽指令包含的內(nèi)容為首先是發(fā)送的操作指令,然后依據(jù)該操作指令操作與非閃存模型,最后是含有操作地址時(shí)定位與非閃存操作地址。
5.根據(jù)權(quán)利要求I所述的隨機(jī)激勵(lì)閃存模型驗(yàn)證方法,其特征在于,在測(cè)試平臺(tái)中集成參考模型,進(jìn)而,在對(duì)與非閃存模型進(jìn)行操作后,與該參考模型進(jìn)行匹配比對(duì),以保證與非閃存工作的正確性。
6.根據(jù)權(quán)利要求5所述的隨機(jī)激勵(lì)閃存模型驗(yàn)證方法,其特征在于,所述參考模型為一個(gè)讀參考模型,對(duì)讀與非閃存模型操作的結(jié)果進(jìn)行對(duì)比。
7.根據(jù)權(quán)利要求I所述的隨機(jī)激勵(lì)閃存模型驗(yàn)證方法,其特征在于,還包括對(duì)與非閃存操作時(shí)的時(shí)序檢測(cè)步驟。
8.根據(jù)權(quán)利要求7所述的隨機(jī)激勵(lì)閃存模型驗(yàn)證方法,其特征在于,測(cè)試環(huán)境有Verilog編寫(xiě),且所述時(shí)序檢測(cè)的時(shí)序檢測(cè)模塊為Verilog生成。
全文摘要
本發(fā)明公開(kāi)了一種隨機(jī)激勵(lì)閃存模型驗(yàn)證方法,依據(jù)與非閃存操作命令權(quán)重編寫(xiě)偽匯編命令權(quán)重腳本;依據(jù)與非閃存模型讀取與非閃存參數(shù)和測(cè)試條件,配置與非閃存模型接口驅(qū)動(dòng);調(diào)用所述偽匯編命令權(quán)重腳本隨機(jī)產(chǎn)生匯編偽命令,并通過(guò)以命令權(quán)重為約束條件產(chǎn)生預(yù)定總數(shù)的匯編偽命令,而生成偽匯編測(cè)試序列;解析所述偽匯編測(cè)試序列,通過(guò)接口驅(qū)動(dòng)對(duì)閃存模型進(jìn)行測(cè)試。依據(jù)本發(fā)明的驗(yàn)證方法能夠針對(duì)不同的閃存模型提供較高的測(cè)試覆蓋率。
文檔編號(hào)G11C29/56GK102623069SQ20121003083
公開(kāi)日2012年8月1日 申請(qǐng)日期2012年2月13日 優(yōu)先權(quán)日2012年2月13日
發(fā)明者劉松, 張洪柳, 李峰, 陸崇心 申請(qǐng)人:山東華芯半導(dǎo)體有限公司