一种用于NandFlash控制器仿真验证中避免读空页的方法与系统技术方案

技术编号:36193337 阅读:22 留言:0更新日期:2022-12-31 21:14
本发明专利技术提供了一种用于Nand Flash控制器仿真验证中避免读空页的方法与系统,在批量读写测试之前把各个功能点状态下的数据预先放入到文本文件中,如果出现读的地址是没有被写过的地址,就会把当前功能点状态下的数据驱动到接口上去,解决了目前在Nand Flash仿真模型中预先加载一些数据消耗仿真时间和影响功能点测试随机性的缺点,避免读空页的问题。避免读空页的问题。避免读空页的问题。

【技术实现步骤摘要】
一种用于Nand Flash控制器仿真验证中避免读空页的方法与系统


[0001]本专利技术涉及Nand Flash控制器仿真测试领域,更具体涉及用于Nand Flash控制器仿真验证中避免读空页的方法与系统。

技术介绍

[0002]在对Nand Flash 控制器的仿真测试中,往往需要模拟实际行为对Nand Flash控制器不断的发出读写等一些命令来验证其功能。在对功能点检查时,会对写命令的地址、数据以及相应功能点当前的状态记录下来,当读到相同地址时相应功能点状态要与写时保持一致,然后进行数据的检查来验证相应功能点的正确性。例如在写数据的时打开了功能点CRC校验的检查,对应的数据流中就会有CRC校验的信息,当读到该地址时同样也要打开功能点CRC校验进行数据检查,这样才能验证CRC校验这个功能点的正确性。但是在实际验证中,如果按照软件的操作方式,先擦再写再读操作,而批量的擦写操作会耗费大量的仿真时间,此验证方法不可取。如果不进行批量的写操作,就进行随机的读操作,会遇到大量的读空页操作,这样只能验证部分Nand Flash控制器的功能。
[0003]针对遇到的以上问题,目前有两种解决方法,第一个是在进行读写验证之前预先写入一些地址的数据,当读命令发出时,读的地址是预先写入的数据的地址,这个方法可以解决读空页的问题,但是由于预先写入一些地址的数据要花费大量的仿真时间,大大降低了仿真效率;第二个方法是在进行读写验证之前预先把一些数据先加载到Nand Flash模型的相应的存储地址空间中,当发出读命令时,读的地址是开始预先加载到Nand Flash模型的数据的地址,这个方法也可以解决读空页的问题,但是这种在Nand Flash模型后台加载数据的方法,加载的数据是固定的,功能点打开或者关闭的状态也是固定的。以CRC功能点为例,Nand Flash模型后台加载时CRC功能是打开的,读该地址时,必须要求CRC是打开的,否则数据检查就会出错,这样就会影响验证功能点的随机性,造成功能覆盖率收敛较慢。

技术实现思路

