CN102201267A - 基于FPGA实现Nandflash闪存控制器电路验证的平台***及方法 - Google Patents
基于FPGA实现Nandflash闪存控制器电路验证的平台***及方法 Download PDFInfo
- Publication number
- CN102201267A CN102201267A CN2010101335409A CN201010133540A CN102201267A CN 102201267 A CN102201267 A CN 102201267A CN 2010101335409 A CN2010101335409 A CN 2010101335409A CN 201010133540 A CN201010133540 A CN 201010133540A CN 102201267 A CN102201267 A CN 102201267A
- Authority
- CN
- China
- Prior art keywords
- nandflash
- fpga
- chip
- test
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本发明涉及一种基于FPGA实现Nandflash闪存控制器电路验证的平台***,FPGA调试板上承载有SOC芯片、FPGA芯片和数个Nandflash信号接口模块,FPGA芯片中设置有总线转换电路模块和Nandflash控制器电路模块,测试计算机通过测试仿真器、SOC芯片、总线转换电路模块和Nandflash控制器电路模块与各个Nandflash信号接口模块连接,每个Nandflash信号接口模块和对应的测试板连接。本发明还涉及一种利用该平台***实现Nandflash闪存控制器电路验证的方法。采用该种基于FPGA实现Nandflash闪存控制器电路验证的平台***及方法,自动化程度极高,缩短了研发周期,降低了研发成本,测试效率高,使用方便快捷,工作性能稳定可靠,应用范围较为广泛。
Description
技术领域
本发明涉及集成电路领域,特别涉及数字集成电路验证技术领域,具体是指一种基于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的持续写操作,其区块擦除时间短至2ms。显然,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/Bn。Nandflash控制器通过上述信号对Nandflash闪存进行复位、读写Nandflash闪存芯片内数据、读取Nandflash闪存芯片状态及芯片标识符、擦除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闪存芯片相连接,且Nandflash信号接口第一插槽与对应的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/PROM文件;
(12)通过FPGA芯片厂商所提供的FPGA烧写工具烧写到FPGA调试板上的FPGA芯片中。
该实现Nandflash闪存控制器电路验证的方法中的测试计算机通过预先编写的测试代码对所述的Nandflash控制器电路模块进行测试,包括以下步骤:
(21)所述的测试计算机根据所述的测试代码产生相应的测试指令并送至所述的测试仿真器;
(22)所述的测试仿真器将所述的测试指令编译成所述的SOC芯片能够执行的汇编指令,并送至所述的SOC芯片;
(23)所述的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芯片进行验证,充分验证了Nandflash控制器对各种Nandflash闪存芯片的兼容性,而且不因为待测Nandflash芯片较多而导致测试效率低下,从而获得了尽可能高的测试效率,不仅使用方便快捷,而且工作性能稳定可靠,应用范围较为广泛。
附图说明
图l为本发明的基于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/PROM文件;
(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闪存芯片进行擦除、写数据及读数据操作测试,并记录相应的测试结果;
(v)控制所述的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总线电路及Nandflash控制器电路的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芯片通过仿真器连接线相连。将需要测试的多块Nandflash芯片测试小板通过背面的插槽插到FPGA调试板的插槽上。PC、ARM仿真器及FPGA同时上电。
第二步,生成、烧写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调试板的插槽上***了Micron和Toshiba两块测试小板,针对这两块小板的测试代码的主程序如下:
int main(void)
{
volatile_u32 FPGA_WORK_FLAG=0;
volatile_u32 status[8]={0};
FPGA_WORK_FLAG=FPGA_Work_Check();
status[0]=NANDCTRL_CASE0();//Micron reset and read status test
status[1]=NANDCTRL_CASE1();//Micron read id test
status[2]=NANDCTRL_CASE2();//Micron erase,write and read test
status[3]=NANDCTRL_CASE3();//Micron ecc funciton test
status[4]=NANDCTRL_CASE8();//Toshiba reset and read status test
status[5]=NANDCTRL_CASE9();//Toshiba read id test
status[6]=NANDCTRL_CASE10();//Toshiba erase,write and read test
status[7]=NANDCTRL_CASE11();//Toshiba ecc funciton test
}
如上文所示,该测试程序的主函数中包含8个测试用例,分别代表Nandflash控制器电路对Micron和Toshiba的两块Nandflash闪存芯片各项功能进行测试。现对以上代码进行详细说明:
(1)FPGA_WORK_FLGA=FPGA_Work_Check();
该行测试代码对FPGA芯片内部的电路正确性进行验证。在使用FPGA芯片对Nandflash闪存进行测试前,必须确保FPGA芯片内部电路是基本正确的,该行测试代码对FPGA芯片内部电路基本功能进行测试,如果变量FPGA_WORK_FLGA等于1,说明FPGA芯片内部电路基本功能正确,否则FPGA芯片工作不正确。
(2)status[0]=NANDCTRL_CASE0();//Micron reset and read status test
该行测试用例控制FPGA芯片内的Nandflash控制器电路对Micron Nandflash闪存芯片进行复位及读状态操作。该测试用例通过变量stateu[0]显示测试结果,如果status[0]等于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_CASE1()、NANDCLRL_CASE2()、NANDCLRL_CASE3()作用类似的相关用例,测试代码编辑非常灵活。
本发明所述的测试程序自动化成程度极高,所有程序自动运行结束后,数组status[]会显示所有用例测试结果,如果数组status[]的所有成员均等于1,说明所有测试用例验证通过,Nandflash控制器的所有功能完全正确,否则说明Nandflash控制器的该项功能有问题。
本发明所述的验证方案测试过程完全由C语言控制,自动化程度高,并且可同时对多块Nandflash芯片进行验证,测试效率极高,可充分验证Nandflash控制器的各项功能及兼容性,无需人力参与,大大缩短了研发周期,降低了研发成本。
基于上述优点,本发明方案在数字集成电路验证领域有着极为广阔的应用前景。
采用了上述的基于FPGA实现Nandflash闪存控制器电路验证的平台***及方法,由于其中整个测试过程完全通过测试计算机中的测试代码控制,自动化程度极高,完全无需人力参与,从而大大缩短了研发周期,降低了研发成本;同时由于测试代码所采用的C语言非常灵活,就可以对Nandfash控制器的所有功能进行充分验证;另外本发明的测试平台上集成多个Nandflash接口插槽,C语言可同时对多块Nandflash芯片进行验证,充分验证了Nandflash控制器对各种Nandflash闪存芯片的兼容性,而且不因为待测Nandflash芯片较多而导致测试效率低下,从而获得了尽可能高的测试效率,不仅使用方便快捷,而且工作性能稳定可靠,应用范围较为广泛。
在此说明书中,本发明已参照其特定的实施例作了描述。但是,很显然仍可以作出各种修改和变换而不背离本发明的精神和范围。因此,说明书和附图应被认为是说明性的而非限制性的。
Claims (15)
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闪存控制器电路验证的平台***,其特征在于,所述的Nandflash信号接口模块为Nandflash信号接口第一插槽,所述的测试板上设置有与该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所述的平台***实现Nandflash闪存控制器电路验证的方法,其特征在于,所述的方法包括以下步骤:
(1)将所述的测试计算机依次与所述的测试仿真器、SOC芯片进行连接,同时将所述的各个Nandflash信号接口模块和对应的测试板相连接;
(2)将所述的测试计算机、测试仿真器和FPGA调试板同时上电;
(3)生成实现总线转换电路模块及Nandflash控制器电路模块的烧录文件,并将该烧录文件烧写到所述的FPGA芯片内;
(4)所述的测试计算机通过预先编写的测试代码对所述的Nandflash控制器电路模块进行测试。
13.根据权利要求12所述的实现Nandflash闪存控制器电路验证的方法,其特征在于,所述的生成实现总线转换电路模块及Nandflash控制器电路模块的烧录文件并将该烧录文件烧写到所述的FPGA芯片内,包括以下步骤:
(11)使用FPGA芯片厂商所提供的FPGA工具将实现总线转换电路模块及Nandflash控制器电路模块功能的HDL语言代码转换为BIT/PROM文件;
(12)通过FPGA芯片厂商所提供的FPGA烧写工具烧写到FPGA调试板上的FPGA芯片中。
14.根据权利要求12所述的实现Nandflash闪存控制器电路验证的方法,其特征在于,所述的测试计算机通过预先编写的测试代码对所述的Nandflash控制器电路模块进行测试,包括以下步骤:
(21)所述的测试计算机根据所述的测试代码产生相应的测试指令并送至所述的测试仿真器;
(22)所述的测试仿真器将所述的测试指令编译成所述的SOC芯片能够执行的汇编指令,并送至所述的SOC芯片;
(23)所述的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校验操作测试,并记录相应的测试结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010101335409A CN102201267A (zh) | 2010-03-26 | 2010-03-26 | 基于FPGA实现Nandflash闪存控制器电路验证的平台***及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010101335409A CN102201267A (zh) | 2010-03-26 | 2010-03-26 | 基于FPGA实现Nandflash闪存控制器电路验证的平台***及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102201267A true CN102201267A (zh) | 2011-09-28 |
Family
ID=44661870
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010101335409A Pending CN102201267A (zh) | 2010-03-26 | 2010-03-26 | 基于FPGA实现Nandflash闪存控制器电路验证的平台***及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102201267A (zh) |
Cited By (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102623069A (zh) * | 2012-02-13 | 2012-08-01 | 山东华芯半导体有限公司 | 随机激励闪存模型验证方法 |
CN103021464A (zh) * | 2012-12-18 | 2013-04-03 | 上海市共进通信技术有限公司 | 存储芯片编程器及其设置与对存储芯片进行编程控制方法 |
CN103049363A (zh) * | 2013-02-01 | 2013-04-17 | 山东华芯半导体有限公司 | 一种NAND Flash控制器的验证方法 |
CN103699112A (zh) * | 2013-11-29 | 2014-04-02 | 中国航空无线电电子研究所 | 基于io信号故障仿真的航电自检测验证设备及其验证方法 |
CN104618095A (zh) * | 2015-02-06 | 2015-05-13 | 浪潮集团有限公司 | 一种便携式加密机 |
CN104731704A (zh) * | 2013-12-24 | 2015-06-24 | 惠州市德赛西威汽车电子有限公司 | Nand flash管理软件的测试方法 |
TWI510798B (zh) * | 2015-02-24 | 2015-12-01 | Powertech Technology Inc | 通用型測試平台及其測試方法 |
CN106094625A (zh) * | 2016-06-27 | 2016-11-09 | 上海波汇科技股份有限公司 | 一种基于soc的采集传输装置 |
CN106251907A (zh) * | 2016-08-04 | 2016-12-21 | 武汉新芯集成电路制造有限公司 | 内建自测***及方法 |
CN106708023A (zh) * | 2017-01-19 | 2017-05-24 | 延锋伟世通电子科技(上海)有限公司 | 多平台兼容测试***及其工作方法 |
WO2018018978A1 (zh) * | 2016-07-25 | 2018-02-01 | 深圳市中兴微电子技术有限公司 | 一种通用串行总线控制器验证方法、***及设备 |
CN108109670A (zh) * | 2017-12-27 | 2018-06-01 | 西安奇维科技有限公司 | 一种基于Matlab的Nand Flash测试***及方法 |
CN108231132A (zh) * | 2017-12-28 | 2018-06-29 | 北京兆易创新科技股份有限公司 | 一种nand闪存验证装置和验证*** |
CN108226751A (zh) * | 2017-12-14 | 2018-06-29 | 芯海科技(深圳)股份有限公司 | 一种多处理器协同芯片性能评估***及方法 |
CN109308162A (zh) * | 2017-07-26 | 2019-02-05 | 北京兆易创新科技股份有限公司 | 闪存的优化装置、优化方法及设备 |
CN109411007A (zh) * | 2018-12-11 | 2019-03-01 | 武汉精鸿电子技术有限公司 | 一种基于fpga的通用闪存测试*** |
WO2019056935A1 (zh) * | 2017-09-20 | 2019-03-28 | 南京扬贺扬微电子科技有限公司 | 基于ft4222的spi闪存测试***及方法 |
CN109783340A (zh) * | 2017-11-10 | 2019-05-21 | 深圳市中兴微电子技术有限公司 | SoC的测试代码烧写方法、IP测试方法及装置 |
CN110110355A (zh) * | 2019-03-25 | 2019-08-09 | 电子科技大学 | 一种基于fpga的原型验证平台 |
CN110286314A (zh) * | 2019-06-27 | 2019-09-27 | 深圳米飞泰克科技有限公司 | 基于单片机的异步通讯并行测试***及测试方法 |
CN110634530A (zh) * | 2019-09-10 | 2019-12-31 | 珠海博雅科技有限公司 | 芯片的测试***和测试方法 |
CN111352025A (zh) * | 2020-03-13 | 2020-06-30 | 京微齐力(深圳)科技有限公司 | 一种fpga中配置控制器验证方法、***及设备 |
CN111370051A (zh) * | 2018-12-25 | 2020-07-03 | 北京兆易创新科技股份有限公司 | 一种非易失存储器验证***及方法 |
CN111627489A (zh) * | 2020-04-20 | 2020-09-04 | 珠海妙存科技有限公司 | 闪存特性分析方法及*** |
CN111913841A (zh) * | 2020-05-11 | 2020-11-10 | 电子科技大学 | 一种低成本的芯片功能测试平台 |
CN114492269A (zh) * | 2022-04-02 | 2022-05-13 | 北京得瑞领新科技有限公司 | 闪存控制器的验证*** |
CN117251329A (zh) * | 2023-11-17 | 2023-12-19 | 深圳市耀星微电子有限公司 | 基于arm架构处理器的dram测试设备和方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101344899A (zh) * | 2008-08-15 | 2009-01-14 | 炬力集成电路设计有限公司 | 一种片上***的仿真测试方法及仿真测试*** |
CN101446988A (zh) * | 2007-11-27 | 2009-06-03 | 上海摩波彼克半导体有限公司 | 基于软件对通用异步收发器进行自动化测试的装置及方法 |
CN101501517A (zh) * | 2006-08-04 | 2009-08-05 | 惠瑞捷(新加坡)私人有限公司 | 具有通用和专门资源的块的测试模块 |
-
2010
- 2010-03-26 CN CN2010101335409A patent/CN102201267A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101501517A (zh) * | 2006-08-04 | 2009-08-05 | 惠瑞捷(新加坡)私人有限公司 | 具有通用和专门资源的块的测试模块 |
JP2009545727A (ja) * | 2006-08-04 | 2009-12-24 | ヴェリジー(シンガポール) プライベート リミテッド | 汎用ブロックと専用リソースブロックを備えるテストモジュール |
CN101446988A (zh) * | 2007-11-27 | 2009-06-03 | 上海摩波彼克半导体有限公司 | 基于软件对通用异步收发器进行自动化测试的装置及方法 |
CN101344899A (zh) * | 2008-08-15 | 2009-01-14 | 炬力集成电路设计有限公司 | 一种片上***的仿真测试方法及仿真测试*** |
Non-Patent Citations (2)
Title |
---|
刘卫 等: "NAND Flash 存储器控制器的设计", 《中国计算机学会第十二届计算机工程与工艺学术年会》 * |
钟慧敏: "基于FPGA的多接口存储器验证***的设计与实现", 《华东师范大学》 * |
Cited By (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102623069B (zh) * | 2012-02-13 | 2014-09-03 | 山东华芯半导体有限公司 | 随机激励闪存模型验证方法 |
CN102623069A (zh) * | 2012-02-13 | 2012-08-01 | 山东华芯半导体有限公司 | 随机激励闪存模型验证方法 |
CN103021464A (zh) * | 2012-12-18 | 2013-04-03 | 上海市共进通信技术有限公司 | 存储芯片编程器及其设置与对存储芯片进行编程控制方法 |
CN103049363A (zh) * | 2013-02-01 | 2013-04-17 | 山东华芯半导体有限公司 | 一种NAND Flash控制器的验证方法 |
CN103699112A (zh) * | 2013-11-29 | 2014-04-02 | 中国航空无线电电子研究所 | 基于io信号故障仿真的航电自检测验证设备及其验证方法 |
CN103699112B (zh) * | 2013-11-29 | 2016-01-20 | 中国航空无线电电子研究所 | 基于io信号故障仿真的航电自检测验证设备及其验证方法 |
CN104731704A (zh) * | 2013-12-24 | 2015-06-24 | 惠州市德赛西威汽车电子有限公司 | Nand flash管理软件的测试方法 |
CN104618095A (zh) * | 2015-02-06 | 2015-05-13 | 浪潮集团有限公司 | 一种便携式加密机 |
TWI510798B (zh) * | 2015-02-24 | 2015-12-01 | Powertech Technology Inc | 通用型測試平台及其測試方法 |
CN106094625A (zh) * | 2016-06-27 | 2016-11-09 | 上海波汇科技股份有限公司 | 一种基于soc的采集传输装置 |
CN106094625B (zh) * | 2016-06-27 | 2018-09-25 | 上海波汇科技股份有限公司 | 一种基于soc的采集传输装置 |
WO2018018978A1 (zh) * | 2016-07-25 | 2018-02-01 | 深圳市中兴微电子技术有限公司 | 一种通用串行总线控制器验证方法、***及设备 |
CN106251907A (zh) * | 2016-08-04 | 2016-12-21 | 武汉新芯集成电路制造有限公司 | 内建自测***及方法 |
CN106708023A (zh) * | 2017-01-19 | 2017-05-24 | 延锋伟世通电子科技(上海)有限公司 | 多平台兼容测试***及其工作方法 |
CN109308162A (zh) * | 2017-07-26 | 2019-02-05 | 北京兆易创新科技股份有限公司 | 闪存的优化装置、优化方法及设备 |
WO2019056935A1 (zh) * | 2017-09-20 | 2019-03-28 | 南京扬贺扬微电子科技有限公司 | 基于ft4222的spi闪存测试***及方法 |
CN109783340A (zh) * | 2017-11-10 | 2019-05-21 | 深圳市中兴微电子技术有限公司 | SoC的测试代码烧写方法、IP测试方法及装置 |
CN109783340B (zh) * | 2017-11-10 | 2022-04-01 | 深圳市中兴微电子技术有限公司 | SoC的测试代码烧写方法、IP测试方法及装置 |
CN108226751A (zh) * | 2017-12-14 | 2018-06-29 | 芯海科技(深圳)股份有限公司 | 一种多处理器协同芯片性能评估***及方法 |
CN108109670A (zh) * | 2017-12-27 | 2018-06-01 | 西安奇维科技有限公司 | 一种基于Matlab的Nand Flash测试***及方法 |
CN108231132A (zh) * | 2017-12-28 | 2018-06-29 | 北京兆易创新科技股份有限公司 | 一种nand闪存验证装置和验证*** |
CN108231132B (zh) * | 2017-12-28 | 2020-12-25 | 北京兆易创新科技股份有限公司 | 一种nand闪存验证装置和验证*** |
CN109411007A (zh) * | 2018-12-11 | 2019-03-01 | 武汉精鸿电子技术有限公司 | 一种基于fpga的通用闪存测试*** |
CN109411007B (zh) * | 2018-12-11 | 2024-02-20 | 武汉精鸿电子技术有限公司 | 一种基于fpga的通用闪存测试*** |
CN111370051A (zh) * | 2018-12-25 | 2020-07-03 | 北京兆易创新科技股份有限公司 | 一种非易失存储器验证***及方法 |
CN111370051B (zh) * | 2018-12-25 | 2022-02-18 | 北京兆易创新科技股份有限公司 | 一种非易失存储器验证***及方法 |
CN110110355A (zh) * | 2019-03-25 | 2019-08-09 | 电子科技大学 | 一种基于fpga的原型验证平台 |
CN110286314A (zh) * | 2019-06-27 | 2019-09-27 | 深圳米飞泰克科技有限公司 | 基于单片机的异步通讯并行测试***及测试方法 |
CN110634530A (zh) * | 2019-09-10 | 2019-12-31 | 珠海博雅科技有限公司 | 芯片的测试***和测试方法 |
CN110634530B (zh) * | 2019-09-10 | 2021-05-25 | 珠海博雅科技有限公司 | 芯片的测试***和测试方法 |
CN111352025A (zh) * | 2020-03-13 | 2020-06-30 | 京微齐力(深圳)科技有限公司 | 一种fpga中配置控制器验证方法、***及设备 |
CN111352025B (zh) * | 2020-03-13 | 2020-12-11 | 京微齐力(深圳)科技有限公司 | 一种fpga中配置控制器验证方法、***及设备 |
CN111627489B (zh) * | 2020-04-20 | 2023-09-29 | 珠海妙存科技有限公司 | 闪存特性分析方法及*** |
CN111627489A (zh) * | 2020-04-20 | 2020-09-04 | 珠海妙存科技有限公司 | 闪存特性分析方法及*** |
CN111913841A (zh) * | 2020-05-11 | 2020-11-10 | 电子科技大学 | 一种低成本的芯片功能测试平台 |
CN114492269A (zh) * | 2022-04-02 | 2022-05-13 | 北京得瑞领新科技有限公司 | 闪存控制器的验证*** |
CN114492269B (zh) * | 2022-04-02 | 2022-06-24 | 北京得瑞领新科技有限公司 | 闪存控制器的验证*** |
CN117251329A (zh) * | 2023-11-17 | 2023-12-19 | 深圳市耀星微电子有限公司 | 基于arm架构处理器的dram测试设备和方法 |
CN117251329B (zh) * | 2023-11-17 | 2024-03-08 | 深圳市耀星微电子有限公司 | 基于arm架构处理器的dram测试设备和方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102201267A (zh) | 基于FPGA实现Nandflash闪存控制器电路验证的平台***及方法 | |
CN104516818B (zh) | 一种适用于逻辑组态软件中编译器的自动化测试***及其方法 | |
CN102623069B (zh) | 随机激励闪存模型验证方法 | |
KR20090088605A (ko) | 컴포넌트 모델 기반의 가상 소프트웨어 플랫폼을 생성하는방법, 이를 이용하여 소프트웨어 플랫폼 아키텍처를검증하는 방법 및 그 장치 | |
CN107479918B (zh) | 一种可重构的mcu烧录的fpga模型 | |
CN105608258A (zh) | 一种基于模型的***设计及信息流可视化仿真***及方法 | |
CN101419843A (zh) | 快闪存储器识别方法、识别装置、芯片控制器 | |
CN109656756B (zh) | 多核cpu板卡调试方法及装置、移动存储介质 | |
CN110321292A (zh) | 芯片测试方法、装置、电子设备及计算机可读存储介质 | |
CN111221693A (zh) | 一种NOR flash配置模块验证方法、***、装置和存储介质 | |
CN117077588B (zh) | 硬件加速仿真调试*** | |
CN114089165A (zh) | 一种基于ate的c8051f芯片在线测试方法 | |
CN108648780B (zh) | 一种存储器测试***、方法及存储介质 | |
CN101071647A (zh) | 用于对nand闪存及nor/nand组合闪存编程的闪存编程器 | |
CN115658414A (zh) | 基于risc-v架构处理器核的功能验证方法及平台 | |
CN115587558A (zh) | 基于接口的验证环境生成方法及装置、设备和存储介质 | |
CN109445691A (zh) | 一种提高ftl算法开发和验证效率的方法及装置 | |
CN115684896A (zh) | 芯片可测性设计测试方法、测试平台及其生成方法及装置 | |
CN114579256A (zh) | 一种基于fpga的nvme ssd固件开发仿真平台 | |
CN101609614A (zh) | 一种半实物仿真***的仿真平台及对目标***进行在线调参的方法 | |
CN108109670A (zh) | 一种基于Matlab的Nand Flash测试***及方法 | |
CN102543215B (zh) | 一种基于ARM控制器的Nand FLASH智能检测方法 | |
CN101441334A (zh) | 一种液晶模块的测试方法及*** | |
CN101201791A (zh) | 一种应用程序的开发调试方法及*** | |
CN106066822B (zh) | 一种支持覆盖率统计功能的仿真器及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20110928 |