专利名称:一种紧凑的高信息率rs译码装置的制作方法
技术领域:
本发明涉及一种紧凑的高信息率RS译码装置,属于编译码技术领域。
背景技术:
RS译码系统的关键方程求解算法是一个嵌套循环结构,一般需要循环迭代递推 2t次,包含两个关键步骤依据伴随式迭代递推错误位置多项式和错误值多项式的次数; 修正错误位置多项式和错误值多项式的次数。工程应用的算法主要有BM算法和EuClidean 算法。这两种算法各有优缺点,一般采用硬件逻辑设计复杂度低且具有固定关键路径延迟 小的无逆的riBM和RiBM算法。一般地,用于关键方程求解的riBM和RiBM算法适用于并行处理,这样每个时钟周 期内要使用6t+2个通用的(U2m)有限域并行乘法器。并行处理设计的优点是算法结构的逻 辑设计特别简单,但缺点是数量众多的有限域并行乘法器要占用相当多的FPGA逻辑单元, 这对FPGA逻辑资源受限的系统设计十分不利。在高信息率RS译码系统,由于RS码字很长,一般以延迟固定帧的方式输出译码序 列,因此可将这个算法采用串行处理方式,仅使用2个有限域并行乘法器,这样确实能够大 幅度降低算法占用逻辑单元的数量。然而采用这种方式却引出了另一个棘手的问题,由于 算法本身是一个嵌套循环的控制过程,这个控制过程使用FPGA逻辑设计就显得不必要的 复杂,并且占用了相对算法本身较多的逻辑单元。
发明内容
本发明的技术解决问题是克服现有技术的不足,提供了一种紧凑的高信息率RS 译码装置,克服了高信息率RS译码过程中关键方程求解算法占用较多FPGA逻辑单元的问 题。本发明的技术解决方案是—种紧凑的高信息率RS译码装置,包括伴随式计算模块、关键方程求解模块、错 误搜索和错误值计算模块,所述关键方程求解模块采用riBM或RiBM算法,用于计算错误位 置多项式和错误值多项式。其特征在于所述关键方程求解模块包括RAM存储模块、迭代运算模块和修正系 数模块,RAM存储模块,分为两个存储区,初始化时用于存储输入的伴随式;并在计算过程 中分别用于存储每次循环第r个状态和第r+Ι个状态中的错误位置、错误值和用于计算错 误位置和错位值的辅助数据;r为循环次数,取值W,2t-1];迭代运算模块,用于在循环中利用存储于RAM存储模块中的第r个状态中由修正 系数模块产生的辅助数据更新第r+Ι个状态的错误位置和错位值;修正系数模块,用于在循环中利用存储于RAM存储模块中第r个状态的错位位置 和错位值修正第r+Ι个状态中用于计算错误位置和错位值的辅助数据。
在关键方程求解模块中还包括状态控制模块,状态控制模块采用状态机对迭代运 算模块和修正系数模块进行控制,所述状态机包括空闲状态、开始状态、迭代状态、修正状 态和结束状态;空闲状态状态控制模块对伴随式的输入进行检测,当有伴随式输入时,转入开始 状态;开始状态状态控制模块将输入的伴随式存储到RAM存储模块中,并对算法进行 初始化,算法初始化完成后,转入迭代状态;迭代状态状态控制模块启动迭代运算模块(3);迭代运算模块( 迭代运算完成 后,迭代运算模块向状态控制模块返回完成信号,转入修正状态;修正状态状态控制模块启动修正系数模块;修正系数模块对辅助数据修正完成 后;修正系数模块向状态控制模块返回完成信号,转入结束状态;结束状态状态控制模块将错误多项式输出;转入空闲状态。本发明与现有技术相比具有如下优点(1)本发明充分利用FPGA内置的RAM资源,依据关键方程求解算法的结构特点,以 循环顺序存取RAM的处理机制代替嵌套循环的控制过程,这样简化了嵌套循环控制过程的 逻辑设计复杂度,从设计方法上大幅度降低了算法占用FPGA逻辑单元的数量。(2)本发明特别适合于FPGA逻辑资源有限的系统,仅需要增加极少的RAM存储空 间就能实现,而且简化了 RS译码系统的关键方程求解算法的串行设计,也为其它类似算法 的串行设计提供了有效的FPGA设计参考。(3)本发明将关键方程求解算法的嵌套循环控制过程转换为对FPGA内置RAM的循 环顺序存取的处理机制,用RAM资源换取逻辑单元资源,从而降低了占用逻辑单元的数量, 同时简化了嵌套循环控制过程的逻辑设计。
图1为关键方程求解模块的组成;图2为状态控制模块的状态转移图;图3为迭代运算模块;图4为riBM算法lambda状态更新;图5为riBM算法delta状态更新;图6为基于RAM结构的迭代运算;图7为基于RAM结构的修正系数;图8为基于RAM结构的关键方程求解模块的原理图。
具体实施例方式RS译码的主要步骤包含伴随式计算、关键方程求解、错误搜索和错误值计算。其 中,关键方程求解是RS译码最复杂的步骤。本发明中分别通过伴随式计算模块、关键方程 求解模块、错误搜索和错误值计算模块实现上述的计算处理,是针对基于RAM结构的riBM 和RiBM算法的实现结构。RS译码在工程中一般采用流水线设计,依据接收到的编码序列利用伴随式计算模块计算伴随式,关键方程求解模块利用伴随式计算模块输出的伴随式计算错误位置多项式 和错误值多项式,错误搜索和错误值计算模块利用错误位置多项式和错误值多项式对接收 到的编码序列进行纠正,获得译码序列输出。下面就结合附图对本发明中的创新部分关键方程求解模块做进一步介绍。如图1所示,关键方程求解模块包含状态控制模块1、RAM存储模块2、迭代运算 模块3和修正系数模块4。状态控制模块1实现系统的控制功能,用于接收伴随式,输出错 误位置多项式和错误值多项式,控制迭代运算模块3和修正系数模块4工作;RAM存储模块 2用于存储算法循环顺序迭代递推的数据结构;迭代运算模块3用于每次循环的迭代递推 运算;修正系数模块4用于修正每次循环的错误位置多项式和错误值多项式的系数。下面详细介绍各个模块的功能与实现方案。(1)状态控制模块关键方程求解算法需要循环迭代递推2t次,状态控制模块1用状态机实现算法结 构的控制功能。如图2所示,将状态机分为五个状态空闲状态、开始状态、迭代状态、修正 状态、结束状态。空闲状态在检测到伴随式计算模块的触发信号后,立即步入开始状态。开始状态依次接收2t个伴随式,顺序存储在RAM内部,然后初始化算法,完成后 步入迭代状态。迭代状态启动迭代运算模块,在顺序迭代递推完成后步入修正状态。修正状态启动修正系数模块,在顺序修正系数完成后步入结束状态。结束状态输出错误位置多项式和错误值多项式的触发信号,依次输出错误位置 多项式和错误值多项式的系数,完成后步入到空闲状态。(2) RAM存储模块依据算法的迭代递推运算和修正系数的共同特点,在RAM存储模块2内部建立顺 序迭代递推的数据结构,适用于迭代运算模块和修正系数模块的顺序处理。另外,为保存迭 代递推运算和修正系数需要的前一个状态数据,将RAM存储模块2内部分为状态(r)和状 态(r+Ι)两个状态区域,并且在每次循环后切换状态区域。(3)迭代运算模块关键方程求解算法的1次循环是一个顺序迭代递推的过程,将迭代运算模块3的 输入和输出指向建立在RAM内部的顺序迭代递推的数据结构,递增迭代运算模块3的输入 和输出地址,就能实现这个顺序迭代递推的过程。如图3所示,迭代运算模块是关键方程求解算法的基本迭代运算单元,包含两个 有限域乘法单元31、一个有限域加法单元32、两个参数寄存器单元33。为在2个时钟周期 内完成一次稳定的迭代运算,有限域乘法单元采用并行结构设计,保证在1个时钟内完成 一次有限域乘法运算,这样,再加上1个时钟周期的有限域加法运算,就实现了上述要求。(4)修正系数模块关键方程求解算法的1次循环是一个顺序修正系数的过程,将修正系数模块4的 输入和输出指向RAM内部的顺序迭代递推的数据结构,依据算法判决条件选择修正系数的 方式,递增输入和输出的地址,就能逐次项顺序修正错误位置多项式和错误值多项式的系 数。
riBM和RiBM算法具有顺序迭代递推的结构,也就是错误位置多项式和错误值 多项式的权位和系数可以顺序存储和顺序迭代递推,这样将迭代递推的基本运算单元 剥离出来,将运算单元的输入和输出分别指向相应的RAM存储地址,通过地址的循环递 增方式,就可以实现循环的顺序迭代递推过程。这里选取riBM算法为例说明具体实施 方式,参考 Dilip V. Sarwate and Naresh R. Shanbhag, M High-Speed Architecture for Reed-Solomon Decoders, IEEE transaction on VLSI system, vol.9, pp. 641—655, Oct. 2001。在riBM算法中,Step riBM. 1和乂印riBM. 2步骤的操作分别对应顺序迭代递推 和顺序修正系数的过程。将riBM算法的lambda、b、dleta、theta作为RAM存储模块的数 据结构,lambda和b是t+Ι大小的数组,dleta和theta是2t大小的数组;gamma和k变量 作为状态控制模块的寄存器。Step riBM. 1步骤是riBM算法逻辑设计的复杂环节,如图4和图5所示,基于RAM 结构的lambda和dleta状态更新具有相同的逻辑结构,在每次迭代递推过程中,均采用一 个相同的迭代运算模块(虚线框标识),由低次项向高次项顺序递推各次项的系数,因此可 以将迭代递推的过程变换为顺序迭代存取RAM的过程。由于计算状态(r+Ι)需要保存状态(r)的数值,因此将RAM分为状态(r)和状态 (r+Ι)两块区域,且每次循环切换状态区域,这样就可以实现2t次循环顺序迭代递推的控 制过程。如图6所示,将每次迭代递推的lambda数组、b数组、delta数组、theta数组顺序 存储在RAM的状态(r)区域和状态(r+Ι)区域。每次循环迭代递推完成后,迭代运算模块 的输入就切换到RAM的对应状态区域,输出同样切换到自身对应的状态区域。Step riBM. 2步骤在修正系数的过程中,首先依据gamma和k在状态(r)的值决定 修正系数的方法,然后用状态(r)的数值修正状态(r+l)的数值。如图7所示,这个过程就 是将存储在状态(r)区域的数据顺序填充到相应的状态(r+l)区域,实际上就是数据搬移 的过程。由于乂印riBM. 1和乂印riBM. 2步骤是串行执行过程,因此迭代运算模块3和 修正系数模块4可以共享RAM的地址和数据总线。如图3所示,稳定的迭代运算模块3至 少需要2个时钟周期完成计算,但迭代运算模块3需要同时从RAM的状态(r)区域读取2 个数据,并且在读周期内还能同时写入状态(r+l)区域1个数据。采用3端口 RAM设计,修 正系数模块4共享迭代运算模块3的地址和数据总线,就能满足这个设计要求。如图8所示,状态控制模块1用于伴随式输入、算法初始化、循环状态控制、错误位 置多项式和错误值多项式的输出;RAM存储模块2用于存储乂印riBM. 1和乂印riBM. 2 步骤的数据结构;迭代运算模块3用于乂印riBM. 1步骤的迭代递推运算;修正系数模块4 用于乂印riBM. 2步骤的修正错误位置多项式和错误值多项式的系数。定义M是关键方程求解模块的数据总线和数据输入输出端口的位宽;定义L是地 址总线的位宽。基于RAM结构的关键方程求解模块的原理图的信号定义如下定义syn_en和syn_data信号是状态控制模块接收伴随式的信号;定义err_en 和err_data信号是状态控制模块发送错误位置多项式和错误值多项式的信号;定义flag 信号的flag
作为地址总线的最高位,用于切换RAM的状态(r)区域和状态(r+l)区 域,flag[l]标识修正系数模块的选择判决结果;定义start信号作为状态控制模块向迭代
6模块和修正系数模块发起的开始信号;定义over信号作为迭代模块和修正系数模块向状 态控制模块反馈的完成信号;定义rd_en和Wr_en信号是对3端口 RAM的读写使能;定义 addr_rd0、data_rd0、addr_rdl、data_rdl信号是读取3端口 RAM的地址总线和数据总线; 定义addr_rd2、data_rd2信号是写入3端口 RAM的地址总线和数据总线。关键方程求解模块的工作流程具体如下(1)状态控制模块1工作在空闲状态。在检测到syn_en触发信号后,立即转入开 始状态。(2)状态控制模块1工作在开始状态。首先通过syrudata信号端口依次接收2t 个伴随式,并在RAM存储模块2顺序存储delta和theta数组;然后依据算法初始化RAM存 储模块2的lambda数组和b数组,初始化寄存器k和gamma。初始化完成后转入迭代状态。(3)状态控制模块1工作在迭代状态。首先反转flag
信号,然后触发start
信号启动迭代运算模块3,等待OVer
触发信号。迭代模块3接收到Start
信号后, 立即设置初始地址,然后通过地址递增的方式顺序迭代递推RAM存储模块2的lambda数 组和delta数组。迭代运算模块3完成后,触发OVer
信号。状态控制模块1接收这个 over
触发信号后,立即转入修正状态。(4)状态控制模块1工作在修正状态。首先根据delta
和k的值设置flag[l] 信号;然后触发start[l]信号启动修正系数模块4,等待over[1]触发信号。修正系数模 块4接收到start[l]信号后,依据检测到的flag[l]信号选择修正系数的方式,并设置初 始地址,然后通过地址递增的方式,顺序迭代递推RAM存储模块2的b数组和theta数组。 修正系数模块4完成后,触发0Ver[l]信号。状态控制模块1接收到这个over[1]触发信 号后,flag[l]信号选择修正gamma和k值,然后转入结束状态。(5)状态控制模块1工作在结束状态。首先触发err_en信号,然后通过err_data 信号依次串行顺序输出RAM存储模块2的lambda数组,以及delta数组的前t+Ι个数值, 完成后转入空闲状态。本发明未详细说明部分属本领域技术人员公知常识。
权利要求
1.一种紧凑的高信息率RS译码装置,包括伴随式计算模块、关键方程求解模块、错误 搜索和错误值计算模块,所述关键方程求解模块采用riBM或RiBM算法,用于计算错误位置 多项式和错误值多项式。其特征在于所述关键方程求解模块包括RAM存储模块O)、迭代运算模块C3)和修正 系数模块⑷,RAM存储模块O),分为两个存储区,初始化时用于存储输入的伴随式;并在计算过程 中分别用于存储每次循环第r个状态和第r+Ι个状态中的错误位置、错误值和用于计算错 误位置和错位值的辅助数据;r为循环次数,取值W,2t-1];迭代运算模块(3),用于在循环中利用存储于RAM存储模块( 中的第r个状态中由修 正系数模块(4)产生的辅助数据更新第r+Ι个状态的错误位置和错位值;修正系数模块G),用于在循环中利用存储于RAM存储模块(2)中第r个状态的错位位 置和错位值修正第r+Ι个状态中用于计算错误位置和错位值的辅助数据。
2.根据权利要求1所述的一种紧凑的高信息率RS译码装置,其特征在于还包括状态 控制模块(1),状态控制模块(1)采用状态机对迭代运算模块( 和修正系数模块(4)进行 控制,所述状态机包括空闲状态、开始状态、迭代状态、修正状态和结束状态;空闲状态状态控制模块(1)对伴随式的输入进行检测,当有伴随式输入时,转入开始 状态;开始状态状态控制模块(1)将输入的伴随式存储到RAM存储模块( 中,并对算法进 行初始化,算法初始化完成后,转入迭代状态;迭代状态状态控制模块(1)启动迭代运算模块(3);迭代运算模块( 迭代运算完成 后,迭代运算模块(3)向状态控制模块(1)返回完成信号,转入修正状态;修正状态状态控制模块(1)启动修正系数模块;修正系数模块(4)对辅助数据修 正完成后;修正系数模块向状态控制模块(1)返回完成信号,转入结束状态; 结束状态状态控制模块(1)将错误多项式输出;转入空闲状态。
全文摘要
本发明公开了一种紧凑的高信息率RS译码装置,包括伴随式计算模块、关键方程求解模块、错误搜索和错误值计算模块,所述关键方程求解模块采用riBM或RiBM算法,用于计算错误位置多项式和错误值多项式。其中主要的关键方程求解模块包括RAM存储模块(2)、迭代运算模块(3)和修正系数模块(4)。采用本发明克服了高信息率RS译码过程中关键方程求解算法占用较多FPGA逻辑单元的问题。
文档编号H03M13/15GK102075200SQ201010623809
公开日2011年5月25日 申请日期2010年12月31日 优先权日2010年12月31日
发明者张春龙, 张鹏, 徐松艳 申请人:北京遥测技术研究所, 航天长征火箭技术有限公司