CIC Decimator (cic_decimator)
CIC (cascading integrating comb) filter combined with decimator.
Design
This component will be deprecated within this OSP in future releases. It is the equivalent of cic_decimator_xs component within OpenCPI SDR Components Library (ocpi.comp.sdr) .
Interface
<?xml version="1.0"?>
<componentspec>
<property name="cic_order" type="uchar" writable="false" parameter="true" default="3" description="CIC order. Number of comb and integrator stages."/>
<property name="cic_diff_delay" type="uchar" writable="false" parameter="true" default="2" description="Number of differential delay stages."/>
<property name="cic_reg_size" type="uchar" writable="false" parameter="true" default="36" description="Internal data size used within the child primitives."/>
<property name="down_sample_factor" type="ushort" writable="true" default="2" description="Down sampling factor."/>
<property name="scale_output" type="uchar" writable="true" default="6" 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-protOptional:
False
Outputs:
output: Primary output samples port.Protocol:
complex_short_timed_sample-protOptional:
False
Properties
cic_order: CIC order. Number of comb and integrator stages.Type:
ucharAccess:
Parameter:
TrueWritable:
FalseInitial:
FalseVolatile:
False
Default value:
3
cic_diff_delay: Number of differential delay stages. Must not be set to zero.Type:
ucharAccess:
Parameter:
TrueWritable:
FalseInitial:
FalseVolatile:
False
Default value:
2
cic_reg_size: Internal data size used within the child primitives.Type:
ucharAccess:
Parameter:
TrueWritable:
FalseInitial:
FalseVolatile:
False
Default value:
36
down_sample_factor: Down sampling factor. Must not be set to zero.Type:
ushortAccess:
Parameter:
FalseWritable:
TrueInitial:
FalseVolatile:
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:
ucharAccess:
Parameter:
FalseWritable:
TrueInitial:
FalseVolatile:
False
Default value:
6
flush_length: Number of zero samples that should be inserted into the CIC on receipt of a flush opcode.Type:
ushortAccess:
Parameter:
FalseWritable:
TrueInitial:
FalseVolatile:
False
Default value:
0
Implementations
cic_decimator(HDL)
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_decimator_xs are:
After a timestamp opcode message is received any zero length messages with the sample opcode are discarded until the next valid message with a sample opcode is received. Under all other conditions zero length sample opcode messages are passed directly through.