一种BCH码译码方法和装置.pdf

上传人:Y94****206 文档编号:1107138 上传时间:2018-03-31 格式:PDF 页数:16 大小:670.66KB
返回 下载 相关 举报
摘要
申请专利号:

CN200910205545.5

申请日:

2009.10.26

公开号:

CN102045073A

公开日:

2011.05.04

当前法律状态:

授权

有效性:

有权

法律详情:

专利权人的姓名或者名称、地址的变更IPC(主分类):H03M 13/15变更事项:专利权人变更前:成都市华为赛门铁克科技有限公司变更后:华为数字技术(成都)有限公司变更事项:地址变更前:611731 四川省成都市高新区西部园区清水河片区变更后:611731 四川省成都市高新区西部园区清水河片区|||授权|||实质审查的生效IPC(主分类):H03M 13/15申请日:20091026|||公开

IPC分类号:

H03M13/15

主分类号:

H03M13/15

申请人:

成都市华为赛门铁克科技有限公司

发明人:

邢继元; 张琴; 梁剑

地址:

611731 四川省成都市高新区西部园区清水河片区

优先权:

专利代理机构:

北京三友知识产权代理有限公司 11127

代理人:

任默闻

PDF下载: PDF下载
内容摘要

本发明实施例提供一种BCH码译码方法和装置,所述方法包括:根据接收码计算伴随式;利用迭代算法根据所述伴随式求解错误位置多项式;利用钱式搜索算法根据所述错误位置多项式确定错误位置;对所述确定的错误位置上的错误值进行纠错得到恢复码。本发明实施例的BCH码译码方法和装置通过对riBM算法的改进,使并行BM迭代算法在资源和速度上都得到了优化。

权利要求书

1: 一种 BCH 码译码方法, 其特征在于, 所述方法包括 : 根据接收码计算伴随式 ; 利用迭代算法根据所述伴随式计算错误位置多项式, 包括 : 设置错误位置多项式在零次迭代下的初始值和所述错误位置多项式的辅助多项式在 零次迭代下的初始值为零 ; 设置错误值多项式在零次迭代下的初始值和所述错误值多项式 的辅助多项式在零次迭代下的初始值为所述伴随式的系数 ; 设置错误位置多项式在零次迭 代零次幂下的初始值和所述错误位置多项式的辅助多项式在零次迭代零次幂下的初始值 为1; 设置迭代系数在零次迭代下的初始值为 0 ; 设置迭代限制条件在零次迭代下的初始值 为1; 根据上述设置的初始值计算错误值多项式的辅助多项式、 错误位置多项式的辅助多项 式、 迭代系数以及迭代限制条件 ; 根据上述设置的初始值以及根据上述计算获得的错误值多项式的辅助多项式、 错误位 置多项式的辅助多项式、 迭代系数以及迭代限制条件, 计算错误值多项式 ; 根据上述设置的初始值以及根据上述计算获得的计算错误值多项式、 错误值多项式的 辅助多项式、 错误位置多项式的辅助多项式、 迭代系数以及迭代限制条件计算错误位置多 项式, 获得错误位置多项式 ; 利用钱式搜索算法根据所述错误位置多项式确定错误位置 ; 对所述确定的错误位置上的错误值进行纠错得到恢复码。
2: 根据权利要求 1 所述的方法, 其特征在于 : 错误位置多项式在零次迭代下的初始值和所述错误位置多项式的辅助多项式在零次 迭代下的初始值为零表示为 λi(0) = bi(0) = 0 其中, i = 1, 2, ......t ; 错误值多项式在零次迭代下的初始值和所述错误值多项式的辅助多项式在零次迭代 下的初始值为所述伴随式的系数, 数学式表示为 系数, i = 0, 1,…, 2t-1 ; 错误位置多项式在零次迭代零次幂下的初始值和所述错误位置多项式的辅助多项式 在零次迭代零次幂下的初始值为 1, 数学式表示为 λ0(0) = b0(0) = 1 ; 迭代系数在零次迭代下的初始值为 0, 数学式表示为 k(0) = 0 ; 迭代限制条件在零次迭代下的初始值为 1, 数学式表示为 γ(0) = 1。
3: 根据权利要求 2 所述的方法, 其特征在于, 根据上述设置的初始值计算错误值多项 式的辅助多项式、 错误位置多项式的辅助多项式、 迭代系数以及迭代限制条件, 包括 : 根据所述设置的初始值和下式计算错误值多项式的辅助多项式、 错误位置多项式的辅 助多项式、 迭代系数以及迭代限制条件 : 如果 δ0(r) ≠ 0 并且 k(r) ≥ 0, 则: 其中, Si 为所述伴随式的 否则, 其中, r为 2 迭代次数, i 为次方项。
4: 根据权利要求 3 所述的方法, 其特征在于, 根据上述设置的初始值以及根据上述计 算获得的错误值多项式的辅助多项式、 错误位置多项式的辅助多项式、 迭代系数以及迭代 限制条件, 计算错误值多项式, 包括 : 利用下式, 根据上述设置的初始值以及经过上述计算获得错误值多项式的辅助多项 式、 错误位置多项式的辅助多项式、 迭代系数以及迭代限制条件, 计算错误值多项式 ;
5: 根据权利要求 4 所述的方法, 其特征在于, 根据上述设置的初始值以及根据上述计 算获得的计算错误值多项式、 错误值多项式的辅助多项式、 错误位置多项式的辅助多项式、 迭代系数以及迭代限制条件计算错误位置多项式, 获得错误位置多项式, 包括 : 利用下式, 根据上述设置的初始值以及经过上述计算获得的计算错误值多项式、 错误 值多项式的辅助多项式、 错误位置多项式的辅助多项式、 迭代系数以及迭代限制条件计算 错误位置多项式 : 获得错误位置多 项式, 表示为 其中, i = 0, 1, ......, t。
6: 一种 BCH 码译码装置, 其特征在于, 所述装置包括 : 第一计算单元, 用于根据接收码计算伴随式 ; 第二计算单元, 用于利用迭代算法根据所述伴随式计算错误位置多项式, 该第二计算 单元包括 : 设置模块, 用于设置错误位置多项式在零次迭代下的初始值和所述错误位置多项式的 辅助多项式在零次迭代下的初始值为零 ; 设置错误值多项式在零次迭代下的初始值和所述 错误值多项式的辅助多项式在零次迭代下的初始值为所述伴随式的系数 ; 设置错误位置多 项式在零次迭代零次幂下的初始值和所述错误位置多项式的辅助多项式在零次迭代零次 幂下的初始值为 1 ; 设置迭代系数在零次迭代下的初始值为 0 ; 设置迭代限制条件在零次迭 代下的初始值为 1 ; 控制模块, 用于根据设置模块设置的初始值计算错误值多项式的辅助多项式、 错误位 置多项式的辅助多项式、 迭代系数以及迭代限制条件 ; 第一计算模块, 用于根据设置模块设置的初始值以及控制模块的计算结果计算错误值 多项式 ; 第二计算模块, 用于根据设置模块设置的初始值以及控制模块和第 一计算模块的计算结果计算错误位置多项式, 获得错误位置多项式 ; 确定单元, 用于利用钱式搜索算法根据所述错误位置多项式确定错误位置 ; 纠错单元, 用于对所述确定单元确定的错误位置上的错误值进行纠错得到恢复码。
7: 根据权利要求 6 所述的装置, 其特征在于, 所述设置模块设置的初始值具体为 : 错误位置多项式在零次迭代下的初始值和所述错误位置多项式的辅助多项式在零次 迭代下的初始值为零表示为 λi(0) = bi(0) = 0 其中, i = 1, 2, ......t ; 3 错误值多项式在零次迭代下的初始值和所述错误值多项式的辅助多项式在零次迭代 下的初始值为所述伴随式的系数, 数学式表示为 其中, Si 为所述伴随式的 系数, i = 0, 1,…, 2t-1 ; 错误位置多项式在零次迭代零次幂下的初始值和所述错误位置多项式的辅助多项式 在零次迭代零次幂下的初始值为 1, 数学式表示为 λ0(0) = b0(0) = 1 ; 迭代系数在零次迭代下的初始值为 0, 数学式表示为 k(0) = 0 ; 迭代限制条件在零次迭代下的初始值为 1, 数学式表示为 γ(0) = 1。
8: 根据权利要求 7 所述的装置, 其特征在于, 所述控制模块包括 : 接收子模块, 用于接收所述设置模块设置的迭代限制条件的初始值, 以及第零次幂的 错误值多项式的系数 ; 判断子模块, 用于根据所述第零次幂的错误值多项式的系数和所述迭代限制条件的 初始值, 判断所述第零次幂的错误值多项式的系数是否为零, 以及所述迭代限制条件的初 始值是否大于等于零, 并据此产生下一次迭代的控制指令、 以及下一次迭代的迭代系数 γ(r+1) ; 其中, 下一次迭代的控制指令包括 : 下一次迭代的错误位置多项式的辅助多项式的系 数 下一次迭代的错误值多项式的辅助多项式的系数 以及下一次迭代的迭 代限制条件 k(r+1) ; 其中, 如果 δ0(r) ≠ 0 并且 k(r) ≥ 0, 则: 否则, 其中, r 为迭代次数, i 为次方项。
9: 根据权利要求 8 所述的装置, 其特征在于, 所述第一计算模块包括 2t 个第一计算子 模块, 分别根据公式 : 进行第 0 次幂至第 2t-1 次幂的 迭代运算, 其中, 每一个第一计算子模块包括 : 第一乘法器, 用于对上一次幂的错误值多项式的系数和本次迭代的迭代系数进行乘法 运算 ; 第一数据选择器, 用于根据控制模块的控制指令, 从所述上一次幂的错误值多项式的 系数以及错误值多项式的辅助多项式的系数中选择一个 ; 第一寄存器, 用于存储所述第一数据选择器的输出, 作为所述第一数据选择器的错误 值多项式的辅助多项式的系数的输入 ; 第二乘法器, 用于对第零次幂的错误值多项式的系数和所述错误值多项式的辅助多项 式的系数进行乘法运算 ; 第一加法器, 用于对所述第一乘法器的乘法运算结果和所述第二乘法器的乘法运算结 果进行相加, 得到错误值多项式的系数 ; 4 第二寄存器, 用于存储所述错误值多项式的系数, 并输出。
10: 根据权利要求 9 所述的装置, 其特征在于, 所述第二计算模块包括 t 个第二计算子 模块, 分别根据公式 : 进行第 0 次幂至第 t 次幂的迭代运算, 其中, 每一个第二计算子模块包括 : 第三乘法器, 用于对本次迭代的迭代系数和错误位置多项式的系数进行乘法运算 ; 第四乘法器, 用于对第零次幂的错误值多项式的系数和下一次幂的错误位置多项式的 辅助多项式的系数进行乘法运算 ; 第二数据选择器, 用于根据控制模块的控制指令, 从所述错误位置多项式的系数和所 述前一次幂的错误位置多项式的辅助多项式的系数中选择一个 ; 第三寄存器, 用于存储所述第二数据选择器的输出, 作为本次幂的错误位置多项式的 辅助多项式的系数输出 ; 第二加法器, 用于对所述第三乘法器的乘法运算结果和所述第四乘法器的乘法运算结 果进行相加 ; 第四寄存器, 用于存储所述第二加法器的加法运算结果, 并作为错误位置多项式的系 数输出。

