data_src_qadc HDL Device Worker
HDL device worker that provides functionality common to all ADC device types.
Detail
The data source Quad Analog-to-Digital Converter (QADC) HDL device worker implements the data source QADC component provides, which provides the property and port definitions necessary for this HDL device worker to perform all the generic functionality required to ingest ADC data onto an FPGA.
A block diagram representation of the HDL device worker implementation is given in Figure 3:
Figure 3: Data Source QADC HDL Device Worker Block Diagram
The data source QADC HDL device worker receives sampled data from an ADC on
its dev devsignal port.
The worker sign-extends and justifies the samples to 16-bit I, 16-bit Q values,
which is the standard provided by the samples argument of the
ComplexShortWithMetadata-prot protocol used by the out port.
The HDL device worker performs justification within the 16-bit values according to
the value of the ADC_INPUT_IS_LSB_OF_OUT_PORT parameter property.
The ADC samples are sent along with the ADC clock on the dev devsignal port.
The ouput port clock is driven by the ADC clock, and backpressure from the output
port’s ready signal is not expected under normal operation. When backpressure is
experienced, the overrun_sticky_error property is set to true; in this
case, an out port samples message will be ended if one is in progress, and
a sync message will be sent to the output port.
The samp_count_before_first_samp_drop property
gives the number of samples before the first dropped sample and the
num_dropped_samps property gives the number of samples dropped.
Be sure to check these two properties
at the end of an application run because they are not stable until then.
The worker does not use clock domain crossing (cdc) HDL primitive library circuits
for these properties because it takes advantage of the fact that they will have
a stable value by the time the OpenCPI control
plane reads them at the end of an application run.
When set to true, the suppress_sync_opcode property prevents the HDL device worker from
sending sync opcodes.
For component properties implemented by this HDL device worker, see
$OCPI_ROOT_DIR/projects/platform/hdl/devices/specs/data_src_qadc-spec.xml.
Worker Properties
DATA_PIPE_LATENCY_CYCLESType:
ulongAccess:
Parameter:
TrueWritable:
FalseInitial:
FalseVolatile:
FalseRead back:
False
Default value:
None
OUT_PORT_DATA_WIDTHType:
ulongAccess:
Parameter:
TrueWritable:
FalseInitial:
FalseVolatile:
FalseRead back:
False
Default value:
None
ocpi_buffer_size_outType:
ushortAccess:
Parameter:
FalseWritable:
FalseInitial:
TrueVolatile:
FalseRead back:
False
Default value:
0
ocpi_blocked_outType:
ulongAccess:
Parameter:
FalseWritable:
FalseInitial:
FalseVolatile:
TrueRead back:
False
Default value:
None
ocpi_max_latency_outType:
ushortAccess:
Parameter:
TrueWritable:
FalseInitial:
FalseVolatile:
FalseRead back:
False
Default value:
None
ocpi_latency_outType:
ushortAccess:
Parameter:
FalseWritable:
FalseInitial:
FalseVolatile:
TrueRead back:
False
Default value:
None
ocpi_messages_outType:
ulongAccess:
Parameter:
FalseWritable:
FalseInitial:
FalseVolatile:
TrueRead back:
False
Default value:
None
ocpi_bytes_outType:
ulongAccess:
Parameter:
FalseWritable:
FalseInitial:
FalseVolatile:
TrueRead back:
False
Default value:
None
Worker Ports
out: Sign-extended justified 16-bit IQ samples.Protocol:
ComplexShortWithMetadataOptional:
False
devType:
devsignal
Outputs:
Interfaces (other than data I/O ports):
Worker Signals
clkDirection:
inDifferential:
falsePin:
false
data_iDirection:
inWidth:
16Differential:
falsePin:
false
data_qDirection:
inWidth:
16Differential:
falsePin:
false
validDirection:
inDifferential:
falsePin:
false
presentDirection:
outDifferential:
falsePin:
false