基于FPGA实现Nandflash闪存控制器电路验证的平台系统及方法

文档序号:6768776阅读:277来源:国知局
专利名称:基于FPGA实现Nandflash闪存控制器电路验证的平台系统及方法
技术领域
本发明涉及集成电路领域,特别涉及数字集成电路验证技术领域,具体是指一种基于FPGA实现Nandflash闪存控制器电路验证的平台系统及方法。
背景技术
FPGA(Field Programmable Gate Array,现场可编程门阵列)验证是数字集成电路设计过程中一个必不可少的重要流程。FPGA验证的主要步骤有(1)设计输入即利用 HDL(Hardware Description Language,硬件描述语言)输入工具、原理图输入工具或状态机输入工具等把所要设计的电路描述出来。(2)综合与布局布线,综合优化是把HDL语言翻译成最基本的与或非门的连接关系(网表),并根据要求(约束条件)优化所生成的门级逻辑连接,输出edf和edn等文件, 导给FPGA厂家的软件进行实现和布局布线。布局布线就是使用FPGA厂商提供的实现与布局布线工具,根据所选芯片的型号, 进行芯片内部功能单元的实际连接与映射。(3)生成并下载BIT或PROM文件,进行板级调试。布局布线完成后,会生成带有电路功能的BIT或PROM文件,通过FPGA厂商提供的烧写工具,将BIT或PROM文件烧写到FPGA芯片内,这样FPGA芯片就可以实现所要设计的电路功能了。本发明主要针对Nandflash控制器,下面对Nandflash及Nandflash控制器进行详细介绍。Nandflash (快闪存储器)是目前业界非常流行的存储介质,Nandflash存储单元面积小,其裸片面积也很小。Nandflash编程速度快、擦除时间短,支持速率超过5Mbps的持续写操作,其区块擦除时间短至ans。显然,Nandflash在编程速度、擦除时间方面具有绝对优势。基于上述几点优势,Nandflash较适合于存储大量文件,所以Nandflash几乎被用于所有可擦除的存储卡。随着Nandflash的越来越流行,越来越多的厂商开始生产Nandflash闪存芯片,三星、美光及东芝等都是业界主流的Nandflash闪存芯片制造商,目前市场上的各种Nandflash闪存芯片型号越来越多,各种闪存芯片之间的差异性也越来越大,这就对 Nandflash控制器的兼容性提出了更高的要求。在常用的数字SOC (system on chip,片上系统)芯片架构中,我们常会使用 Nandflash控制器负责与芯片外侧的Nandflash闪存通讯。作为SOC芯片内处理器与 Nandflash闪存之间的桥梁,处理器通过向Nandflash控制器发出指令,实现对Nandflash 编程、擦除等操作。同时,Nandflash闪存通过返回相应的状态数据给Nandfash控制器,告知处理器相应的闪存状态。所以Nandfash控制器在数字SOC芯片与Nandflash闪存通讯过程中起着不可替代的作用。Nandfash闪存接口信号有8或16根指令数据信号I/O及6 根控制信号芯片启动信号CEn,写使能信号WEn,读使能信号REn,指令锁存使能信号CLE, 地址锁存使能信号ALE,就绪/忙信号R/&1。Nandflash控制器通过上述信号对Nandflash 闪存进行复位、读写Nandflash闪存芯片内数据、读取Nandf Iash闪存芯片状态及芯片标识符、擦除Nandflash闪存芯片内数据、对Nandflash闪存芯片内数据进行ECC (Error Check Correct)算法校验等各项操作。如上文所述,Nandflash控制器的操作复杂,同时市场现有的Nandflash闪存芯片种类繁多、差异性也越来越大,现有的Nandflash控制器FPGA验证方案越来越难以满足测试人员的测试要求。现有技术中的Nandflash控制器验证方案无法充分验证Nandflash控制器对各种 Nandflash闪存芯片的兼容性;因为待测Nandflash芯片较多而导致测试效率低下;并且无法可对Nandflash控制器电路的各种逻辑功能进行充分验证,测试覆盖率低;同时需要大量的人力参与,测试自动化程度较低;无法减少和避免Nandflahs控制器的缺陷,从而降低了 Nandflash控制器的兼容性,使得研发周期延长,研发成本大大提高。所以,如何设计出一种合格的针对Nandflash控制器电路的FPGA验证方案,就成为了目前数字集成电路验证测试领域的一个挑战。

