基于存储控制FPGA的FLASH坏块仿真验证系统的制作方法

文档序号:14249719阅读:186来源:国知局
基于存储控制FPGA的FLASH坏块仿真验证系统的制作方法

本发明涉及卫星产品中的固态存储器,具体为固态存储器综合处理器系统的地面仿真,主要应用于大容量固存设计相关技术领域,特别涉及一种基于存储控制fpga的flash坏块仿真验证系统。



背景技术:

基于flash的固态存储器(固存)作为存储设备广泛应用于卫星工程。flash的优势在于功耗小、成本低、断电不丢失数据,缺点是受限于芯片工艺,不能保证在其生命周期内性能可靠。为此有必要设计存储控制fpga来对卫星产品中的flash进行坏块管理。但由于存储板中有效存储单元flash坏块产生具有随机性,在地面硬件联测中难以精确设置存储板产生坏块的位置,硬件联测无法保证存储控制fpga在不同坏块分布工况下的坏块管理正确性。为此有必要设计一种基于存储控制fpga的flash坏块仿真验证系统来模拟存储板产生坏块的各种工况,精确设置坏块产生位置,以保证对存储控制fpga的测试覆盖率。为此,本发明提出了一种基于存储控制fpga的flash坏块仿真验证系统。

目前没有发现与本发明类似的相关文献资料。



技术实现要素:

本发明的目的在于提供一种基于存储控制fpga的flash坏块仿真验证系统,以解决现有的卫星工程的中存储技术的初始坏块表、出厂坏块表、工作坏块表的建立及维护、建立存储板中flash执行擦写、读操作并向存储控制fpga反馈坏块信息的机制。此外仿真系统还包含向存储控制fpga输出各种遥控指令、输出复位信号、工作时钟,模拟辅控板接收存储控制fpga输出的页读页写状态并输出可读可写使能信号。特别要解决在硬件联测中难以控制的存储板出现坏块位置,

为实现上述目的,本发明提供了一种基于存储控制fpga的flash坏块仿真验证系统,用于为存储控制fpga提供闭环的工作环境,以及模拟存储板在地面硬件联测中无法实现的擦写/读过程中出现坏块的工况,具体包括:

仿eeprom模块,包括三片eeprom,分别用于仿真初始坏块表、出厂坏块表及工作坏块表;

仿模拟量遥测接收模块,用于接收并记录所述存储控制fpga输出的坏块变化、坏块下传地址、坏块总量、读/擦除地址信息;

仿串口遥测接收模块,用于接收所述存储控制fpga输出的遥测信息;

仿存储板模块,用于模拟所述存储板接收地址锁存、命令锁存、命令组合信号、地址/状态组合信号后向所述存储控制fpga反馈存储板中的好/坏块状态,同时与所述仿eeprom模块配合,以完成所述存储板对坏块的检测和标记;

仿时钟、复位、块保护模块,用于向所述存储控制fpga提供复位信号、工作时钟、工作表保护信号;

仿辅控板模块,用于接收所述存储控制fpga输出的读溢出标志、页写、页读状态,并向所述存储控制fpga输入可读、可写指令;

仿遥控指令发送模块,用于向所述存储控制fpga输入写存储板指令、读存储板指令、停存储板指令、坏块上注指令。

较佳地,所述仿eeprom模块的三片eeprom在初始态分别存储了所述初始坏块表、出厂坏块表及工作坏块表的初始数据,并根据所述存储控制fpga接收的遥控指令来维护所述初始坏块表、出厂坏块表及工作坏块表,同时,将维护所述初始坏块表、出厂坏块表及工作坏块表的过程进行分别记录。

较佳地,所述遥控指令包括读初始坏块表、恢复初始坏块表、恢复出厂坏块表、坏块上注、坏块取消、备份坏块表状态、下传完整坏块表,并将维护所述初始坏块表、出厂坏块表及工作坏块表的过程分别记录在文件eeprom1.dat、eeprom2.dat、eeprom3.dat。。

较佳地,所述仿模拟量遥测接收模块还用于接收存储控制fpga输出的模拟量,记录所述存储控制fpga当前工作状态。

较佳地,所述仿串口遥测接收模块具体用于接收串口遥测,并生成记录文件rs422rx_log.dat。

