timestamp_inserter HDL Worker

Detail

Data is read from the input port when the output is ready and no timestamps are currently being inserted.

Input data is added to the last used pipeline stage of an internal skid buffer if the pipeline is being shifted, else it is added to the next available stage. The skid buffer is dimensioned to equal the propagation delay of the ready being de-asserted on the output reaching the input, and the delay of the data reaching the output port. Therefore, there will always be a free slot in the skid buffer if required. Data is passed to the output port from the first address of the skid buffer when the output port is ready and no timestamps are being inserted. The skid buffer is then shifted.

Timestamps are provided as an input to the component on the time interface. The timestamp is a 64-bit number with the first 32 bits corresponding to seconds and the last 32 bits corresponding to fractions of a second. When a timestamp is to be inserted and a valid sample opcode message is detected on the input, the timestamp is registered and put to the output port, seconds first followed by fractions of a second. Timestamps will be output as a Time opcode.

The time interface from which the timestamps are generated originates from the OpenCPI time-server, which is instanced as part of the platform worker. Furthermore, an additional component (the time-client) is dynamically instanced by the framework for all components that declare time interfaces. The time-client communicates with the time-server and produces the time interface seen by the component.

Worker Properties

  • 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: None

    • Optional: False

  • Outputs:

  • output

    • Protocol: None

    • Optional: False

  • Interfaces (other than data I/O ports):

  • time

    • Type: timeinterface

Utilisation

Utilization reporting is not currently implemented.