说明书


一种 BCH 码译码方法和装置

    【技术领域】
     本发明涉及通信技术领域, 尤其涉及一种 BCH 码译码方法和装置。背景技术 目前, NAND( 与非 ) 闪存在功耗、 速度、 数据可靠性、 重量以及静音等方面具有非 常明显的优势, 随着轻薄型笔记本电脑在整个 PC(PersonalComputer, 个人计算机 ) 市场份 额的持续增加, NAND 的这些优势变得更加具有吸引力, 基于 NAND 闪存的固态存储盘 (SSD, Solid State Disk) 正在逐步走入这些应用。
     NAND 闪 存 可 分 为 两 大 架 构 : 单 层 单 元 SLC(Single Level Cell) 和 多 层 单 元 MLC(Multi Level Cell), MLC 由于成本低, 容量大, 但其工作性能不如 SLC 稳定, 据统计, 采 -5 用 MLC NAND 闪存 (MLC NAND Flash Memory) 存取数据的误码率大概为 10 , 为保证读取数 据的准确性, 需采用纠错码 ECC(Error Correction Code) 技术对其实现纠多比特 (bit) 随 机错误。
     针对 BCH 编译码的实现, 译码是难点, 在所有的译码算法中常用的有 : Peterson 算 法、 Berlekamp-Massey 迭代算法 ( 简称 BM 法 )、 欧几里得 (Euclid) 算法。其中, Peterson 算法适用纠错数较少的译码, 它的计算量在上述三种算法中最大 ; BM 算法和 Euclid 算法适 用于纠错数较大的译码器, Euclid 算法比 BM 迭代算法容易理解, 但运算量较大, 且比 BM 迭 代算法的硬件结构复杂。另外考虑到二进制 BCH 码的特殊性, 所以在设计中采用译码速度 快而最常用的 BM 迭代算法。
     发 明 人 在 实 现 本 发 明 的 过 程 中 发 现,在 BM 迭 代 算 法 中,包 括 常 用 的 iBM(Inversionless Berlecamp-Massey) 算 法 和 riBM(Reformulation inversionlessBerlecamp-Massey) 算法, 其中, riBM 算法是对 iBM 算法的推导和改进, 其 关键路径缩短为原来的一半, 大大提高了 VLSI 设计性能, 但是, riBM 算法是针对 RS(Reed Solomon) 码提出的适用于 FPGA 设计的并行 BM 迭代算法, 由于 RS 码为 BCH 码的特例, 其译 码过程比 BCH 码复杂, 因此, 如果将 riBM 算法应用于普遍的 BCH 码的译码过程中, 将造成资 源的极大浪费。
     发明内容
     本发明实施例提供一种 BCH 码译码方法和装置, 能够在占用较少的 FPGA 资源并保 证高速的前提下, 实现 BCH 码译码。
     本发明实施例的上述目的是通过如下技术方案实现的 :
     一种 BCH 码译码方法, 所述方法包括 : 根据接收码计算伴随式 ; 利用迭代算法根据 所述伴随式计算错误位置多项式 ; 利用钱式搜索算法根据所述错误位置多项式确定错误位 置; 对所述确定的错误位置上的错误值进行纠错得到恢复码。其中, 利用迭代算法根据所 述伴随式计算错误位置多项式包括 : 设置错误位置多项式在零次迭代下的初始值和所述错 误位置多项式的辅助多项式在零次迭代下的初始值为零 ; 设置错误值多项式在零次迭代下的初始值和所述错误值多项式的辅助多项式在零次迭代下的初始值为所述伴随式的系数 ; 设置错误位置多项式在零次迭代零次幂下的初始值和所述错误位置多项式的辅助多项式 在零次迭代零次幂下的初始值为 1 ; 设置迭代系数在零次迭代下的初始值为 0 ; 设置迭代限 制条件在零次迭代下的初始值为 1 ; 根据上述设置的初始值计算错误值多项式的辅助多项 式、 错误位置多项式的辅助多项式、 迭代系数以及迭代限制条件 ; 根据上述设置的初始值以 及根据上述计算获得的错误值多项式的辅助多项式、 错误位置多项式的辅助多项式、 迭代 系数以及迭代限制条件, 计算错误值多项式 ; 根据上述设置的初始值以及根据上述计算获 得的计算错误值多项式、 错误值多项式的辅助多项式、 错误位置多项式的辅助多项式、 迭代 系数以及迭代限制条件计算错误位置多项式, 获得错误位置多项式。
     一种 BCH 码译码装置, 所述装置包括 : 第一计算单元, 用于根据接收码计算伴随 式; 第二计算单元, 用于利用迭代算法根据所述伴随式计算错误位置多项式 ; 确定单元, 用 于利用钱式搜索算法根据所述错误位置多项式确定错误位置 ; 纠错单元, 用于对所述确定 单元确定的错误位置上的错误值进行纠错得到恢复码。其中, 第二计算单元包括 : 设置模 块, 用于设置错误位置多项式在零次迭代下的初始值和所述错误位置多项式的辅助多项式 在零次迭代下的初始值为零 ; 设置错误值多项式在零次迭代下的初始值和所述错误值多项 式的辅助多项式在零次迭代下的初始值为所述伴随式的系数 ; 设置错误位置多项式在零次 迭代零次幂下的初始值和所述错误位置多项式的辅助多项式在零次迭代零次幂下的初始 值为 1 ; 设置迭代系数在零次迭代下的初始值为 0 ; 设置迭代限制条件在零次迭代下的初始 值为 1 ; 控制模块, 用于根据设置模块设置的初始值计算错误值多项式的辅助多项式、 错误 位置多项式的辅助多项式、 迭代系数以及迭代限制条件 ; 第一计算模块, 用于根据设置模块 设置的初始值以及控制模块的计算结果计算错误值多项式 ; 第二计算模块, 用于根据设置 模块设置的初始值以及控制模块和第一计算模块的计算结果计算错误位置多项式, 获得错 误位置多项式。
     本发明实施例的 BCH 码译码方法和装置, 根据 BCH 二进制码制的特点, 对 riBM 译 码方法进行了两点优化, 即当迭代次 r 为奇数次时, 差值 λ(r) 恒为 0, 因此, 可以将迭代 2t 次迭代减少为 t 次 ; 且 RS 码译码中需要用错误值多项式 ω(r) 纠错, 而对于二进制 BCH 码, 其纠正值必为 1, 因此错误值多项式 ω(r) 可以被简化。如此, 本发明实施例在占用较少的 FPGA 资源并保证高速实现的情况下, 实现了 BCH 译码方法中的难点, 即根据伴随式求错误 位置多项式, 并且, 通过对 riBM 算法的改进, 使并行 BM 迭代算法在资源和速度上都得到了 优化。 附图说明
     此处所说明的附图用来提供对本发明的进一步理解, 构成本申请的一部分, 并不 构成对本发明的限定。在附图中 :
     图 1 为本发明实施例的 BCH 码译码方法流程图 ;
     图 2 为图 1 所示实施例的步骤 102 的流程图 ;
     图 3 为本发明实施例 BCH 码译码装置的组成示意图 ;
     图 4 为本发明实施例的第一计算模块的电路组成示意图 ;
     图 5 为图 4 所示的第一计算模块的简化示意图 ;图 6 为本发明实施例的多个第一计算模块的电路组成示意图 ; 图 7 为本发明实施例的控制模块的电路组成示意图 ; 图 8 为本发明实施例的第二计算模块的电路组成示意图 ; 图 9 为图 6 所示的第二计算模块的简化示意图 ; 图 10 为本发明实施例的多个第二计算模块的电路组成示意图 ; 图 11 为本发明实施例的第二计算单元的电路组成示意图。具体实施方式
     为使本发明实施例的目的、 技术方案和优点更加清楚明白, 下面结合实施例和附 图, 对本发明实施例做进一步详细说明。 在此, 本发明的示意性实施例及其说明用于解释本 发明, 但并不作为对本发明的限定。
     图 1 为 本 发 明 实 施 例 提 供 的 一 种 BCH 码 译 码 方 法 流 程 图, 在 本 实 施 例 中, 错误位置多项式表示为 错误值多项式表示为 表示为 其中, 错误位置多项式的辅助多项式表示为 错误值多项式的辅助多项式为第 r 次迭代中错误位置多项式 Λ(r, z) 中 zi 的系数; r 为迭代次数 ; i 为对应变量 z 的次方项 ; δi(r) 为第 r 次迭代中错误值多项式 Δ(r, z) 中 zi 的系数 ; bi(r) 为第 r 次迭代时, 错误位置多项式的辅助多项式 B(r, z) 中 zi 的系数 ; θi(r) 为第 r 次迭代时, 错误值多项式的辅助多项式 Θ(r, z) 中 zi 的系数 ; γ(r) 为转换成 无逆算法时, 乘以的迭代系数 ; k(r) 为迭代中为保证求得唯一解的限制条件。请参照图 1, 该方法包括 :
     101 : 根据接收码计算伴随式 ;
     其中, 接收码是指接收到的经过编码的数据, 在本实施例中, 需要采用本实施例的 方法对该数据进行译码。在本实施例中, 为了叙述方便, 将接收码表示为 R(z), 伴随式表示 为 S(z), 伴随式的系数表示为 Si。
     102 : 利用迭代算法根据所述伴随式计算错误位置多项式, 请参照图 2, 具体包括 :
     201 : 设置错误位置多项式在零次迭代下的初始值和所述错误位置多项式的辅助 多项式在零次迭代下的初始值为零 ; 设置错误值多项式在零次迭代下的初始值和所述错误 值多项式的辅助多项式在零次迭代下的初始值为所述伴随式的系数 ; 设置错误位置多项式 在零次迭代零次幂下的初始值和所述错误位置多项式的辅助多项式在零次迭代零次幂下 的初始值为 1 ; 设置迭代系数在零次迭代下的初始值为 0 ; 设置迭代限制条件在零次迭代下 的初始值为 1 ;
     其中, 错误位置多项式在零次迭代下的初始值和所述错误位置多项式的辅助多项 式在零次迭代下的初始值为零可以表示为 λi(0) = bi(0) = 0 其中, i = 1, 2, ......t。
     其中, 错误值多项式在零次迭代下的初始值和所述错误值多项式的辅助多项式在 零次迭代下的初始值为所述伴随式的系数, 可以表示为 随式的系数, i = 0, 1,…, 2t-1。8其中, Si 为所述伴102045073 A CN 102045077
     说明书4/7 页其中, 错误位置多项式在零次迭代零次幂下的初始值和所述错误位置多项式的辅 助多项式在零次迭代零次幂下的初始值为 1, 可以表示为 λ0(0) = b0(0) = 1。
     其中, 迭代系数在零次迭代下的初始值为 0, 可以表示为 k(0) = 0。
     其中, 迭代限制条件在零次迭代下的初始值为 1, 可以表示为 γ(0) = 1。
     202 : 根据上述设置的初始值计算错误值多项式的辅助多项式、 错误位置多项式的 辅助多项式、 迭代系数以及迭代限制条件 ;
     其中, 如果 δ0(r) ≠ 0 并且 k(r) ≥ 0, 则:
     否 则,其中, r 为迭代次数, i 为次方项。
     203 : 根据上述设置的初始值以及根据上述计算获得的错误值多项式的辅助多项 式、 错误位置多项式的辅助多项式、 迭代系数以及迭代限制条件, 计算错误值多项式 ;
     其中,204 : 根据上述设置的初始值以及根据上述计算获得的计算错误值多项式、 错误值 多项式的辅助多项式、 错误位置多项式的辅助多项式、 迭代系数以及迭代限制条件计算错 误位置多项式, 获得错误位置多项式。 其中, 其中, 获得的错误位置多项式可以表示为 其中, i = 0, 1, ......., t。
     103 : 利用钱式搜索算法根据所述错误位置多项式确定错误位置 ;
     根据前述步骤计算获得错误位置多项式后, 即可通过现有技术的手段, 利用钱式 搜索算法根据所述错误位置多项式确定错误位置, 在此不再赘述。
     104 : 对所述确定的错误位置上的错误值进行纠错得到恢复码。
     根据前述步骤确定了错误位置后, 即可利用现有技术的手段对该错误位置上的错 误值进行纠错, 进而得到恢复码, 在此不再赘述。
     本发明实施例的 BCH 码译码方法, 根据 BCH 二进制码制的特点, 对 riBM 译码方法 进行了两点优化, 即当迭代次 r 为奇数次时, 差值 λ(r) 恒为 0, 因此, 可以将迭代 2t 次迭代 减少为 t 次 ; 且 RS 码译码中需要用错误值多项式 ω(r) 纠错, 而对于二进制 BCH 码, 其纠正 值必为 1, 因此错误值多项式 ω(r) 可以被简化。
     图 3 为本发明实施例提供的一种 BCH 码译码装置组成框图, 请参照图 3, 该装置基 于 riBM 算法, 主要包括 : 第一计算单元 31、 第二计算单元 32、 确定单元 33 以及纠错单元 34, 其中 :
     第一计算单元 31 用于根据接收码计算伴随式。具体已经在步骤 101 作了说明, 在 此不再赘述。第二计算单元 32 用于利用迭代算法根据所述伴随式求解错误位置多项式, 在本 实施例中, 该第二计算单元 32 包括 : 设置模块 321、 控制模块 322、 第一计算模块 323 以及第 二计算模块 324, 其中 :
     设置模块 321 用于设置错误位置多项式在零次迭代下的初始值和所述错误位置 多项式的辅助多项式在零次迭代下的初始值为零 ; 设置错误值多项式在零次迭代下的初始 值和所述错误值多项式的辅助多项式在零次迭代下的初始值为所述伴随式的系数 ; 设置错 误位置多项式在零次迭代零次幂下的初始值和所述错误位置多项式的辅助多项式在零次 迭代零次幂下的初始值为 1 ; 设置迭代系数在零次迭代下的初始值为 0 ; 设置迭代限制条件 在零次迭代下的初始值为 1。具体已在步骤 201 中作了详细说明, 在此不再赘述。
     控制模块 322 用于根据设置模块 321 设置的初始值计算错误值多项式的辅助多项 式、 错误位置多项式的辅助多项式、 迭代系数以及迭代限制条件。具体已在步骤 202 中作了 详细说明。在本实施例中, 该控制模块 322 可以包括 :
     接收子模块, 用于接收所述设置模块 321 设置的迭代限制条件的初始值, 以及第 零次幂的错误值多项式的系数 ;
     判断子模块, 用于根据所述第零次幂的错误值多项式的系数和所述迭代限制条件 的初始值, 判断所述第零次幂的错误值多项式的系数是否为零, 以及所述迭代限制条件的 初始值是否大于等于零, 并据此产生下一次迭代的控制指令、 以及下一次迭代的迭代系数 γ(r+1)。其中, 下一次迭代的控制指令包括 : 下一次迭代的错误位置多项式的辅助多项式 的系数 下一次迭代的错误值多项式的辅助多项式的系数 以及下一次迭代 的迭代限制条件 k(r+1)。其中, 如果 δ0(r) ≠ 0 并且 k(r) ≥ 0, 则:
     否则,其中, r 为迭代次数, i 为次方项。
     在本实施例中, 该控制模块 322 可以通过图 4 所示的控制电路来实现, 但本实施例 并不以此作为限制, 任何用于实现前述公式和方法的控制电路都可以用来实现本发明实施 例的控制模块 322。
     第一计算模块 323 用于根据设置模块 321 设置的初始值以及控制模块 322 的计算 结果计算错误值多项式。具体已在步骤 203 中作了详细说明。在本实施例中, 该第一计算 模块 323 可以包括 2t 个第一计算子模块, 每一个第一计算子模块分别根据公式 :
     进行第 0 次幂至第 2t-1 次幂的迭代运算, 其中, 每一个第一计算子模块包括 : 第一乘法器, 用于对上一次幂的错误值多项式的系数和本次迭代的迭代系数进行 乘法运算 ;
     第一数据选择器, 用于根据控制模块的控制指令, 从所述上一次幂的错误值多项 式的系数以及错误值多项式的辅助多项式的系数中选择一个 ;
     第一寄存器, 用于存储所述第一数据选择器的输出, 作为所述第一数据选择器的 错误值多项式的辅助多项式的系数的输入 ;
     第二乘法器, 用于对第零次幂的错误值多项式的系数和所述错误值多项式的辅助 多项式的系数进行乘法运算 ;
     第一加法器, 用于对所述第一乘法器的乘法运算结果和所述第二乘法器的乘法运 算结果进行相加, 得到错误值多项式的系数 ;
     第二寄存器, 用于存储所述错误值多项式的系数, 并输出。
     在本实施例中, 第一计算子模块可以通过图 5 所示的电路组成实现, 可以通过图 6 所示的附图的 PE1i 来表示, 并且, 本实施例的 2t 个第一计算子模块可以分别通过图 7 所示 的附图的 PE10 ~ PE12t-1 来表示。
     第二计算模块 324 用于根据设置模块设置的初始值以及控制模块和第一计算模 块的计算结果计算错误位置多项式, 获得错误位置多项式。具体已在步骤 204 作了说明, 在 本实施例中, 该第二计算模块 324 包括 t 个第二计算子模块, 分别根据公式 :
     进行第 0 次幂至第 t 次幂的迭代运算, 其中, 每一个第二计算子模块包括 :
     第三乘法器, 用于对本次迭代的迭代系数和错误位置多项式的系数进行乘法运算; 第四乘法器, 用于对第零次幂的错误值多项式的系数和下一次幂的错误位置多项 式的辅助多项式的系数进行乘法运算 ;
     第二数据选择器, 用于根据控制模块的控制指令, 从所述错误位置多项式的系数 和所述前一次幂的错误位置多项式的辅助多项式的系数中选择一个 ;
     第三寄存器, 用于存储所述第二数据选择器的输出, 作为本次幂的错误位置多项 式的辅助多项式的系数输出 ;
     第二加法器, 用于对所述第三乘法器的乘法运算结果和所述第四乘法器的乘法运 算结果进行相加 ;
     第四寄存器, 用于存储所述第二加法器的加法运算结果, 并作为错误位置多项式 的系数输出。
     在本实施例中, 第一计算子模块可以通过图 5 所示的电路组成实现, 可以通过图 6 所示的附图的 PE1i 来表示, 并且, 本实施例的 2t 个第一计算子模块可以分别通过图 7 所示 的附图的 PE10 ~ PE12t-1 来表示。
     在本实施例中, 第二计算子模块 123 可以通过图 8 所示的电路组成来实现, 可以通 过图 9 所示的附图的 PEOi 来表示, 并且, 本实施例的 t 个第二计算子模块可以分别通过图 10 所示的附图的 PE0t ~ PE00 来表示。
     再请参照图 11, 其为本发明实施例的第二计算单元 32 的电路实现示意图, 如图 11 所示, 该第二计算单元 32 包括设置模块 ( 图未示 )、 2t 个第一计算子模块 111、 控制模块 112 以及 t 个第二计算模块 113, 具体的功能已在前述说明, 在此不再赘述。
     确定单元 33 用于利用钱式搜索算法根据第二计算单元 32 计算获得的错误位置多
     项式确定错误位置。
     其中, 该确定单元 33 可以通过现有技术的手段完成, 在此不再赘述。
     纠错单元 34 用于对确定单元 33 确定的错误位置上的错误值进行纠错得到恢复 码。
     其中, 该纠错单元 34 也可以通过现有技术的手段完成, 在此不再赘述。
     本发明实施例的 BCH 码译码装置, 根据 BCH 二进制码制的特点, 对 riBM 译码方法 进行了两点优化, 即当迭代次 r 为奇数次时, 差值 λ(r) 恒为 0, 因此, 可以将迭代 2t 次迭 代减少为 t 次 ; 且 RS 码译码中需要用错误值多项式 ω(r) 纠错, 而对于二进制 BCH 码, 其纠 正值必为 1, 因此错误值多项式 ω(r) 可以被简化。如此, 本发明实施例在占用较少的 FPGA 资源并保证高速实现的情况下, 实现了 BCH 译码方法中的难点, 即根据伴随式求错误位置 多项式, 并且, 通过对 riBM 算法的改进, 使并行 BM 迭代算法在资源和速度上都得到了优化。
     以上所述的具体实施例, 对本发明的目的、 技术方案和有益效果进行了进一步详 细说明, 所应理解的是, 以上所述仅为本发明的具体实施例而已, 并不用于限定本发明的保 护范围, 凡在本发明的精神和原则之内, 所做的任何修改、 等同替换、 改进等, 均应包含在本 发明的保护范围之内。

