USRP Hardware Driver and USRP Manual  Version: 004.000.000.HEAD-0-g8773fb2c
UHD and USRP Manual
uhd::rfnoc Namespace Reference

Namespaces

 nocscript
 

Classes

class  block_ctrl
 This is the default implementation of a block_ctrl_base. More...
 
class  block_ctrl_base
 
class  block_id_t
 
class  blockdef
 
class  ddc_block_ctrl
 DDC block controller. More...
 
class  dma_fifo_block_ctrl
 Block controller for a DMA FIFO block. More...
 
class  duc_block_ctrl
 DUC block controller. More...
 
class  fir_block_ctrl
 Block controller for the standard FIR RFNoC block. More...
 
class  graph
 
struct  make_args_t
 
class  node_ctrl_base
 
class  null_block_ctrl
 Provide access to a 'null block'. More...
 
class  radio_ctrl
 Block controller for all RFNoC-based radio blocks. More...
 
class  rate_node_ctrl
 
class  scalar_node_ctrl
 
class  siggen_block_ctrl
 
class  sink_block_ctrl_base
 
class  sink_node_ctrl
 
class  source_block_ctrl_base
 
class  source_node_ctrl
 
class  stream_sig_t
 
class  terminator_node_ctrl
 
class  tick_node_ctrl
 
class  window_block_ctrl
 Block controller for the standard windowing RFNoC block. More...
 

Enumerations

enum  settingsbus_reg_t {
  SR_READBACK_REG_ID = 0, SR_READBACK_REG_GLOBAL_PARAMS = 1, SR_READBACK_REG_FIFOSIZE = 2, SR_READBACK_REG_MTU = 3,
  SR_READBACK_REG_BLOCKPORT_SIDS = 4, SR_READBACK_REG_USER = 5
}
 Settings register readback. More...
 

Functions

std::ostream & operator<< (std::ostream &out, block_id_t block_id)
 Shortcut for << block_id.to_string() More...
 
UHD_INLINE std::ostream & operator<< (std::ostream &out, stream_sig_t stream_sig)
 Shortcut for << stream_sig.to_string() More...
 

Variables

class UHD_RFNOC_API block_ctrl_base
 Base class for all RFNoC block controller objects. More...
 
class UHD_RFNOC_API node_ctrl_base
 Abstract base class for streaming nodes. More...
 
class UHD_RFNOC_API rate_node_ctrl
 Sampling-rate-aware node control. More...
 
class UHD_RFNOC_API scalar_node_ctrl
 Scaling node control. More...
 
class UHD_RFNOC_API sink_block_ctrl_base
 Extends block_ctrl_base with input capabilities. More...
 
class UHD_RFNOC_API sink_node_ctrl
 Abstract class for sink nodes. More...
 
class UHD_RFNOC_API source_block_ctrl_base
 Extends block_ctrl_base with receive capabilities. More...
 
class UHD_RFNOC_API source_node_ctrl
 Abstract class for source nodes. More...
 
class UHD_RFNOC_API terminator_node_ctrl
 Abstract class for terminator nodes (i.e. nodes that terminate the flow graph). More...
 
class UHD_RFNOC_API tick_node_ctrl
 Tick-rate-aware node control. More...
 

Enumeration Type Documentation

◆ settingsbus_reg_t

Settings register readback.

Enumerator
SR_READBACK_REG_ID 
SR_READBACK_REG_GLOBAL_PARAMS 
SR_READBACK_REG_FIFOSIZE 
SR_READBACK_REG_MTU 
SR_READBACK_REG_BLOCKPORT_SIDS 
SR_READBACK_REG_USER 

Function Documentation

◆ operator<<() [1/2]

UHD_INLINE std::ostream& uhd::rfnoc::operator<< ( std::ostream &  out,
stream_sig_t  stream_sig 
)

Shortcut for << stream_sig.to_string()

◆ operator<<() [2/2]

std::ostream& uhd::rfnoc::operator<< ( std::ostream &  out,
block_id_t  block_id 
)
inline

Shortcut for << block_id.to_string()

Variable Documentation

◆ block_ctrl_base

Base class for all RFNoC block controller objects.

For RFNoC, block controller objects must be derived from uhd::rfnoc::block_ctrl_base. This class provides all functions that a block must provide. Typically, you would not derive a block controller class directly from block_ctrl_base, but from a class such as uhd::usrp::rfnoc::source_block_ctrl_base or uhd::usrp::rfnoc::sink_block_ctrl_base which extends its functionality.

◆ node_ctrl_base

Abstract base class for streaming nodes.

◆ rate_node_ctrl

Sampling-rate-aware node control.

A "rate" node is a streaming node is a point in the flow graph that is aware of sampling rates. Such nodes include:

  • Radio Controls (these actually set a sampling rate)
  • Decimating FIR filters (their output rates depend on both incoming rates and their own settings, i.e. the decimation)
  • Streaming terminators (these need to know the sampling rates to configure the connected streamers)

◆ scalar_node_ctrl

Scaling node control.

A "scalar" node is a streaming node in which a scaling takes place, usually for the conversion between fixed point and floating point (the latter usually being normalized between -1 and 1).

Such blocks include:

  • Radio Controls
  • Potentially FFTs or FIRs, if they affect scaling

◆ sink_block_ctrl_base

Extends block_ctrl_base with input capabilities.

A sink block is an RFNoC block that can receive data at an input. We can use this block to transmit data (In RFNoC nomenclature, a transmit operation means streaming data to the device from the host).

Every input is defined by a port definition (port_t).

◆ sink_node_ctrl

Abstract class for sink nodes.

Sink nodes can have upstream blocks.

◆ source_block_ctrl_base

Extends block_ctrl_base with receive capabilities.

In RFNoC nomenclature, a receive operation means streaming data from the device (the crossbar) to the host. If a block has receive capabilities, this means we can receive data from this block.

◆ source_node_ctrl

Abstract class for source nodes.

Source nodes can have downstream blocks.

◆ terminator_node_ctrl

Abstract class for terminator nodes (i.e. nodes that terminate the flow graph).

Terminator nodes have the following properties:

  • Data flowing into such a node is not propagated to any other node, and data coming out of this node originates in this node.
  • Chain commands are not propagated past this node.

A block may be a terminator node, but have both upstream and downstream nodes. An example is the radio block, which can be used for Rx and Tx. Even if it's used for both, the data going into the radio block is not the data coming out.

◆ tick_node_ctrl

Tick-rate-aware node control.

A "rate" node is a streaming node is a point in the flow graph that is aware of tick rates (time base). Such nodes include:

  • Radio Controls
  • Data generating blocks that add time stamps