主要内容

通用CRC发电机HDL优化

生成CRC码位并将其附加到输入数据中

  • 库:
  • 通信工具箱HDL支持/错误检测和校正/ CRC金宝app

    通信工具箱/错误检测和纠正/ CRC

  • 通用CRC生成器HDL优化块

描述

通用CRC发电机HDL优化块,类似于一般CRC发电机块,生成循环冗余校验(CRC)校验和,并将其附加到输入消息。的通用CRC发电机HDL优化块处理为HDL代码生成进行了优化。该块不是一次处理整个帧,而是接受并返回一个带有控制信号的数据样本流。控制信号表明样本的有效性和帧的边界。为了实现更高的吞吐量,该块接受高达CRC长度的矢量数据,并实现并行架构。

港口

输入

展开所有

输入数据,指定为其中一个选项。

  • 标量-指定一个代表几个位的整数。对于本例,块支持无符号整数(金宝appuint8uint16,或uint32)或者Fixdt(0,n,0)数据类型。

  • 向量-指定一个二进制值的向量。对于这种情况,块支持a金宝app双人间或者布尔基数据类型。

数据宽度小于等于CRC校验长度,且CRC校验长度能被数据宽度整除。对于CRC-CCITT/CRC-16,有效数据宽度为16、8、4、2、1。

示例:uint8矢量输入[0 0 0 1 0 0 1 1]相当于19

数据类型:双人间|uint8|uint16|uint32|定点|布尔基

输入帧指示符的开始,指定为布尔标量。

数据类型:布尔基

输入帧指示器的结尾,指定为布尔标量。

数据类型:布尔基

有效输入数据指示符,指定为布尔标量。

这是一个控制信号,表明数据是否dataIn端口有效。

数据类型:布尔基

输出

展开所有

带有附加校验和的输出数据,作为标量或向量返回。输出数据类型和大小与输入数据相同。

数据类型:双人间|uint8|uint16|uint32|布尔基|定点

输出帧指示符的开始,返回一个布尔标量。

数据类型:布尔基

输出框架指示器结束,作为布尔标量返回。

数据类型:布尔基

有效的输出数据指示符,作为布尔标量返回。

该端口是一个控制信号,指示数据是否在数据源端口有效。

数据类型:布尔基

参数

展开所有

将发电机多项式指定为二进制向量,其中具有基准的系数以降序为单位。向量长度等于多项式加1的程度。

将内部移位寄存器的初始条件指定为二进制、双精度或单精度标量或向量。对于向量输入,初始状态的长度必须等于生成器多项式的次数。

指定用于计算校验和的直接或间接方法。

  • 为使用直接算法进行CRC校验和计算的块选择此参数。

  • 为块清除此参数以使用非直接算法进行CRC校验和计算。

有关直接和非直接算法的更多信息,请参见循环冗余检查代码

指定输入字节顺序。

  • 为块选择此参数,以便在它进入移位寄存器之前翻转每个输入字节。

  • 清除该块的此参数将消息数据传递给移位寄存器不变。

输入的数据宽度必须是8的倍数。

指定校验和字节顺序。

  • 在将其传递到最终XOR阶段之前,选择该块的此参数将每个校验和字节翻转。

  • 为块清除此参数,以将校验和字节不变地传递到最后的XOR阶段。

输入的数据宽度必须是8的倍数。

将校验和指定为二进制、双精度或单精度数据类型标量或向量。块使用这个值对CRC校验和执行异或操作,然后将其附加到输入数据中。

如果指定一个向量输入,向量长度必须等于生成器多项式的次数。

算法

展开所有

当您使用向量或整数输入时,块实现并行CRC算法[1]

为了为现代通信系统提供高吞吐量,该模块采用并行架构实现CRC算法。这个架构递归地计算每个CRC校验和的比特W输入位。在框架末尾,最终校验和结果将附加到消息。对于多项式的长度的递归校验和计算W并行位是

X F W × X + D

FW是一个-用新的输入位选择多项式计算的当前状态元素的矩阵。D是一个元素向量,它提供新的输入位,与生成器的多项式排序并填充为零。该块实现了逻辑与的(×)和逻辑异或的(+)。

参考资料

[1] Campobello,G.,G.凯顿和M. Russo。“并行CRC实现。”IEEE计算机汇刊52岁的没有。10(十月2003):1312-19。https://doi.org/10.1109/TC.2003.1234528。

扩展功能

在R2012A介绍