发明内容
本发明的目的是克服了上述现有技术中的缺点,提供一种能够对Nandflash控制器各种功能及兼容性进行充分验证、自动化程度高、测试效率高、测试覆盖率高、使用方便快捷、工作性能稳定可靠、应用范围较为广泛的基于FPGA实现Nandflash闪存控制器电路验证的平台系统及方法。为了实现上述的目的,本发明的基于FPGA实现Nandflash闪存控制器电路验证的平台系统及方法如下该基于FPGA实现Nandflash闪存控制器电路验证的平台系统,包括测试计算机和承载有Nandflash闪存芯片的测试板,其主要特点是,所述的平台系统中还包括测试仿真器和FPGA调试板,所述的FPGA调试板上承载有SOC芯片、FPGA芯片和数个Nandflash信号接口模块,所述的FPGA芯片中设置有总线转换电路模块和Nandflash控制器电路模块, 所述的测试计算机依次通过所述的测试仿真器、SOC芯片、总线转换电路模块和Nandflash 控制器电路模块分别与所述的各个Nandflash信号接口模块相连接,且每个Nandflash信号接口模块和对应的测试板相连接。该基于FPGA实现Nandflash闪存控制器电路验证的平台系统中的SOC芯片为内置有ARM处理器的SOC芯片。该基于FPGA实现Nandflash闪存控制器电路验证的平台系统中的SOC芯片为内置ARM926EJ_S处理器的SOC芯片。该基于FPGA实现Nandflash闪存控制器电路验证的平台系统中的总线转换电路模块为ARM转FPGA总线电路模块。该基于FPGA实现Nandflash闪存控制器电路验证的平台系统中的测试仿真器为 ARM仿真器,且该ARM仿真器将测试计算机上的测试代码编译成所述的ARM处理器可识别的汇编指令。该基于FPGA实现Nandflash闪存控制器电路验证的平台系统中的测试代码为C 语言编写的测试代码。该基于FPGA实现Nandflash闪存控制器电路验证的平台系统中的FPGA芯片为 vitex-4系列FPGA芯片。该基于FPGA实现Nandflash闪存控制器电路验证的平台系统中的Nandflash信号接口模块为Nandflash信号接口第一插槽,所述的测试板上设置有与该Nandflash信号接口第一插槽对应耦合的Nandflash信号接口第二插槽,所述的Nandflash信号接口第二插槽与所述的Nandflash闪存芯片相连接,且NandfIash信号接口第一插槽与对应的 Nandflash信号接口第二插槽相耦合插接。该基于FPGA实现Nandflash闪存控制器电路验证的平台系统中的Nandflash信号接口第二插槽设置于测试板的承载有Nandflash闪存芯片的面上或者相对面上。该基于FPGA实现Nandflash闪存控制器电路验证的平台系统中的测试计算机通过USB连接线与所述的测试仿真器相连接。该基于FPGA实现Nandflash闪存控制器电路验证的平台系统中的测试仿真器通过仿真器连接线与所述的SOC芯片相连接。该利用上述的平台系统实现Nandflash闪存控制器电路验证的方法,其主要特点是,所述的方法包括以下步骤(1)将所述的测试计算机依次与所述的测试仿真器、SOC芯片进行连接,同时将所述的各个Nandflash信号接口模块和对应的测试板相连接;(2)将所述的测试计算机、测试仿真器和FPGA调试板同时上电;(3)生成实现总线转换电路模块及Nandflash控制器电路模块的烧录文件,并将该烧录文件烧写到所述的FPGA芯片内;(4)所述的测试计算机通过预先编写的测试代码对所述的Nandflash控制器电路模块进行测试。该实现Nandflash闪存控制器电路验证的方法中的生成实现总线转换电路模块及Nandflash控制器电路模块的烧录文件并将该烧录文件烧写到所述的FPGA芯片内,包括以下步骤(11)使用FPGA芯片厂商所提供的FPGA工具将实现总线转换电路模块及 Nandflash控制器电路模块功能的HDL语言代码转换为BIT/PR0M文件;(12)通过FPGA芯片厂商所提供的FPGA烧写工具烧写到FPGA调试板上的FPGA芯片中。该实现Nandflash闪存控制器电路验证的方法中的测试计算机通过预先编写的测试代码对所述的Nandflash控制器电路模块进行测试,包括以下步骤(21)所述的测试计算机根据所述的测试代码产生相应的测试指令并送至所述的测试仿真器;(22)所述的测试仿真器将所述的测试指令编译成所述的SOC芯片能够执行的汇编指令,并送至所述的SOC芯片;所述的SOC芯片控制所述的总线转换电路模块和Nandflash控制器电路模块进行相应的测试处理。该实现Nandflash闪存控制器电路验证的方法中的SOC芯片控制所述的总线转换电路模块和Nandflash控制器电路模块进行相应的测试处理,包括以下步骤(31)对所述的FPGA芯片内部的电路正确性和内部电路基本功能进行验证,并记录相应的验证结果;(32)控制所述的FPGA芯片内的Nandflash控制器电路模块对Nandflash闪存芯片进行复位及读状态操作测试,并记录相应的测试结果;(33)控制所述的FPGA芯片内的Nandflash控制器电路模块对Nandflash闪存芯片进行读标示符操作测试,并记录相应的测试结果;(34)控制所述的FPGA芯片内的Nandflash控制器电路模块对Nandflash闪存芯片进行擦除、写数据及读数据操作测试,并记录相应的测试结果;(35)控制所述的FPGA芯片内的Nandflash控制器电路模块对Nandflash闪存芯片进行ECC校验操作测试,并记录相应的测试结果。采用了该发明的基于FPGA实现Nandflash闪存控制器电路验证的平台系统及方法,由于其中整个测试过程完全通过测试计算机中的测试代码控制,自动化程度极高,完全无需人力参与,从而大大缩短了研发周期,降低了研发成本;同时由于测试代码所采用的C 语言非常灵活,就可以对Nandflash控制器的所有功能进行充分验证;另外本发明的测试平台上集成多个Nandflash接口插槽,C语言可同时对多块Nandflash芯片进行验证,充分验证了 Nandf Iash控制器对各种Nandf Iash闪存芯片的兼容性,而且不因为待测Nandf Iash 芯片较多而导致测试效率低下,从而获得了尽可能高的测试效率,不仅使用方便快捷,而且工作性能稳定可靠,应用范围较为广泛。


