CN104536864A - 一种位翻转可控的Nand Flash仿真模型的注错方法 - Google Patents
一种位翻转可控的Nand Flash仿真模型的注错方法 Download PDFInfo
- Publication number
- CN104536864A CN104536864A CN201410749886.XA CN201410749886A CN104536864A CN 104536864 A CN104536864 A CN 104536864A CN 201410749886 A CN201410749886 A CN 201410749886A CN 104536864 A CN104536864 A CN 104536864A
- Authority
- CN
- China
- Prior art keywords
- bit
- nand flash
- data
- flipping
- bit flipping
- 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.)
- Granted
Links
Landscapes
- Read Only Memory (AREA)
Abstract
本发明的位翻转可控的Nand Flash仿真模型的注错方法,包括:a).判断位翻转类型;b).随机产生位翻转数量;c).人为设定位翻转数量;d).创建 类,并定义错误位置变量;e).创建类,并创建一个深度为、宽度为8 bit的二维数组;f).定义翻转位,定义字节翻转变量,利用中被值“1”的位置与Nand Flash页中8bit数据的翻转位位置相对应的原则,对进行赋值;g).数据注错运算,将中的数据与io_data_buf中的数据进行异或运算;h).纠错能力判断。本发明的编码纠错验证方法,实现了向Nand Flash页中进行数量、位置可控的翻转位注入,灵活地增加了数据位随机插错,有助于更全面快速地完成NFC的验证。
Description
技术领域
本发明涉及一种位翻转可控的Nand Flash仿真模型的注错方法,更具体的说,尤其涉及一种可对翻转位的个数和位置进行控制的Nand Flash控制器的编码纠错验证方法。
背景技术
现有Nand Flash仿真模型虽然实现了对Nand flash操作的读写、擦除以及时序检查等功能,但验证闪存控制器(Nand Flash Controller即NFC)的纠错编码功能时,存储数据位的随机插错功能却很难实现。
Nand flash(快闪存储器)具有存储单元面积小,编程速度快,擦除时间短,功耗低等优势,已成为业界非常流行的海量存储介质,然而所有的Nand Flash器件都受位翻转现象的困扰。所谓位翻转(bit flip)指的是,由于Nand Flash电学特性的局限,在Nand Flash被多次擦写之后,原先Nand Flash中的某个存储位的数据值可能会发生翻转,即要么从1变成0了,要么从0变成1了。如果Nand Flash只是应用于一般数据存储,那么位翻转所造成的影响也许并不太明显。但当将Nand Flash应用于存储操作系统,存储配置文件和其他敏感信息的时候,Nand Flash的位翻转现象对整个计算机系统将会是致命的。因此在Nand Flash仿真模型中模拟器件的位翻转功能检查尤为重要。
现有的Nand Flash仿真模型一般采用前端RTL设计的思想利用verilog语言编写实现,这种方法虽然也能够实现Nand Flash模型简单的位翻转功能,但是操作方式复杂且可控性差,不能满足验证工程师在仿真时对位翻转和位翻转的数量进行随机控制。
发明内容
本发明为了克服上述技术问题的缺点,提供了一种位翻转可控的Nand Flash仿真模型的注错方法。
本发明的位翻转可控的Nand Flash仿真模型的注错方法,设Nand Flash的页大小为 bit,Nand Flash页中存储数据的寻址位数为;其特征在于,所述编码纠错验证方法通过以下步骤来实现:a).判断位翻转类型,判断是随机产生位翻转的数量还是人为设定位翻转的数量,如果为随机产生,则执行步骤b);如果为人为设定,则执行步骤c);b).随机产生位翻转数量,在限定的位翻转区间内随机生成一个数据,用该随机数据作为Nand Flash页中位翻转的个数,执行步骤d);c).人为设定位翻转数量,验证人员根据实际的需求设定Nand Flash页中位翻转的个数,执行步骤d);d).创建类,记步骤b)中获取的位翻转个数或步骤c)中人为设定的位翻转个数为;创建用于约束翻转位位置的类,并在该类中定义位数为的错误位置变量,的大小约束在区间之间,以使恰好能对Nand Flash一页大小的数据进行寻址;e).创建类,创建类,并在该类中创建一个深度为、宽度为8 bit的二维数组,使得二位数组的大小与Nand Flash一页的大小相等,二维数组中数据的初始值均为0;f).定义翻转位,定义宽度为8bit的字节翻转变量,类产生的错误位置作为二位数组的索引,利用中被值“1”的位置与Nand Flash页中8bit数据的翻转位位置相对应的原则,对二维数组进行赋值,直至翻转位的数量与相等;g).数据注错运算,将二位数组中的数据与从Nand Flash array中读取到io_data_buf中的数据进行异或运算,使得Nand Flash控制器从Nand Flash io端口读取的数据为含有注错信息的数据;h).纠错能力判断,Nand Flash控制器读取到含有注错信息的数据后,判断其对该页中所有注错位的纠错能力。
本发明的位翻转可控的Nand Flash仿真模型的注错方法,步骤f)中定义翻转位通过以下步骤来实现:f-1).字节翻转变量赋值,利用中被值“1”的位置与Nand Flash页中8bit数据的翻转位位置相对应的原则,计算出二位数组当前索引位置所对应的字节翻转变量的值;f-2).二位数组赋值,通过=对二位数组相应位置处的8bit进行赋值,执行步骤f-3);f-3).判断位翻转是否完成,计算参与赋值的所有字节翻转变量中所含有的“1”的数目是否达到了,如果达到,则表明定义翻转位结束;如果没有达到,则表明位翻转没有完成,执行步骤f-4);f-4).继续定义翻转位,设二位数组中下一翻转位索引为,翻转变量为,则令=,=,继续执行步骤f-1)、f-2)。。
本发明的位翻转可控的Nand Flash仿真模型的注错方法,所述Nand Flash的页大小为8KB或16KB,即bit分别等于bit或bit;,Nand Flash页中存储数据的寻址位数为=16。
本发明的有益效果是:本发明的位翻转可控的Nand Flash仿真模型的注错方法,通过建立类,在该类中建立有约束翻转位位置的变量;通过建立类,并在该类中建立二维数组,通过作为二位数组的索引,利用字节翻转变量对二位数组进行赋值,即可对定义出翻转位位置;最后通过将二位数组中的数据依次与Nand Flash 的io_data_buf中的数据进行异或运算,相当于实现了向Nand Flash页中进行了数量、位置可控的翻转位注入,以便检测NFC的编码纠错能力。
本发明的注错机制采用SystemVerilog语言的class来实现,在类中对数据的翻转位置和翻转个数进行相应的约束和随机,实现了插错位置和插错数据的随机化与可控性。相比之前的Nand Flash验证模型,灵活地增加了数据位随机插错,更加真实地模拟了Nand Flash的工作过程,有助于更全面快速地完成Nand Flash Controller的验证。
附图说明
图1为本发明的位翻转可控的Nand Flash控制器的编码纠错验证方的流程图;
图2为本发明的Nand Flash控制器的编码纠错验证方的原理图。
具体实施方式
下面结合附图与实施例对本发明作进一步说明。
本发明的位翻转可控的Nand Flash仿真模型的注错方法,设Nand Flash的页大小为bit, Nand Flash页中存储数据的寻址位数为,常用Nand Flash的页大小为8KB或16KB,即bit分别等于bit或bit,所述编码纠错验证方法通过以下步骤来实现:
a).判断位翻转类型,判断是随机产生位翻转的数量还是人为设定位翻转的数量,如果为随机产生,则执行步骤b);如果为人为设定,则执行步骤c);
b).随机产生位翻转数量,在限定的位翻转区间内随机生成一个数据,用该随机数据作为Nand Flash页中位翻转的个数,执行步骤d);
该步骤中,位翻转区间可根据实际的测试需求设定。
c).人为设定位翻转数量,验证人员根据实际的需求设定Nand Flash页中位翻转的个数,执行步骤d);
d).创建类,记步骤b)中获取的位翻转个数或步骤c)中人为设定的位翻转个数为;创建用于约束翻转位位置的类,并在该类中定义位数为的错误位置变量,的大小约束在区间之间,以使恰好能对Nand Flash一页大小的数据进行寻址;
e).创建类,创建类,并在该类中创建一个深度为、宽度为8 bit的二维数组,使得二位数组的大小与Nand Flash一页的大小相等,二维数组中数据的初始值均为0;
f).定义翻转位,定义宽度为8bit的字节翻转变量,类产生的错误位置作为二位数组的索引,利用中被值“1”的位置与Nand Flash页中8bit数据的翻转位位置相对应的原则,对二维数组进行赋值,直至翻转位的数量与相等;
该步骤中,定义翻转位通过以下步骤来实现:
f-1).字节翻转变量赋值,利用中被值“1”的位置与Nand Flash页中8bit数据的翻转位位置相对应的原则,计算出二位数组当前索引位置所对应的字节翻转变量的值;
f-2).二位数组赋值,通过=对二位数组相应位置处的8bit进行赋值,执行步骤f-3);
在该步骤中,如果=0000 0001B,可使相应地址上8bit数据的第一位发生位翻转,如果=0000 0010B,可使第二位发生翻转,以此类推;=0000 0000B,则对应的8bit存储空间上没有翻转位。
f-3).判断位翻转是否完成,计算参与赋值的所有字节翻转变量中所含有的“1”的数目是否达到了,如果达到,则表明定义翻转位结束;如果没有达到,则表明位翻转没有完成,执行步骤f-4);
f-4).继续定义翻转位,设二位数组中下一翻转位索引为,翻转变量为,则令=,=,继续执行步骤f-1)、f-2)。
g).数据注错运算,将二位数组中的数据依次与从Nand Flash array中读取到io_data_buf中的数据进行异或运算,使得Nand Flash控制器从Nand Flash io端口读取的数据为含有注错信息的数据;
h).纠错能力判断,Nand Flash控制器读取到含有注错信息的数据后,判断其对该页中所有注错位的纠错能力。
本发明的位翻转可控的Nand Flash仿真模型的注错方法,可对Nand Flash页中的翻转位置和翻转个数进行相应的约束和随机,实现了插错位置和插错数据的随机化与可控性;灵活地增加了数据位随机插错,更加真实地模拟了Nand Flash的工作过程,有助于更全面快速地完成Nand Flash Controller的验证。
Claims (3)
1.一种位翻转可控的Nand Flash仿真模型的注错方法,设Nand Flash的页大小为 bit,Nand Flash页中存储数据的寻址位数为;其特征在于,所述编码纠错验证方法通过以下步骤来实现:
a).判断位翻转类型,判断是随机产生位翻转的数量还是人为设定位翻转的数量,如果为随机产生,则执行步骤b);如果为人为设定,则执行步骤c);
b).随机产生位翻转数量,在限定的位翻转区间内随机生成一个数据,用该随机数据作为Nand Flash页中位翻转的个数,执行步骤d);
c).人为设定位翻转数量,验证人员根据实际的需求设定Nand Flash页中位翻转的个数,执行步骤d);
d).创建类,记步骤b)中获取的位翻转个数或步骤c)中人为设定的位翻转个数为;创建用于约束翻转位位置的类,并在该类中定义位数为的错误位置变量,的大小约束在区间之间,以使恰好能对Nand Flash一页大小的数据进行寻址;
e).创建类,创建类,并在该类中创建一个深度为、宽度为8 bit的二维数组,使得二位数组的大小与Nand Flash一页的大小相等,二维数组中数据的初始值均为0;
f).定义翻转位,定义宽度为8bit的字节翻转变量,类产生的错误位置作为二位数组的索引,利用中被值“1”的位置与Nand Flash页中8bit数据的翻转位位置相对应的原则,对二维数组进行赋值,直至翻转位的数量与相等;
g).数据注错运算,将二位数组中的数据依次与从Nand Flash array中读取到io_data_buf中的数据进行异或运算,使得Nand Flash控制器从Nand Flash io端口读取的数据为含有注错信息的数据;
h).纠错能力判断,Nand Flash控制器读取到含有注错信息的数据后,判断其对该页中所有注错位的纠错能力。
2.根据权利要求1所述的位翻转可控的Nand Flash仿真模型的注错方法,其特征在于:步骤f)中定义翻转位通过以下步骤来实现:
f-1).字节翻转变量赋值,利用中被值“1”的位置与Nand Flash页中8bit数据的翻转位位置相对应的原则,计算出二位数组当前索引位置所对应的字节翻转变量的值;
f-2).二位数组赋值,通过=对二位数组相应位置处的8bit进行赋值,执行步骤f-3);
f-3).判断位翻转是否完成,计算参与赋值的所有字节翻转变量中所含有的“1”的数目是否达到了,如果达到,则表明定义翻转位结束;如果没有达到,则表明位翻转没有完成,执行步骤f-4);
f-4).继续定义翻转位,设二位数组中下一翻转位索引为,翻转变量为,则令=,=,继续执行步骤f-1)、f-2)。
3.根据权利要求1或2所述的位翻转可控的Nand Flash仿真模型的注错方法,其特征在于:所述Nand Flash的页大小为8KB或16KB,即bit分别等于bit或bit;Nand Flash页中存储数据的寻址位数为=16。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410749886.XA CN104536864B (zh) | 2014-12-10 | 2014-12-10 | 一种位翻转可控的Nand Flash仿真模型的注错方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410749886.XA CN104536864B (zh) | 2014-12-10 | 2014-12-10 | 一种位翻转可控的Nand Flash仿真模型的注错方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104536864A true CN104536864A (zh) | 2015-04-22 |
CN104536864B CN104536864B (zh) | 2016-09-07 |
Family
ID=52852394
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410749886.XA Active CN104536864B (zh) | 2014-12-10 | 2014-12-10 | 一种位翻转可控的Nand Flash仿真模型的注错方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104536864B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106992027A (zh) * | 2017-04-14 | 2017-07-28 | 广东浪潮大数据研究有限公司 | 一种模拟Nand坏块的动态注入方法 |
CN109684150A (zh) * | 2018-12-24 | 2019-04-26 | 北京紫光得瑞科技有限公司 | 存储颗粒控制器的性能测试系统、测试方法及仿真平台 |
CN110134557A (zh) * | 2019-05-17 | 2019-08-16 | 深圳忆联信息系统有限公司 | 一种读Flash接口数据随机注错的验证方法及其系统 |
CN113470723A (zh) * | 2021-06-29 | 2021-10-01 | 成都佰维存储科技有限公司 | 读重试测试方法、装置、可读存储介质及电子设备 |
CN115080330A (zh) * | 2022-06-30 | 2022-09-20 | 山东华芯半导体有限公司 | 一种用于加密Nand Flash仿真模型的注错系统及方法 |
CN115329699A (zh) * | 2022-10-17 | 2022-11-11 | 北京紫光青藤微系统有限公司 | 用于Flash仿真模型的注错方法、装置及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070233752A1 (en) * | 2006-03-30 | 2007-10-04 | Kiran Bangalore | Method and apparatus to reclaim nonvolatile memory space |
CN101916306A (zh) * | 2010-07-16 | 2010-12-15 | 北京航空航天大学 | 一种用于fpga芯片敏感区域定位的系统及其方法 |
CN103594120A (zh) * | 2013-10-31 | 2014-02-19 | 西安华芯半导体有限公司 | 以读代写的存储器纠错方法 |
US20140143617A1 (en) * | 2012-11-20 | 2014-05-22 | International Business Machines Corporation | Flash interface error injector |
-
2014
- 2014-12-10 CN CN201410749886.XA patent/CN104536864B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070233752A1 (en) * | 2006-03-30 | 2007-10-04 | Kiran Bangalore | Method and apparatus to reclaim nonvolatile memory space |
CN101916306A (zh) * | 2010-07-16 | 2010-12-15 | 北京航空航天大学 | 一种用于fpga芯片敏感区域定位的系统及其方法 |
US20140143617A1 (en) * | 2012-11-20 | 2014-05-22 | International Business Machines Corporation | Flash interface error injector |
CN103594120A (zh) * | 2013-10-31 | 2014-02-19 | 西安华芯半导体有限公司 | 以读代写的存储器纠错方法 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106992027A (zh) * | 2017-04-14 | 2017-07-28 | 广东浪潮大数据研究有限公司 | 一种模拟Nand坏块的动态注入方法 |
CN106992027B (zh) * | 2017-04-14 | 2020-05-19 | 苏州浪潮智能科技有限公司 | 一种模拟Nand坏块的动态注入方法 |
CN109684150A (zh) * | 2018-12-24 | 2019-04-26 | 北京紫光得瑞科技有限公司 | 存储颗粒控制器的性能测试系统、测试方法及仿真平台 |
CN109684150B (zh) * | 2018-12-24 | 2022-04-26 | 北京得瑞领新科技有限公司 | 存储颗粒控制器的性能测试系统、测试方法及仿真平台 |
CN110134557A (zh) * | 2019-05-17 | 2019-08-16 | 深圳忆联信息系统有限公司 | 一种读Flash接口数据随机注错的验证方法及其系统 |
CN113470723A (zh) * | 2021-06-29 | 2021-10-01 | 成都佰维存储科技有限公司 | 读重试测试方法、装置、可读存储介质及电子设备 |
CN113470723B (zh) * | 2021-06-29 | 2023-07-14 | 成都佰维存储科技有限公司 | 读重试测试方法、装置、可读存储介质及电子设备 |
CN115080330A (zh) * | 2022-06-30 | 2022-09-20 | 山东华芯半导体有限公司 | 一种用于加密Nand Flash仿真模型的注错系统及方法 |
CN115329699A (zh) * | 2022-10-17 | 2022-11-11 | 北京紫光青藤微系统有限公司 | 用于Flash仿真模型的注错方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104536864B (zh) | 2016-09-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104536864A (zh) | 一种位翻转可控的Nand Flash仿真模型的注错方法 | |
US11816041B2 (en) | Secure memory system programming | |
CN104408264B (zh) | 一种基于断言的嵌入式存储控制器验证系统及方法 | |
US20170084350A1 (en) | Validation of a repair to a selected row of data | |
CN102841950B (zh) | 一种逻辑存储单元自动验证的方法及装置 | |
CN102521467A (zh) | 一种针对sram型fpga的逐位翻转故障注入方法 | |
CN104391727B (zh) | 数据烧写方法、系统、烧写设备以及目标设备 | |
CN101573694A (zh) | 用于小数据结构的ecc保护的方法、系统和装置 | |
CN108268337A (zh) | 于记忆装置中进行数据管理的方法、记忆装置及其控制器 | |
CN109684150B (zh) | 存储颗粒控制器的性能测试系统、测试方法及仿真平台 | |
CN109671459A (zh) | 存储器系统及其操作方法 | |
CN109388974A (zh) | 具有安全读取的非易失性存储器装置 | |
US20160171148A1 (en) | Verification environments utilzing hardware description languages | |
CN109656749A (zh) | 存储器系统及其操作方法 | |
TW201913380A (zh) | 資料儲存裝置以及其操作方法 | |
CN102646453A (zh) | NandFlash控制器中错误校正码模块的测试方法及系统 | |
CN113470723B (zh) | 读重试测试方法、装置、可读存储介质及电子设备 | |
CN104750535B (zh) | NAND Flash仿真控制器及控制调试方法 | |
CN104571961A (zh) | 一种三角式存储装置的数据校验备份、写入及读取方法 | |
CN110931075A (zh) | 可重新配置的模拟系统和测试存储装置的固件的方法 | |
CN109933453A (zh) | 错误校正方法和使用其的半导体器件 | |
CN102495778A (zh) | 一种测试单包正则匹配逻辑的系统和方法 | |
CN107729681A (zh) | 适用于在轨重构fpga的通用仿真方法和系统 | |
CN111124790A (zh) | 一种可重用仿真接口模型的生成系统 | |
CN107944128B (zh) | 基于存储控制fpga的flash坏块仿真验证系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |