專利名稱:基于FPGA實(shí)現(xiàn)Nandflash閃存控制器電路驗(yàn)證的平臺(tái)系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及集成電路領(lǐng)域,特別涉及數(shù)字集成電路驗(yàn)證技術(shù)領(lǐng)域,具體是指一種基于FPGA實(shí)現(xiàn)Nandflash閃存控制器電路驗(yàn)證的平臺(tái)系統(tǒng)及方法。
背景技術(shù):
FPGA(Field Programmable Gate Array,現(xiàn)場(chǎng)可編程門陣列)驗(yàn)證是數(shù)字集成電路設(shè)計(jì)過(guò)程中一個(gè)必不可少的重要流程。FPGA驗(yàn)證的主要步驟有(1)設(shè)計(jì)輸入即利用 HDL(Hardware Description Language,硬件描述語(yǔ)言)輸入工具、原理圖輸入工具或狀態(tài)機(jī)輸入工具等把所要設(shè)計(jì)的電路描述出來(lái)。(2)綜合與布局布線,綜合優(yōu)化是把HDL語(yǔ)言翻譯成最基本的與或非門的連接關(guān)系(網(wǎng)表),并根據(jù)要求(約束條件)優(yōu)化所生成的門級(jí)邏輯連接,輸出edf和edn等文件, 導(dǎo)給FPGA廠家的軟件進(jìn)行實(shí)現(xiàn)和布局布線。布局布線就是使用FPGA廠商提供的實(shí)現(xiàn)與布局布線工具,根據(jù)所選芯片的型號(hào), 進(jìn)行芯片內(nèi)部功能單元的實(shí)際連接與映射。(3)生成并下載BIT或PROM文件,進(jìn)行板級(jí)調(diào)試。布局布線完成后,會(huì)生成帶有電路功能的BIT或PROM文件,通過(guò)FPGA廠商提供的燒寫(xiě)工具,將BIT或PROM文件燒寫(xiě)到FPGA芯片內(nèi),這樣FPGA芯片就可以實(shí)現(xiàn)所要設(shè)計(jì)的電路功能了。本發(fā)明主要針對(duì)Nandflash控制器,下面對(duì)Nandflash及Nandflash控制器進(jìn)行詳細(xì)介紹。Nandflash (快閃存儲(chǔ)器)是目前業(yè)界非常流行的存儲(chǔ)介質(zhì),Nandflash存儲(chǔ)單元面積小,其裸片面積也很小。Nandflash編程速度快、擦除時(shí)間短,支持速率超過(guò)5Mbps的持續(xù)寫(xiě)操作,其區(qū)塊擦除時(shí)間短至ans。顯然,Nandflash在編程速度、擦除時(shí)間方面具有絕對(duì)優(yōu)勢(shì)。基于上述幾點(diǎn)優(yōu)勢(shì),Nandflash較適合于存儲(chǔ)大量文件,所以Nandflash幾乎被用于所有可擦除的存儲(chǔ)卡。隨著Nandflash的越來(lái)越流行,越來(lái)越多的廠商開(kāi)始生產(chǎn)Nandflash閃存芯片,三星、美光及東芝等都是業(yè)界主流的Nandflash閃存芯片制造商,目前市場(chǎng)上的各種Nandflash閃存芯片型號(hào)越來(lái)越多,各種閃存芯片之間的差異性也越來(lái)越大,這就對(duì) Nandflash控制器的兼容性提出了更高的要求。在常用的數(shù)字SOC (system on chip,片上系統(tǒng))芯片架構(gòu)中,我們常會(huì)使用 Nandflash控制器負(fù)責(zé)與芯片外側(cè)的Nandflash閃存通訊。作為SOC芯片內(nèi)處理器與 Nandflash閃存之間的橋梁,處理器通過(guò)向Nandflash控制器發(fā)出指令,實(shí)現(xiàn)對(duì)Nandflash 編程、擦除等操作。同時(shí),Nandflash閃存通過(guò)返回相應(yīng)的狀態(tài)數(shù)據(jù)給Nandfash控制器,告知處理器相應(yīng)的閃存狀態(tài)。所以Nandfash控制器在數(shù)字SOC芯片與Nandflash閃存通訊過(guò)程中起著不可替代的作用。Nandfash閃存接口信號(hào)有8或16根指令數(shù)據(jù)信號(hào)I/O及6 根控制信號(hào)芯片啟動(dòng)信號(hào)CEn,寫(xiě)使能信號(hào)WEn,讀使能信號(hào)REn,指令鎖存使能信號(hào)CLE, 地址鎖存使能信號(hào)ALE,就緒/忙信號(hào)R/&1。Nandflash控制器通過(guò)上述信號(hào)對(duì)Nandflash 閃存進(jìn)行復(fù)位、讀寫(xiě)Nandflash閃存芯片內(nèi)數(shù)據(jù)、讀取Nandf Iash閃存芯片狀態(tài)及芯片標(biāo)識(shí)符、擦除Nandflash閃存芯片內(nèi)數(shù)據(jù)、對(duì)Nandflash閃存芯片內(nèi)數(shù)據(jù)進(jìn)行ECC (Error Check Correct)算法校驗(yàn)等各項(xiàng)操作。如上文所述,Nandflash控制器的操作復(fù)雜,同時(shí)市場(chǎng)現(xiàn)有的Nandflash閃存芯片種類繁多、差異性也越來(lái)越大,現(xiàn)有的Nandflash控制器FPGA驗(yàn)證方案越來(lái)越難以滿足測(cè)試人員的測(cè)試要求?,F(xiàn)有技術(shù)中的Nandflash控制器驗(yàn)證方案無(wú)法充分驗(yàn)證Nandflash控制器對(duì)各種 Nandflash閃存芯片的兼容性;因?yàn)榇郎y(cè)Nandflash芯片較多而導(dǎo)致測(cè)試效率低下;并且無(wú)法可對(duì)Nandflash控制器電路的各種邏輯功能進(jìn)行充分驗(yàn)證,測(cè)試覆蓋率低;同時(shí)需要大量的人力參與,測(cè)試自動(dòng)化程度較低;無(wú)法減少和避免Nandflahs控制器的缺陷,從而降低了 Nandflash控制器的兼容性,使得研發(fā)周期延長(zhǎng),研發(fā)成本大大提高。所以,如何設(shè)計(jì)出一種合格的針對(duì)Nandflash控制器電路的FPGA驗(yàn)證方案,就成為了目前數(shù)字集成電路驗(yàn)證測(cè)試領(lǐng)域的一個(gè)挑戰(zhàn)。
發(fā)明內(nèi)容
本發(fā)明的目的是克服了上述現(xiàn)有技術(shù)中的缺點(diǎn),提供一種能夠?qū)andflash控制器各種功能及兼容性進(jìn)行充分驗(yàn)證、自動(dòng)化程度高、測(cè)試效率高、測(cè)試覆蓋率高、使用方便快捷、工作性能穩(wěn)定可靠、應(yīng)用范圍較為廣泛的基于FPGA實(shí)現(xiàn)Nandflash閃存控制器電路驗(yàn)證的平臺(tái)系統(tǒng)及方法。為了實(shí)現(xiàn)上述的目的,本發(fā)明的基于FPGA實(shí)現(xiàn)Nandflash閃存控制器電路驗(yàn)證的平臺(tái)系統(tǒng)及方法如下該基于FPGA實(shí)現(xiàn)Nandflash閃存控制器電路驗(yàn)證的平臺(tái)系統(tǒng),包括測(cè)試計(jì)算機(jī)和承載有Nandflash閃存芯片的測(cè)試板,其主要特點(diǎn)是,所述的平臺(tái)系統(tǒng)中還包括測(cè)試仿真器和FPGA調(diào)試板,所述的FPGA調(diào)試板上承載有SOC芯片、FPGA芯片和數(shù)個(gè)Nandflash信號(hào)接口模塊,所述的FPGA芯片中設(shè)置有總線轉(zhuǎn)換電路模塊和Nandflash控制器電路模塊, 所述的測(cè)試計(jì)算機(jī)依次通過(guò)所述的測(cè)試仿真器、SOC芯片、總線轉(zhuǎn)換電路模塊和Nandflash 控制器電路模塊分別與所述的各個(gè)Nandflash信號(hào)接口模塊相連接,且每個(gè)Nandflash信號(hào)接口模塊和對(duì)應(yīng)的測(cè)試板相連接。該基于FPGA實(shí)現(xiàn)Nandflash閃存控制器電路驗(yàn)證的平臺(tái)系統(tǒng)中的SOC芯片為內(nèi)置有ARM處理器的SOC芯片。該基于FPGA實(shí)現(xiàn)Nandflash閃存控制器電路驗(yàn)證的平臺(tái)系統(tǒng)中的SOC芯片為內(nèi)置ARM926EJ_S處理器的SOC芯片。該基于FPGA實(shí)現(xiàn)Nandflash閃存控制器電路驗(yàn)證的平臺(tái)系統(tǒng)中的總線轉(zhuǎn)換電路模塊為ARM轉(zhuǎn)FPGA總線電路模塊。該基于FPGA實(shí)現(xiàn)Nandflash閃存控制器電路驗(yàn)證的平臺(tái)系統(tǒng)中的測(cè)試仿真器為 ARM仿真器,且該ARM仿真器將測(cè)試計(jì)算機(jī)上的測(cè)試代碼編譯成所述的ARM處理器可識(shí)別的匯編指令。該基于FPGA實(shí)現(xiàn)Nandflash閃存控制器電路驗(yàn)證的平臺(tái)系統(tǒng)中的測(cè)試代碼為C 語(yǔ)言編寫(xiě)的測(cè)試代碼。該基于FPGA實(shí)現(xiàn)Nandflash閃存控制器電路驗(yàn)證的平臺(tái)系統(tǒng)中的FPGA芯片為 vitex-4系列FPGA芯片。該基于FPGA實(shí)現(xiàn)Nandflash閃存控制器電路驗(yàn)證的平臺(tái)系統(tǒng)中的Nandflash信號(hào)接口模塊為Nandflash信號(hào)接口第一插槽,所述的測(cè)試板上設(shè)置有與該Nandflash信號(hào)接口第一插槽對(duì)應(yīng)耦合的Nandflash信號(hào)接口第二插槽,所述的Nandflash信號(hào)接口第二插槽與所述的Nandflash閃存芯片相連接,且NandfIash信號(hào)接口第一插槽與對(duì)應(yīng)的 Nandflash信號(hào)接口第二插槽相耦合插接。該基于FPGA實(shí)現(xiàn)Nandflash閃存控制器電路驗(yàn)證的平臺(tái)系統(tǒng)中的Nandflash信號(hào)接口第二插槽設(shè)置于測(cè)試板的承載有Nandflash閃存芯片的面上或者相對(duì)面上。該基于FPGA實(shí)現(xiàn)Nandflash閃存控制器電路驗(yàn)證的平臺(tái)系統(tǒng)中的測(cè)試計(jì)算機(jī)通過(guò)USB連接線與所述的測(cè)試仿真器相連接。該基于FPGA實(shí)現(xiàn)Nandflash閃存控制器電路驗(yàn)證的平臺(tái)系統(tǒng)中的測(cè)試仿真器通過(guò)仿真器連接線與所述的SOC芯片相連接。該利用上述的平臺(tái)系統(tǒng)實(shí)現(xiàn)Nandflash閃存控制器電路驗(yàn)證的方法,其主要特點(diǎn)是,所述的方法包括以下步驟(1)將所述的測(cè)試計(jì)算機(jī)依次與所述的測(cè)試仿真器、SOC芯片進(jìn)行連接,同時(shí)將所述的各個(gè)Nandflash信號(hào)接口模塊和對(duì)應(yīng)的測(cè)試板相連接;(2)將所述的測(cè)試計(jì)算機(jī)、測(cè)試仿真器和FPGA調(diào)試板同時(shí)上電;(3)生成實(shí)現(xiàn)總線轉(zhuǎn)換電路模塊及Nandflash控制器電路模塊的燒錄文件,并將該燒錄文件燒寫(xiě)到所述的FPGA芯片內(nèi);(4)所述的測(cè)試計(jì)算機(jī)通過(guò)預(yù)先編寫(xiě)的測(cè)試代碼對(duì)所述的Nandflash控制器電路模塊進(jìn)行測(cè)試。該實(shí)現(xiàn)Nandflash閃存控制器電路驗(yàn)證的方法中的生成實(shí)現(xiàn)總線轉(zhuǎn)換電路模塊及Nandflash控制器電路模塊的燒錄文件并將該燒錄文件燒寫(xiě)到所述的FPGA芯片內(nèi),包括以下步驟(11)使用FPGA芯片廠商所提供的FPGA工具將實(shí)現(xiàn)總線轉(zhuǎn)換電路模塊及 Nandflash控制器電路模塊功能的HDL語(yǔ)言代碼轉(zhuǎn)換為BIT/PR0M文件;(12)通過(guò)FPGA芯片廠商所提供的FPGA燒寫(xiě)工具燒寫(xiě)到FPGA調(diào)試板上的FPGA芯片中。該實(shí)現(xiàn)Nandflash閃存控制器電路驗(yàn)證的方法中的測(cè)試計(jì)算機(jī)通過(guò)預(yù)先編寫(xiě)的測(cè)試代碼對(duì)所述的Nandflash控制器電路模塊進(jìn)行測(cè)試,包括以下步驟(21)所述的測(cè)試計(jì)算機(jī)根據(jù)所述的測(cè)試代碼產(chǎn)生相應(yīng)的測(cè)試指令并送至所述的測(cè)試仿真器;(22)所述的測(cè)試仿真器將所述的測(cè)試指令編譯成所述的SOC芯片能夠執(zhí)行的匯編指令,并送至所述的SOC芯片;所述的SOC芯片控制所述的總線轉(zhuǎn)換電路模塊和Nandflash控制器電路模塊進(jìn)行相應(yīng)的測(cè)試處理。該實(shí)現(xiàn)Nandflash閃存控制器電路驗(yàn)證的方法中的SOC芯片控制所述的總線轉(zhuǎn)換電路模塊和Nandflash控制器電路模塊進(jìn)行相應(yīng)的測(cè)試處理,包括以下步驟(31)對(duì)所述的FPGA芯片內(nèi)部的電路正確性和內(nèi)部電路基本功能進(jìn)行驗(yàn)證,并記錄相應(yīng)的驗(yàn)證結(jié)果;(32)控制所述的FPGA芯片內(nèi)的Nandflash控制器電路模塊對(duì)Nandflash閃存芯片進(jìn)行復(fù)位及讀狀態(tài)操作測(cè)試,并記錄相應(yīng)的測(cè)試結(jié)果;(33)控制所述的FPGA芯片內(nèi)的Nandflash控制器電路模塊對(duì)Nandflash閃存芯片進(jìn)行讀標(biāo)示符操作測(cè)試,并記錄相應(yīng)的測(cè)試結(jié)果;(34)控制所述的FPGA芯片內(nèi)的Nandflash控制器電路模塊對(duì)Nandflash閃存芯片進(jìn)行擦除、寫(xiě)數(shù)據(jù)及讀數(shù)據(jù)操作測(cè)試,并記錄相應(yīng)的測(cè)試結(jié)果;(35)控制所述的FPGA芯片內(nèi)的Nandflash控制器電路模塊對(duì)Nandflash閃存芯片進(jìn)行ECC校驗(yàn)操作測(cè)試,并記錄相應(yīng)的測(cè)試結(jié)果。采用了該發(fā)明的基于FPGA實(shí)現(xiàn)Nandflash閃存控制器電路驗(yàn)證的平臺(tái)系統(tǒng)及方法,由于其中整個(gè)測(cè)試過(guò)程完全通過(guò)測(cè)試計(jì)算機(jī)中的測(cè)試代碼控制,自動(dòng)化程度極高,完全無(wú)需人力參與,從而大大縮短了研發(fā)周期,降低了研發(fā)成本;同時(shí)由于測(cè)試代碼所采用的C 語(yǔ)言非常靈活,就可以對(duì)Nandflash控制器的所有功能進(jìn)行充分驗(yàn)證;另外本發(fā)明的測(cè)試平臺(tái)上集成多個(gè)Nandflash接口插槽,C語(yǔ)言可同時(shí)對(duì)多塊Nandflash芯片進(jìn)行驗(yàn)證,充分驗(yàn)證了 Nandf Iash控制器對(duì)各種Nandf Iash閃存芯片的兼容性,而且不因?yàn)榇郎y(cè)Nandf Iash 芯片較多而導(dǎo)致測(cè)試效率低下,從而獲得了盡可能高的測(cè)試效率,不僅使用方便快捷,而且工作性能穩(wěn)定可靠,應(yīng)用范圍較為廣泛。
圖1為本發(fā)明的基于FPGA實(shí)現(xiàn)Nandflash閃存控制器電路驗(yàn)證的平臺(tái)系統(tǒng)的結(jié)構(gòu)示意圖。圖2為本發(fā)明的基于FPGA實(shí)現(xiàn)Nandflash閃存控制器電路驗(yàn)證的方法的流程圖。
具體實(shí)施例方式為了能夠更清楚地理解本發(fā)明的技術(shù)內(nèi)容,特舉以下實(shí)施例詳細(xì)說(shuō)明。請(qǐng)參閱圖1所示,該基于FPGA實(shí)現(xiàn)Nandflash閃存控制器電路驗(yàn)證的平臺(tái)系統(tǒng),包括測(cè)試計(jì)算機(jī)和承載有Nandflash閃存芯片的測(cè)試板,其中,所述的平臺(tái)系統(tǒng)中還包括測(cè)試仿真器和FPGA調(diào)試板,所述的FPGA調(diào)試板上承載有SOC芯片、FPGA芯片和數(shù)個(gè) Nandflash信號(hào)接口模塊,所述的FPGA芯片中設(shè)置有總線轉(zhuǎn)換電路模塊和Nandflash控制器電路模塊,所述的測(cè)試計(jì)算機(jī)依次通過(guò)所述的測(cè)試仿真器、SOC芯片、總線轉(zhuǎn)換電路模塊和Nandflash控制器電路模塊分別與所述的各個(gè)Nandflash信號(hào)接口模塊相連接,且每個(gè) Nandflash信號(hào)接口模塊和對(duì)應(yīng)的測(cè)試板相連接。其中,所述的SOC芯片為內(nèi)置有ARM處理器的SOC芯片,該SOC芯片為內(nèi)置 ARM926EJ_S處理器的SOC芯片;所述的總線轉(zhuǎn)換電路模塊為ARM轉(zhuǎn)FPGA總線電路模塊;所述的測(cè)試仿真器為ARM仿真器,且該ARM仿真器將測(cè)試計(jì)算機(jī)上的測(cè)試代碼編譯成所述的ARM處理器可識(shí)別的匯編指令,該測(cè)試代碼為C語(yǔ)言編寫(xiě)的測(cè)試代碼。同時(shí),所述的FPGA芯片為vitex-4系列FPGA芯片,所述的Nandflash信號(hào)接口模塊為Nandflash信號(hào)接口第一插槽,所述的測(cè)試板上設(shè)置有與該Nandflash信號(hào)接口第一插槽對(duì)應(yīng)耦合的Nandflash信號(hào)接口第二插槽,所述的Nandflash信號(hào)接口第二插槽與所述的Nandflash閃存芯片相連接,且Nandfash信號(hào)接口第一插槽與對(duì)應(yīng)的Nandflash信號(hào)接口第二插槽相耦合插接;所述的Nandflash信號(hào)接口第二插槽設(shè)置于測(cè)試板的承載有 Nandflash閃存芯片的面上或者相對(duì)面上;所述的測(cè)試計(jì)算機(jī)通過(guò)USB連接線與所述的測(cè)試仿真器相連接,且該測(cè)試仿真器通過(guò)仿真器連接線與所述的SOC芯片相連接。再請(qǐng)參閱圖2所示,該利用上述的平臺(tái)系統(tǒng)實(shí)現(xiàn)Nandflash閃存控制器電路驗(yàn)證的方法,其中,所述的方法包括以下步驟(1)將所述的測(cè)試計(jì)算機(jī)依次與所述的測(cè)試仿真器、SOC芯片進(jìn)行連接,同時(shí)將所述的各個(gè)Nandflash信號(hào)接口模塊和對(duì)應(yīng)的測(cè)試板相連接;(2)將所述的測(cè)試計(jì)算機(jī)、測(cè)試仿真器和FPGA調(diào)試板同時(shí)上電;(3)生成實(shí)現(xiàn)總線轉(zhuǎn)換電路模塊及Nandflash控制器電路模塊的燒錄文件,并將該燒錄文件燒寫(xiě)到所述的FPGA芯片內(nèi),包括以下步驟(a)使用FPGA芯片廠商所提供的FPGA工具將實(shí)現(xiàn)總線轉(zhuǎn)換電路模塊及 Nandflash控制器電路模塊功能的HDL語(yǔ)言代碼轉(zhuǎn)換為BIT/PR0M文件;(b)通過(guò)FPGA芯片廠商所提供的FPGA燒寫(xiě)工具燒寫(xiě)到FPGA調(diào)試板上的FPGA芯片中;(4)所述的測(cè)試計(jì)算機(jī)通過(guò)預(yù)先編寫(xiě)的測(cè)試代碼對(duì)所述的Nandflash控制器電路模塊進(jìn)行測(cè)試,包括以下步驟(a)所述的測(cè)試計(jì)算機(jī)根據(jù)所述的測(cè)試代碼產(chǎn)生相應(yīng)的測(cè)試指令并送至所述的測(cè)試仿真器;(b)所述的測(cè)試仿真器將所述的測(cè)試指令編譯成所述的SOC芯片能夠執(zhí)行的匯編指令,并送至所述的SOC芯片;(c)所述的SOC芯片控制所述的總線轉(zhuǎn)換電路模塊和Nandflash控制器電路模塊進(jìn)行相應(yīng)的測(cè)試處理,包括以下步驟(i)對(duì)所述的FPGA芯片內(nèi)部的電路正確性和內(nèi)部電路基本功能進(jìn)行驗(yàn)證,并記錄相應(yīng)的驗(yàn)證結(jié)果;(ii)控制所述的FPGA芯片內(nèi)的Nandflash控制器電路模塊對(duì)Nandflash閃存芯片進(jìn)行復(fù)位及讀狀態(tài)操作測(cè)試,并記錄相應(yīng)的測(cè)試結(jié)果;(iii)控制所述的FPGA芯片內(nèi)的Nandflash控制器電路模塊對(duì)Nandfash閃存芯片進(jìn)行讀標(biāo)示符操作測(cè)試,并記錄相應(yīng)的測(cè)試結(jié)果;(iv)控制所述的FPGA芯片內(nèi)的Nandflash控制器電路模塊對(duì)Nandflash閃存芯片進(jìn)行擦除、寫(xiě)數(shù)據(jù)及讀數(shù)據(jù)操作測(cè)試,并記錄相應(yīng)的測(cè)試結(jié)果;(ν)控制所述的FPGA芯片內(nèi)的Nandflash控制器電路模塊對(duì)Nandflash閃存芯片進(jìn)行ECC校驗(yàn)操作測(cè)試,并記錄相應(yīng)的測(cè)試結(jié)果。在實(shí)際使用當(dāng)中,本發(fā)明所述的測(cè)試平臺(tái),包括用于編寫(xiě)C語(yǔ)言測(cè)試程序的PC、用于連接PC和ARM處理器芯片的ARM仿真器、一塊帶有ARM處理器的SOC芯片和FPGA芯片以及若干個(gè)Nandflash信號(hào)接口插槽的FPGA調(diào)試板、若干塊包含不同廠商N(yùn)andflash閃存芯片的測(cè)試小板。該驗(yàn)證平臺(tái)中的PC電腦,可以是任意一臺(tái)可以編寫(xiě)C語(yǔ)言的電腦。該驗(yàn)證平臺(tái)中的ARM仿真器,可以是任意一款支持ARM處理器調(diào)試功能的ARM仿真器,該仿真器可將PC側(cè)的C語(yǔ)言編譯成ARM處理器可識(shí)別的匯編指令。該驗(yàn)證平臺(tái)中的FPGA調(diào)試板,包括任意公司生產(chǎn)的帶有任意型號(hào)ARM處理器的 SOC芯片,譬如三星公司生產(chǎn)ARM926EJ_S處理器SOC芯片。該FPGA調(diào)試板還包括任意公司生產(chǎn)的FPGA芯片譬如Xilinx公司的vitex-4系列FPGA芯片,芯片內(nèi)部燒寫(xiě)有ARM轉(zhuǎn)FPGA 總線電路及Nandflash控制器電路。該FPGA調(diào)試板還帶有若干個(gè)Nandflash閃存接口信號(hào)的插槽。該驗(yàn)證平臺(tái)中的Nandflash芯片測(cè)試小板正面焊有一塊任意公司生產(chǎn)的 Nandflash閃存芯片,背面帶有Nandflash閃存接口信號(hào)插槽。該閃存芯片可以是如圖1所示的Micron(美光)或Toshiba(東芝)生產(chǎn)的Nandflash閃存芯片,如圖1所示,該FPGA硬件平臺(tái)中的PC與ARM仿真器通過(guò)一根USB相連,ARM仿真器與FPGA調(diào)試板上的ARM處理器芯片通過(guò)專用的仿真器連接線相連。FPGA調(diào)試板上的ARM 處理器芯片通過(guò)FPGA芯片內(nèi)部的ARM轉(zhuǎn)FPGA總線電路控制FPGA芯片內(nèi)的Nandflash控制器。將多塊不同型號(hào)的Nandflash閃存測(cè)試小板通過(guò)背面插槽插入FPGA調(diào)試板的插槽內(nèi),這樣測(cè)試小板上的Nandflash閃存芯片就可以通過(guò)上文所述的I/O數(shù)據(jù)指令信號(hào)及6 根控制信號(hào)與FPGA芯片內(nèi)的Nandflash控制器電路進(jìn)行交互。再請(qǐng)參閱圖2所示,本發(fā)明所述的FPGA驗(yàn)證方案大致包括以下實(shí)施步驟第一步,搭建硬件平臺(tái)。將本發(fā)明方案所需的器件按上文所述方法正確連接。第二步,生成、燒寫(xiě)bit文件。生成可以實(shí)現(xiàn)ARM轉(zhuǎn)FPGA總線電路及Nandf Iash 控制器電路的bit文件,并燒寫(xiě)到FPGA調(diào)試板上的FPGA芯片內(nèi)。第三步,編寫(xiě)C語(yǔ)言測(cè)試程序。在PC側(cè)編寫(xiě)針對(duì)Nandflash控制器的C語(yǔ)言測(cè)試程序。第四步,測(cè)試平臺(tái)自動(dòng)運(yùn)行。C語(yǔ)言程序經(jīng)過(guò)ARM仿真器編譯,轉(zhuǎn)換成ARM處理器可識(shí)別的匯編指令,通過(guò)FPGA芯片內(nèi)部的ARM轉(zhuǎn)FPGA總線,控制ARM處理器與FPGA芯片內(nèi)的Nandflash控制器電路進(jìn)行交互,使得Nandflash控制器對(duì)多塊Nandflash閃存芯片同時(shí)進(jìn)行讀寫(xiě)數(shù)據(jù)、擦除數(shù)據(jù)、讀取狀態(tài)及ECC算法校驗(yàn)等操作。程序自動(dòng)運(yùn)行結(jié)束后顯示測(cè)試結(jié)果。本發(fā)明所述的驗(yàn)證流程在具體實(shí)施過(guò)程中,主要包括四個(gè)步驟第一步,搭建硬件平臺(tái)。按照?qǐng)D2所示,將各個(gè)器件相連。將PC與ARM仿真器用一根USB相連。將ARM仿真器與FPGA調(diào)試板上的ARM SOC芯片通過(guò)仿真器連接線相連。將需要測(cè)試的多塊Nandf Iash 芯片測(cè)試小板通過(guò)背面的插槽插到FPGA調(diào)試板的插槽上。PC、ARM仿真器及FPGA同時(shí)上 H1^ ο第二步,生成、燒寫(xiě)bit文件。根據(jù)背景內(nèi)容所述,使用FPGA廠商提供的FPGA工具,將可實(shí)現(xiàn)ARM轉(zhuǎn)FPGA總線功能及Nandflash控制器電路的HDL語(yǔ)言生成bit文件,并燒寫(xiě)到FPGA調(diào)試板上的FPGA 芯片內(nèi),例如Xilinx公司的ISE軟件工具。第三步,編寫(xiě)C語(yǔ)言測(cè)試程序。在PC側(cè)編寫(xiě)針對(duì)Nandflash控制器所有功能的C 語(yǔ)言測(cè)試程序。第四步,測(cè)試平臺(tái)自動(dòng)運(yùn)行。C語(yǔ)言測(cè)試程序編寫(xiě)完成后,通過(guò)ARM仿真器編譯成 ARM匯編指令(譬如MICETEK公司的JEDI仿真器),然后通過(guò)專用的仿真器連接線灌入FPGA 調(diào)試板上的ARM SOC芯片的中,這樣ARM處理器就會(huì)自動(dòng)執(zhí)行C測(cè)試程序轉(zhuǎn)換成的ARM匯編指令。ARM處理器通過(guò)FPGA芯片內(nèi)部的ARM轉(zhuǎn)FPGA總線電路,控制Nandflash控制器同時(shí)對(duì)多塊Nandflash閃存芯片同時(shí)進(jìn)行讀寫(xiě)數(shù)據(jù)、擦除數(shù)據(jù)、讀取狀態(tài)及ECC算法校驗(yàn)等各種測(cè)試操作。程序運(yùn)行結(jié)束后自動(dòng)顯示測(cè)試結(jié)果。上文所述的C語(yǔ)言測(cè)試程序是本發(fā)明方案的精髓部分,由于C語(yǔ)言靈活便捷的特性,使用該驗(yàn)證方案的測(cè)試人員可以針對(duì)Nandflash控制器和Nandflash閃存的具體功能靈活編寫(xiě)測(cè)試用例,對(duì)Nandflash控制器的所有功能進(jìn)行充分驗(yàn)證?,F(xiàn)對(duì)該測(cè)試程序進(jìn)行詳細(xì)說(shuō)明,假設(shè)FPGA調(diào)試板的插槽上插入了 Mi cron和 Toshiba兩塊測(cè)試小板,針對(duì)這兩塊小板的測(cè)試代碼的主程序如下
int main(void)
{
volatile—u32 FPGA—WORK—FLAG = 0 ; volatile—u32 status[8] = {0};
FPGA—WORK—FLAG = FPGA—Work—CheckO
status
status[1] status[2] status [3] status [4] status [5] status [6] status [7]
=NANDCTRL—CASEO () =NANDCTRL—CASEl () =NANDCTRL—CASE2 () =NANDCTRL—CASE3 () =NANDCTRL—CASE8 () =NANDCTRL—CASE9 () =NANDCTRL—CASElO () =NANDCTRL—CASE 11()
/Micron reset and read status test /Micron read id test /Micron erase,write and read test /Micron ecc funciton test /Toshiba reset and read status test /Toshiba read id test //Toshiba erase,write and read test //Toshiba ecc funciton test
如上文所示,該測(cè)試程序的主函數(shù)中包含8個(gè)測(cè)試用例,分別代表Nandflash控制器電路對(duì)Micron和Toshiba的兩塊Nandflash閃存芯片各項(xiàng)功能進(jìn)行測(cè)試?,F(xiàn)對(duì)以上代碼進(jìn)行詳細(xì)說(shuō)明(1)FPGA_W0RK_FLGA = FPGA_ffork_Check();該行測(cè)試代碼對(duì)FPGA芯片內(nèi)部的電路正確性進(jìn)行驗(yàn)證。在使用FPGA芯片對(duì) Nandflash閃存進(jìn)行測(cè)試前,必須確保FPGA芯片內(nèi)部電路是基本正確的,該行測(cè)試代碼對(duì) FPGA芯片內(nèi)部電路基本功能進(jìn)行測(cè)試,如果變量FPGA_W0RK_FLGA等于1,說(shuō)明FPGA芯片內(nèi)部電路基本功能正確,否則FPGA芯片工作不正確。(2)status
= NANDCTRL_CASE0() ;//Micron reset and read status test該行測(cè)試用例控制FPGA芯片內(nèi)的Nandflash控制器電路對(duì)Micron Nandflash
10閃存芯片進(jìn)行復(fù)位及讀狀態(tài)操作。該測(cè)試用例通過(guò)變量stateuW]顯示測(cè)試結(jié)果,如果 status
等于1,說(shuō)明該測(cè)試用例通過(guò),F(xiàn)PGA芯片內(nèi)的Nandflash控制器電路的復(fù)位及讀狀態(tài)功能正確;如果等于0,說(shuō)明測(cè)試失敗,Nandflash控制器電路的復(fù)位及讀狀態(tài)功能有問(wèn)題。(3)status[1] = NANDCTRL_CASE1() ;//Micron read id test該行測(cè)試用例控制FPGA芯片內(nèi)的Nandflash控制器電路對(duì)Micron Nandflash閃存芯片進(jìn)行讀標(biāo)示符操作。該測(cè)試用例通過(guò)變量stateu[1]顯示測(cè)試結(jié)果,如果status [1] 等于1,說(shuō)明該測(cè)試用例通過(guò),F(xiàn)PGA芯片內(nèi)的Nandflash控制器電路的讀標(biāo)示符功能正確; 如果等于0,說(shuō)明測(cè)試失敗,Nandflash控制器電路讀標(biāo)示符功能有問(wèn)題。(4) status [2] = NANDCTRL_CASE2 () ;//Micron erase, write and read test該行測(cè)試用例控制FPGA芯片內(nèi)的Nandflash控制器電路對(duì)MicronNandflash閃存芯片進(jìn)行擦除、寫(xiě)數(shù)據(jù)及讀數(shù)據(jù)操作。該測(cè)試用例通過(guò)變量stateu[2]顯示最后測(cè)試結(jié)果,如果status [2]等于1,說(shuō)明該測(cè)試用例通過(guò),F(xiàn)PGA芯片內(nèi)的Nandflash控制器電路擦除、讀寫(xiě)數(shù)據(jù)功能正確;如果等于0,說(shuō)明測(cè)試失敗,Nandflash控制器電路擦除、讀寫(xiě)數(shù)據(jù)功能有問(wèn)題。(5)status[3] = NANDCTRL_CASE3() ;//Micron ecc funciton test該行測(cè)試用例控制FPGA芯片內(nèi)的Nandflash控制器電路對(duì)Micron Nandflash 閃存芯片進(jìn)行ECC校驗(yàn)操作。該測(cè)試用例通過(guò)變量stateU[3]顯示最后測(cè)試結(jié)果,如果 status [3]等于1,說(shuō)明該測(cè)試用例通過(guò),F(xiàn)PGA芯片內(nèi)的Nandflash控制器電路的ECC校驗(yàn)功能正確;如果等于0,說(shuō)明測(cè)試失敗,Nandflash控制器電路的ECC校驗(yàn)功能有問(wèn)題。在上述測(cè)試程序中,函數(shù)NANDCLRL_CASE0 ()、NANDCLRL_CASE1 ()、NANDCLRL_ CASE2 ()、NANDCLRL_CASE3 ()實(shí)現(xiàn)了 Nandflash 控制器電路對(duì) MicronNandflash 閃存芯片的完整測(cè)試,其后續(xù)四個(gè)函數(shù) NANDCLRL_CASE4 ()、NANDCLRL_CASE5 ()、NANDCLRL_CASE6 ()、 NANDCLRL_CASE7 ()與之作用類似,實(shí)現(xiàn)了 Nandflash控制器對(duì)^Toshiba Nandflash閃存芯片的完整測(cè)試。本發(fā)明所述的C語(yǔ)言測(cè)試程序靈活可變,當(dāng)FPGA調(diào)試板上插入其他型號(hào)的 Nandflash閃存芯片時(shí),可在上述main ()主函數(shù)中增加與NANDCLRL_CASE0 ()、NANDCLRL_ CASEl ()、NANDCLRL_CASE2 ()、NANDCLRL_CASE3 ()作用類似的相關(guān)用例,測(cè)試代碼編輯非常靈活。本發(fā)明所述的測(cè)試程序自動(dòng)化成程度極高,所有程序自動(dòng)運(yùn)行結(jié)束后,數(shù)組 status[]會(huì)顯示所有用例測(cè)試結(jié)果,如果數(shù)組status[]的所有成員均等于1,說(shuō)明所有測(cè)試用例驗(yàn)證通過(guò),Nandflash控制器的所有功能完全正確,否則說(shuō)明Nandflash控制器的該項(xiàng)功能有問(wèn)題。本發(fā)明所述的驗(yàn)證方案測(cè)試過(guò)程完全由C語(yǔ)言控制,自動(dòng)化程度高,并且可同時(shí)對(duì)多塊Nandflash芯片進(jìn)行驗(yàn)證,測(cè)試效率極高,可充分驗(yàn)證Nandflash控制器的各項(xiàng)功能及兼容性,無(wú)需人力參與,大大縮短了研發(fā)周期,降低了研發(fā)成本。基于上述優(yōu)點(diǎn),本發(fā)明方案在數(shù)字集成電路驗(yàn)證領(lǐng)域有著極為廣闊的應(yīng)用前景。采用了上述的基于FPGA實(shí)現(xiàn)Nandflash閃存控制器電路驗(yàn)證的平臺(tái)系統(tǒng)及方法, 由于其中整個(gè)測(cè)試過(guò)程完全通過(guò)測(cè)試計(jì)算機(jī)中的測(cè)試代碼控制,自動(dòng)化程度極高,完全無(wú)需人力參與,從而大大縮短了研發(fā)周期,降低了研發(fā)成本;同時(shí)由于測(cè)試代碼所采用的C語(yǔ)言非常靈活,就可以對(duì)Nandfash控制器的所有功能進(jìn)行充分驗(yàn)證;另外本發(fā)明的測(cè)試平臺(tái)上集成多個(gè)Nandf Iash接口插槽,C語(yǔ)言可同時(shí)對(duì)多塊Nandf Iash芯片進(jìn)行驗(yàn)證,充分驗(yàn)證了 Nandflash控制器對(duì)各種Nandflash閃存芯片的兼容性,而且不因?yàn)榇郎y(cè)Nandflash芯片較多而導(dǎo)致測(cè)試效率低下,從而獲得了盡可能高的測(cè)試效率,不僅使用方便快捷,而且工作性能穩(wěn)定可靠,應(yīng)用范圍較為廣泛。 在此說(shuō)明書(shū)中,本發(fā)明已參照其特定的實(shí)施例作了描述。但是,很顯然仍可以作出各種修改和變換而不背離本發(fā)明的精神和范圍。因此,說(shuō)明書(shū)和附圖應(yīng)被認(rèn)為是說(shuō)明性的而非限制性的。
權(quán)利要求
1.一種基于FPGA實(shí)現(xiàn)Nandflash閃存控制器電路驗(yàn)證的平臺(tái)系統(tǒng),包括測(cè)試計(jì)算機(jī)和承載有Nandflash閃存芯片的測(cè)試板,其特征在于,所述的平臺(tái)系統(tǒng)中還包括測(cè)試仿真器和FPGA調(diào)試板,所述的FPGA調(diào)試板上承載有SOC芯片、FPGA芯片和數(shù)個(gè)Nandflash信號(hào)接口模塊,所述的FPGA芯片中設(shè)置有總線轉(zhuǎn)換電路模塊和Nandflash控制器電路模塊,所述的測(cè)試計(jì)算機(jī)依次通過(guò)所述的測(cè)試仿真器、SOC芯片、總線轉(zhuǎn)換電路模塊和Nandflash控制器電路模塊分別與所述的各個(gè)Nandflash信號(hào)接口模塊相連接,且每個(gè)Nandflash信號(hào)接口模塊和對(duì)應(yīng)的測(cè)試板相連接。
2.根據(jù)權(quán)利要求1所述的基于FPGA實(shí)現(xiàn)Nandflash閃存控制器電路驗(yàn)證的平臺(tái)系統(tǒng), 其特征在于,所述的SOC芯片為內(nèi)置有ARM處理器的SOC芯片。
3.根據(jù)權(quán)利要求2所述的基于FPGA實(shí)現(xiàn)Nandflash閃存控制器電路驗(yàn)證的平臺(tái)系統(tǒng), 其特征在于,所述的SOC芯片為內(nèi)置ARM926EJ_S處理器的SOC芯片。
4.根據(jù)權(quán)利要求2所述的基于FPGA實(shí)現(xiàn)Nandflash閃存控制器電路驗(yàn)證的平臺(tái)系統(tǒng), 其特征在于,所述的總線轉(zhuǎn)換電路模塊為ARM轉(zhuǎn)FPGA總線電路模塊。
5.根據(jù)權(quán)利要求2所述的基于FPGA實(shí)現(xiàn)Nandflash閃存控制器電路驗(yàn)證的平臺(tái)系統(tǒng), 其特征在于,所述的測(cè)試仿真器為ARM仿真器,且該ARM仿真器將測(cè)試計(jì)算機(jī)上的測(cè)試代碼編譯成所述的ARM處理器可識(shí)別的匯編指令。
6.根據(jù)權(quán)利要求5所述的基于FPGA實(shí)現(xiàn)Nandflash閃存控制器電路驗(yàn)證的平臺(tái)系統(tǒng), 其特征在于,所述的測(cè)試代碼為C語(yǔ)言編寫(xiě)的測(cè)試代碼。
7.根據(jù)權(quán)利要求1所述的基于FPGA實(shí)現(xiàn)Nandflash閃存控制器電路驗(yàn)證的平臺(tái)系統(tǒng), 其特征在于,所述的FPGA芯片為vitex-4系列FPGA芯片。
8.根據(jù)權(quán)利要求1至7中任一項(xiàng)所述的基于FPGA實(shí)現(xiàn)Nandflash閃存控制器電路驗(yàn)證的平臺(tái)系統(tǒng),其特征在于,所述的Nandf Iash信號(hào)接口模塊為Nandf Iash信號(hào)接口第一插槽,所述的測(cè)試板上設(shè)置有與該Nandflash信號(hào)接口第一插槽對(duì)應(yīng)耦合的Nandflash信號(hào)接口第二插槽,所述的Nandflash信號(hào)接口第二插槽與所述的Nandflash閃存芯片相連接, 且Nandflash信號(hào)接口第一插槽與對(duì)應(yīng)的Nandflash信號(hào)接口第二插槽相耦合插接。
9.根據(jù)權(quán)利要求8所述的基于FPGA實(shí)現(xiàn)Nandflash閃存控制器電路驗(yàn)證的平臺(tái)系統(tǒng), 其特征在于,所述的Nandflash信號(hào)接口第二插槽設(shè)置于測(cè)試板的承載有Nandflash閃存芯片的面上或者相對(duì)面上。
10.根據(jù)權(quán)利要求1至7中任一項(xiàng)所述的基于FPGA實(shí)現(xiàn)Nandflash閃存控制器電路驗(yàn)證的平臺(tái)系統(tǒng),其特征在于,所述的測(cè)試計(jì)算機(jī)通過(guò)USB連接線與所述的測(cè)試仿真器相連接。
11.根據(jù)權(quán)利要求1至7中任一項(xiàng)所述的基于FPGA實(shí)現(xiàn)Nandflash閃存控制器電路驗(yàn)證的平臺(tái)系統(tǒng),其特征在于,所述的測(cè)試仿真器通過(guò)仿真器連接線與所述的SOC芯片相連接。
12.一種利用權(quán)利要求1所述的平臺(tái)系統(tǒng)實(shí)現(xiàn)NandfIash閃存控制器電路驗(yàn)證的方法, 其特征在于,所述的方法包括以下步驟(1)將所述的測(cè)試計(jì)算機(jī)依次與所述的測(cè)試仿真器、SOC芯片進(jìn)行連接,同時(shí)將所述的各個(gè)Nandflash信號(hào)接口模塊和對(duì)應(yīng)的測(cè)試板相連接;(2)將所述的測(cè)試計(jì)算機(jī)、測(cè)試仿真器和FPGA調(diào)試板同時(shí)上電;(3)生成實(shí)現(xiàn)總線轉(zhuǎn)換電路模塊及Nandflash控制器電路模塊的燒錄文件,并將該燒錄文件燒寫(xiě)到所述的FPGA芯片內(nèi);(4)所述的測(cè)試計(jì)算機(jī)通過(guò)預(yù)先編寫(xiě)的測(cè)試代碼對(duì)所述的Nandflash控制器電路模塊進(jìn)行測(cè)試。
13.根據(jù)權(quán)利要求12所述的實(shí)現(xiàn)NandfIash閃存控制器電路驗(yàn)證的方法,其特征在于, 所述的生成實(shí)現(xiàn)總線轉(zhuǎn)換電路模塊及Nandflash控制器電路模塊的燒錄文件并將該燒錄文件燒寫(xiě)到所述的FPGA芯片內(nèi),包括以下步驟(11)使用FPGA芯片廠商所提供的FPGA工具將實(shí)現(xiàn)總線轉(zhuǎn)換電路模塊及Nandflash控制器電路模塊功能的HDL語(yǔ)言代碼轉(zhuǎn)換為BIT/PR0M文件;(12)通過(guò)FPGA芯片廠商所提供的FPGA燒寫(xiě)工具燒寫(xiě)到FPGA調(diào)試板上的FPGA芯片中。
14.根據(jù)權(quán)利要求12所述的實(shí)現(xiàn)Nandflash閃存控制器電路驗(yàn)證的方法,其特征在于, 所述的測(cè)試計(jì)算機(jī)通過(guò)預(yù)先編寫(xiě)的測(cè)試代碼對(duì)所述的Nandflash控制器電路模塊進(jìn)行測(cè)試,包括以下步驟(21)所述的測(cè)試計(jì)算機(jī)根據(jù)所述的測(cè)試代碼產(chǎn)生相應(yīng)的測(cè)試指令并送至所述的測(cè)試仿真器;(22)所述的測(cè)試仿真器將所述的測(cè)試指令編譯成所述的SOC芯片能夠執(zhí)行的匯編指令,并送至所述的SOC芯片;03)所述的SOC芯片控制所述的總線轉(zhuǎn)換電路模塊和Nandflash控制器電路模塊進(jìn)行相應(yīng)的測(cè)試處理。
15.根據(jù)權(quán)利要求14所述的實(shí)現(xiàn)Nandflash閃存控制器電路驗(yàn)證的方法,其特征在于, 所述的SOC芯片控制所述的總線轉(zhuǎn)換電路模塊和Nandflash控制器電路模塊進(jìn)行相應(yīng)的測(cè)試處理,包括以下步驟(31)對(duì)所述的FPGA芯片內(nèi)部的電路正確性和內(nèi)部電路基本功能進(jìn)行驗(yàn)證,并記錄相應(yīng)的驗(yàn)證結(jié)果;(32)控制所述的FPGA芯片內(nèi)的Nandflash控制器電路模塊對(duì)Nandflash閃存芯片進(jìn)行復(fù)位及讀狀態(tài)操作測(cè)試,并記錄相應(yīng)的測(cè)試結(jié)果;(33)控制所述的FPGA芯片內(nèi)的Nandflash控制器電路模塊對(duì)Nandflash閃存芯片進(jìn)行讀標(biāo)示符操作測(cè)試,并記錄相應(yīng)的測(cè)試結(jié)果;(34)控制所述的FPGA芯片內(nèi)的Nandflash控制器電路模塊對(duì)Nandflash閃存芯片進(jìn)行擦除、寫(xiě)數(shù)據(jù)及讀數(shù)據(jù)操作測(cè)試,并記錄相應(yīng)的測(cè)試結(jié)果;(35)控制所述的FPGA芯片內(nèi)的Nandflash控制器電路模塊對(duì)Nandflash閃存芯片進(jìn)行ECC校驗(yàn)操作測(cè)試,并記錄相應(yīng)的測(cè)試結(jié)果。
全文摘要
本發(fā)明涉及一種基于FPGA實(shí)現(xiàn)Nandflash閃存控制器電路驗(yàn)證的平臺(tái)系統(tǒng),F(xiàn)PGA調(diào)試板上承載有SOC芯片、FPGA芯片和數(shù)個(gè)Nandflash信號(hào)接口模塊,F(xiàn)PGA芯片中設(shè)置有總線轉(zhuǎn)換電路模塊和Nandflash控制器電路模塊,測(cè)試計(jì)算機(jī)通過(guò)測(cè)試仿真器、SOC芯片、總線轉(zhuǎn)換電路模塊和Nandflash控制器電路模塊與各個(gè)Nandflash信號(hào)接口模塊連接,每個(gè)Nandflash信號(hào)接口模塊和對(duì)應(yīng)的測(cè)試板連接。本發(fā)明還涉及一種利用該平臺(tái)系統(tǒng)實(shí)現(xiàn)Nandflash閃存控制器電路驗(yàn)證的方法。采用該種基于FPGA實(shí)現(xiàn)Nandflash閃存控制器電路驗(yàn)證的平臺(tái)系統(tǒng)及方法,自動(dòng)化程度極高,縮短了研發(fā)周期,降低了研發(fā)成本,測(cè)試效率高,使用方便快捷,工作性能穩(wěn)定可靠,應(yīng)用范圍較為廣泛。
文檔編號(hào)G11C29/56GK102201267SQ201010133540
公開(kāi)日2011年9月28日 申請(qǐng)日期2010年3月26日 優(yōu)先權(quán)日2010年3月26日
發(fā)明者張結(jié)華, 王冬佳 申請(qǐng)人:上海摩波彼克半導(dǎo)體有限公司