较佳地,所述仿存储板模块具体用于接收所述存储控制fpga输出到存储板的工作时钟、反馈时钟、地址锁存、命令锁存、状态反馈门控命令组合、地址状态组合,设计存储板坏块产生逻辑,向存储控制fpga反馈擦写/读过程中出现的坏块,以及精确设置产生坏块的地址,同时生成存储板控制记录文件flashctrl.dat。通过更改verilog代码,可对存储板产生坏块的位置做任意设置,提高存储控制fpga仿真系统对坏块管理的测试覆盖率。

较佳地,所述仿时钟、复位、块保护模块具体用于向存储控制fpga提供时钟、复位、块保护的功能。

较佳地,所述仿辅控板模块具体用于接收存储控制fpga输出的读溢出、页读页写状态,设计相关逻辑,以及向所述存储控制fpga输出可读可写控制信号。

较佳地,所述仿遥控指令发送模块具体用于根据综合处理器的要求,向所述存储控制fpga输出各种所需的遥控指令。

较佳地,该系统使用verilog代码编写,使用的平台为synopsys公司的仿真验证工具vcs,为存储控制fpga以及eeprom与存储板的交互工作提供闭环的工作环境。

本发明具有以下有益效果:

1)克服了在地面硬件联测中存储板(flash)中坏块产生的不可预测性。本发明通过软件调整flash模型,可以灵活仿真存储板(flash)在擦写、读流程中的坏块产生机制,相关工作过程信息保存在记录文件flashctrl.dat。通过在模块参数端口设置块地址、层地址、页地址,可以仿真flash产生坏块的任意地址,提高仿真系统对存储控制fpga的仿真验证覆盖率。

2)实现了eeprom模型,建立并维护初始坏块表、出厂坏块表、工作坏块表机制。在flash工作过程中,接收其反馈的坏块信息,在eeprom的工作坏块表中标记flash坏块信息,并以数据文件的形式记录在文件eeprom3.dat中,通过将其与flashctrl.dat比较,可直观仿真存储控制fpga在flash工作流程中坏块表维护过程。

3)为最大限度的仿真地面联测系统,本发明添加了辅控板作为存储控制fpga的部分激励,用以接收页读页写请求并向存储控制fpga提供页读页写使能信号。本发明提供了遥控指令发送模块,可根据存储控制fpga需要,发送任意格式的遥控指令,将适用性扩展到不同卫星型号中的存储主控系统,推进了卫星产品型谱化建设。

4)本发明的运行平台是synopsys公司的vcs平台,有较强的可开发性。随着卫星产品的不断发展与进步,vcs平台可同步进行技术开发与升级,为卫星产品的地面仿真工作提供可持续性技术支持。

附图说明

图1为本发明优选实施例的系统框图;

图2为本发明优选实施例的建立工作坏块表流程图;

图3为本发明优选实施例的存储板(flash)模型工作流程图。

具体实施方式

以下将结合本发明的附图,对本发明实施例中的技术方案进行清楚、完整的描述和讨论,显然,这里所描述的仅仅是本发明的一部分实例,并不是全部的实例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明的保护范围。

为了便于对本发明实施例的理解,下面将结合附图以具体实施例为例作进一步的解释说明,且各实施例不构成对本发明实施例的限定。

本实施例提供了一种基于存储控制fpga的flash坏块仿真验证系统,该系统用于为存储控制fpga提供闭环的工作环境,尤其可模拟存储板(flash)在地面硬件联测中无法实现的擦写/读过程中出现坏块的工况,并设计了eeprom模型,当存储板出现坏块时,仿真工作表的更新过程,这为eeprom与存储板的交互工作提供了闭环仿真环境。

如图1所示,该系统具体包括:

仿eeprom模块1,包括三片eeprom,分别用于仿真初始坏块表、出厂坏块表及工作坏块表;

仿模拟量遥测接收模块2,用于接收并记录存储控制fpga8输出的坏块变化、坏块下传地址、坏块总量、读/擦除地址信息;

仿串口遥测接收模块3,用于接收所述存储控制fpga8输出的遥测信息;

仿存储板模块4,用于模拟存储板(flash)接收地址锁存、命令锁存、命令组合信号、地址/状态组合信号后向存储控制fpga8反馈存储板中的好/坏块状态,同时与仿eeprom模块1配合,以完成存储板(flash)对坏块的检测和标记;

