backpressure HDL Worker

Application worker HDL implementation with settable runtime configuration parameters that applies back pressure to the upstream worker in the application.

Detail

A back pressure HDL worker is built into a worker’s unit test HDL assembly and is used to force back pressure during the execution of the application to exercise the worker’s ability to correctly handle back pressure.

The back pressure HDL worker does not manipulate the data; it simply passes it through. Validation of this worker requires passing a known input data pattern through the worker under its various modes and comparing the input and output files to verify that the data is unchanged. Since validation of the output is performed simply by comparing to the input, any non-zero input data is sufficient.

The back pressure HDL worker does not explicitly define input/output protocols. Since the input protocol is simply bits, the input protocol is irrelevant and is defined by the component that feeds it; for example, file read. The back pressure HDL worker only applies back pressure to the worker that is upstream within the application.

The following figure shows a block diagram representation of the HDL implementation:

Back Pressure HDL Worker Block Diagram

Figure 2: Back Pressure HDL Worker Block Diagram

Worker Properties

  • IDATA_WIDTH_p

    • Type: ulong

    • Access:

      • Parameter: True

      • Writable: False

      • Initial: False

      • Volatile: False

      • Read back: False

    • Default value: None

  • ODATA_WIDTH_p

    • Type: ulong

    • Access:

      • Parameter: True

      • Writable: False

      • Initial: False

      • Volatile: False

      • Read back: False

    • Default value: None

  • ocpi_buffer_size_out

    • Type: ushort

    • Access:

      • Parameter: False

      • Writable: False

      • Initial: True

      • Volatile: False

      • Read back: False

    • Default value: 0

  • ocpi_blocked_out

    • Type: ulong

    • Access:

      • Parameter: False

      • Writable: False

      • Initial: False

      • Volatile: True

      • Read back: False

    • Default value: None

  • ocpi_max_latency_out

    • Type: ushort

    • Access:

      • Parameter: True

      • Writable: False

      • Initial: False

      • Volatile: False

      • Read back: False

    • Default value: None

  • ocpi_latency_out

    • Type: ushort

    • Access:

      • Parameter: False

      • Writable: False

      • Initial: False

      • Volatile: True

      • Read back: False

    • Default value: None

  • ocpi_messages_out

    • Type: ulong

    • Access:

      • Parameter: False

      • Writable: False

      • Initial: False

      • Volatile: True

      • Read back: False

    • Default value: None

  • ocpi_bytes_out

    • Type: ulong

    • Access:

      • Parameter: False

      • Writable: False

      • Initial: False

      • Volatile: True

      • Read back: False

    • Default value: None

Worker Ports

    Inputs:

  • in: Size defined by IDATA_WIDTH_p.

    • Protocol: None

    • Optional: False

  • Outputs:

  • out: Sample size defined by ODATA_WITH_p.

    • Protocol: None

    • Optional: False

Finite State Machine

Not applicable.

Control and Timing Signals

The back pressure HDL worker uses the clock from the control plane and standard control plane signals.