一种BCH码译码方法和装置.pdf_第1页
第1页 / 共16页
一种BCH码译码方法和装置.pdf_第2页
第2页 / 共16页
一种BCH码译码方法和装置.pdf_第3页
第3页 / 共16页
点击查看更多>>
资源描述

《一种BCH码译码方法和装置.pdf》由会员分享,可在线阅读,更多相关《一种BCH码译码方法和装置.pdf(16页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN102045073A43申请公布日20110504CN102045073ACN102045073A21申请号200910205545522申请日20091026H03M13/1520060171申请人成都市华为赛门铁克科技有限公司地址611731四川省成都市高新区西部园区清水河片区72发明人邢继元张琴梁剑74专利代理机构北京三友知识产权代理有限公司11127代理人任默闻54发明名称一种BCH码译码方法和装置57摘要本发明实施例提供一种BCH码译码方法和装置,所述方法包括根据接收码计算伴随式;利用迭代算法根据所述伴随式求解错误位置多项式;利用钱式搜索算法根据所述错误位置多项式确。

2、定错误位置;对所述确定的错误位置上的错误值进行纠错得到恢复码。本发明实施例的BCH码译码方法和装置通过对RIBM算法的改进,使并行BM迭代算法在资源和速度上都得到了优化。51INTCL19中华人民共和国国家知识产权局12发明专利申请权利要求书4页说明书7页附图4页CN102045077A1/4页21一种BCH码译码方法,其特征在于,所述方法包括根据接收码计算伴随式;利用迭代算法根据所述伴随式计算错误位置多项式,包括设置错误位置多项式在零次迭代下的初始值和所述错误位置多项式的辅助多项式在零次迭代下的初始值为零;设置错误值多项式在零次迭代下的初始值和所述错误值多项式的辅助多项式在零次迭代下的初始值。

3、为所述伴随式的系数;设置错误位置多项式在零次迭代零次幂下的初始值和所述错误位置多项式的辅助多项式在零次迭代零次幂下的初始值为1;设置迭代系数在零次迭代下的初始值为0;设置迭代限制条件在零次迭代下的初始值为1;根据上述设置的初始值计算错误值多项式的辅助多项式、错误位置多项式的辅助多项式、迭代系数以及迭代限制条件;根据上述设置的初始值以及根据上述计算获得的错误值多项式的辅助多项式、错误位置多项式的辅助多项式、迭代系数以及迭代限制条件,计算错误值多项式;根据上述设置的初始值以及根据上述计算获得的计算错误值多项式、错误值多项式的辅助多项式、错误位置多项式的辅助多项式、迭代系数以及迭代限制条件计算错误位。

4、置多项式,获得错误位置多项式;利用钱式搜索算法根据所述错误位置多项式确定错误位置;对所述确定的错误位置上的错误值进行纠错得到恢复码。2根据权利要求1所述的方法,其特征在于错误位置多项式在零次迭代下的初始值和所述错误位置多项式的辅助多项式在零次迭代下的初始值为零表示为I0BI00其中,I1,2,T;错误值多项式在零次迭代下的初始值和所述错误值多项式的辅助多项式在零次迭代下的初始值为所述伴随式的系数,数学式表示为其中,SI为所述伴随式的系数,I0,1,2T1;错误位置多项式在零次迭代零次幂下的初始值和所述错误位置多项式的辅助多项式在零次迭代零次幂下的初始值为1,数学式表示为00B001;迭代系数在。

5、零次迭代下的初始值为0,数学式表示为K00;迭代限制条件在零次迭代下的初始值为1,数学式表示为01。3根据权利要求2所述的方法,其特征在于,根据上述设置的初始值计算错误值多项式的辅助多项式、错误位置多项式的辅助多项式、迭代系数以及迭代限制条件,包括根据所述设置的初始值和下式计算错误值多项式的辅助多项式、错误位置多项式的辅助多项式、迭代系数以及迭代限制条件如果0R0并且KR0,则否则,其中,R为权利要求书CN102045073ACN102045077A2/4页3迭代次数,I为次方项。4根据权利要求3所述的方法,其特征在于,根据上述设置的初始值以及根据上述计算获得的错误值多项式的辅助多项式、错误位。

6、置多项式的辅助多项式、迭代系数以及迭代限制条件,计算错误值多项式,包括利用下式,根据上述设置的初始值以及经过上述计算获得错误值多项式的辅助多项式、错误位置多项式的辅助多项式、迭代系数以及迭代限制条件,计算错误值多项式;5根据权利要求4所述的方法,其特征在于,根据上述设置的初始值以及根据上述计算获得的计算错误值多项式、错误值多项式的辅助多项式、错误位置多项式的辅助多项式、迭代系数以及迭代限制条件计算错误位置多项式,获得错误位置多项式,包括利用下式,根据上述设置的初始值以及经过上述计算获得的计算错误值多项式、错误值多项式的辅助多项式、错误位置多项式的辅助多项式、迭代系数以及迭代限制条件计算错误位置。

7、多项式获得错误位置多项式,表示为其中,I0,1,T。6一种BCH码译码装置,其特征在于,所述装置包括第一计算单元,用于根据接收码计算伴随式;第二计算单元,用于利用迭代算法根据所述伴随式计算错误位置多项式,该第二计算单元包括设置模块,用于设置错误位置多项式在零次迭代下的初始值和所述错误位置多项式的辅助多项式在零次迭代下的初始值为零;设置错误值多项式在零次迭代下的初始值和所述错误值多项式的辅助多项式在零次迭代下的初始值为所述伴随式的系数;设置错误位置多项式在零次迭代零次幂下的初始值和所述错误位置多项式的辅助多项式在零次迭代零次幂下的初始值为1;设置迭代系数在零次迭代下的初始值为0;设置迭代限制条件。

8、在零次迭代下的初始值为1;控制模块,用于根据设置模块设置的初始值计算错误值多项式的辅助多项式、错误位置多项式的辅助多项式、迭代系数以及迭代限制条件;第一计算模块,用于根据设置模块设置的初始值以及控制模块的计算结果计算错误值多项式;第二计算模块,用于根据设置模块设置的初始值以及控制模块和第一计算模块的计算结果计算错误位置多项式,获得错误位置多项式;确定单元,用于利用钱式搜索算法根据所述错误位置多项式确定错误位置;纠错单元,用于对所述确定单元确定的错误位置上的错误值进行纠错得到恢复码。7根据权利要求6所述的装置,其特征在于,所述设置模块设置的初始值具体为错误位置多项式在零次迭代下的初始值和所述错误。

9、位置多项式的辅助多项式在零次迭代下的初始值为零表示为I0BI00其中,I1,2,T;权利要求书CN102045073ACN102045077A3/4页4错误值多项式在零次迭代下的初始值和所述错误值多项式的辅助多项式在零次迭代下的初始值为所述伴随式的系数,数学式表示为其中,SI为所述伴随式的系数,I0,1,2T1;错误位置多项式在零次迭代零次幂下的初始值和所述错误位置多项式的辅助多项式在零次迭代零次幂下的初始值为1,数学式表示为00B001;迭代系数在零次迭代下的初始值为0,数学式表示为K00;迭代限制条件在零次迭代下的初始值为1,数学式表示为01。8根据权利要求7所述的装置,其特征在于,所述控。

10、制模块包括接收子模块,用于接收所述设置模块设置的迭代限制条件的初始值,以及第零次幂的错误值多项式的系数;判断子模块,用于根据所述第零次幂的错误值多项式的系数和所述迭代限制条件的初始值,判断所述第零次幂的错误值多项式的系数是否为零,以及所述迭代限制条件的初始值是否大于等于零,并据此产生下一次迭代的控制指令、以及下一次迭代的迭代系数R1;其中,下一次迭代的控制指令包括下一次迭代的错误位置多项式的辅助多项式的系数下一次迭代的错误值多项式的辅助多项式的系数以及下一次迭代的迭代限制条件KR1;其中,如果0R0并且KR0,则否则,其中,R为迭代次数,I为次方项。9根据权利要求8所述的装置,其特征在于,所述。

11、第一计算模块包括2T个第一计算子模块,分别根据公式进行第0次幂至第2T1次幂的迭代运算,其中,每一个第一计算子模块包括第一乘法器,用于对上一次幂的错误值多项式的系数和本次迭代的迭代系数进行乘法运算;第一数据选择器,用于根据控制模块的控制指令,从所述上一次幂的错误值多项式的系数以及错误值多项式的辅助多项式的系数中选择一个;第一寄存器,用于存储所述第一数据选择器的输出,作为所述第一数据选择器的错误值多项式的辅助多项式的系数的输入;第二乘法器,用于对第零次幂的错误值多项式的系数和所述错误值多项式的辅助多项式的系数进行乘法运算;第一加法器,用于对所述第一乘法器的乘法运算结果和所述第二乘法器的乘法运算结。

12、果进行相加,得到错误值多项式的系数;权利要求书CN102045073ACN102045077A4/4页5第二寄存器,用于存储所述错误值多项式的系数,并输出。10根据权利要求9所述的装置,其特征在于,所述第二计算模块包括T个第二计算子模块,分别根据公式进行第0次幂至第T次幂的迭代运算,其中,每一个第二计算子模块包括第三乘法器,用于对本次迭代的迭代系数和错误位置多项式的系数进行乘法运算;第四乘法器,用于对第零次幂的错误值多项式的系数和下一次幂的错误位置多项式的辅助多项式的系数进行乘法运算;第二数据选择器,用于根据控制模块的控制指令,从所述错误位置多项式的系数和所述前一次幂的错误位置多项式的辅助多项。

13、式的系数中选择一个;第三寄存器,用于存储所述第二数据选择器的输出,作为本次幂的错误位置多项式的辅助多项式的系数输出;第二加法器,用于对所述第三乘法器的乘法运算结果和所述第四乘法器的乘法运算结果进行相加;第四寄存器,用于存储所述第二加法器的加法运算结果,并作为错误位置多项式的系数输出。权利要求书CN102045073ACN102045077A1/7页6一种BCH码译码方法和装置技术领域0001本发明涉及通信技术领域,尤其涉及一种BCH码译码方法和装置。背景技术0002目前,NAND与非闪存在功耗、速度、数据可靠性、重量以及静音等方面具有非常明显的优势,随着轻薄型笔记本电脑在整个PCPERSONA。

14、LCOMPUTER,个人计算机市场份额的持续增加,NAND的这些优势变得更加具有吸引力,基于NAND闪存的固态存储盘SSD,SOLIDSTATEDISK正在逐步走入这些应用。0003NAND闪存可分为两大架构单层单元SLCSINGLELEVELCELL和多层单元MLCMULTILEVELCELL,MLC由于成本低,容量大,但其工作性能不如SLC稳定,据统计,采用MLCNAND闪存MLCNANDFLASHMEMORY存取数据的误码率大概为105,为保证读取数据的准确性,需采用纠错码ECCERRORCORRECTIONCODE技术对其实现纠多比特BIT随机错误。0004针对BCH编译码的实现,译码。

15、是难点,在所有的译码算法中常用的有PETERSON算法、BERLEKAMPMASSEY迭代算法简称BM法、欧几里得EUCLID算法。其中,PETERSON算法适用纠错数较少的译码,它的计算量在上述三种算法中最大;BM算法和EUCLID算法适用于纠错数较大的译码器,EUCLID算法比BM迭代算法容易理解,但运算量较大,且比BM迭代算法的硬件结构复杂。另外考虑到二进制BCH码的特殊性,所以在设计中采用译码速度快而最常用的BM迭代算法。0005发明人在实现本发明的过程中发现,在BM迭代算法中,包括常用的IBMINVERSIONLESSBERLECAMPMASSEY算法和RIBMREFORMULATI。

16、ONINVERSIONLESSBERLECAMPMASSEY算法,其中,RIBM算法是对IBM算法的推导和改进,其关键路径缩短为原来的一半,大大提高了VLSI设计性能,但是,RIBM算法是针对RSREEDSOLOMON码提出的适用于FPGA设计的并行BM迭代算法,由于RS码为BCH码的特例,其译码过程比BCH码复杂,因此,如果将RIBM算法应用于普遍的BCH码的译码过程中,将造成资源的极大浪费。发明内容0006本发明实施例提供一种BCH码译码方法和装置,能够在占用较少的FPGA资源并保证高速的前提下,实现BCH码译码。0007本发明实施例的上述目的是通过如下技术方案实现的0008一种BCH码译。

17、码方法,所述方法包括根据接收码计算伴随式;利用迭代算法根据所述伴随式计算错误位置多项式;利用钱式搜索算法根据所述错误位置多项式确定错误位置;对所述确定的错误位置上的错误值进行纠错得到恢复码。其中,利用迭代算法根据所述伴随式计算错误位置多项式包括设置错误位置多项式在零次迭代下的初始值和所述错误位置多项式的辅助多项式在零次迭代下的初始值为零;设置错误值多项式在零次迭代下说明书CN102045073ACN102045077A2/7页7的初始值和所述错误值多项式的辅助多项式在零次迭代下的初始值为所述伴随式的系数;设置错误位置多项式在零次迭代零次幂下的初始值和所述错误位置多项式的辅助多项式在零次迭代零次。

18、幂下的初始值为1;设置迭代系数在零次迭代下的初始值为0;设置迭代限制条件在零次迭代下的初始值为1;根据上述设置的初始值计算错误值多项式的辅助多项式、错误位置多项式的辅助多项式、迭代系数以及迭代限制条件;根据上述设置的初始值以及根据上述计算获得的错误值多项式的辅助多项式、错误位置多项式的辅助多项式、迭代系数以及迭代限制条件,计算错误值多项式;根据上述设置的初始值以及根据上述计算获得的计算错误值多项式、错误值多项式的辅助多项式、错误位置多项式的辅助多项式、迭代系数以及迭代限制条件计算错误位置多项式,获得错误位置多项式。0009一种BCH码译码装置,所述装置包括第一计算单元,用于根据接收码计算伴随式。

19、;第二计算单元,用于利用迭代算法根据所述伴随式计算错误位置多项式;确定单元,用于利用钱式搜索算法根据所述错误位置多项式确定错误位置;纠错单元,用于对所述确定单元确定的错误位置上的错误值进行纠错得到恢复码。其中,第二计算单元包括设置模块,用于设置错误位置多项式在零次迭代下的初始值和所述错误位置多项式的辅助多项式在零次迭代下的初始值为零;设置错误值多项式在零次迭代下的初始值和所述错误值多项式的辅助多项式在零次迭代下的初始值为所述伴随式的系数;设置错误位置多项式在零次迭代零次幂下的初始值和所述错误位置多项式的辅助多项式在零次迭代零次幂下的初始值为1;设置迭代系数在零次迭代下的初始值为0;设置迭代限制。

20、条件在零次迭代下的初始值为1;控制模块,用于根据设置模块设置的初始值计算错误值多项式的辅助多项式、错误位置多项式的辅助多项式、迭代系数以及迭代限制条件;第一计算模块,用于根据设置模块设置的初始值以及控制模块的计算结果计算错误值多项式;第二计算模块,用于根据设置模块设置的初始值以及控制模块和第一计算模块的计算结果计算错误位置多项式,获得错误位置多项式。0010本发明实施例的BCH码译码方法和装置,根据BCH二进制码制的特点,对RIBM译码方法进行了两点优化,即当迭代次R为奇数次时,差值R恒为0,因此,可以将迭代2T次迭代减少为T次;且RS码译码中需要用错误值多项式R纠错,而对于二进制BCH码,其。

21、纠正值必为1,因此错误值多项式R可以被简化。如此,本发明实施例在占用较少的FPGA资源并保证高速实现的情况下,实现了BCH译码方法中的难点,即根据伴随式求错误位置多项式,并且,通过对RIBM算法的改进,使并行BM迭代算法在资源和速度上都得到了优化。附图说明0011此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的限定。在附图中0012图1为本发明实施例的BCH码译码方法流程图;0013图2为图1所示实施例的步骤102的流程图;0014图3为本发明实施例BCH码译码装置的组成示意图;0015图4为本发明实施例的第一计算模块的电路组成示意图;0016图5为图4所示。

22、的第一计算模块的简化示意图;说明书CN102045073ACN102045077A3/7页80017图6为本发明实施例的多个第一计算模块的电路组成示意图;0018图7为本发明实施例的控制模块的电路组成示意图;0019图8为本发明实施例的第二计算模块的电路组成示意图;0020图9为图6所示的第二计算模块的简化示意图;0021图10为本发明实施例的多个第二计算模块的电路组成示意图;0022图11为本发明实施例的第二计算单元的电路组成示意图。具体实施方式0023为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明。

23、用于解释本发明,但并不作为对本发明的限定。0024图1为本发明实施例提供的一种BCH码译码方法流程图,在本实施例中,错误位置多项式表示为错误位置多项式的辅助多项式表示为错误值多项式表示为错误值多项式的辅助多项式表示为其中,为第R次迭代中错误位置多项式R,Z中ZI的系数;R为迭代次数;I为对应变量Z的次方项;IR为第R次迭代中错误值多项式R,Z中ZI的系数;BIR为第R次迭代时,错误位置多项式的辅助多项式BR,Z中ZI的系数;IR为第R次迭代时,错误值多项式的辅助多项式R,Z中ZI的系数;R为转换成无逆算法时,乘以的迭代系数;KR为迭代中为保证求得唯一解的限制条件。请参照图1,该方法包括0025。

24、101根据接收码计算伴随式;0026其中,接收码是指接收到的经过编码的数据,在本实施例中,需要采用本实施例的方法对该数据进行译码。在本实施例中,为了叙述方便,将接收码表示为RZ,伴随式表示为SZ,伴随式的系数表示为SI。0027102利用迭代算法根据所述伴随式计算错误位置多项式,请参照图2,具体包括0028201设置错误位置多项式在零次迭代下的初始值和所述错误位置多项式的辅助多项式在零次迭代下的初始值为零;设置错误值多项式在零次迭代下的初始值和所述错误值多项式的辅助多项式在零次迭代下的初始值为所述伴随式的系数;设置错误位置多项式在零次迭代零次幂下的初始值和所述错误位置多项式的辅助多项式在零次迭。

25、代零次幂下的初始值为1;设置迭代系数在零次迭代下的初始值为0;设置迭代限制条件在零次迭代下的初始值为1;0029其中,错误位置多项式在零次迭代下的初始值和所述错误位置多项式的辅助多项式在零次迭代下的初始值为零可以表示为I0BI00其中,I1,2,T。0030其中,错误值多项式在零次迭代下的初始值和所述错误值多项式的辅助多项式在零次迭代下的初始值为所述伴随式的系数,可以表示为其中,SI为所述伴随式的系数,I0,1,2T1。说明书CN102045073ACN102045077A4/7页90031其中,错误位置多项式在零次迭代零次幂下的初始值和所述错误位置多项式的辅助多项式在零次迭代零次幂下的初始值。

26、为1,可以表示为00B001。0032其中,迭代系数在零次迭代下的初始值为0,可以表示为K00。0033其中,迭代限制条件在零次迭代下的初始值为1,可以表示为01。0034202根据上述设置的初始值计算错误值多项式的辅助多项式、错误位置多项式的辅助多项式、迭代系数以及迭代限制条件;0035其中,如果0R0并且KR0,则0036否则,其中,R为迭代次数,I为次方项。0037203根据上述设置的初始值以及根据上述计算获得的错误值多项式的辅助多项式、错误位置多项式的辅助多项式、迭代系数以及迭代限制条件,计算错误值多项式;0038其中,0039204根据上述设置的初始值以及根据上述计算获得的计算错误值。

27、多项式、错误值多项式的辅助多项式、错误位置多项式的辅助多项式、迭代系数以及迭代限制条件计算错误位置多项式,获得错误位置多项式。0040其中,0041其中,获得的错误位置多项式可以表示为其中,I0,1,T。0042103利用钱式搜索算法根据所述错误位置多项式确定错误位置;0043根据前述步骤计算获得错误位置多项式后,即可通过现有技术的手段,利用钱式搜索算法根据所述错误位置多项式确定错误位置,在此不再赘述。0044104对所述确定的错误位置上的错误值进行纠错得到恢复码。0045根据前述步骤确定了错误位置后,即可利用现有技术的手段对该错误位置上的错误值进行纠错,进而得到恢复码,在此不再赘述。0046。

28、本发明实施例的BCH码译码方法,根据BCH二进制码制的特点,对RIBM译码方法进行了两点优化,即当迭代次R为奇数次时,差值R恒为0,因此,可以将迭代2T次迭代减少为T次;且RS码译码中需要用错误值多项式R纠错,而对于二进制BCH码,其纠正值必为1,因此错误值多项式R可以被简化。0047图3为本发明实施例提供的一种BCH码译码装置组成框图,请参照图3,该装置基于RIBM算法,主要包括第一计算单元31、第二计算单元32、确定单元33以及纠错单元34,其中0048第一计算单元31用于根据接收码计算伴随式。具体已经在步骤101作了说明,在此不再赘述。说明书CN102045073ACN102045077。

29、A5/7页100049第二计算单元32用于利用迭代算法根据所述伴随式求解错误位置多项式,在本实施例中,该第二计算单元32包括设置模块321、控制模块322、第一计算模块323以及第二计算模块324,其中0050设置模块321用于设置错误位置多项式在零次迭代下的初始值和所述错误位置多项式的辅助多项式在零次迭代下的初始值为零;设置错误值多项式在零次迭代下的初始值和所述错误值多项式的辅助多项式在零次迭代下的初始值为所述伴随式的系数;设置错误位置多项式在零次迭代零次幂下的初始值和所述错误位置多项式的辅助多项式在零次迭代零次幂下的初始值为1;设置迭代系数在零次迭代下的初始值为0;设置迭代限制条件在零次迭。

30、代下的初始值为1。具体已在步骤201中作了详细说明,在此不再赘述。0051控制模块322用于根据设置模块321设置的初始值计算错误值多项式的辅助多项式、错误位置多项式的辅助多项式、迭代系数以及迭代限制条件。具体已在步骤202中作了详细说明。在本实施例中,该控制模块322可以包括0052接收子模块,用于接收所述设置模块321设置的迭代限制条件的初始值,以及第零次幂的错误值多项式的系数;0053判断子模块,用于根据所述第零次幂的错误值多项式的系数和所述迭代限制条件的初始值,判断所述第零次幂的错误值多项式的系数是否为零,以及所述迭代限制条件的初始值是否大于等于零,并据此产生下一次迭代的控制指令、以及。

31、下一次迭代的迭代系数R1。其中,下一次迭代的控制指令包括下一次迭代的错误位置多项式的辅助多项式的系数下一次迭代的错误值多项式的辅助多项式的系数以及下一次迭代的迭代限制条件KR1。其中,如果0R0并且KR0,则0054否则,0055其中,R为迭代次数,I为次方项。0056在本实施例中,该控制模块322可以通过图4所示的控制电路来实现,但本实施例并不以此作为限制,任何用于实现前述公式和方法的控制电路都可以用来实现本发明实施例的控制模块322。0057第一计算模块323用于根据设置模块321设置的初始值以及控制模块322的计算结果计算错误值多项式。具体已在步骤203中作了详细说明。在本实施例中,该第。

32、一计算模块323可以包括2T个第一计算子模块,每一个第一计算子模块分别根据公式0058进行第0次幂至第2T1次幂的迭代运算,其中,每一个第一计算子模块包括0059第一乘法器,用于对上一次幂的错误值多项式的系数和本次迭代的迭代系数进行乘法运算;0060第一数据选择器,用于根据控制模块的控制指令,从所述上一次幂的错误值多项式的系数以及错误值多项式的辅助多项式的系数中选择一个;说明书CN102045073ACN102045077A6/7页110061第一寄存器,用于存储所述第一数据选择器的输出,作为所述第一数据选择器的错误值多项式的辅助多项式的系数的输入;0062第二乘法器,用于对第零次幂的错误值多。

33、项式的系数和所述错误值多项式的辅助多项式的系数进行乘法运算;0063第一加法器,用于对所述第一乘法器的乘法运算结果和所述第二乘法器的乘法运算结果进行相加,得到错误值多项式的系数;0064第二寄存器,用于存储所述错误值多项式的系数,并输出。0065在本实施例中,第一计算子模块可以通过图5所示的电路组成实现,可以通过图6所示的附图的PE1I来表示,并且,本实施例的2T个第一计算子模块可以分别通过图7所示的附图的PE10PE12T1来表示。0066第二计算模块324用于根据设置模块设置的初始值以及控制模块和第一计算模块的计算结果计算错误位置多项式,获得错误位置多项式。具体已在步骤204作了说明,在本。

34、实施例中,该第二计算模块324包括T个第二计算子模块,分别根据公式0067进行第0次幂至第T次幂的迭代运算,其中,每一个第二计算子模块包括0068第三乘法器,用于对本次迭代的迭代系数和错误位置多项式的系数进行乘法运算;0069第四乘法器,用于对第零次幂的错误值多项式的系数和下一次幂的错误位置多项式的辅助多项式的系数进行乘法运算;0070第二数据选择器,用于根据控制模块的控制指令,从所述错误位置多项式的系数和所述前一次幂的错误位置多项式的辅助多项式的系数中选择一个;0071第三寄存器,用于存储所述第二数据选择器的输出,作为本次幂的错误位置多项式的辅助多项式的系数输出;0072第二加法器,用于对所。

35、述第三乘法器的乘法运算结果和所述第四乘法器的乘法运算结果进行相加;0073第四寄存器,用于存储所述第二加法器的加法运算结果,并作为错误位置多项式的系数输出。0074在本实施例中,第一计算子模块可以通过图5所示的电路组成实现,可以通过图6所示的附图的PE1I来表示,并且,本实施例的2T个第一计算子模块可以分别通过图7所示的附图的PE10PE12T1来表示。0075在本实施例中,第二计算子模块123可以通过图8所示的电路组成来实现,可以通过图9所示的附图的PEOI来表示,并且,本实施例的T个第二计算子模块可以分别通过图10所示的附图的PE0TPE00来表示。0076再请参照图11,其为本发明实施例。

36、的第二计算单元32的电路实现示意图,如图11所示,该第二计算单元32包括设置模块图未示、2T个第一计算子模块111、控制模块112以及T个第二计算模块113,具体的功能已在前述说明,在此不再赘述。0077确定单元33用于利用钱式搜索算法根据第二计算单元32计算获得的错误位置多说明书CN102045073ACN102045077A7/7页12项式确定错误位置。0078其中,该确定单元33可以通过现有技术的手段完成,在此不再赘述。0079纠错单元34用于对确定单元33确定的错误位置上的错误值进行纠错得到恢复码。0080其中,该纠错单元34也可以通过现有技术的手段完成,在此不再赘述。0081本发明实。

37、施例的BCH码译码装置,根据BCH二进制码制的特点,对RIBM译码方法进行了两点优化,即当迭代次R为奇数次时,差值R恒为0,因此,可以将迭代2T次迭代减少为T次;且RS码译码中需要用错误值多项式R纠错,而对于二进制BCH码,其纠正值必为1,因此错误值多项式R可以被简化。如此,本发明实施例在占用较少的FPGA资源并保证高速实现的情况下,实现了BCH译码方法中的难点,即根据伴随式求错误位置多项式,并且,通过对RIBM算法的改进,使并行BM迭代算法在资源和速度上都得到了优化。0082以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。说明书CN102045073ACN102045077A1/4页13图1图2说明书附图CN102045073ACN102045077A2/4页14图3图4说明书附图CN102045073ACN102045077A3/4页15图5图6图7图8图9说明书附图CN102045073ACN102045077A4/4页16图10图11说明书附图CN102045073A。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 基本电子电路


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1