仿时钟、复位、块保护模块5,用于向存储控制fpga8提供复位信号、工作时钟、工作表保护信号;

仿辅控板模块6,用于接收存储控制fpga8输出的读溢出标志、页写、页读状态,并向所述存储控制fpga输入可读、可写指令;

仿遥控指令发送模块7,用于向存储控制fpga8输入写存储板指令、读存储板指令、停存储板指令、坏块上注指令。

其中,仿eeprom模块1的三片eeprom在初始态分别存储了上述的初始坏块表、出厂坏块表及工作坏块表的初始数据,并根据存储控制fpga8接收的遥控指令来维护初始坏块表、出厂坏块表及工作坏块表,同时,将维护初始坏块表、出厂坏块表及工作坏块表的过程进行分别记录。这里存储控制fpga8接收的遥控指令具体包括读初始坏块表、恢复初始坏块表、恢复出厂坏块表、坏块上注、坏块取消、备份坏块表状态、下传完整坏块表,同时,模块将维护初始坏块表、出厂坏块表及工作坏块表的过程分别记录在文件eeprom1.dat、eeprom2.dat、eeprom3.dat中。

进一步地,上述仿存储板模块具体用于接收存储控制fpga输出到存储板的工作时钟、反馈时钟、地址锁存、命令锁存、状态反馈门控命令组合、地址状态组合,设计存储板坏块产生逻辑,向存储控制fpga反馈擦写/读过程中出现的坏块,以及精确设置产生坏块的地址,同时生成存储板控制记录文件flashctrl.dat。通过更改verilog代码,可对存储板产生坏块的位置做任意设置,提高存储控制fpga仿真系统对坏块管理的测试覆盖率。

进一步优选的实施例中,仿模拟量遥测接收模块还用于接收存储控制fpga输出的模拟量,记录所述存储控制fpga当前工作状态。

进一步优选的实施例中,所述仿串口遥测接收模块具体用于接收串口遥测,并生成记录文件rs422rx_log.dat。

进一步优选的实施例中,所述仿时钟、复位、块保护模块具体用于向存储控制fpga提供时钟、复位、块保护的功能。

进一步优选的实施例中,所述仿辅控板模块具体用于接收存储控制fpga输出的读溢出、页读页写状态,设计相关逻辑,以及向所述存储控制fpga输出可读可写控制信号。

进一步优选的实施例中,所述仿遥控指令发送模块具体用于根据综合处理器的要求,向所述存储控制fpga输出各种所需的遥控指令。

该系统使用verilog代码编写,使用的平台为synopsys公司的仿真验证工具vcs,为存储控制fpga以及eeprom与存储板的交互工作提供闭环的工作环境。

实现上述实施例的系统的思路是:通过verilog语言建立eeprom仿真模型,提供原始状态的初始坏块表、出厂坏块表、工作坏块表数据,在存储板flash工作流程中根据flash反馈的坏块信息维护工作坏块表,同时可接收遥控指令实现读初始坏块表、恢复初始坏块表、恢复出厂坏块表等各种维护操作。通过verilog语言建立存储板flash仿真模型,接收组合命令、查询脉冲、地址锁存、命令锁存等信号,向存储控制fpga反馈坏块标志。

为实现上述目的,本发明的方法主要包括以下步骤:

步骤1:首先构建如图1所示的仿eeprom模块1、仿模拟量遥测接收模块2、仿串口遥测接收模块3、仿存储板(flash)模块4、仿时钟、复位、块保护模块5、仿辅控板模块6、仿遥控指令发送模块7。

其中,使用verilog语言建立eeprom模型,包括初始坏块表、出厂坏块表、工作坏块表的原始数据,在flash工作中接收反馈坏块信息,维护上述三个坏块表。

步骤2:参考图2所示,在具体构建仿eeprom模块中工作坏块表的模型时,进行构建包括初始化流程和受存储控制fpga控制的读/写流程。初始化流程的意义是建立初始坏块表,读写流程的意义是在存储板工作流程中,根据flash坏块变化情况维护eeprom中的工作坏块表。eeprom地址范围为0~131071,其存储的数据位宽为8bit,每个eeprom地址对应存储板flash中的一个块地址。每个eeprom地址中的数据位宽为8bit,判断坏块的阈值为5,即eeprom地址中“1”的个数大于等于5,则认为该eeprom地址对应的flash块为好块。通过verilog语言可以随机产生坏块也可精确产生坏块。eeprom的地址范围为0~131071,对应flash中的131072个块。对工作坏块表的维护过程存储在记录文件eeprom3.dat中。

