Encode data using a Reed-Solomon encoder
Block sublibrary of Error Correction and Detection
Reed-Solomon encoding follows the same standards as any other cyclic redundancy code. The Integer-Input RS Encoder HDL Optimized block can be used to model many communication system Forward Error Correcting (FEC) codes.
For more about the Reed-Solomon encoder, see the Integer-Input RS Encoder block reference. For more information on representing data for Reed-Solomon codes, see Integer Format (Reed-Solomon Only).
The Integer-Input RS Encoder HDL Optimized block has four input ports and four output ports.
Port | Direction | Description | Data Type |
---|---|---|---|
dataIn | Input | Message data, one symbol at a time. | Integer or fixdt with any binary point scaling. double is
allowed for simulation but not for HDL code generation. |
startIn | Input | Indicates the start of a frame of data. | boolean or fixdt(0,1) |
endIn | Input | Indicates the end of a frame of data. | boolean or fixdt(0,1) |
validIn | Input | Indicates that input data is valid. | boolean or fixdt(0,1) |
dataOut | Output | Message data with the checksum appended. The data width is the same as the input data port. | Same as dataIn |
startOut | Output | Indicates the start of a frame of data. | boolean or fixdt(0,1) |
endOut | Output | Indicates the end of a frame of data, including checksum. | boolean or fixdt(0,1) |
validOut | Output | Indicates that output data is valid. | boolean or fixdt(0,1) |
The length of the code word, N
, must be equal
to 2M-1
, where M
is
the input word length. M
can be between 3 and 16
bits.
The message length, K
. The number of parity
symbols, N-K
, must be a positive even integer,
greater than or equal to the input word length, M
.
Each input frame, i.e. the number of valid data samples between start
and end
,
must contain more than N-K
symbols, and fewer than
or equal to K
symbols. A shortened code is inferred
anytime the number of input data samples in a frame is less than K
.
Select Property
to enable the Primitive
polynomial parameter.
Binary row vector representing the primitive polynomial in descending
order of powers. When you provide a primitive polynomial, the number
of input bits, M
, must be an integer multiple of K
times
the order of the primitive polynomial.
This parameter applies when only when Property
is
selected for Primitive polynomial.
Select Property
to enable the Puncture
pattern vector parameter.
A column vector of length N-K
. In a puncture
vector, 1
represents that the data symbol passes
unaltered. The value 0
represents that the data
symbol is punctured, or removed from the data stream.
The default value is [ones(2,1); zeros(2,1)]
.
This field is available only when Property
is
selected for Source of puncture pattern.
Select Property
to enable the B
value parameter.
The starting exponent of the roots.
This field is available only when you select Property
for Source
of B, the starting power for roots of the primitive polynomial.
The generator polynomial is not specified explicitly. However,
it is defined by the code word length, the message length, and the
B value for the starting exponent of the roots. To get the value of
B from a generator polynomial, use the genpoly2b
function.
This block supports HDL code generation using HDL Coder™. HDL Coder provides additional configuration options that affect HDL implementation and synthesized logic. For more information on implementations, properties, and restrictions for HDL code generation, see Integer-Input RS Encoder HDL Optimized in the HDL Coder documentation.