Iqstream max calculator (iqstream_max_calculator)
iqstream_max_calculator is an asset in the ocpi.assets.util_comps component library. Implementations include iqstream_max_calculator HDL Worker (iqstream_max_calculator.hdl) and iqstream_max_calculator RCC Worker (iqstream_max_calculator.rcc). Tested platforms include Rocky9, xsim.
Design
in/out ports
Messages are passed directly from the in port to the out port. Backpressure is transfered to the in port from the out port.
max I is valid Property
Indicates max_I is valid. Will be false if no data has been received on in\verb port since either a) the last read of max_I or b) the worker first went into the operating state.
max Q is valid Property
Indicates max_Q is valid. Will be false if no data has been received on in port since either a) the last read of max_I or b) the worker first went into the operating state.
max I Property
Max I value observed on in port. Value will be -32768 when worker first enters the
operating state and will be reset to -32768 after each read. max_I_is_valid should always be read prior to reading this property because
max_I_is_valid will immediately be set to false once max_I is read.
max Q Property
Max Q value observed on in port. Value will be -32768 when worker first enters the operating state and will be
reset to -32768 after each read. max_Q_is_valid should always be read prior to reading this property because
max_I_is_valid will immediately be set to false once max_Q is read.
Interface
<!-- This is the spec file (OCS) for: iqstream_max_calculator
Add component spec attributes, like "protocol".
Add property elements for spec properties.
Add port elements for i/o ports -->
<!-- max_I_is_valid Indicates max_I is valid. Will be false if no data has
been received on in port since either a) the last read of
max_I or b) the worker first went into the operating
state.
max_Q_is_valid Indicates max_Q is valid. Will be false if no data has
been received on in port since either a) the last read of
max_I or b) the worker first went into the operating
state.
max_I Max I value observed on in port. Value will be -32768
when worker first enters the operating state and will be
reset to -32768 after each read. max_I_is_valid should
always be read prior to reading this property because
max_I_is_valid will immediately be set to false once
max_I is read.
max_Q Max Q value observed on in port. Value will be -32768
when worker first enters the operating state and will be
reset to -32768 after each read. max_Q_is_valid should
always be read prior to reading this property because
max_I_is_valid will immediately be set to false once
max_Q is read.
-->
<ComponentSpec>
<!-- The max_I_is_valid/max_Q_is_valid properties are *intentionally* placed
above max_I/max_Q in this XML file to ensure that they are read before
the reset behavior caused by max_I/max_Q property reads. -->
<Property Name="max_I_is_valid" Type="bool"
Volatile="true"
Description="Indicates max_I is valid."/>
<Property Name="max_Q_is_valid" Type="bool"
Volatile="true"
Description="Indicates max_Q is valid."/>
<Property Name="max_I" Type="short"
Volatile="true"
Description="Max I value observed on in port since last read."/>
<Property Name="max_Q" Type="short"
Volatile="true"
Description="Max Q value observed on in port since last read."/>
<DataInterfaceSpec Name="in" Producer="false"
Protocol="iqstream_protocol.xml"/>
<DataInterfaceSpec Name="out" Producer="true"
Protocol="iqstream_protocol.xml"
Optional="true"/>
</ComponentSpec>
Properties
max_I_is_valid: Indicates max_I is valid.Type:
boolAccess:
Parameter:
FalseWritable:
FalseInitial:
FalseVolatile:
True
Default value:
None
max_Q_is_valid: Indicates max_Q is valid.Type:
boolAccess:
Parameter:
FalseWritable:
FalseInitial:
FalseVolatile:
True
Default value:
None
max_I: Max I value observed on in port since last read.Type:
shortAccess:
Parameter:
FalseWritable:
FalseInitial:
FalseVolatile:
True
Default value:
None
max_Q: Max Q value observed on in port since last read.Type:
shortAccess:
Parameter:
FalseWritable:
FalseInitial:
FalseVolatile:
True
Default value:
None
Ports
Inputs:
inProtocol:
iqstream_protocol.xmlOptional:
False
Outputs:
outProtocol:
iqstream_protocol.xmlOptional:
True
Implementations
Dependencies
The dependencies to other elements in OpenCPI are:
assets/components/util_comps/iqstream_max_calculator.hdl/iqstream_max_calculator.cc
assets/components/util_comps/iqstream_max_calculator.hdl/iqstream_max_calculator.vhd
Limitations
Limitations of iqstream_max_calculator are:
None.
Testing
No unit test for this component exists. However, a hardware-in-the-loop application (which is NOT a unit test) exists for testing purposes (see assets/applications/iqstream_max_calculator_test).