一种位翻转可控的NandFlash仿真模型的注错方法

文档序号:8209021阅读:828来源:国知局
一种位翻转可控的Nand Flash仿真模型的注错方法
【技术领域】
[0001] 本发明涉及一种位翻转可控的Nand Flash仿真模型的注错方法,更具体的说,尤 其涉及一种可对翻转位的个数和位置进行控制的Nand Flash控制器的编码纠错验证方法。
【背景技术】
[0002] 现有Nand Flash仿真模型虽然实现了对Nand flash操作的读写、擦除以及时序 检查等功能,但验证闪存控制器(Nand Flash Controller即NFC)的纠错编码功能时,存储 数据位的随机插错功能却很难实现。
[0003] Nand flash (快闪存储器)具有存储单元面积小,编程速度快,擦除时间短,功耗 低等优势,已成为业界非常流行的海量存储介质,然而所有的Nand Flash器件都受位翻转 现象的困扰。所谓位翻转(bit flip)指的是,由于Nand Flash电学特性的局限,在Nand Flash被多次擦写之后,原先Nand Flash中的某个存储位的数据值可能会发生翻转,即要 么从1变成〇 了,要么从〇变成1 了。如果Nand Flash只是应用于一般数据存储,那么位 翻转所造成的影响也许并不太明显。但当将Nand Flash应用于存储操作系统,存储配置文 件和其他敏感信息的时候,Nand Flash的位翻转现象对整个计算机系统将会是致命的。因 此在Nand Flash仿真模型中模拟器件的位翻转功能检查尤为重要。
[0004] 现有的Nand Flash仿真模型一般采用前端RTL设计的思想利用verilog语言编 写实现,这种方法虽然也能够实现Nand Flash模型简单的位翻转功能,但是操作方式复杂 且可控性差,不能满足验证工程师在仿真时对位翻转和位翻转的数量进行随机控制。

【发明内容】

[0005] 本发明为了克服上述技术问题的缺点,提供了一种位翻转可控的Nand Flash仿真 模型的注错方法。
[0006] 本发明的位翻转可控的Nand Flash仿真模型的注错方法,设Nand Flash的页 大小为2# *8 bit,Nand Flash页中存储数据的寻址位数为其特征在于,所述编码纠 错验证方法通过以下步骤来实现:a).判断位翻转类型,判断是随机产生位翻转的数量还 是人为设定位翻转的数量,如果为随机产生,则执行步骤b);如果为人为设定,则执行步骤 c) ;b).随机产生位翻转数量,在限定的位翻转区间 内随机生成一个数据,用该随机数据作为Nand Flash页中位翻转的个数,执行步骤d); c).人为设定位翻转数量,验证人员根据实际的需求设定Nand Flash页中位翻转的个数, 执行步骤d) ;d).创建类,记步骤b)中获取的位翻转个数或步骤c)中人 为设定的位翻转个数为〃~?_ ;创建用于约束翻转位位置的类,并在该 类中定义位数为的错误位置变量的大小约束在区间[0,2#-1_|之间, 以使恰好能对Nand Flash-页大小的数据进行寻址;e).创建类, 创建类,并在该类中创建一个深度为、宽度为8 bit的二维数组〃 ,使得二位数组〃的大小与Nand Flash -页的大小相等,二维数组中数据 的初始值均为0 ;f).定义翻转位,定义宽度为8bit的字节翻转变量 ,ge?类产生的错误位置err _ 作为二位数组err 的索弓丨,利用 err -?__0??-中被值"1"的位置与Nand Flash页中8bit数据的翻转位位置相对应 的原则,对二维数组进行赋值,直至翻转位的数量与^相等;g).数据注错 运算,将二位数组中的数据与从Nand Flash array中读取到io_data_buf中的数 据进行异或运算,使得Nand Flash控制器从Nand Flash io端口读取的数据为含有注错信 息的数据;h).纠错能力判断,Nand Flash控制器读取到含有注错信息的数据后,判断其对 该页中所有注错位的纠错能力。
[0007] 本发明的位翻转可控的Nand Flash仿真模型的注错方法,步骤f)中定义翻 转位通过以下步骤来实现:f_l).字节翻转变量赋值,利用中被值 "1"的位置与Nand Flash页中8bit数据的翻转位位置相对应的原则,计算出二位数组 当前索引位置所对应的字节翻转变量的值;f-2). 二位数组贝武值,通过[wr_pos_ge乃.eer_/>£?£]=财桃_c7?g_对二位数组 相应位置处的8bit进行赋值,执行步骤f-3) ;f-3).判断位翻转是否完成,计算 参与赋值的所有字节翻转变中所含有的"1"的数目是否达到了 e,如果达到,则表明定义翻转位结束;如果没有达到,则表明位翻转没有 完成,执行步骤f_4) ;f_4).继续定义翻转位,设二位数组中下一翻转位索引为〃〃 ,番羽转变量为 err-0浙一,贝U 令 eer-歹0;? = 夕0#,err-num- 〇m_byte =wr ,继续执行步骤 f-i)、f-2)。。
[0008] 本发明的位翻转可控的Nand Flash仿真模型的注错方法,所述Nand Flash的页 大小为8KB或16KB,S卩2界*8 bit分别等于2B*8 bit或2W*8 bit ;,Nand Flash页中存 储数据的寻址位数为s =16。
[0009] 本发明的有益效果是:本发明的位翻转可控的Nand Flash仿真模型的注错方法, 通过建类,在该类中建立有约束翻转位位置的变量;通过建立 /物类,并在该类中建立二维数组grr_M,通过作为二位数组grr_&:l的 索引,利用字节翻转变量对二位数组^进行赋值,即可对定义出 翻转位位置;最后通过将二位数组中的数据依次与Nand Flash的io_data_buf?中 的数据进行异或运算,相当于实现了向Nand Flash页中进行了数量、位置可控的翻转位注 入,以便检测NFC的编码纠错能力。
[0010] 本发明的注错机制采用SystemVerilog语言的class来实现,在类中对数据的翻 转位置和翻转个数进行相应的约束和随机,实现了插错位置和插错数据的随机化与可控 性。相比之前的Nand Flash验证模型,灵活地增加了数据位随机插错,更加真实地模拟了 Nand Flash的工作过程,有助于更全面快速地完成Nand Flash Controller的验证。
【附图说明】
[0011]图1为本发明的位翻转可控的Nand Flash控制器的编码纠错验证方的流程图; 图2为本发明的Nand Flash控制器的编码纠错验证方的原理图。
【具体实施方式】
[0012] 下面结合附图与实施例对本发明作进一步说明。
[0013] 本发明的位翻转可控的Nand Flash仿真模型的注错方法,设Nand Flash的页大 小为2界*8 bit,Nand Flash页中存储数据的寻址位数为《,常用Nand Flash的页大小为 8KB或16KB,S卩2界*8 bit分别等于2B*8 bit或2W*8 bit,所述编码纠错验证方法通过以 下步骤来实现: a) .判断位翻转类型,判断是随机产生位翻转的数量还是人为设定位翻转的数量,如果 为随机产生,则执行步骤b);如果为人为设定,则执行步骤c); b) .随机产生位翻转数量,在限定的位翻转区间 内随机生成一个数据,用该随机数据作为NandFlash页中位翻转的个数,执行步骤d); 该步骤中,位翻转区间可根据实际的测试需求 设定。
[0014] c).人为设定位翻转数量,验证人员根据实际的需求设定NandFlash页中位翻转 的个数,执行步骤d); d) .创建_/^5_£0?类,记步骤b
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1