CN104731671B - 一种插错装置及方法、纠错码电路的验证设备和方法 - Google Patents
一种插错装置及方法、纠错码电路的验证设备和方法 Download PDFInfo
- Publication number
- CN104731671B CN104731671B CN201310712639.8A CN201310712639A CN104731671B CN 104731671 B CN104731671 B CN 104731671B CN 201310712639 A CN201310712639 A CN 201310712639A CN 104731671 B CN104731671 B CN 104731671B
- Authority
- CN
- China
- Prior art keywords
- wrong plug
- data
- error
- wrong
- correcting code
- 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.)
- Active
Links
Landscapes
- Detection And Correction Of Errors (AREA)
- Error Detection And Correction (AREA)
Abstract
本发明涉及电子技术领域,尤其涉及一种插错装置及方法、纠错码电路的验证设备和方法,用以解决现有的纠错码电路的验证设备中,插错方式单一,不灵活的技术问题。本发明实施例提供的插错装置包括:插错模块,用于在插错控制器的控制下对接收到的数据进行插错处理,并输出插错处理后的数据;插错控制器,内部预先配置有多种插错处理方式,用于按照选定的所述插错处理方式控制所述插错模块对所述插错模块接收到的数据进行插错处理。采用本发明实施例提供的插错装置,由于插错模块在插错控制器的控制下进行插错处理,插错方法更灵活,由于插错控制器内部预先配置有多种插错处理方式,因此,插错方式多样。
Description
技术领域
本发明涉及电子技术领域,尤其涉及一种插错装置及方法、纠错码电路的验证设备和方法。
背景技术
随着便携式多媒体技术的发展,闪存广泛应用于各种消费类电子产品中。但由于在闪存的硬件生产和使用过程中容易产生坏块,或者闪存的写入和读取数据过程中存在外部干扰,这些原因都可能造成闪存内存储数据出错。通常纠错码(Error Correcting Code,ECC)电路检测闪存内存储数据的错误,其能够对检测到的错误进行修复,有效保证数据的稳定性。
现有的一种ECC电路的验证设备如图1所示。图1中,待测***(Design Under Test英文全称,DUT)即为需要验证的ECC电路,验证***(ENVironment,ENV)就是对ECC电路进行验证的各个组件的总和。
在图1所示的验证设备中,随机数发生器用于产生指定数目的随机数。校验数据获取单元用于在打开ECC功能的模式下,将从随机数发生器收到的随机数写入到ECC电路中;在关闭ECC功能的模式下,读出ECC电路生成的校验码,并将读出的校验码送入测试单元。测试数据获取单元用于在从随机数发生器收到的随机数中,随机选择若干比特(比特数应在ECC电路可纠错的范围内)进行反转后形成测试数据后送入测试单元。
测试单元用于在关闭ECC功能的模式下,将从测试数据获取单元处接收的测试数据和从校验数据获取单元处接收的上述校验码一同写入ECC电路中;在打开ECC功能模式下,从ECC电路中读取经过纠错后的数据。由于测试单元是在关闭ECC功能的模式下写入,写入的上述数据被存储到ECC电路的存储器模型内;在关闭ECC功能的模式下对存储器模型里读出的数据进行解码和纠错。如果写入的测试数据有错误,则读出的数据就为经过ECC路纠错后的数据。验证单元,用于在测试单元读取测试数据和校验数据过程中检测ECC电路是否报错,如果报错,则说明电路纠错功能正常;如果没有报错,则说明电路功能异常。
在图1所示的验证设备中,测试数据获取单元在从随机数发生器收到的随机数中,随机选择若干比特进行反转后形成测试数据后送入测试单元,插错方式单一,不灵活。
发明内容
本发明实施例提供一种插错装置及方法、纠错码电路的验证设备和方法,用以解决现有的纠错码电路的验证设备中,插错方式单一,不灵活的技术问题。
第一方面,本发明实施例提供一种插错装置,该装置包括:
插错模块,用于在插错控制器的控制下对接收到的数据进行插错处理,并输出插错处理后的数据;
插错控制器,内部预先配置有多种插错处理方式,用于按照选定的所述插错处理方式控制所述插错模块对所述插错模块接收到的数据进行插错处理。
本方案中,由于插错模块在插错控制器的控制下进行插错处理,插错方法更灵活,由于插错控制器内部预先配置有多种插错处理方式,因此,插错方式多样。
较佳地,所述插错处理方式包括:
对所述插错模块接收到的数据中包括数据位、校验位和用户数据位在内的任意一项或多项进行插错处理的方式。
采用本方案,可实现对数据位、校验位和用户数据位的任意一项或多项进行插错处理,处理方法更加灵活多样。
较佳地,所述插错处理方式还包括:
对所述插错模块接收到的数据中指定位置的数据进行插错处理的方式;
对所述插错模块接收到的数据进行不大于特定纠错装置的纠错能力上限的任意插错数量的插错处理的方式;
对所述插错模块接收到的数据进行大于特定纠错装置的纠错能力上限的任意插错数量的插错处理的方式;以及
对所述插错模块接收到的数据进行遍历插错处理的方式;
其中,所述特定纠错装置为接收所述插错模块输出的插错处理后的数据,并对接收的数据进行纠错处理的装置。
采用本方案,可实现指定位置的插错处理、不大于特定纠错装置的纠错能力上限的任意插错数量的插错处理、大于特定纠错装置的纠错能力上限的任意插错数量的插错处理和遍历插错处理,插错处理方式灵活多样。
较佳地,所述插错处理方式还包括:
对所述插错模块接收到的数据的指定扇区和/或指定字节进行插错处理的方式。
采用本方案,可指定插错的扇区和/或字节。
较佳地,所述装置还包括:软件配置控制器,用于通过软件配置插错控制器的插错处理方式。
采用本方案,可实现通过软件方式配置插错控制器的插错处理方式。
第二方面,本发明实施例还提供了一种纠错码电路的验证设备,包括随机激励发生器、数据比较器,该设备还包括本发明实施例第一方面提供的任意一种插错装置,其中,
随机激励发生器,用于向纠错码电路和数据比较器发送随机数;
插错装置,用于接收由纠错码电路输出的编码后的数据,并对所述编码后的数据进行插错处理,将插错处理后的数据反馈给纠错码电路进行纠错处理,所述编码后的数据是纠错码电路对从所述随机激励发生器处接收的所述随机数进行编码后的得到的数据;
数据比较器,用于从纠错码电路处接收纠错码电路进行所述纠错处理后输出的纠错处理后的数据,并将从随机激励发生器处接收的所述随机数与从纠错码电路接收的所述纠错处理后的数据进行比较,根据比较结果确定出针对纠错码电路的第一验证结果。
采用本方案,可在对ECC电路的验证过程中,采用灵活多样的插错方式对ECC电路数据的数据进行插错处理,实现对ECC电路验证的全面性。
较佳地,所述设备还包括:软件纠错器和软件纠错结果比较器,其中,
软件纠错器,用于获取插错装置中的插错模块向纠错码电路输出的插错处理后的数据,并对获取的插错处理后的数据进行纠错,将纠错后的数据输出给软件纠错结果比较器,其中,软件纠错器是用软件方法实现所述纠错码电路的纠错功能的器件;
软件纠错结果比较器,用于接收纠错码电路输出的纠错后的数据,并将从纠错码电路接收的纠错后的数据与软件纠错器输出的纠错后的数据进行比较,根据比较结果确定出针对纠错码电路的第二验证结果。
采用本方案,通过软件纠错器模拟ECC电路的纠错处理,通过软件纠错结果比较器确定出针对ECC电路的第二验证结果,供验证人员结合第一验证结果分析对ECC电路的验证情况,验证结果更详细,使得验证人员的分析更准确。
较佳地,所述设备还包括:软件配置控制器,用于配置所述随机激励发生器向纠错码电路和数据比较器发送随机数的数据量。
采用本方案,可实现随机激励发生器发送数据量随机的随机数,对ECC电路的验证更充分。
第三方面,本发明实施例还提供了一种插错方法,该方法包括:
插错装置的插错模块接收数据;
插错装置的插错模块在插错装置的插错控制器的控制下,按照插错控制器从内部预先配置的多种插错处理方式中选定的所述插错处理方式,对接收到的数据进行插错处理,并输出插错处理后的数据。
本方案中,由于插错模块在插错控制器的控制下进行插错处理,插错方法更灵活,由于插错控制器内部预先配置有多种插错处理方式,因此,插错方式多样。
较佳地,所述插错处理方式包括:
对插错装置的插错模块接收到的数据中包括数据位、校验位和用户数据位在内的任意一项或多项进行插错处理的方式。
采用本方案,可实现对数据位、校验位和用户数据位的任意一项或多项进行插错处理,处理方法更加灵活多样。
较佳地,所述插错处理方式还包括:
对插错装置的插错模块接收到的数据中指定位置的数据进行插错处理的方式;
对插错装置的插错模块接收到的数据进行不大于特定纠错装置的纠错能力上限的任意插错数量的插错处理的方式;
对插错装置的插错模块接收到的数据进行大于特定纠错装置的纠错能力上限的任意插错数量的插错处理的方式;以及
对插错装置的插错模块接收到的数据进行遍历插错处理的方式;
其中,所述特定纠错装置为接收插错装置的插错模块输出的插错处理后的数据,并对接收的数据进行纠错处理的装置。
采用本方案,可实现指定位置的插错处理、不大于特定纠错装置的纠错能力上限的任意插错数量的插错处理、大于特定纠错装置的纠错能力上限的任意插错数量的插错处理和遍历插错处理,插错处理方式灵活多样。
较佳地,所述插错处理方式还包括:
对插错装置的插错模块接收到的数据的指定扇区和/或指定字节进行插错处理的方式。
采用本方案,可指定插错的扇区和/或字节。
第四方面,本发明实施例还提供了一种纠错码电路的验证方法,包括:
随机激励发生器向纠错码电路和数据比较器发送随机数;
插错装置接收由纠错码电路输出的编码后的数据,并对所述编码后的数据进行插错处理,将插错处理后的数据反馈给纠错码电路进行纠错处理,其中,所述编码后的数据是纠错码电路对从所述随机激励发生器处接收的所述随机数进行编码后的得到的数据;
数据比较器从纠错码电路处接收纠错码电路进行所述纠错处理后输出的纠错处理后的数据,并将从随机激励发生器处接收的所述随机数与从纠错码电路接收的所述纠错处理后的数据进行比较,根据比较结果确定出针对纠错码电路的第一验证结果;
其中,插错装置采用本发明实施例第三方面提供的任一种插错处理方法对从纠错码电路处接收的编码后的数据进行插错处理。
采用本方案,可在对ECC电路的验证过程中,采用灵活多样的插错方式对ECC电路数据的数据进行插错处理,实现对ECC电路验证的全面性。
较佳地,在插错装置对从纠错码电路处接收的编码后的数据进行插错处理后,该方法还包括:
软件纠错器获取插错装置向纠错码电路输出的插错处理后的数据,并对获取的插错处理后的数据进行纠错,将纠错后的数据输出给软件纠错结果比较器,其中,软件纠错器是用软件方法实现纠错码电路的纠错功能的器件;
软件纠错结果比较器接收纠错码电路输出的纠错后的数据,并将从纠错码电路接收的纠错后的数据与软件纠错器输出的纠错后的数据进行比较,根据比较结果确定出针对纠错码电路的第二验证结果。
采用本方案,通过软件纠错器模拟ECC电路的纠错处理,通过软件纠错结果比较器确定出针对ECC电路的第二验证结果,供验证人员结合第一验证结果分析对ECC电路的验证情况,验证结果更详细,使得验证人员的分析更准确。
附图说明
图1为现有的一种ECC电路的验证设备的电路图;
图2为本发明实施例提供的插错装置的结构示意图;
图3为本发明实施例提供的插错装置中,插错控制器的结构示意图;
图4为本发明实施例提供的ECC电路验证设备的结构示意图;
图5为本发明实施例提供的插错方法的流程图;
图6为本发明实施例提供的ECC电路验证方法的流程图。
具体实施方式
本发明实施例提供一种插错装置及方法、纠错码电路的验证设备和方法,用以解决现有的纠错码电路的验证设备中,插错方式单一,插错不灵活的技术问题。在本发明实施例提供的插错装置包括:插错模块,用于在插错控制器的控制下对接收到的数据进行插错处理,并输出插错处理后的数据;插错控制器,,内部预先配置有多种插错处理方式,用于按照选定的所述插错处理方式控制插错模块对接收到的数据进行插错处理。由于该插错装置中,插错控制器内部预先配置有多种插错处理方式,可按照选定的所述插错处理方式控制插错模块对接收到的数据进行插错处理,插错处理的方法更灵活。
首先,对本发明实施例提供的插错装置进行说明,然后具体说明本发明实施例提供的纠错码电路的验证设备,最后说明本发明实施例提供的插错方法和纠错码电路的验证方法。
图2为本发明实施例提供的一种插错装置的结构示意图。如图2所示,该装置包括:
插错模块201,用于在插错控制器202的控制下对接收到的数据进行插错处理,并输出插错处理后的数据;
插错控制器202,内部预先配置有多种插错处理方式,用于按照选定的插错处理方式控制插错模块201对接收到的数据进行插错处理。
可选地,该装置还包括软件配置控制器203,用于通过软件配置插错控制器202的插错处理方式。其中,操作人员可根据需求对软件配置控制器203进行设置,使软件配置控制器203配置插错控制器202的插错处理方式,比如:控制插错处理的插错方式、插错数量以及插错位置等。
可选地,本发明实施例提供的插错装置中,插错控制器202在软件配置控制器203的配置下,可模拟实际应用中可能出现的所有数据出错情况,对插错模块201进行控制。可选地,插错控制器202内可包括软件配置接收器,用于接收软件配置控制器203的配置数据,并根据接收的配置数据生成插错控制信号发给其内的扇区位置控制器、比特模式控制器、定点插错控制器、纠错范围内随机插错控制器、超出纠错范围随机插错控制器、遍历插错控制器(如图3所示),使其对插错模块201的插错处理方式进行控制,具体用途可参见表1。
表1
图3和表1中,插错控制器202中的扇区位置控制器和比特模式控制器对于定点插错控制器、纠错范围内随机插错控制器、超出纠错范围随机插错控制器、遍历插错控制器均都适用,上述任一插错控制器对应的插错方式中,均可以通过扇区位置控制器对指定扇区进行插错,或对所有传输的扇区都进行插错;上述任一插错控制器对应的插错方式中,也均可以通过比特模式控制器对指定插错字节内的单个比特差错,或对指定插错字节的多个比特插错。
可选地,插错模块201在进行插错处理时,根据插错控制器202发出的控制信号,对接收的编码后的数据进行插错处理,具体方法可包括:对接收的数据进行计数,采样指定插错位置的数据,对指定比特位进行位反转操作(比特1反转成比特0,比特0反转成比特1),然后存储,在需要输出时输出。
可选地,插错模块201的输入接口和输出接口的设计分别符合预设的数据接口规范,以便能够正确接收数据,并输出符合接口规范要求的数据。比如,当本发明实施例的插错装置应用于对ECC电路的验证时,插错模块201用于接收ECC电路编码后数据的输入接口应符合ECC电路存储器接口的规范,以能够正确接收ECC电路编码后的数据;在对从ECC电路输入的数据进行插错处理后,输出的数据由于需要返回给ECC电路进行验证,所以也应符合ECC电路存储器接口的规范,这样就相当于把插错模块201和输出的数据看成一个存储器整体,该存储器整体对数据的存储满足ECC电路存储器接口的规范。
采用本发明实施例提供的插错装置,由于插错模块在插错控制器的控制下对接收到的数据进行插错处理,与图1中所示的差测试数据获取单元的插错处理相比,处理更灵活。进一步地,插错装置中包括软件配置控制器时,可实现通过软件配置控制器配置插错控制器控制插错模块的插错处理方式。
进一步地,本发明实施例提供的插错装置可通过定点插错控制器、可纠错范围内的随机插错控制器、超出范围的随机插错控制器和遍历插错控制器,分别提供定点插错、可纠错范围内的随机插错、超出范围的随机插错和遍历插错四种插错方式。进一步地,对于上述四种插错处理的方式,可通过扇区位置控制器、比特模式控制器分别对插错扇区和插错比特进行控制。因此,与图1中所示的测试数据获取单元的插错处理相比,可提供丰富多样的插错方式,更全面模拟出现实数据出错的情况。
接下来,具体说明本发明实施例提供的ECC电路的验证设备。如图4所示,该验证设备包括:随机激励发生器401、数据比较器402,以及本发明实施例提供的插错装置403,其中,
随机激励发生器401,用于向ECC电路和数据比较器402发送随机数;
插错装置403,用于接收由ECC电路输出的编码后的数据,并对编码后的数据进行插错处理,将插错处理后的数据反馈给ECC电路进行纠错处理,其中,编码后的数据是ECC电路对从随机激励发生器处接收的随机数进行编码后的得到的数据;
数据比较器402,从ECC电路处接收ECC电路进行纠错处理后输出的数据,并将从随机激励发生器处接收的所述随机数与从ECC电路接收的纠错处理后的数据进行比较,根据比较结果确定出针对ECC电路的第一验证结果。
其中ECC电路输出的纠错处理后的数据是ECC电路对从插错装置403接收的插错处理后的数据进行纠错后得到的数据。
可选地,本发明实施例提供的ECC电路的验证设备中除了插错装置403中的软件配置控制器之外,还可以包括另一个软件配置控制器B406,其可以与插错装置403中的软件配置控制器分开设置,也可以合成一个软件配置控制器来实现,用于对随机激励发生器401进行软件配置,控制其产生随机数的方式(比如,产生随机数的数据量)。
可选地,随机激励发生器401还可以在软件配置控制器B406的配置下,生成随机激励,对ECC电路的工作模式、传输数据方式和传输数据数量进行控制。具体地,随机激励发生器401可根据软件配置控制器B406的配置数据生成符合待测的ECC电路接口规格的随机激励(即随机信号),驱动待测的ECC电路运行。比如:ECC电路的接口符合高级高性能总线(AHB(Advanced High performance Bus,AHB)协议,随机激励发生器401就相当于一个AHB总线的主模块(MASTER),其把接收到软件配置控制器B406的配置数据转换成ECC电路可识别的AHB控制信号,对ECC电路(相当于AHB从模块(SLAVE))进行配置。
可选地,随机激励发生器401还可生成随机时钟信号(包括时钟频率随机信号和时钟相位随机信号)。通过随机时钟信号可以更全面地验证ECC电路工作在不同时钟下工作时的正确性,也可以验证ECC电路的健壮性(是否能在几兆至几百兆时钟频率下正常运行)。需要说明的是,若随机激励发生器401不生成随机时钟信号,则本发明实施例提供的验证设备可提供固定频率和相位的时钟信号供ECC电路使用(提供方法可与现有的ECC验证设备的方法相同),只不过无法验证ECC电路在随机时钟信号下工作是否正常,但也能实现验证ECC电路的其他功能和性能。
可选地,随机激励发生器401还可生成随机控制信号,用于验证ECC电路对接口控制信号处理的准确性。例如:随机激励发生器401产生随机的AHB接口的控制信号hready(出现的时刻随机和/或信号的长度随机),可实现验证在不同的控制信号hready下,ECC电路对该信号的处理是否正确。需要说明的是,若随机激励发生器401不生成随机控制信号,则本发明实施例提供的验证设备可提供固定长度和出现时刻的控制信号供ECC电路使用,以使ECC电路能够正常工作(提供方法可与现有的ECC验证设备的方法相同),只不过无法验证ECC电路在随机控制信号下工作是否正常,但也能验证ECC电路的其他功能和性能。
可选地,随机激励发生器401产生随机数时,也可实现本发明实施例提供的验证设备每次对ECC电路读写操作的数据量随机,每次读写操作分成多少个数据单位进行ECC编解码随机,每次编解码的数值随机等),以实现对ECC电路的全面验证。
比如:对闪存的读写操作大多是以页为单位,根据页的大小又均分为若干扇区进行ECC编解码。随机激励发生器401可实现每次读写操作的页大小随机,每次ECC编解码的扇区大小随机,对编解码的数据随机等,从而达到用于验证ECC电路的数据的多样性。
下面,对随机激励发生器401生成随机控制信号,对待测***(DUT),即ECC电路进行控制的原理加以说明。
随机激励发生器401生成随机控制信号,对ECC电路的寄存器进行配置,启动ECC电路使能位,控制ECC电路进行读、写操作及编解码操作。在对ECC电路进行写操作时,ECC电路对随机激励发生器401发来的随机数进行ECC编码,将编码后的数据和校验码(可选地,还可包括用户数据)送入插错装置403的插错模块进行插错处理;在对ECC电路进行读操作时,ECC电路从插错装置403处读取已经***错误的随机数、校验码(可选地,还可包括用户数据),进行ECC解码以及纠错处理,并把纠错后的数据发给数据比较器402中进行比较。
下面,对本发明实施例提供的验证设备中的数据比较器402的工作原理进行具体说明。在对ECC电路进行写操作时,数据比较器402保存随机激励发生器401产生的随机数(未经过ECC电路编码的数据);在对ECC电路进行读操作时,数据比较器402从ECC电路中读取经过ECC电路纠错后的数据,读取的数据是ECC电路对从插错装置403接收的插错处理后的数据进行纠错后得到的数据。数据比较器402将读取的数据与之前写操作时保存的随机数进行比较,若相同,则确定ECC电路工作正常,释放在写操作时保存随机数的数据存储空间。
可选地,本发明实施例提供的ECC电路的验证设备还包括:软件纠错器404和软件纠错结果比较器405,其中,
软件纠错器404,用于获取插错装置403中的插错模块向ECC电路输出的插错处理后的数据,并对获取的插错处理后的数据进行纠错,将纠错后的数据输出给软件纠错结果比较器405,其中,软件纠错器404是用软件方法实现ECC电路的纠错功能的器件;
软件纠错结果比较器405,用于将ECC电路输出的纠错后的数据与软件纠错器404输出的纠错后的数据进行比较,根据比较结果确定出针对ECC电路的第二验证结果,在比较结果不同时,可报告出各出错点的数据和位置,以供后续调试使用
软件纠错器404获取插错装置403中的插错模块向ECC电路输出的插错处理后的数据的方式有多种,一种可选的方式是,通过内置的存储器总线监视器获取。当验证设备对ECC电路进行读操作时,存储器总线器监视并抓取存储器总线数据(此数据就是之前写操作时已经进行插错的随机数、校验码和用户数据。
软件纠错器404利用软件方法实现待测的ECC电路功能,其实现的功能与待测的ECC电路完全相同。对获取的插错处理后的数据进行ECC解码操作,将纠错后的数据发给软件纠错结果比较器405。
软件纠错结果比较器405在ECC电路进行完一次ECC硬件纠错后,读取ECC电路纠错后的数据(可选地,可通过内置的纠错结果监视器从ECC电路处获取ECC电路纠错后的数据),然后将从ECC电路读取的纠错后的数据与从软件纠错器404读取的纠错后的数据进行比较,若一致,则证明ECC电路硬件工作正常,否则,说明ECC电路硬件出错。可选地,可生成报告文件,比如:列出每个扇区软硬件结果的对比信息。若ECC电路纠错后的数据和软件纠错器404纠错后的数据不一致,则分别给出ECC电路纠错后报告出的错误个数和错误位置以及软件纠错器404报告出的错误个数和错误位置,供后续调试使用。
下面,通过将本发明实施例提供的验证设备与与图1所示的验证设备进行比较,说明本发明实施例提供的验证设备的优点。
首先,图1所示的验证设备在获取校验码,以及写入测试数据时都需要关闭ECC功能。而实际应用ECC功能是一直打开的,不会关闭。在验证时人为的关闭ECC功能,可能导致遗漏了ECC电路功能的缺陷。比如:在向ECC电路写入数据进行编码,从ECC电路读取数据进行解码的过程中,ECC电路在实现时,可能存在编码后ECC电路内部数据未清空的情况,如果ECC功能一直打开,则这些残存的数据会影响后续的解码。但是如果中间关闭ECC功能,ECC电路会额外进行一次内部数据的清空操作,那么编码过程中未清空的内部数据的缺陷在图1所示的验证设备的验证过程中就会被掩盖掉,就无法显现出来。
而采用本发明实施例提供的验证设备,在验证过程中无需关闭ECC功能,因此能够避免对上述可能出现的缺陷验证不出来的问题。
其次,图1所示的验证设备存在效率低,整个验证过程没有实现验证的自动化,人为干预较多的问题,每验证一组数据要对ECC电路读写各2次。而在本发明实施例中,随机激励发生器401自动产生随机控制信号和随机时钟信号,驱动ECC电路进行ECC编解码操作以及纠错处理。本发明实施例提供的验证设备可由数据比较器402和软件纠错结果比较器405自动生成验证报告,供验证人员分析,将验证人员的人工干预降到了最小,节约了人员成本,同时也减少了人工干预带来的出错几率。
然后,可通过软件配置控制器(包括插错装置403中的软件配置控制器和软件配置控制器B),定制各种验证方案,验证人员只用根据验证需求编写软件控制程序,就可以实现对随机控制信号、随机时钟信号、随机数的生成方式以及插错方式的设置,实现各种验证方案。
此外,图1所示的验证设备只能实现对数据位的插错,而本发明实施例提供的插错装置和验证设备可实现对数据位、校验位和用户数据位的插错。并且,本发明实施例中,通过插错装置403提供的定点插错控制器、可纠错范围内的随机插错控制器、超出范围的随机插错控制器和遍历插错控制器,提供四种不同到插错方式;对于每种插错方式,可通过扇区位置控制器、比特模式控制器分别对插错扇区和插错比特进行控制,使得对ECC电路的验证更接近真实应用。其中纠错范围内的随机插错控制器可用于验证前期的随机功能扫描阶段和验证后期收集覆盖率阶段,有助于完全自动化的迅速覆盖绝大多数验证点。定点插错控制器可用于验证过程的调试阶段,帮助验证人员准确定位。超出纠错范围内的随机插错控制器用于针对错误个数超出纠错能力时的电路验证。遍历插错控制器可用于收集覆盖率的后期阶段,对传输数据的每个比特进行插错,提高功能覆盖率。
最后,图1所示的验证设备设定了插错的比特数,而插错的位置是随机的,如果出错,难以准确定位错误的比特位置。而本发明实施例中,无论采用哪种插错方式,具体的插错位置都是可知的,可以通过插错装置把具体插错的位置在报告文件中报告出来,易于实现准确定位错误的比特位置。
可选地,本发明实施例提供的验证设备可还包括:验证流程控制器,用于根据下述流程实现对ECC电路验证过程的控制:
验证流程控制器可通过软件配置控制器,或直接控制插错装置403,首先对从ECC电路处接收的编码后的数据进行不大于ECC电路的纠错能力上限的任意插错数量的插错处理后,对ECC电路进行N次验证,其中N为正整数;
然后,验证流程控制器在根据上述N次验证得到的N个第一验证结果确定上述N次验证中存在ECC电路纠错失败时,根据第二验证结果确定纠错失败的出错位置,控制插错装置403对从ECC电路处接收的编码后的数据中的上述出错位置的数据进行插错处理后,对ECC电路进行验证。
通过该可选的方案,可实现先对ECC电路进行N次不大于ECC电路的纠错能力上限的任意插错数量的插错处理,以实现迅速覆盖大多数出错的情况,可以先打开随机插错控制器进行完全随机的验证。然后,针对具体的出错位置,单独进行插错验证,完成ECC电路的调试。
可选地,在对一组ECC编码后的数据(包括随机数和校验码,可选地,还可包括用户数据)进行插错验证时,可按照如下顺序进行验证:首先,进行不大于ECC电路的纠错能力上限的任意插错数量的随机插错方式下的验证,接着进行指定位置的数据进行插错处理的插错方式下的验证,然后,再进行大于ECC电路的纠错能力上限的任意插错数量的插错处理方式下的验证,最后进行遍历插错处理方式下的验证。上述ECC电路验证流程可参见后面的实施例一。
实施例一
在对纠错能力为60比特的BCH ECC电路进行验证时,写入ECC电路的随机数的长度设为1024字节,对应的校验码长度为105字节,可选的用户数据长度为为4字节。
首先,为了迅速能覆盖到大多数出错的覆盖情况,可以先打开图3所示的纠错范围内随机插错控制器,对ECC电路进行完全随机的验证,在0到60之间选择一个随机数Rand做为插错数目,然后在随机数据、校验码和用户数据中随机选择Rand个字节对每个字节的0到7比特位随机选择一个比特位进行插错。
然后,分析验证得到的结果,判断是否存在纠错结果出错的验证实例,把出错的实例单独列出来进行分析,查看具体在哪个位置的插错ECC没有纠错成功。然后把出错点的具***置配置给图3所示的定点插错控制器,对此出错点单独进行插错验证,完成ECC电路的调试。
接下来,在验证和调试完ECC纠错范围内的出错情况后,开始验证超出纠错范围的插错。选择一个大于60的随机数对随机数、校验码和用户数据进行循环随机插错,验证ECC电路此种情况是否能报出超出纠错范围。在上述验证的同时,打开覆盖率的收集,从覆盖率上直观地检测是否各功能点都被覆盖到。
最后,打开图3所示的遍历插错控制器,每次对ECC电路读写操作***60个错误,从第0字节一直循环插错到1133字节(1024个随机数、105个校验码和4个用户数据),遍历完每个字节的每个比特。
本发明实施例还提供了一种插错方法,由于该插错方法解决问题的原理与本发明实施例提供的插错装置类似,对该方法的实施可参考插错装置的实施,重复之处不再赘述。
图5为本发明实施例提供的插错方法的流程图。如图5所示,该方法包括:
S501:插错装置的插错模块接收数据;
S502:插错装置的插错模块在插错装置的插错控制器的控制下,按照插错控制器从内部预先配置的多种插错处理方式中选定的所述插错处理方式,对接收到的数据进行插错处理,并输出插错处理后的数据。
可选地,插错处理方式包括:
对插错装置的插错模块接收到的数据中包括数据位、校验位和用户数据位在内的任意一项或多项进行插错处理的方式。
可选地,插错处理方式还包括:
对插错装置的插错模块接收到的数据中指定位置的数据进行插错处理的方式;
对插错装置的插错模块接收到的数据进行不大于特定纠错装置的纠错能力上限的任意插错数量的插错处理的方式;
对插错装置的插错模块接收到的数据进行大于特定纠错装置的纠错能力上限的任意插错数量的插错处理的方式;以及
对插错装置的插错模块接收到的数据进行遍历插错处理的方式;
其中,所述特定纠错装置为接收插错装置的插错模块输出的插错处理后的数据,并对接收的数据进行纠错处理的装置。
可选地,插错处理方式还包括:
对插错装置的插错模块接收到的数据的指定扇区和/或指定字节进行插错处理的方式。
本发明实施例还提供了一种ECC电路的验证方法,由于该方法解决问题的原理与本发明实施例提供的ECC电路验证装置类似,对该方法的实施可参考验证设备的实施,重复之处不再赘述。
图6为本发明实施例提供的ECC电路验证方法的流程图。如图6所示,该方法包括:
S601:随机激励发生器向ECC电路和数据比较器发送随机数;
S602:插错装置接收由ECC电路输出的编码后的数据,并对编码后的数据进行插错处理,将插错处理后的数据反馈给纠错码电路进行纠错处理,其中,编码后的数据是ECC电路对从随机激励发生器处接收的随机数进行编码后的得到的数据;
S603:数据比较器从ECC电路处接收ECC电路进行纠错处理后输出的数据,并将从随机激励发生器处接收的随机数与从ECC电路接收的纠错处理后的数据进行比较,根据比较结果确定出针对ECC电路的第一验证结果;
其中,插错装置采用本发明实施例提供的任一种插错方法对从ECC电路处接收的编码后的数据进行插错处理。
在步骤S602后,该方法还包括:
S604:软件纠错器获取插错装置向ECC电路输出的插错处理后的数据,并对获取的插错处理后的数据进行纠错,将纠错后的数据输出给软件纠错结果比较器,其中,软件纠错器是用软件方法实现ECC电路的纠错功能的器件;
S605:软件纠错结果比较器接收ECC电路输出的纠错后的数据,并将从ECC电路接收的纠错后的数据与软件纠错器输出的纠错后的数据进行比较,根据比较结果确定出针对ECC电路的第二验证结果。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (12)
1.一种插错装置,其特征在于,该装置包括:
插错模块,用于在插错控制器的控制下对接收到的数据进行插错处理,并输出插错处理后的数据;
插错控制器,内部预先配置有多种插错处理方式,用于按照选定的所述插错处理方式控制所述插错模块对所述插错模块接收到的数据进行插错处理;
所述插错处理方式包括:
对所述插错模块接收到的数据中指定位置的数据进行插错处理的方式;
对所述插错模块接收到的数据进行不大于特定纠错装置的纠错能力上限的任意插错数量的插错处理的方式;
对所述插错模块接收到的数据进行大于特定纠错装置的纠错能力上限的任意插错数量的插错处理的方式;以及
对所述插错模块接收到的数据进行遍历插错处理的方式;
其中,所述特定纠错装置为接收所述插错模块输出的插错处理后的数据,并对接收的数据进行纠错处理的装置。
2.如权利要求1所述的装置,其特征在于,所述插错处理方式还包括:
对所述插错模块接收到的数据中包括数据位、校验位和用户数据位在内的任意一项或多项进行插错处理的方式。
3.如权利要求1或2所述的装置,其特征在于,所述插错处理方式还包括:
对所述插错模块接收到的数据的指定扇区和/或指定字节进行插错处理的方式。
4.如权利要求1或2所述的装置,其特征在于,所述装置还包括:软件配置控制器,用于通过软件配置插错控制器的插错处理方式。
5.一种纠错码电路的验证设备,包括随机激励发生器、数据比较器,其特征在于,该设备还包括如权利要求1~4任一项所述的插错装置,其中,
随机激励发生器,用于向纠错码电路和数据比较器发送随机数;
插错装置,用于接收由纠错码电路输出的编码后的数据,并对所述编码后的数据进行插错处理,将插错处理后的数据反馈给纠错码电路进行纠错处理,其中,所述编码后的数据是纠错码电路对从所述随机激励发生器处接收的所述随机数进行编码后的得到的数据;
数据比较器,用于从纠错码电路处接收纠错码电路进行所述纠错处理后输出的纠错处理后的数据,并将从随机激励发生器处接收的所述随机数与从纠错码电路接收的所述纠错处理后的数据进行比较,根据比较结果确定出针对纠错码电路的第一验证结果。
6.如权利要求5所述的设备,其特征在于,所述设备还包括:软件纠错器和软件纠错结果比较器,其中,
软件纠错器,用于获取插错装置中的插错模块向纠错码电路输出的插错处理后的数据,并对获取的插错处理后的数据进行纠错,将纠错后的数据输出给软件纠错结果比较器,其中,软件纠错器是用软件方法实现所述纠错码电路的纠错功能的器件;
软件纠错结果比较器,用于接收纠错码电路输出的纠错后的数据,并将从纠错码电路接收的纠错后的数据与软件纠错器输出的纠错后的数据进行比较,根据比较结果确定出针对纠错码电路的第二验证结果。
7.如权利要求5或6所述的设备,其特征在于,所述设备还包括:软件配置控制器,用于配置所述随机激励发生器向纠错码电路和数据比较器发送的随机数的数据量。
8.一种插错方法,其特征在于,该方法包括:
插错装置的插错模块接收数据;
插错装置的插错模块在插错装置的插错控制器的控制下,按照插错控制器从内部预先配置的多种插错处理方式中选定的所述插错处理方式,对接收到的数据进行插错处理,并输出插错处理后的数据;
所述插错处理方式包括:
对插错装置的插错模块接收到的数据中指定位置的数据进行插错处理的方式;
对插错装置的插错模块接收到的数据进行不大于特定纠错装置的纠错能力上限的任意插错数量的插错处理的方式;
对插错装置的插错模块接收到的数据进行大于特定纠错装置的纠错能力上限的任意插错数量的插错处理的方式;以及
对插错装置的插错模块接收到的数据进行遍历插错处理的方式;
其中,所述特定纠错装置为接收插错装置的插错模块输出的插错处理后的数据,并对接收的数据进行纠错处理的装置。
9.如权利要求8所述的方法,其特征在于,所述插错处理方式还包括:
对插错装置的插错模块接收到的数据中包括数据位、校验位和用户数据位在内的任意一项或多项进行插错处理的方式。
10.如权利要求8或9所述的方法,其特征在于,所述插错处理方式还包括:
对插错装置的插错模块接收到的数据的指定扇区和/或指定字节进行插错处理的方式。
11.一种纠错码电路的验证方法,其特征在于,该方法包括:
随机激励发生器向纠错码电路和数据比较器发送随机数;
插错装置接收由纠错码电路输出的编码后的数据,并对所述编码后的数据进行插错处理,将插错处理后的数据反馈给纠错码电路进行纠错处理,其中,所述编码后的数据是纠错码电路对从所述随机激励发生器处接收的所述随机数进行编码后的得到的数据;
数据比较器从纠错码电路处接收纠错码电路进行所述纠错处理后输出的纠错处理后的数据,并将从随机激励发生器处接收的所述随机数与从纠错码电路接收的所述纠错处理后的数据进行比较,根据比较结果确定出针对纠错码电路的第一验证结果;
其特征在于,插错装置采用如权利要求8~10任一项所述的方法对从纠错码电路处接收的编码后的数据进行插错处理。
12.如权利要求11所述的方法,其特征在于,在插错装置对所述编码后的数据进行插错处理后,该方法还包括:
软件纠错器获取插错装置向纠错码电路输出的插错处理后的数据,并对获取的插错处理后的数据进行纠错,将纠错后的数据输出给软件纠错结果比较器,其中,软件纠错器是用软件方法实现纠错码电路的纠错功能的器件;
软件纠错结果比较器接收纠错码电路输出的纠错后的数据,并将从纠错码电路接收的纠错后的数据与软件纠错器输出的纠错后的数据进行比较,根据比较结果确定出针对纠错码电路的第二验证结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310712639.8A CN104731671B (zh) | 2013-12-20 | 2013-12-20 | 一种插错装置及方法、纠错码电路的验证设备和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310712639.8A CN104731671B (zh) | 2013-12-20 | 2013-12-20 | 一种插错装置及方法、纠错码电路的验证设备和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104731671A CN104731671A (zh) | 2015-06-24 |
CN104731671B true CN104731671B (zh) | 2018-09-25 |
Family
ID=53455583
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310712639.8A Active CN104731671B (zh) | 2013-12-20 | 2013-12-20 | 一种插错装置及方法、纠错码电路的验证设备和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104731671B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106843744B (zh) * | 2015-12-03 | 2020-05-26 | 群联电子股份有限公司 | 数据程序化方法与存储器储存装置 |
CN106933696A (zh) * | 2015-12-31 | 2017-07-07 | 北京国睿中数科技股份有限公司 | Ecc功能验证方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5384654A (en) * | 1976-12-30 | 1978-07-26 | Fujitsu Ltd | Error correction circuit having test function |
EP1164589A1 (en) * | 2000-06-12 | 2001-12-19 | Nec Corporation | Storage device having an error correction function |
JP2007041665A (ja) * | 2005-08-01 | 2007-02-15 | Nec Engineering Ltd | Ecc機能検査回路およびecc機能検査方法 |
CN102279776A (zh) * | 2010-06-11 | 2011-12-14 | 无锡中星微电子有限公司 | 一种错误检查与纠正能力的测试方法及装置 |
CN102646453A (zh) * | 2011-02-18 | 2012-08-22 | 安凯(广州)微电子技术有限公司 | NandFlash控制器中错误校正码模块的测试方法及*** |
-
2013
- 2013-12-20 CN CN201310712639.8A patent/CN104731671B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5384654A (en) * | 1976-12-30 | 1978-07-26 | Fujitsu Ltd | Error correction circuit having test function |
EP1164589A1 (en) * | 2000-06-12 | 2001-12-19 | Nec Corporation | Storage device having an error correction function |
JP2007041665A (ja) * | 2005-08-01 | 2007-02-15 | Nec Engineering Ltd | Ecc機能検査回路およびecc機能検査方法 |
CN102279776A (zh) * | 2010-06-11 | 2011-12-14 | 无锡中星微电子有限公司 | 一种错误检查与纠正能力的测试方法及装置 |
CN102646453A (zh) * | 2011-02-18 | 2012-08-22 | 安凯(广州)微电子技术有限公司 | NandFlash控制器中错误校正码模块的测试方法及*** |
Also Published As
Publication number | Publication date |
---|---|
CN104731671A (zh) | 2015-06-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106133537B (zh) | 一种fpga功能模块仿真验证方法及其*** | |
CN102169846B (zh) | 一种在集成电路晶圆测试过程中实现多维变量密码并行写入的方法 | |
CN105738854A (zh) | 智能电表嵌入式应用的模拟存储器测试板***及测试方法 | |
KR101933723B1 (ko) | 프로그램가능 프로토콜 발생기 | |
CN106445800A (zh) | 一种芯片验证的方法和装置 | |
US20080294943A1 (en) | Sata interface tester and testing method | |
US8356215B2 (en) | Testing apparatus and method for analyzing a memory module operating within an application system | |
CN103793032B (zh) | 用于确定上电复位的方法和装置 | |
CN111221693B (zh) | 一种NOR flash配置模块验证方法、***、装置和存储介质 | |
CN103885876A (zh) | 测试方法及设备 | |
CN114530188A (zh) | 一种半导体测试方法、***及存储介质 | |
CN104731671B (zh) | 一种插错装置及方法、纠错码电路的验证设备和方法 | |
CN114662427A (zh) | 一种逻辑***设计的调试方法及设备 | |
CN106326046B (zh) | 存储器控制器的验证环境平台 | |
CN105810273B (zh) | 一种核电站虚拟盘台及虚拟盘台测试方法 | |
CN105183641B (zh) | 一种内核模块的数据一致性校验方法及*** | |
CN106155855B (zh) | 对微处理器进行功能验证的方法及服务器 | |
CN109557900A (zh) | 一种验证dcs模拟机逻辑运算功能的测试方法及*** | |
CN104462626A (zh) | 基于vmm验证方法学的rfif验证平台及实现方法 | |
CN103838638B (zh) | Fpga外挂存储器校验方法及装置 | |
CN103839592A (zh) | 用于嵌入式快闪存储器的内建自测试方法及装置 | |
CN113220518A (zh) | 芯片验证***、芯片验证方法 | |
CN107452427A (zh) | 一种存储设备数据完整性的测试方法及*** | |
CN103165405A (zh) | 一种通过gpib接口实时生成多维变量密码方法 | |
CN111190786A (zh) | 基于uvm的测试构架、测试平台及测试方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder |
Address after: 519085 High-tech Zone, Tangjiawan Town, Zhuhai City, Guangdong Province Patentee after: ACTIONS TECHNOLOGY Co.,Ltd. Address before: 519085 High-tech Zone, Tangjiawan Town, Zhuhai City, Guangdong Province Patentee before: ACTIONS (ZHUHAI) TECHNOLOGY Co.,Ltd. |
|
CP01 | Change in the name or title of a patent holder |