步骤3:设置仿eeprom模块根据遥控指令,配合存储控制fpga8维护三片eeprom(分别为eeprom11、eeprom12及eeprom13)中的坏块信息。上述的eeprom1.dat记录初始坏块表信息,eeprom2.dat记录备份坏块表信息,eeprom3.dat记录工作坏块表信息。主要包括下述七种操作。

(1)建立初始坏块表:令仿遥控指令发送模块向固存控制fpga发送“建立初始坏块表”指令,eeprom11可自动生成初始坏块表,并将信息存储在文件eeprom1.dat中。

(2)恢复初始坏块表:在固存控制fpga处于停状态时,通过仿真系统发送“恢复初始坏块表指令”,仿真系统将eeprom11中初始坏块表信息写入eeprom3工作坏块表。

(3)恢复备份坏块表:仿真系统将eeprom12中的坏块信息写入eeprom3工作坏块表中。

(4)建立备份坏块表:仿真系统将eeprom13中工作坏块表中信息写入eeprom2备份坏块表。

(5)坏块表下传:仿真系统将eeprom13中工作坏块表中信息进行判断,满足坏块判定阈值的(eeprom存储单元中“1”的个数小于5)判定为坏块,将对应坏块信息通过遥测串口下传。

(6)坏块上注:当地面认为固存(flash)某一块是坏块时,可直接通过遥控指令将其标记为坏块,即在eeprom13对应的块地址写入00h。

(7)坏块取消:使用过程中,若认为固存(flash)某块是好块,可直接通过遥控指令将其标记为好块,即在eeprom13对应的块地址写入ffh。

步骤4:如图3所示,建立存储板(flash)模型。该模型的特征是可以通过端口参数精确设置读flash流程中的汉明校验计数阈值,可精确设置读和写流程中出现坏块的flash的块地址、层地址、页地址,也可随机设置坏块地址。存储板(flash)模块解析存储控制fpga输出的地址组合、指令组合,并转换为擦除、页写、页读等操作。其中擦除和写是绑定的流程,写当前块的同时擦除下一块,直到擦除好块并写该好块。读流程按页读,每块包含若干页,每读完一块后根据汉明校验次数来判断是否产生了坏块。flash块地址范围为0~131071。对存储板(flash)的操作过程存储在记录文件flashctrl.dat中。

该步骤中,使用verilog语言建立存储板(flash)模型,在模块参数端口可精确设置坏块产生的位置(设置flash的块地址、层地址、页地址)。由flash芯片资料可知,擦写流程中产生坏块的方式与读流程中产生坏块的方式不同。故在flash模型中设置三种模式的坏块反馈机制:第一,擦写flash时坏块判断标准:查询6次未收到准备好信息,或收到准备好信息但存储板反馈为坏块时,则认为出现坏块。第二,读flash初始坏块表坏块判断标准:查询1次收到读出厂标志为低电平(坏块),则认为出现坏块。第三,读flash时坏块判断标准:读操作时当读完一个区块数据后,对收到的汉明校验计数结果进行判断,若汉明校验信号低电平脉冲个数大于遥控指令设定的阈值,则认为该区块为坏区。

步骤5:如图1所示,按照存储控制fpga定义的遥控指令波特率38400bps,发送串行遥控指令,包括存储板(flash)写、读、停等指令。

步骤6:如图1所示,构建仿辅控板逻辑,向存储控制fpga输出页读页写使能信号。

步骤7:如图1所示,构建遥测接收模块,接收存储控制fpga输出的遥测信息,保存在文件rs422rx_log.dat中。

步骤8:如图1所示,构建复位、时钟、块保护信号。其中块保护信号为高电平时,工作坏块表不可进行写操作,为存储板提供稳定的工作表。

该优选实施例中选取的设置的flash判坏块阈值、汉明校验次数阈值均选取为5。上述实施例的方法是为辅助说明该系统的组成及功能,本领域技术人员根据上述方法对系统做出的改进也包含在本发明范围内。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何本领域的技术人员在本发明揭露的技术范围内,对本发明所做的变形或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述的权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1