[0004]本专利技术目的是提供一种用于Nand Flash控制器仿真验证中避免读空页的方法及其对应系统,既能够解决上述读空页的问题,也不会影响对应功能点测试的随机性。
[0005]本专利技术为实现上述目的,通过以下技术方案实现:一种用于Nand Flash控制器仿真验证中避免读空页的方法,包括步骤:S01)把所有功能点状态下的数据流分别保存,形成数据流池;S02)Nand Flash数据流输入;S03)判断读写测试中发出的是读命令还是写命令;S04)若是写命令,则对写的地址进行存储,若是读命令,判断读的地址是否被写过,如果是没有写过的地址,则当前数据流就会被数据流池中的数据替换;S05)判断数据流是否传输完成,如果未完成则继续执行步骤S03。
[0006]优选的,步骤S03判断读写测试命令的方法为对Nand Flash的命令进行采样。
[0007]优选的,对Nand Flash的命令进行采样的方式包括:采样Nand Flash接口的命令判断接口方向;如果接口是写数据状态,采样接口信号DQx判断当前传输的数据是否是写命令;如果接口是读数据状态,采样接口信号DQx判断当前传输的数据是否是读命令。
[0008]优选的,判断接口方向的方法为:定义变量rw_flag值为1是写数据状态,0是读数据状态,通过采样RE#,接口信号上升沿判断为读数据状态,rw_flag赋值为1,通过采样CLE接口信号上升沿判断为写数据状态,rw_flag赋值为0。
[0009]优选的,步骤S04为:如果为写命令然后通过采样DQS的上升沿和下降沿并定义一个变量write_cnt进行计数,判断出当前写数据的Plane地址,Block地址,Page地址,Column地址,并把这写地址存储到存放写地址数组waddr[]中;如果为读命令然后通过采样DQS的上升沿并定义一个变量read_cnt进行计数,判断出当前写数据的Plane地址,Block地址,Page地址,Column地址,通过遍历waddr[]中的地址判断当前的地址是否被写过,若没有被写过则根据读当前地址的功能点的状态在数据流池中找到对应的数据,将其暂存到数据流池中的暂存数组rdata[]中,完成将当前读空页的数据流替换为数据池中的数据流,进而通过DQS信号的上升沿和下降沿把rdata[]中的数据驱动到DQx接口上。
[0010]优选的,步骤S01的数据流分别保存到文本文件中,形成数据流池。
[0011]本专利技术还公开了一种用于实现上述Nand Flash控制器仿真验证中避免读空页方法的系统,包括:数据传输状态判断模块,用于判断传入Nand Flash数据流的方向;读数据地址判断模块,与数据传输状态判断模块连接,用于判断读的地址是否被写过;写数据存储模块,与数据传输状态判断模块连接,用于对写的地址进行存储;当前功能点状态下数据流选择模块,与读数据地址判断模块连接,数据流池,与当前功能点状态下数据流选择模块连接。
[0012]本专利技术的优点在于:在批量读写测试仿真之前把各个功能点状态下的数据预先放入到文本文件中,如果出现读的地址是没有被写过的地址,就会把当前功能点状态下的数据驱动到接口上去,此方法可以避免读空页的问题,并且不占用仿真测试操作时间,不会降低仿真测试效率,还能保证测试的随机性,。
附图说明
[0013]图1为本专利技术数据框图;图2为本专利技术方法流程示意图;。
具体实施方式
[0014]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完
整地描述。
[0015]本实施例公开了一种如图1所示的实现Nand Flash控制器仿真验证中避免读空页方法的系统,包括:数据传输状态判断模块,读数据地址判断模块,写数据存储模块,当前功能点状态下数据流选择模块,数据流池。
[0016]数据传输方向判断模块是对传入的Nand Flash 数据流的方向进行判断,分辨出是读状态,还是写状态。由于Nand Flash 的端口是一个双向的端口,为了判断当前数据流的方向,采用的方法是对Nand Flash的命令进行采样,然后判断是写命令还是读命令,如果为写命令则数据流的方向为写,反之为读。
[0017]写地址存储模块是当判断当前的数据流方向是写时,对写的地址进行存储。
[0018]读数据地址判断模块是判断读的地址是否被写过,如果被写过输入的数据流就不会被替换,如果没有被写过,则当前数据流就会替换为数据流池中的数据流。
[0019]当前功能点状态下数据流选择模块是当读的地址没有被写过的情况下会根据当前功能点的状态去到数据池中选择对应的数据流去替换当前的数据流。
[0020]数据流池是各个功能点下状态的数据流的集合,仿真开始之前会相关功能点状态下的数据流先放入到一个文本文件中,在仿真中会根据当前功能点的状态做数据流替换。
[0021]本实施例还公开了一种应用于该系统的用于Nand F本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于Nand Flash控制器仿真验证中避免读空页的方法,其特征在于,包括步骤:S01)把所有功能点状态下的数据流分别保存,形成数据流池;S02)Nand Flash数据流输入;S03)判断读写测试中发出的是读命令还是写命令;S04)若是写命令,则对写的地址进行存储,若是读命令,判断读的地址是否被写过,如果是没有写过的地址,则当前数据流就会被数据流池中的数据替换;S05)判断数据流是否传输完成,如果未完成则继续执行步骤S03。2.根据权利要求1所述的用于Nand Flash控制器仿真验证中避免读空页的方法,其特征在于,所述步骤S03判断读写测试命令的方法为对Nand Flash的命令进行采样。3.根据权利要求2所述的用于Nand Flash控制器仿真验证中避免读空页的方法,其特征在于,所述对Nand Flash的命令进行采样的方式包括:采样Nand Flash接口的命令判断接口方向;如果接口是写数据状态,采样接口信号DQx判断当前传输的数据是否是写命令;如果接口是读数据状态,采样接口信号DQx判断当前传输的数据是否是读命令。4.根据权利要求3所述的用于Nand Flash控制器仿真验证中避免读空页的方法,其特征在于,所述判断接口方向的方法为:定义变量rw_flag值为1是写数据状态,0是读数据状态,通过采样RE#,接口信号上升沿判断为读数据状态,rw_flag赋值为1,通过采样CLE接口信号上升沿判断为写数据状态,rw_flag赋值为0。5.根据权利要求3所述的用于Nand Flash控制...

【专利技术属性】
技术研发人员:姚香君李瑞东沈力夏丽煖
申请(专利权)人:山东华芯半导体有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1