作者:王烈洋 黃小虎 占連樣 珠海歐比特控制工程股份有限公司 摘要:隨著(zhù)電子技術(shù)的飛速發(fā)展, 存儲器的種類(lèi)日益繁多,每一種存儲器都有其獨有的操作時(shí)序,為了提高存儲器芯片的測試效率,一種多功能存儲器芯片的測試系統應運而生。本文提出了一種多功能存儲器芯片的測試系統硬件設計與實(shí)現,對各種數據位寬的多種存儲器芯片(SRAM、MRAM、NOR FALSH、NAND FLASH、EEPROM等)進(jìn)行了詳細的結口電路設計(如何掛載到NIOSII的總線(xiàn)上),最終解決了不同數據位寬的多種存儲器的同平臺測試解決方案,并詳細地設計了各結口的硬件實(shí)現方法。 引言 隨著(zhù)電子技術(shù)的飛速發(fā)展,存儲器類(lèi)芯片的品種越來(lái)越多,其操作方式完全不一樣,因此要測試其中一類(lèi)存儲器類(lèi)芯片就會(huì )有一種專(zhuān)用的存儲器芯片測試儀。本文設計的多種存儲器芯片測試系統是能夠對SRAM、Nand FLASH、Nor FLASH、MRAM、EEPROM等多種存儲器芯片進(jìn)行功能測試,而且每一類(lèi)又可兼容8位、16位、32位、40位等不同寬度的數據總線(xiàn),如果針對每一種產(chǎn)品都單獨設計一個(gè)測試平臺,其測試操作的復雜程度是可想而知的。為達到簡(jiǎn)化測試步驟、減小測試的復雜度、提高測試效率、降低測試成本,特設計一種多功能的存儲器類(lèi)芯片測試系統,實(shí)現在同一平臺下完成所有上述存儲器芯片的方便快捷地測試。 設計原理 此設計方案根據上述各種存儲器獨自的讀寫(xiě)時(shí)序訪(fǎng)問(wèn)特性,通過(guò)FPGA的靈活編程特性,適當地調整NIOSII的外部總線(xiàn)時(shí)序,最終實(shí)現基于NIOSII的外部總線(xiàn)訪(fǎng)問(wèn)各種存儲器讀寫(xiě)時(shí)序的精確操作。如圖2-1。通過(guò)FPGA自定義一個(gè)可以?huà)燧d所有存儲器芯片的總線(xiàn)接口-ABUS,如表1。而且在同一個(gè)接口上能夠自動(dòng)識別各種接入的被測試存儲器芯片,它們通過(guò)類(lèi)別輸入信號(CLAS)來(lái)區分,每一種存儲器芯片對應一種獨特的操作時(shí)序。下面是幾種存儲器芯片的接口連接方式及信號描述。其它的存儲器芯片都可以用類(lèi)似的接法掛載到ABUS總線(xiàn)上,最終完成測試。 ![]() 圖 2 1 NIOSII的總線(xiàn)掛載各類(lèi)存儲器芯片連接示意圖 表1:ABUS接口信號說(shuō)明表
40位NAND FLASH連接設計 如圖2-2所示,40位NAND FLASH與NIOSII 通過(guò)ABUS(FPGA)橋接,把外部總線(xiàn)的時(shí)序完全轉換成NAND FLASH的操作時(shí)序。40位NAND FLASH芯片品由五個(gè)獨立的8位NAND FLASH芯片拼接構成。5個(gè)8位器件的外部IO口拼接成40位的外部IO口,而各自的控制線(xiàn)(NCLE,NALE,NRE,NWE)連接在一起構成一組控制線(xiàn)(NCLE,NALE,NRE,NWE),片選相互獨立引出成NCS0-NCS9,忙信號獨立引出為R/B0-R/B9。 如表2,詳述了40位NAND FLASH與ABUS的連接關(guān)系。 ![]() 圖 2 2 ABUS與40位NAND FLASH接口圖 表2,40位NAND FLASH接口連接表
8位NAND FLASH與NIOSII連接 8位NAND FLASH是通過(guò)多片8位NAND FLSAH芯片疊加而成,每一個(gè)芯片的外部總線(xiàn)和控制線(xiàn)(NALE,CLE,NEW,NRE)進(jìn)行復連。分別引出每一個(gè)芯片的片選和忙信號NCS0-NCS9、NRB0-NRB9?梢岳肍PGA的邏輯來(lái)修改NIOSII的總線(xiàn)讀寫(xiě)時(shí)序,來(lái)準確的操作大容量8位NAND FLASH存儲器模塊。實(shí)現NIOSII到ABUS,ABUS到8位NAND FLASH的連接。如圖2-3所示。 表3,詳述了8位NAND FLASH與ABUS的連接關(guān)系。 ![]() 圖 2 3 ABUS與8位大容量NAND FALSH連接 表3,8位NAND FLASH接口連接表
40位SRAM與NIOSII連接 40位SRM模塊與NIOSII通過(guò)ABUS連接,實(shí)現正確的時(shí)序讀寫(xiě)操作。測試時(shí),一次只測試8位,分5次完成所有空間的測試。如圖2-4。表4是詳細的信號連接說(shuō)明。 ![]() 圖 2 4 ABUS與40位SRAM連接 表4,40位SRAM接口連接表
8位SRAM與NIOSII連接 8位SRM模塊與NIOSII通過(guò)ABUS(FPGA)連接,實(shí)現正確的時(shí)序讀寫(xiě)操作。如圖2-5。表5是信號連接說(shuō)明。 ![]() 圖 2 5 ABUS與8位SRAM連接 表5,8位SRAM接口連接表
硬件電路設計 在測試NAND FLASH時(shí),測試時(shí)間長(cháng)達十個(gè)小時(shí)不等。在此為提高測試效率,增加測試速度,本設計采用兩套完全一樣且獨立的硬件系統構成?赏瑫r(shí)最多測試2片NAND FLASH器件。每一個(gè)硬件系統由一個(gè)微處理器(NIOSII)加一個(gè)大容量FPGA及一個(gè)存儲器測試擴展接口(即ABUS接口)三大模塊構成。如圖3-1。RS232通信接口實(shí)現測試系統與上位機的數據交換,完成人機交互操作。電源系統產(chǎn)生各種合適的電壓,滿(mǎn)足各芯片的電源供給。 ![]() 圖 3 1 硬件方塊圖 處理器模塊電路 處理器模塊電路由FPGA內嵌的NIOSII軟核(CPU)、兩路RS232通信、一個(gè)FLASH芯和一個(gè)SRAM芯片組成。CPU是整個(gè)系統的核心管理者,向下負責各種存儲器芯片的讀寫(xiě)測試,向上負責與上位機通信,實(shí)現人機交互。通信由其中一個(gè)RS232電路完成,另一個(gè)RS232電路用來(lái)實(shí)現系統調試和軟件固化。FLASH芯片用來(lái)存儲程序代碼及重要的數據。而SRAM芯片在CPU上電工作以后,通過(guò)CPU加載FLASH的程序,最終給CPU的程序代碼提供快速的運行環(huán)境。 基于FPGA的ABUS接口模塊 ABUS接口模塊由FPGA芯片、配置FLASH及數據存儲EEPROM芯片構成。ABUS要實(shí)現NIOSII的外部總線(xiàn)與多種存儲器模塊的接口對接,每一種特定的存儲器有一個(gè)特定的時(shí)序邏輯,而每一種時(shí)序邏輯可以通過(guò)FPGA的硬件代碼(IP核)來(lái)實(shí)現,具體的每一個(gè)存儲器模塊在測試時(shí)會(huì )給ABUS接口一個(gè)固定的類(lèi)別信號CLAS,ABUS接口根據這個(gè)類(lèi)別信號識別出各種SIP存儲器模塊,最終切換出正確的對應特定產(chǎn)品的時(shí)序邏輯,來(lái)完成NIOSII通過(guò)外部總線(xiàn)來(lái)對存儲器芯片的讀寫(xiě)測試。而配置FLASH實(shí)現FPGA在上電時(shí)硬件程序的加載工作及掉電數據保護。EEPROM用來(lái)存儲一些重要的系統參數。 SIP存儲器測試擴展接口 存儲器測試擴展接口在硬件上由兩排雙排座構成。一共是120個(gè)管腳。ABUS接口與測試擴展接口相連接:40個(gè)管腳與雙向的數據或I/O線(xiàn)相連、8個(gè)管腳與8根信號輸入控制線(xiàn)相連、16個(gè)管腳與16根片選信號輸出線(xiàn)相連、5個(gè)管腳與5根類(lèi)別輸入信號相連、16個(gè)管腳與16根狀態(tài)輸入信號線(xiàn)相連、27個(gè)管腳與27根地址線(xiàn)相連。其它的管腳可分配成電源和地線(xiàn),以及信號指示等。 ABUS接口IP核的設計 每一種SIP存儲器對應于一個(gè)特定的ABUS接口IP核,以實(shí)現正確的時(shí)序讀寫(xiě)操作。這個(gè)IP核有一個(gè)統一的接口約定,都是由兩個(gè)固定的接口構成,其中與NIOSII連接的是外部總線(xiàn)接口,其操作按照NIOSII的外部總線(xiàn)時(shí)序規范來(lái)實(shí)現,另一個(gè)接口就是上文提及的ABUS接口,在相應的CLAS信號有效的情況下,它負責把NIOSII的外部總線(xiàn)讀寫(xiě)時(shí)序轉換成對應存儲器芯片的時(shí)序。IP核的工作就是完成這些讀寫(xiě)操作的轉換。表5是各種SIP存儲器對應的類(lèi)別信(CLAS)號輸入值,在設計接口轉接板時(shí)要按這個(gè)值設定,ABUS才會(huì )切換出正確的讀寫(xiě)時(shí)序。 七位類(lèi)別示別信號含義:T_XX_WW_CC,T為1表示高低測試測試,為0表示常溫下的功能測試。XX表示存儲器種類(lèi),WW表示總線(xiàn)寬度,CC表示容量種類(lèi)。 表5 各種SIP存儲器對應的CLAS信號值
8位SRAM/MRAM/NOR FLASH接口IP核設計 如圖4-1,SRAM、MRAM和NOR FLASH的接口操作基本一致,NIOSII的總線(xiàn)時(shí)序完全滿(mǎn)足。故在FPGA內部只要簡(jiǎn)單地把相應的控制線(xiàn)和數據線(xiàn)相連就可以了,唯獨只要設計一個(gè)片選寄存器,用來(lái)區分存儲器芯片的16個(gè)片選。每一個(gè)片選可以訪(fǎng)問(wèn)的空間為128MByte。片選寄存器的地址為(基址+0x0FFFFFFC),基地址設在NIOSII外部總線(xiàn)的最高地址位。 ![]() 圖 4 1 8位SRAM/MRAM/NOR FLASH接口IP 16位SRAM/MRAM/NOR FLASH接口IP核設計 如圖4-2,SRAM、MRAM和NOR FLASH的接口操作基本一致,NIOSII的總線(xiàn)時(shí)序完全滿(mǎn)足。故在FPGA內部只要簡(jiǎn)單的把相應的控制線(xiàn)和數據線(xiàn)相連就可以了,唯獨只要設計一個(gè)片選寄存器,用來(lái)區分SIP的16個(gè)片選。每一個(gè)片選可以訪(fǎng)問(wèn)的空間為128MByte。片選寄存器的地址為(基址+0x0FFFFFFC),基地址設在NIOSII 外部總線(xiàn)的最高地址位。 ![]() 圖 4 2 16位SRAM/MRAM/NOR FLASH接口IP 32位SRAM/MRAM/NOR FLASH接口IP核設計 如圖4-3,SRAM、MRAM和NOR FLASH的接口操作基本一致,NIOSII的總線(xiàn)時(shí)序完全滿(mǎn)足。故在FPGA內部只要簡(jiǎn)單的把相應的控制線(xiàn)和數據線(xiàn)相連就可以了,唯獨只要設計一個(gè)片選寄存器,用來(lái)區分SIP的16個(gè)片選。每一個(gè)片選可以訪(fǎng)問(wèn)的空間為128MByte。片選寄存器的地址為(基址+0x0FFFFFFC),基地睛設在NIOSII 外部總線(xiàn)的最高地址位。 ![]() 圖 4 3 32位SRAM/MRAM/NOR FLASH接口IP 40位SRAM/MRAM/NOR FLASH接口IP核設計 如圖4-4,40位的數據寬度有點(diǎn)特殊。在此我們把40位的數據分成5個(gè)8位的區域,用8位寬度的總線(xiàn)去分別訪(fǎng)問(wèn)每一個(gè)區域。IP核中的位選寄存器就是用來(lái)完成切換8位數據總線(xiàn)到40位總線(xiàn)的5個(gè)區域的其中一個(gè)。片選寄存器的地址為(基址+0x0FFFFFFC),位選寄存器的地址為(基址+0x0FFFFFF8)。最大可以測試128M×40位×16片的存儲器SRAM/MRAM/NOR FLASH模塊。 ![]() 圖 4 4 40位SRAM/MRAM/NOR FLASH接口IP 8位NAND FLASH的ABUS接口IP設計 如圖4-5,通過(guò)寫(xiě)片選寄存器來(lái)選中模塊的16個(gè)片選的其中一個(gè)。我們約定其地址為(基址+0x0FFFFFFC)。讀狀態(tài)寄存器返回的是16個(gè)NAND FLASH芯片的忙信號,其地址為(基址+0x0FFFFFF8)。向地址(基址+0x00)寫(xiě)入數據就是對NAND FLASH數據寄存器的寫(xiě)操作。向地址(基址+0x00)單元讀數據就是對NAND FLASH數據寄存器的讀操作。向地址(基址+0x01)寫(xiě)入數據就是對NAND FLASH命令寄存器的寫(xiě)操作。向地址(基址+0x02)寫(xiě)入數據就是對NAND FLASH地址寄存器的寫(xiě)操作。 ![]() 圖 4 5 8位NAND FLASH的ABUS接口IP核設計圖 16位NAND FLASH的ABUS接口IP設計 16位的NAND FLASH存儲器芯片可以有多種組合方式,可以用多個(gè)16位的NAND FLASH組合,也可以用多個(gè)8位的NAND FLASH組合。這里我們假設16位的SIP NAND FLASH產(chǎn)品是由多個(gè)16位的NAND FLASH組合而成,下面的IP核是根據它的結構來(lái)設計的。 如圖4-6,通過(guò)寫(xiě)片選寄存器來(lái)選中模塊的16個(gè)片選的其中一個(gè)。我們約定其地址為(基址+0x0FFFFFFC)。讀狀態(tài)寄存器返回的是16個(gè)NAND FLASH芯片的忙信號,其地址為(基址+0x0FFFFFF8)。向地址(基址+0x00)寫(xiě)入數據就是對NAND FLASH數據寄存器的寫(xiě)操作。向地址(基址+0x00)單元讀數據就是對NAND FLASH數據寄存器的讀操作。向地址(基址+0x01)寫(xiě)入數據就是對NAND FLASH命令寄存器的寫(xiě)操作。向地址(基址+0x02)寫(xiě)入數據就是對NAND FLASH地址寄存器的寫(xiě)操作。 ![]() 圖 4 6 16位NAND FLASH的ABUS接口IP核設計圖 驗證與總結 將寫(xiě)好的FPGA程序和調試的C代碼寫(xiě)入FLASH后,掉電重配置FPGA,串口的輸出能正常識別所有設置好的存儲器芯片,并能夠進(jìn)行準確地讀寫(xiě)功能測試。達到了設計目的。 本文介紹了一種低成本、簡(jiǎn)單、靈活的多種存儲器芯片測試系統的硬件設計,并采用FPGA、FLASH、SDRAM、RS232電路等實(shí)現。采用這種方案,用戶(hù)可根據市場(chǎng)需求,靈活的增加測試系統功能,實(shí)現更多的存儲器芯片測試。 參考文獻: 【1】K9F4G08U0B 512M x 8 Bit / 1G x 8 Bit NAND Flash Memory datasheet,May 30,2008 【2】Avalon Interface Specifications,Version 1.3,August 2010 【3】R1RP0416D Series 4M High Speed SRAM datasheet,Rev. 1.00, Mar.12.2004 【4】HN58V1001 Series 1M EEPROM datasheet,Rev.7.0,Oct.31.1997 【5】MR0A08B 128K x 8 MRAM Memory datasheet,Rev.2,6/2009 【6】S29JL064H 64 Megabit (8 M x 8-Bit/4 M x 16-Bit) datasheet,Revision A,March 26,2004 |