论文部分内容阅读
Reed Solomon (RS)码是一类广泛应用的前向纠错码,它能够检测和纠正多种类型的错误,特别是突发错误。本文的主要任务是针对FPGA平台设计高速、高吞吐率和高资源利用率的通用RS译码器。在现有的RS码译码算法中,riBM(reformed inverse-free Berlekamp-Messey)算法凭借其较短的关键路径延迟、较高的数据吞吐率和非常规则的结构成为了实现RS译码器的主流算法。然而,在基于riBM算法的RS译码器中,KES模块需要大量的有限域乘法器和有限域加法器资源,而且该模块在译码时长时间处于空闲状态。因此,riBM算法具有较高的硬件复杂度和较低的资源率。针对这些问题,本文提出了改进方法。首先,我们将KES模块进行t+1倍复用,从而使得该模块需要的组合逻辑资源几乎降低到了原来的t+1分之一。复用后的RS译码器仍然保持着原有的关键路径延迟和吞吐率,同时KES模块的空闲时间显著减少,这也就意味着资源利用率的提高。另外,在改进结构的基础上,我们发现通过在模块之间共享硬件资源可以进一步降低译码器的硬件复杂度。这正是传统RS译码算法的研究盲区,因为这些算法往往专注于提高单个模块的性能。本文给出了在模块间共享资源的两种方法,并且证明了这两种方法都能够进一步降低RS译码器的硬件复杂度和提高资源利用率。最后,本文还将这些改进方法推广到了删除译码和打孔码的译码。本文设计的RS译码器能够支持多种类型的RS码,包括RS全码、RS缩短码、RS打孔码和删除译码,并且提供自检错机制。该机制能够检测由于实际错误个数超过纠错能力引起的译码错误,而且有较高的检测概率。本文设计的电路结构都已经分别用M语言和VHDL语言实现和验证,并且给出了相应的仿真结果。基于DSP和FPGA的联合硬件平台测试也证明了设计的正确性。另外,综合和仿真结果表明,本文设计的译码器在资源消耗、译码速度、吞吐率和延迟等性能上都十分接近商业IP核的水平。最后,本文还将所有的VHDL代码整合到一个应用软件中,用户只需通过图形界面指定相关的参数就可获得相应的VHDL代码。