当前位置:首页 > 嵌入式 > 嵌入式硬件
[导读]本文阐述了专为可编程逻辑优化的Reed Solomon编译码器的使用及其结果。详细地描述了几种不同编译码器的设计,并分析了它们资源需求和编译码性能。

1.简介

本文所述的Reed Solomon编译码器编译器能够产生多种代码形式的Reed Solomon的宏编码器和译码器,这些代码形式在参数部分详细说明,一旦确定了代码,可以对顶层HDL代码以Altera 10K器件进行编译。通常,编码器编译包括装配和布线不超过一分钟,而译码器编译也只要五分钟。这个应用程序也能够产生测试代码,可以验证所生成内核的功能。

有三种Reed Solomon 编译码器的宏单元,一个是编码器,另两个是译码器它们是为不同规模/性能要求而优化的。性能较低的译码器,也依据分立译码器,接收一个码字,计算差错位置和值,写回纠正后的码字。性能较高的译码器,或流译码器,连续读取和写回码字。流译码器或多或少地多使用一些逻辑,但需要更多的存储空间,由于译码模块之间进行流水线作业因此性能有很大程度的改善。

2.参数

以下参数定义了Reed Solomon码字。

A.每个码字的符号总数

每个码字有多达2m-1个符号,也就是N。对Reed Solomon编译器,N必须大于3,受最小的R+1限制。

B.校验符号数目

编译器支持4到40个校验符号,或者R,受最大N-1校验符号限制。

C.每个符号的位数

虽然Reed Solomon码字可以为每个符号定义任意位数m,但编译器的有效范围从4到8比特。

D.不可约域多项式

域多项式,或域(field),指定了有限域中元素的级数。域的大于由m给定,每个域大小仅受限于有效域多项式数目。域多项式通常由系统规范确定,但是对于给定的m,编译器能够使用任何有效的域多项式。另外FIELD.EXE应用程序可以根据任意m计算所有有效的域。

E.生成多项式的第一个根

域多项式描述的符号内各位之间的关系,而生成多项式则描述了符号之间的关系。生成多项式在编码期间生成校验符号。编译器支持0到2m-1-R之间的genstart。

3.设计流程

使用第二节中描述的参数,DOS应用程序将生成用于HDL结构框架设计的插件。用于生成编码器的应用程序是ENCRSV3,生成译码器的应用程序是DECRSV3。可以按第二节所列的参数顺序调用这两个应用程序。应用程序会检验并确认参数处于有效范围内,确认这些参数组合能够生成有效的RS码。应用程序还可以为这个RS编译码产生测试代码,马上就可以进行功能测试了。

程序运行之后,就能够以独立的设计或作为更大系统设计的一部分编译所需功能的顶层HDL。

4.资源要求

所需资源的数量主要取决于m和R。每个码字的符号数目不会影响译码器所需逻辑,因为接收的符号存储在Altera 10K器件的嵌入存储块中。

编码器需要很少的逻辑单元,而不需要存储块。编码器的规模随m和R线性变化。图1为当m=8时,编码器规模和R的关系。

虽然对给定的m的R,分立和流式译码器之间有大略的线性关系,但它们的规模随m和R呈几何增长。除了逻辑之外,分立译码器需要两个嵌入存储块,而流式译码器需要五个存储块。若生成多项式的第一个根大于零,那么需要更多的存储块。图2为m=8时,译码器规模和R的关系。

5.计算系统性能

编码器的性能取决于m和R,以及器件的布线和装配。通常绝大部分的参数组合都可以实现40MHz系统时钟速度,这说明编码器的性能一般高于译码器。当编码每个时期你生一个符号,吞吐速率和系统时钟速率一样。

译码器的系统性能取决于系统时钟速率以及所选的RS码字。处理一个码字所需的最小和最大时钟速率,取决于N和R。如果接收码字的差错小于最大差错数目t,译码所需的时钟周期小于最大周期数。若接收的码字多于t个差错,那么最大时钟周期后,译码器输出接收的码字,并把DECFAIL标志置位。

分立和流式译码器均有规模/性能(size/performance)权衡参数speed,它可以设置为"single"或"double"。实现"double"(加倍)内部处理单元无需很多的额处逻辑,不多于2m2个逻辑单元。速度参数也会提高分立译码器的性能,但可能会影响流译码器的吞吐量。

当N为码字的最大允许值(2m-1)时,译码器的吞吐量最大。

A.分立译码器

当speed为"single"时,分立译码器的最大延如下,其中包括读取接收的码字和写回纠正后的码字。

3N+3R 2 (1)

对于较大的R值,那么延迟主要决定于第二项。

当speed是"double"时,分立译码器的最大延迟为:

3N+1.7R 2 (2)

