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.

(19)\[x^{11}+x^9+x^7+x^6+x^5+x+1\]

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.clk clock cycle

References:

Worker Properties

  • checkbits_mask

    • Type: ushort

    • Access:

      • Parameter: False

      • Writable: False

      • Initial: True

      • Volatile: False

      • Read back: False

    • Default value: 0

  • ocpi_buffer_size_output

    • Type: ushort

    • Access:

      • Parameter: False

      • Writable: False

      • Initial: True

      • Volatile: False

      • Read back: False

    • Default value: 0

  • ocpi_blocked_output

    • Type: ulong

    • Access:

      • Parameter: False

      • Writable: False

      • Initial: False

      • Volatile: True

      • Read back: False

    • Default value: None

  • ocpi_max_latency_output

    • Type: ushort

    • Access:

      • Parameter: True

      • Writable: False

      • Initial: False

      • Volatile: False

      • Read back: False

    • Default value: None

  • ocpi_latency_output

    • Type: ushort

    • Access:

      • Parameter: False

      • Writable: False

      • Initial: False

      • Volatile: True

      • Read back: False

    • Default value: None

  • ocpi_messages_output

    • Type: ulong

    • Access:

      • Parameter: False

      • Writable: False

      • Initial: False

      • Volatile: True

      • Read back: False

    • Default value: None

  • ocpi_bytes_output

    • Type: ulong

    • Access:

      • Parameter: False

      • Writable: False

      • Initial: False

      • Volatile: True

      • Read back: False

    • Default value: None

Worker Ports

    Inputs:

  • input

    • Protocol: ushort_timed_sample

    • Optional: False

  • Outputs:

  • output

    • Protocol: ulong_timed_sample

    • Optional: False

Worker Ports

Inputs:

  • input:

    • Type: StreamInterface

    • Protocol: ushort_timed_sample-prot

    • Clock: output

    • Data width: 16

Outputs:

  • output:

    • Type: StreamInterface

    • Protocol: ulong_timed_sample-prot

    • Worker EOF: true

    • InsertEOM: true

    • ClockDirection: in

    • Data width: 32

Utilisation

Utilization reporting is not currently implemented.