图1为本发明的基于FPGA实现Nandflash闪存控制器电路验证的平台系统的结构示意图。图2为本发明的基于FPGA实现Nandflash闪存控制器电路验证的方法的流程图。
具体实施例方式为了能够更清楚地理解本发明的技术内容,特举以下实施例详细说明。请参阅图1所示,该基于FPGA实现Nandflash闪存控制器电路验证的平台系统,包括测试计算机和承载有Nandflash闪存芯片的测试板,其中,所述的平台系统中还包括测试仿真器和FPGA调试板,所述的FPGA调试板上承载有SOC芯片、FPGA芯片和数个 Nandflash信号接口模块,所述的FPGA芯片中设置有总线转换电路模块和Nandflash控制器电路模块,所述的测试计算机依次通过所述的测试仿真器、SOC芯片、总线转换电路模块和Nandflash控制器电路模块分别与所述的各个Nandflash信号接口模块相连接,且每个 Nandflash信号接口模块和对应的测试板相连接。其中,所述的SOC芯片为内置有ARM处理器的SOC芯片,该SOC芯片为内置 ARM926EJ_S处理器的SOC芯片;所述的总线转换电路模块为ARM转FPGA总线电路模块;所述的测试仿真器为ARM仿真器,且该ARM仿真器将测试计算机上的测试代码编译成所述的ARM处理器可识别的汇编指令,该测试代码为C语言编写的测试代码。同时,所述的FPGA芯片为vitex-4系列FPGA芯片,所述的Nandflash信号接口模块为Nandflash信号接口第一插槽,所述的测试板上设置有与该Nandflash信号接口第一插槽对应耦合的Nandflash信号接口第二插槽,所述的Nandflash信号接口第二插槽与所述的Nandflash闪存芯片相连接,且Nandfash信号接口第一插槽与对应的Nandflash信号接口第二插槽相耦合插接;所述的Nandflash信号接口第二插槽设置于测试板的承载有 Nandflash闪存芯片的面上或者相对面上;所述的测试计算机通过USB连接线与所述的测试仿真器相连接,且该测试仿真器通过仿真器连接线与所述的SOC芯片相连接。再请参阅图2所示,该利用上述的平台系统实现Nandflash闪存控制器电路验证的方法,其中,所述的方法包括以下步骤(1)将所述的测试计算机依次与所述的测试仿真器、SOC芯片进行连接,同时将所述的各个Nandflash信号接口模块和对应的测试板相连接;(2)将所述的测试计算机、测试仿真器和FPGA调试板同时上电;(3)生成实现总线转换电路模块及Nandflash控制器电路模块的烧录文件,并将该烧录文件烧写到所述的FPGA芯片内,包括以下步骤(a)使用FPGA芯片厂商所提供的FPGA工具将实现总线转换电路模块及 Nandflash控制器电路模块功能的HDL语言代码转换为BIT/PR0M文件;(b)通过FPGA芯片厂商所提供的FPGA烧写工具烧写到FPGA调试板上的FPGA芯片中;(4)所述的测试计算机通过预先编写的测试代码对所述的Nandflash控制器电路模块进行测试,包括以下步骤(a)所述的测试计算机根据所述的测试代码产生相应的测试指令并送至所述的测试仿真器;(b)所述的测试仿真器将所述的测试指令编译成所述的SOC芯片能够执行的汇编指令,并送至所述的SOC芯片;(c)所述的SOC芯片控制所述的总线转换电路模块和Nandflash控制器电路模块进行相应的测试处理,包括以下步骤(i)对所述的FPGA芯片内部的电路正确性和内部电路基本功能进行验证,并记录相应的验证结果;(ii)控制所述的FPGA芯片内的Nandflash控制器电路模块对Nandflash闪存芯片进行复位及读状态操作测试,并记录相应的测试结果;(iii)控制所述的FPGA芯片内的Nandflash控制器电路模块对Nandfash闪存芯片进行读标示符操作测试,并记录相应的测试结果;(iv)控制所述的FPGA芯片内的Nandflash控制器电路模块对Nandflash闪存芯片进行擦除、写数据及读数据操作测试,并记录相应的测试结果;(ν)控制所述的FPGA芯片内的Nandflash控制器电路模块对Nandflash闪存芯片进行ECC校验操作测试,并记录相应的测试结果。在实际使用当中,本发明所述的测试平台,包括用于编写C语言测试程序的PC、用于连接PC和ARM处理器芯片的ARM仿真器、一块带有ARM处理器的SOC芯片和FPGA芯片以及若干个Nandflash信号接口插槽的FPGA调试板、若干块包含不同厂商Nandflash闪存芯片的测试小板。该验证平台中的PC电脑,可以是任意一台可以编写C语言的电脑。该验证平台中的ARM仿真器,可以是任意一款支持ARM处理器调试功能的ARM仿真器,该仿真器可将PC侧的C语言编译成ARM处理器可识别的汇编指令。该验证平台中的FPGA调试板,包括任意公司生产的带有任意型号ARM处理器的 SOC芯片,譬如三星公司生产ARM926EJ_S处理器SOC芯片。该FPGA调试板还包括任意公司生产的FPGA芯片譬如Xilinx公司的vitex-4系列FPGA芯片,芯片内部烧写有ARM转FPGA 总线电路及Nandflash控制器电路。该FPGA调试板还带有若干个Nandflash闪存接口信号的插槽。该验证平台中的Nandflash芯片测试小板正面焊有一块任意公司生产的 Nandflash闪存芯片,背面带有Nandflash闪存接口信号插槽。该闪存芯片可以是如图1所示的Micron(美光)或Toshiba(东芝)生产的Nandflash闪存芯片,如图1所示,该FPGA硬件平台中的PC与ARM仿真器通过一根USB相连,ARM仿真器与FPGA调试板上的ARM处理器芯片通过专用的仿真器连接线相连。FPGA调试板上的ARM 处理器芯片通过FPGA芯片内部的ARM转FPGA总线电路控制FPGA芯片内的Nandflash控制器。将多块不同型号的Nandflash闪存测试小板通过背面插槽插入FPGA调试板的插槽内,这样测试小板上的Nandflash闪存芯片就可以通过上文所述的I/O数据指令信号及6 根控制信号与FPGA芯片内的Nandflash控制器电路进行交互。再请参阅图2所示,本发明所述的FPGA验证方案大致包括以下实施步骤第一步,搭建硬件平台。将本发明方案所需的器件按上文所述方法正确连接。第二步,生成、烧写bit文件。生成可以实现ARM转FPGA总线电路及Nandf Iash 控制器电路的bit文件,并烧写到FPGA调试板上的FPGA芯片内。第三步,编写C语言测试程序。在PC侧编写针对Nandflash控制器的C语言测试程序。第四步,测试平台自动运行。C语言程序经过ARM仿真器编译,转换成ARM处理器可识别的汇编指令,通过FPGA芯片内部的ARM转FPGA总线,控制ARM处理器与FPGA芯片内的Nandflash控制器电路进行交互,使得Nandflash控制器对多块Nandflash闪存芯片同时进行读写数据、擦除数据、读取状态及ECC算法校验等操作。程序自动运行结束后显示测试结果。本发明所述的验证流程在具体实施过程中,主要包括四个步骤第一步,搭建硬件平台。按照图2所示,将各个器件相连。将PC与ARM仿真器用一根USB相连。将ARM仿真器与FPGA调试板上的ARM SOC芯片通过仿真器连接线相连。将需要测试的多块Nandf Iash 芯片测试小板通过背面的插槽插到FPGA调试板的插槽上。PC、ARM仿真器及FPGA同时上 H1^ ο第二步,生成、烧写bit文件。根据背景内容所述,使用FPGA厂商提供的FPGA工具,将可实现ARM转FPGA总线功能及Nandflash控制器电路的HDL语言生成bit文件,并烧写到FPGA调试板上的FPGA 芯片内,例如Xilinx公司的ISE软件工具。第三步,编写C语言测试程序。在PC侧编写针对Nandflash控制器所有功能的C 语言测试程序。第四步,测试平台自动运行。C语言测试程序编写完成后,通过ARM仿真器编译成 ARM汇编指令(譬如MICETEK公司的JEDI仿真器),然后通过专用的仿真器连接线灌入FPGA 调试板上的ARM SOC芯片的中,这样ARM处理器就会自动执行C测试程序转换成的ARM汇编指令。ARM处理器通过FPGA芯片内部的ARM转FPGA总线电路,控制Nandflash控制器同时对多块Nandflash闪存芯片同时进行读写数据、擦除数据、读取状态及ECC算法校验等各种测试操作。程序运行结束后自动显示测试结果。上文所述的C语言测试程序是本发明方案的精髓部分,由于C语言灵活便捷的特性,使用该验证方案的测试人员可以针对Nandflash控制器和Nandflash闪存的具体功能灵活编写测试用例,对Nandflash控制器的所有功能进行充分验证。现对该测试程序进行详细说明,假设FPGA调试板的插槽上插入了 Mi cron和 Toshiba两块测试小板,针对这两块小板的测试代码的主程序如下

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
如上文所示,该测试程序的主函数中包含8个测试用例,分别代表Nandflash控制器电路对Micron和Toshiba的两块Nandflash闪存芯片各项功能进行测试。现对以上代码进行详细说明(1)FPGA_W0RK_FLGA = FPGA_ffork_Check();该行测试代码对FPGA芯片内部的电路正确性进行验证。在使用FPGA芯片对 Nandflash闪存进行测试前,必须确保FPGA芯片内部电路是基本正确的,该行测试代码对 FPGA芯片内部电路基本功能进行测试,如果变量FPGA_W0RK_FLGA等于1,说明FPGA芯片内部电路基本功能正确,否则FPGA芯片工作不正确。(2)status
= NANDCTRL_CASE0() ;//Micron reset and read status test该行测试用例控制FPGA芯片内的Nandflash控制器电路对Micron Nandflash
10闪存芯片进行复位及读状态操作。该测试用例通过变量stateuW]显示测试结果,如果 status
等于1,说明该测试用例通过,FPGA芯片内的Nandflash控制器电路的复位及读状态功能正确;如果等于0,说明测试失败,Nandflash控制器电路的复位及读状态功能有问题。(3)status[1] = NANDCTRL_CASE1() ;//Micron read id test该行测试用例控制FPGA芯片内的Nandflash控制器电路对Micron Nandflash闪存芯片进行读标示符操作。该测试用例通过变量stateu[1]显示测试结果,如果status [1] 等于1,说明该测试用例通过,FPGA芯片内的Nandflash控制器电路的读标示符功能正确; 如果等于0,说明测试失败,Nandflash控制器电路读标示符功能有问题。(4) status [2] = NANDCTRL_CASE2 () ;//Micron erase, write and read test该行测试用例控制FPGA芯片内的Nandflash控制器电路对MicronNandflash闪存芯片进行擦除、写数据及读数据操作。该测试用例通过变量stateu[2]显示最后测试结果,如果status [2]等于1,说明该测试用例通过,FPGA芯片内的Nandflash控制器电路擦除、读写数据功能正确;如果等于0,说明测试失败,Nandflash控制器电路擦除、读写数据功能有问题。(5)status[3] = NANDCTRL_CASE3() ;//Micron ecc funciton test该行测试用例控制FPGA芯片内的Nandflash控制器电路对Micron Nandflash 闪存芯片进行ECC校验操作。该测试用例通过变量stateU[3]显示最后测试结果,如果 status [3]等于1,说明该测试用例通过,FPGA芯片内的Nandflash控制器电路的ECC校验功能正确;如果等于0,说明测试失败,Nandflash控制器电路的ECC校验功能有问题。在上述测试程序中,函数NANDCLRL_CASE0 ()、NANDCLRL_CASE1 ()、NANDCLRL_ CASE2 ()、NANDCLRL_CASE3 ()实现了 Nandflash 控制器电路对 MicronNandflash 闪存芯片的完整测试,其后续四个函数 NANDCLRL_CASE4 ()、NANDCLRL_CASE5 ()、NANDCLRL_CASE6 ()、 NANDCLRL_CASE7 ()与之作用类似,实现了 Nandflash控制器对^Toshiba Nandflash闪存芯片的完整测试。本发明所述的C语言测试程序灵活可变,当FPGA调试板上插入其他型号的 Nandflash闪存芯片时,可在上述main ()主函数中增加与NANDCLRL_CASE0 ()、NANDCLRL_ CASEl ()、NANDCLRL_CASE2 ()、NANDCLRL_CASE3 ()作用类似的相关用例,测试代码编辑非常灵活。本发明所述的测试程序自动化成程度极高,所有程序自动运行结束后,数组 status[]会显示所有用例测试结果,如果数组status[]的所有成员均等于1,说明所有测试用例验证通过,Nandflash控制器的所有功能完全正确,否则说明Nandflash控制器的该项功能有问题。本发明所述的验证方案测试过程完全由C语言控制,自动化程度高,并且可同时对多块Nandflash芯片进行验证,测试效率极高,可充分验证Nandflash控制器的各项功能及兼容性,无需人力参与,大大缩短了研发周期,降低了研发成本。基于上述优点,本发明方案在数字集成电路验证领域有着极为广阔的应用前景。采用了上述的基于FPGA实现Nandflash闪存控制器电路验证的平台系统及方法, 由于其中整个测试过程完全通过测试计算机中的测试代码控制,自动化程度极高,完全无需人力参与,从而大大缩短了研发周期,降低了研发成本;同时由于测试代码所采用的C语言非常灵活,就可以对Nandfash控制器的所有功能进行充分验证;另外本发明的测试平台上集成多个Nandf Iash接口插槽,C语言可同时对多块Nandf Iash芯片进行验证,充分验证了 Nandflash控制器对各种Nandflash闪存芯片的兼容性,而且不因为待测Nandflash芯片较多而导致测试效率低下,从而获得了尽可能高的测试效率,不仅使用方便快捷,而且工作性能稳定可靠,应用范围较为广泛。 在此说明书中,本发明已参照其特定的实施例作了描述。但是,很显然仍可以作出各种修改和变换而不背离本发明的精神和范围。因此,说明书和附图应被认为是说明性的而非限制性的。
权利要求
1.一种基于FPGA实现Nandflash闪存控制器电路验证的平台系统,包括测试计算机和承载有Nandflash闪存芯片的测试板,其特征在于,所述的平台系统中还包括测试仿真器和FPGA调试板,所述的FPGA调试板上承载有SOC芯片、FPGA芯片和数个Nandflash信号接口模块,所述的FPGA芯片中设置有总线转换电路模块和Nandflash控制器电路模块,所述的测试计算机依次通过所述的测试仿真器、SOC芯片、总线转换电路模块和Nandflash控制器电路模块分别与所述的各个Nandflash信号接口模块相连接,且每个Nandflash信号接口模块和对应的测试板相连接。
2.根据权利要求1所述的基于FPGA实现Nandflash闪存控制器电路验证的平台系统, 其特征在于,所述的SOC芯片为内置有ARM处理器的SOC芯片。
3.根据权利要求2所述的基于FPGA实现Nandflash闪存控制器电路验证的平台系统, 其特征在于,所述的SOC芯片为内置ARM926EJ_S处理器的SOC芯片。
4.根据权利要求2所述的基于FPGA实现Nandflash闪存控制器电路验证的平台系统, 其特征在于,所述的总线转换电路模块为ARM转FPGA总线电路模块。
5.根据权利要求2所述的基于FPGA实现Nandflash闪存控制器电路验证的平台系统, 其特征在于,所述的测试仿真器为ARM仿真器,且该ARM仿真器将测试计算机上的测试代码编译成所述的ARM处理器可识别的汇编指令。
6.根据权利要求5所述的基于FPGA实现Nandflash闪存控制器电路验证的平台系统, 其特征在于,所述的测试代码为C语言编写的测试代码。
7.根据权利要求1所述的基于FPGA实现Nandflash闪存控制器电路验证的平台系统, 其特征在于,所述的FPGA芯片为vitex-4系列FPGA芯片。
8.根据权利要求1至7中任一项所述的基于FPGA实现Nandflash闪存控制器电路验证的平台系统,其特征在于,所述的Nandf Iash信号接口模块为Nandf Iash信号接口第一插槽,所述的测试板上设置有与该Nandflash信号接口第一插槽对应耦合的Nandflash信号接口第二插槽,所述的Nandflash信号接口第二插槽与所述的Nandflash闪存芯片相连接, 且Nandflash信号接口第一插槽与对应的Nandflash信号接口第二插槽相耦合插接。
9.根据权利要求8所述的基于FPGA实现Nandflash闪存控制器电路验证的平台系统, 其特征在于,所述的Nandflash信号接口第二插槽设置于测试板的承载有Nandflash闪存芯片的面上或者相对面上。
10.根据权利要求1至7中任一项所述的基于FPGA实现Nandflash闪存控制器电路验证的平台系统,其特征在于,所述的测试计算机通过USB连接线与所述的测试仿真器相连接。
11.根据权利要求1至7中任一项所述的基于FPGA实现Nandflash闪存控制器电路验证的平台系统,其特征在于,所述的测试仿真器通过仿真器连接线与所述的SOC芯片相连接。
12.一种利用权利要求1所述的平台系统实现NandfIash闪存控制器电路验证的方法, 其特征在于,所述的方法包括以下步骤(1)将所述的测试计算机依次与所述的测试仿真器、SOC芯片进行连接,同时将所述的各个Nandflash信号接口模块和对应的测试板相连接;(2)将所述的测试计算机、测试仿真器和FPGA调试板同时上电;(3)生成实现总线转换电路模块及Nandflash控制器电路模块的烧录文件,并将该烧录文件烧写到所述的FPGA芯片内;(4)所述的测试计算机通过预先编写的测试代码对所述的Nandflash控制器电路模块进行测试。
13.根据权利要求12所述的实现NandfIash闪存控制器电路验证的方法,其特征在于, 所述的生成实现总线转换电路模块及Nandflash控制器电路模块的烧录文件并将该烧录文件烧写到所述的FPGA芯片内,包括以下步骤(11)使用FPGA芯片厂商所提供的FPGA工具将实现总线转换电路模块及Nandflash控制器电路模块功能的HDL语言代码转换为BIT/PR0M文件;(12)通过FPGA芯片厂商所提供的FPGA烧写工具烧写到FPGA调试板上的FPGA芯片中。
14.根据权利要求12所述的实现Nandflash闪存控制器电路验证的方法,其特征在于, 所述的测试计算机通过预先编写的测试代码对所述的Nandflash控制器电路模块进行测试,包括以下步骤(21)所述的测试计算机根据所述的测试代码产生相应的测试指令并送至所述的测试仿真器;(22)所述的测试仿真器将所述的测试指令编译成所述的SOC芯片能够执行的汇编指令,并送至所述的SOC芯片;03)所述的SOC芯片控制所述的总线转换电路模块和Nandflash控制器电路模块进行相应的测试处理。
15.根据权利要求14所述的实现Nandflash闪存控制器电路验证的方法,其特征在于, 所述的SOC芯片控制所述的总线转换电路模块和Nandflash控制器电路模块进行相应的测试处理,包括以下步骤(31)对所述的FPGA芯片内部的电路正确性和内部电路基本功能进行验证,并记录相应的验证结果;(32)控制所述的FPGA芯片内的Nandflash控制器电路模块对Nandflash闪存芯片进行复位及读状态操作测试,并记录相应的测试结果;(33)控制所述的FPGA芯片内的Nandflash控制器电路模块对Nandflash闪存芯片进行读标示符操作测试,并记录相应的测试结果;(34)控制所述的FPGA芯片内的Nandflash控制器电路模块对Nandflash闪存芯片进行擦除、写数据及读数据操作测试,并记录相应的测试结果;(35)控制所述的FPGA芯片内的Nandflash控制器电路模块对Nandflash闪存芯片进行ECC校验操作测试,并记录相应的测试结果。
全文摘要
本发明涉及一种基于FPGA实现Nandflash闪存控制器电路验证的平台系统,FPGA调试板上承载有SOC芯片、FPGA芯片和数个Nandflash信号接口模块,FPGA芯片中设置有总线转换电路模块和Nandflash控制器电路模块,测试计算机通过测试仿真器、SOC芯片、总线转换电路模块和Nandflash控制器电路模块与各个Nandflash信号接口模块连接,每个Nandflash信号接口模块和对应的测试板连接。本发明还涉及一种利用该平台系统实现Nandflash闪存控制器电路验证的方法。采用该种基于FPGA实现Nandflash闪存控制器电路验证的平台系统及方法,自动化程度极高,缩短了研发周期,降低了研发成本,测试效率高,使用方便快捷,工作性能稳定可靠,应用范围较为广泛。
文档编号G11C29/56GK102201267SQ201010133540
公开日2011年9月28日 申请日期2010年3月26日 优先权日2010年3月26日
发明者张结华, 王冬佳 申请人:上海摩波彼克半导体有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1