Delay (delay)

Uses an internal delay line to delay incoming samples of a variable width bus by a specified number of output samples.

Design

The worker has a latency property, that is a build time parameter, that sets the number of output samples that should occur before the data makes it through an internal delay line between the input and output. For example, if the latency property is set to 8 and in periodic intervals the output is ready, 8 intervals will pass before an input sample makes it to the output.

Interface

<?xml version="1.0"?>
<componentspec>
  <property name="latency" type="uchar" parameter="true" default="8" description="Number of output samples to delay by"/>
  <property name="width" type="uchar" parameter="true" default="32" description="Sets the input and output bus width"/>
  <port name="input" producer="false" numberofopcodes="6" defaultbuffersize="16384"/>
  <port name="output" producer="true" numberofopcodes="6" defaultbuffersize="16384"/>
</componentspec>

Opcode Handling

All opcodes are passed through this component without modification.

Properties

  • latency: Number of output samples to delay by.

    • Type: uchar

    • Access:

      • Parameter: True

      • Writable: False

      • Initial: False

      • Volatile: False

    • Default value: 8

  • width: Sets the input and output bus width.

    • Type: uchar

    • Access:

      • Parameter: True

      • Writable: False

      • Initial: False

      • Volatile: False

    • Default value: 32

Ports

Inputs:

  • input: Primary input samples port.

    • Protocol: None

    • Optional: False

Outputs:

  • output: Primary output samples port.

    • Protocol: None

    • Optional: False

Implementations

Example Application

<?xml version="1.0"?>
<application done="file_write">
  <instance component="ocpi.core.file_read" connect="delay">
    <property name="filename" value="input.bin"/>
  </instance>
  <instance component="ocpi.comp.sdr.interface.delay" connect="file_write">
    <property name="latency" value="8"/>
    <property name="width" value="32"/>
  </instance>
  <instance component="ocpi.core.file_write">
    <property name="filename" value="output.bin"/>
  </instance>
</application>

Dependencies

The dependencies to other elements in OpenCPI are:

There is also a dependency on:

  • ieee.std_logic_1164

Limitations

Limitations of delay are:

  • None

Testing

Tested platforms: None

Component testing not completed.