



摘 要: 傳統板級硬件功能驗證方法使用示波器或邏輯分析儀對引出管腳進行測試,靈活性差,不適用于星載大容量NAND FLASH存儲陣列。提出一種通過FPGA控制NAND FLASH復位和讀ID操作,并自動遍歷所有存儲芯片的方法,配合ChipScope Pro工具在線仿真,實現星載NAND FLASH板級功能快速驗證。實驗結果表明,該方法簡單有效,并可根據仿真驗證結果快速做出板級功能有效性判斷。
關鍵詞: NAND FLASH; 星載存儲器; 硬件功能驗證; ChipScope; 并行擴展
中圖分類號: TN911?34; TP319 文獻標識碼: A 文章編號: 1004?373X(2016)14?0032?03
Design of board?level function fast verification for satellite?bone NAND FLASH
DONG Zhenxing1,2,3, ZHU Yan1,2,3
(1. Key Laboratory of Electronics and Information Technology for Space Systems, Chinese Academy of Sciences, Beijing 100190, China;
2. National Space Sciences Center, Chinese Academy of Sciences, Beijing 100190, China; 3. University of Chinese Academy of Sciences, Beijing 100190, China)
Abstract: The traditional board?level hardware functional verification method uses the oscilloscope or logic analyzer to test the outlet pins, which has poor flexibility, and is unsuitable for the high?capacity satellite?bone NAND FLASH storage array. A method to control the NAND FLASH reset, read ID operation through FPGA and traverse all storage chips automatically is proposed in this paper. In combination with the ChipScope Pro tool, the online simulation is used to fast verify the satellite?bone NAND FLASH board?level function. The experimental results show that the method is simple and effective, and can quickly judge the board?level function effectiveness according to the simulation results.
Keywords: NAND FLASH; satellite?bone memory; hardware functional verification; ChipScope; parallel extension
0 引 言
由于我國國土面積有限,又不可能在境外大量設置地面接收站,所以對接收范圍以外的衛星數據只能存儲在星載存儲器內,在衛星入境時下行回放[1?2]。在工程應用中,星載大容量存儲器一般研制流程為:
(1) 根據航天型號任務及技術要求確定星載大容量存儲器方案和技術指標;
(2) 存儲器件選型,設計硬件存儲板;
(3) 存儲器FPGA存儲控制功能設計;
(4) 器件電裝,板級硬件功能驗證;
(5) FPGA存儲控制功能上板驗證調試[3]。
如何對大容量存儲器進行NAND FLASH板級硬件功能驗證是存儲板電裝完成后面臨的首要問題,高效快速的板級功能驗證可有效減少存儲器研制周期,為后續FPGA存儲控制功能調試提供硬件可靠性保障。
常用的板級硬件功能驗證方法有基于FPGA的傳統管腳引出觀察和片內邏輯分析儀ChipScope Pro兩種[3]。傳統的信號分析手段需要在設計時保留一定的FPGA管腳作為測試管腳,再用示波器或者邏輯分析儀進行波形觀察分析[4],靈活性差,特別是基于NAND FLASH芯片的大容量存儲器,芯片間互聯信號多,控制復雜,使得傳統驗證方法更加繁瑣復雜[5];片內邏輯分析儀能夠通過JTAG實時地讀出FPGA內部所有的信號,而只需要少量的BlockRAM和邏輯資源,邏輯分析靈活方便,大大降低了板級功能驗證的時間和資源成本,成為大容量存儲器板級功能驗證的首選方法。由于大容量存儲器FLASH疊裝芯片多,若對每個疊裝芯片單獨進行測試驗證,需頻繁更改FPGA代碼、重新綜合及布局布線,效率低下,因此需設計一種高效的方法自動對大容量存儲器進行硬件功能測試驗證。
1 星載大容量存儲相關技術
文中星載大容量存儲器選用3D?PLUS公司的64 Gb NAND FLASH疊裝模塊作為存儲介質,器件型號為3DFN64G08VS,以航天實際應用的星載FLASH存儲512 Gb容量方案為例進行分析討論。
1.1 NAND FLASH器件結構
FLASH疊裝模塊內部結構如圖1所示,同一疊裝模塊內8片8 Gb的K9K8G08U0M 基本芯片共用對外的8位寬I/O總線,各自的片選信號[CE]、命令使能信號[CLE]、地址使能信號[ALE]、讀信號[RE]、寫信號[WE]分別引出[6]。對芯片操作時通過片選信號選通8 Gb基本芯片,通過命令、地址使能及讀/寫控制信號時分復用[I/O]總線加載指令、地址及數據,從而完成FLASH讀、寫、擦除等操作。
1.2 總線并行擴展技術
NAND FLASH操作時序要求Write/Read Cycle Time[tWCtRC]最小值為[tMIN=25 ns],即工作最高頻率為[fMAX=1tMIN=40 MHz],同一疊裝模塊內同時只能選通一片基本芯片。按此要求,存儲器理論最高支持40 MHz×
8 b=320 Mb/s數據傳輸速率,不能有效滿足載荷系統多信源、高速率的任務需求。根據FLASH器件結構特點,存儲器方案采用4塊FLASH疊裝模塊并行擴展技術,將4塊疊裝模塊相同編號FLASH基本芯片的控制總線、狀態總線互連,同時I/O總線擴展為32位,其中4片FLASH基本芯片的8 b總線分別對應32位總線的不同數據位段,擴展方式如圖2所示。
對數據總線進行32 b并行擴展后,支持數據傳輸速率提高為原來方案的4倍,理論可支持達1 Gb/s的數據傳輸速率。同理,可進行更多位寬的總線并行擴展,如64 b,128 b擴展等,但考慮到FPGA管腳資源有限、控制邏輯復雜度等因素,存儲器采用32 b擴展方案,已能有效滿足目前載荷系統的要求。
2 FLASH板級硬件功能驗證
存儲方案采用32 b總線并行擴展技術,使用XILINX公司的XQR2V3000芯片作為數據存儲控制FPGA,完成對FLASH進行讀、寫及擦除等任務調度并生成相關操作驅動信號。由于FLASH陣列芯片較多,使用SNJ54LVTH162245芯片增強存儲控制FPGA驅動能力,同時作為片選芯片分時選通高低256 Gb FLASH存儲陣列。
2.1 FPGA片內邏輯分析儀概述
ChipScope Pro是XILINX推出的集邏輯分析、總線分析和虛擬輸入/輸出為一體的虛擬分析和調試軟件[7]。其工作原理為:通過在FPGA設計中插入ICON(控制核)和ILA(邏輯分析核),把需要分析的FPGA內部信號的采樣點寫入FPGA內部的塊RAM中,計算機軟件通過JTAG接口和FPGA相連,讀出塊RAM中的值并把信號的波形實時顯示出來,從而實現邏輯分析的功能。
ChipScope Pro軟件由3個工具組成:內核生成器、內核插入器及分析儀[8]。其中ChipScope Pro Core Inserter(內核插入器)可自動地為用戶已經綜合完成的設計中插入ICON,ILA和ILA/ATC的內核,用戶只需完成相關配置即可使用[9]。使用ChipScope Pro工具要用到標準的HDL綜合工具和Xilinx ISE的實現工具,設計流程如圖3所示。
2.2 硬件功能驗證實現
FLASH板級硬件功能驗證,主要是針對FLASH疊裝陣列芯片及電裝質量進行測試,即驗證FLASH陣列各基本芯片功能好壞及FPGA與FLASH間通路的有效性。基于存儲器技術特點,設計使用ChipScope Pro Core Inserter工具對大容量存儲器硬件電路板進行功能驗證。FLASH芯片與存儲控制FPGA的主要信息交互為[R/B],[CE],[CLE],[ALE],[WE],[RE],[I/O]等信號,參考FLASH芯片用戶手冊,發現對FLASH芯片進行復位和讀ID操作即可完成對上述信號的測試。該方法不僅可以完成功能有效性測試,而且FPGA程序設計開發簡單。復位和讀ID操作時序圖如圖4、圖5所示。
根據FLASH芯片復位與讀ID操作時序圖,選通4片并行擴展基本芯片,使用Xilinx ISE軟件編寫FPGA程序;然后對測試程序進行Synthesize綜合,隨后通過New Source建立ChipScope Definition and connection File加入ChipScope Pro Core Inserter工具,根據需要完成Core Inserter相關配置后,進行布局布線及生成.bit文件操作;最后,使用下載器將存儲板FPGA與上位機通過JTAG口相連,操作ChipScope Pro Analyzer軟件完成在線測試驗證。實驗結果如圖6所示。
2.3 自動快速驗證設計
按照上述方法,可有效地對4個FLASH并行擴展芯片進行功能測試,若要對所有疊裝模塊的所有芯片進行驗證,則需要頻繁修改片選信號,然后重新綜合編譯,效率低下。針對效率問題,設計了一種快速自動驗證方法,可有效實現對所有FLASH疊裝模塊中所有芯片遍歷測試,流程圖如圖7所示。
上電復位后,默認選通低256 Gb存儲區,選通chip_flag為0的4片并行擴展芯片,按照芯片手冊中復位及讀ID操作時序進行功能測試;當前測試結束后,程序自動判斷當前芯片是否為當前存儲區疊裝模塊最后一片基本芯片,若是,則選通高256 Gb存儲區,chip_flag置0,若否,則chip_flag加1,進行低256 Gb存儲區下一個4片并行擴展芯片功能測試;當選通高256 Gb存儲區后,重復低256 Gb存儲區相應chip_flag判斷及操作,最終完成對FLASH所有芯片的遍歷測試,自動快速實現板級功能驗證。
3 仿真驗證結果
按照板級功能快速驗證流程圖,設計開發FPGA測試程序,使用ChipScope Pro Analyzer進行在線仿真驗證,測試結果如圖8所示。
在仿真結果中,chip_flag表示高/低256 Gb疊裝模塊及相應內部芯片編號,0~7對應低256 Gb疊裝模塊中8片K9K8G08U0M 基本芯片,8~15對應高256 Gb疊裝模塊中8片基本芯片。由rdy_bsy信號知所有疊裝模塊[R/B]信號有效,且FLASH與FPGA的[R/B]通路正常;觀察I/O信號,發現chip_flag 為6時獲得的芯片ID第5個字節對應值為‘64006464’,與理論值‘64646464’不符,而其余chip_flag對應芯片均為“64646464”,同時發現chip_flag 為6時獲得的芯片ID前4個字節對應24~16位也均為0。由32位總線并行擴展方式與仿真波形結果綜合分析可知,低256 Gb存儲區中并行擴展23~16位對應疊裝模塊第7片基本芯片故障,其余芯片正常,且FLASH與FPGA間通路有效。自動快速驗證方法在對4片FLASH并行擴展芯片進行復位和讀ID操作測試后,不需再手動重新設置片選信號及再次綜合編譯,直接自動進行后續芯片測試,直至所有芯片遍歷結束。自動快速驗證方法大大提高了測試效率,節省了時間,并可根據仿真驗證結果快速做出功能有效性判斷。
4 結 語
為了實現星載NAND FALSH硬件功能有效性測試,基于大容量存儲總線并行擴展技術,提出一種通過使用FPGA和ChipScope Pro工具進行板級功能快速驗證的方法。相比于傳統管腳引出測試方法,本方法靈活性好、開發簡單、快捷有效,且具有較好的移植性和普適性。
參考文獻
[1] 朱巖.基于閃存的星載高速大容量存儲技術的研究[D].北京:中國科學院研究生院,2006.
[2] 都文超.星載高速大容量存儲器的設計與實現[D].西安:西安電子科技大學,2012.
[3] 朱曉燕,邱慶林,榮金葉,等.一種高可靠大容量星載存儲器的設計與研究[J].微電子學與計算機,2012,29(6):61?63.
[4] 萬翔.ChipScope Pro在FPGA調試中的應用[J].計算機與網絡,2005(21):58?59.
[5] 于夢磊.基于FPGA的通用FLASH存儲器測試驗證系統[D].濟南:山東大學,2014.
[6] Samsung Electronics. 1 Gx 8 bit 2 Gx 8 bit NAND flash memory [R]. South Korea: Samsung Electronics, 2012.
[7] 徐文波,田耘.Xilinx FPGA開發實用教程[M].2版.北京:清華大學出版社,2012:167?171.
[8] 鄧成,張亞妮,白璘,等.嵌入式邏輯分析儀在FPGA設計中的應用[J].現代電子技術,2006,29(2):76?77.
[9] 楊賢軍.基于ChipScope的EDA實驗平臺的設計[J].通信技術,2012(10):101?102.