CIC Interpolator (cic_interpolator)

CIC (cascading integrating comb) filter combined with interpolator.

Design

This component will be deprecated within this OSP in future releases. It is the equivalent of cic_interpolator_xs component within OpenCPI SDR Components Library (ocpi.comp.sdr) .

Interface

<?xml version="1.0"?>
<componentspec>
  <property name="cic_order" type="uchar" parameter="true" writable="false" default="3" description="Number of comb and integrator stages."/>
  <property name="cic_diff_delay" type="uchar" parameter="true" writable="false" default="2" description="Number of differential delay stages."/>
  <property name="cic_reg_size" type="uchar" parameter="true" writable="false" default="36" description="Internal data size used within the child primitives."/>
  <property name="up_sample_factor" type="ushort" writable="true" default="2" description="Up sampling factor"/>
  <property name="scale_output" type="uchar" writable="true" default="5" description="Output scale factor. CIC output is divided by :math:`2^{\texttt{scale_output}}`."/>
  <property name="flush_length" type="ushort" writable="true" default="0" description="Number of zero samples that should be inserted into the CIC on receipt of a flush opcode."/>
  <port name="input" producer="false" protocol="complex_short_timed_sample-prot"/>
  <port name="output" producer="true" protocol="complex_short_timed_sample-prot"/>
</componentspec>

Ports

Inputs:

  • input: Primary input samples port.

    • Protocol: complex_short_timed_sample-prot

    • Optional: False

Outputs:

  • output: Primary output samples port.

    • Protocol: complex_short_timed_sample-prot

    • Optional: False

Properties

  • cic_order: Number of comb and integrator stages.

    • Type: uchar

    • Access:

      • Parameter: True

      • Writable: False

      • Initial: False

      • Volatile: False

    • Default value: 3

  • cic_diff_delay: Number of differential delay stages. Must not be set to zero.

    • Type: uchar

    • Access:

      • Parameter: True

      • Writable: False

      • Initial: False

      • Volatile: False

    • Default value: 2

  • cic_reg_size: Internal data size used within the child primitives.

    • Type: uchar

    • Access:

      • Parameter: True

      • Writable: False

      • Initial: False

      • Volatile: False

    • Default value: 36

  • up_sample_factor: Up sampling factor. Must not be set to zero.

    • Type: ushort

    • Access:

      • Parameter: False

      • Writable: True

      • Initial: False

      • Volatile: False

    • Default value: 2

  • scale_output: Output scale factor. CIC output is divided by \(2^{\texttt{scale_output}}\). Must not be set greater than \(\texttt{cic_reg_size} - 16\).

    • Type: uchar

    • Access:

      • Parameter: False

      • Writable: True

      • Initial: False

      • Volatile: False

    • Default value: 5

  • flush_length: Number of zero samples that should be inserted into the CIC on receipt of a flush opcode.

    • Type: ushort

    • Access:

      • Parameter: False

      • Writable: True

      • Initial: False

      • Volatile: False

    • Default value: 0

Implementations

Dependencies

The dependencies to other elements in OpenCPI are:

There is also a dependency on:

  • ieee.std_logic_1164

  • ieee.numeric_std

  • ieee.math_real

Limitations

Limitations of cic_interpolator_xs are:

  • Up-sample factor must be greater than or equal to 2.