golay_encoder_us_ul HDL Worker
Implementation of a [24,12,8] Golay encoder.
Detail
The Golay codewords generated by this worker use the characteristic polynomial shown in the following equation, which can also defined as 0xAE3.
An overall parity bit is added to extend the codewords to be Golay [24,12,8].
This implementation uses a ROM of precomputed Golay codewords with input port data used as the address to the ROM.
It can only process 12 bit data at a time since it encodes 12 bit data, so it only looks at the 12 LSB bits of the input data port.
The codewords produced are 24 bits wide, placed in the 24 LSB bits of the output data port.
Latency:
The output has a latency of one
output_in.clkclock cycle
References:
http://aqdi.com/articles/using-the-golay-error-detection-and-correction-code-3/
https://www.sciencedirect.com/science/article/pii/S1665642313715438
https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.323.9943&rep=rep1&type=pdf
http://www.rajivchakravorty.com/source-code/uncertainty/multimedia-sim/html/golay_8c-source.html
Worker Properties
checkbits_maskType:
ushortAccess:
Parameter:
FalseWritable:
FalseInitial:
TrueVolatile:
FalseRead back:
False
Default value:
0
ocpi_buffer_size_outputType:
ushortAccess:
Parameter:
FalseWritable:
FalseInitial:
TrueVolatile:
FalseRead back:
False
Default value:
0
ocpi_blocked_outputType:
ulongAccess:
Parameter:
FalseWritable:
FalseInitial:
FalseVolatile:
TrueRead back:
False
Default value:
None
ocpi_max_latency_outputType:
ushortAccess:
Parameter:
TrueWritable:
FalseInitial:
FalseVolatile:
FalseRead back:
False
Default value:
None
ocpi_latency_outputType:
ushortAccess:
Parameter:
FalseWritable:
FalseInitial:
FalseVolatile:
TrueRead back:
False
Default value:
None
ocpi_messages_outputType:
ulongAccess:
Parameter:
FalseWritable:
FalseInitial:
FalseVolatile:
TrueRead back:
False
Default value:
None
ocpi_bytes_outputType:
ulongAccess:
Parameter:
FalseWritable:
FalseInitial:
FalseVolatile:
TrueRead back:
False
Default value:
None
Worker Ports
inputProtocol:
ushort_timed_sampleOptional:
False
outputProtocol:
ulong_timed_sampleOptional:
False
Inputs:
Outputs:
Worker Ports
Inputs:
input:Type:
StreamInterfaceProtocol:
ushort_timed_sample-protClock:
outputData width:
16
Outputs:
output:Type:
StreamInterfaceProtocol:
ulong_timed_sample-protWorker EOF:
trueInsertEOM:
trueClockDirection:
inData width:
32
Utilisation
Utilization reporting is not currently implemented.