对于R小于14,译码可能需要额外延迟40个周期。若R值更大,延迟可能稍微短一些。

图3为不同参数N,R以及speed对分立译码器吞吐量的影响。对于较小的R,N和speed译码器的性能没有多大影响。

随着R的增加,N对系统吞吐量变得非常重要。这是因为系统吞吐量是测算单位时间内符号的数目,随着R增加,N对延迟的影响微不足道。

对于较大的R,译码器的吞吐量和N成正比。随着R的增加,speed参数的影响简单地由上述(1)和(2)式决定。当speed设置为"double"时,性能提升50%。

B.流式译码器

当speed是"single"时,流式译码器每个码字的最大延迟为:

max{(N+R),(3R2)} (3)

当speed是"double"时,流式译码器每个码字的最大延迟为:

max{(N+R),(1.7R2)} (4)

此外,和分立译码器一样,延迟随R变化很小(最多40个周期)。

图4说明了不面N和R对性能的影响。R越大,增加N或者把speed参数设置为"double"的影响越大。

对特定的m,系统时钟频率保持相对稳定,随m只有轻微变化。

6.结论

高性能的Reed Solomon 编码器和译码器可以采用完全参数化的工具方便地进行设计。这些Reed Solomon核能综合到可编程逻辑中,可以生成和标准器件(ASSP)面样级数,或性能更优的编译码器。

在综合之前要给定RS的参数,估计核的大小和性能。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

在嵌入式系统开发、调试和测试过程中,J-Link作为一种高效的调试工具,为开发者提供了极大的便利。然而,要想充分发挥J-Link的功能,首先需要正确安装其驱动程序。本文将详细介绍J-Link驱动的安装过程,并深入解析其中...

关键字: jlink 嵌入式系统 嵌入式开发

与谷歌的合作使 Nordic 能够在 nRF Connect SDK 中嵌入开发人员软件,以构建与安卓移动设备兼容的谷歌Find My Device和未知跟踪器警报服务

关键字: 谷歌 SoC 嵌入式开发

嵌入式开发作为当今电子工程和信息技术领域的核心分支,涵盖了广泛的软硬件技术和系统集成方法,用于构建高性能、低成本、低功耗、体积小巧且功能专一的嵌入式系统。这些系统无处不在,从微型传感器节点到复杂的工业控制设备,从日常使用...

关键字: 嵌入式开发 Python

嵌入式开发是当今信息技术领域不可或缺的一部分,它融合了硬件设计、软件开发和系统集成等多个学科,专门用于创建那些被嵌入到特定设备或系统中的专用计算机系统。嵌入式开发的主要过程包括利用分立元件或集成器件进行电路设计、结构设计...

关键字: 嵌入式开发 硬件设计 软件开发

嵌入式开发作为一种专业且技术密集型的领域,涵盖了从硬件底层驱动、中间件到应用层软件开发等多个层面的工作,其所需的工具种类繁多,各有针对性,旨在提升开发效率、保证代码质量以及简化调试过程。

关键字: 嵌入式开发 keil

嵌入式开发作为信息技术领域的重要分支,其涉及的语言种类繁多,各具特色。这些语言的选择取决于目标平台的特性、性能需求、开发者的熟练程度以及项目的具体要求。本文将详细介绍几种常见的嵌入式开发语言,包括C语言、C++、汇编语言...

关键字: 嵌入式开发 C语言

嵌入式开发是一项综合了硬件设计、软件编程以及系统整合的技术活动,其目的是为了创造出能够在特定环境中高效、稳定运行的嵌入式系统。这一流程涵盖了多个紧密关联且不可或缺的阶段,从最初的客户需求分析到最终的产品测试和交付,每个环...

关键字: 嵌入式开发 硬件设计

嵌入式开发作为一个融合了计算机软硬件和系统工程的综合性领域,其成功与否往往取决于三个核心要素的有效整合与协调。这三个要素分别是:硬件平台的选择与设计、软件开发及其优化、以及系统级的设计与集成。深入理解并熟练掌握这三个方面...

关键字: 嵌入式开发 ARM

嵌入式开发作为信息技术的关键支柱,在全球数字化转型浪潮中扮演着无可替代的角色。从传统的嵌入式微控制器到如今先进的片上系统(SoC),再到与云计算、人工智能深度融合的智能终端,嵌入式系统的演进与发展始终紧跟时代脉搏。本文将...

关键字: 嵌入式开发 智能应用

嵌入式开发是一种专门针对特定硬件平台设计和实现软件系统的工程实践,它涵盖了从需求分析、系统设计、编程实现、调试测试直到产品部署及维护的全过程。本文将深入探讨嵌入式开发的主要阶段,分解其流程并阐述每个步骤的关键要点,以便于...

关键字: 嵌入式开发 嵌入式软件
关闭
关闭