USRP Hardware Driver and USRP Manual Version: 4.2.0.0
UHD and USRP Manual
uhd::rfnoc Namespace Reference

Namespaces

namespace  chdr
 
namespace  detail
 
namespace  rf_control
 

Classes

struct  action_info
 
class  addsub_block_control
 
class  block_control
 
class  block_id_t
 
class  blockdef
 
class  ddc_block_control
 
class  dirtifier_t
 
class  dmafifo_block_control
 
class  duc_block_control
 
class  fft_block_control
 
class  fir_filter_block_control
 
class  fosphor_block_control
 
struct  graph_edge_t
 
class  keep_one_in_n_block_control
 
class  logpwr_block_control
 
class  mb_controller
 
struct  mock_block_container
 
class  mock_reg_iface_t
 
class  moving_average_block_control
 
class  multichan_register_iface
 
class  noc_block_base
 
class  node_t
 
class  null_block_control
 
class  property_base_t
 
class  property_t
 
class  radio_control
 
class  register_iface
 
class  register_iface_holder
 
class  registry
 
class  replay_block_control
 
struct  res_source_info
 
class  rfnoc_graph
 
struct  rx_event_action_info
 
class  siggen_block_control
 
class  split_stream_block_control
 
struct  stream_cmd_action_info
 
class  switchboard_block_control
 
class  traffic_counter
 
struct  tx_event_action_info
 
class  vector_iir_block_control
 
class  window_block_control
 

Typedefs

using io_type_t = std::string
 
using noc_id_t = uint32_t
 
using device_type_t = uint16_t
 Device Type. More...
 
using sep_id_t = uint16_t
 Stream Endpoint ID Type. More...
 
using block_port_def = std::tuple< std::string, boost::optional< size_t > >
 Tuple that stores a block ID, as well as an optional port number. More...
 

Enumerations

enum class  fft_shift { NORMAL , REVERSE , NATURAL }
 
enum class  fft_direction { REVERSE , FORWARD }
 
enum class  fft_magnitude { COMPLEX , MAGNITUDE , MAGNITUDE_SQUARED }
 
enum class  fosphor_waterfall_mode { MAX_HOLD , AVERAGE }
 
enum class  fosphor_waterfall_predivision_ratio { RATIO_1_1 , RATIO_1_8 , RATIO_1_64 , RATIO_1_256 }
 
enum  chdr_w_t { CHDR_W_64 = 0 , CHDR_W_128 = 1 , CHDR_W_256 = 2 , CHDR_W_512 = 3 }
 Type that indicates the CHDR Width in bits. More...
 
enum class  siggen_waveform { CONSTANT , SINE_WAVE , NOISE }
 

Functions

std::ostream & operator<< (std::ostream &out, block_id_t block_id)
 Shortcut for << block_id.to_string() More...
 
UHD_API mock_block_container get_mock_block (const noc_id_t noc_id, const size_t num_inputs=1, const size_t num_outputs=1, const uhd::device_addr_t &args=uhd::device_addr_t(), const size_t mtu=8000, const device_type_t device_id=ANY_DEVICE, std::shared_ptr< mock_reg_iface_t > client_reg_iface=nullptr, mb_controller::sptr mbc=nullptr)
 
constexpr size_t chdr_w_to_bits (chdr_w_t chdr_w)
 Conversion from chdr_w_t to a number of bits. More...
 
std::vector< graph_edge_t > UHD_API get_block_chain (const rfnoc_graph::sptr graph, const block_id_t start_block, const size_t port, const bool source_chain)
 
std::vector< graph_edge_t > UHD_API connect_through_blocks (rfnoc_graph::sptr graph, const block_id_t src_blk, const size_t src_port, const block_id_t dst_blk, const size_t dst_port, const bool skip_property_propagation=false)
 

Variables

constexpr uint16_t RFNOC_PROTO_VER = 0x0100
 

Typedef Documentation

◆ block_port_def

using uhd::rfnoc::block_port_def = typedef std::tuple<std::string, boost::optional<size_t> >

Tuple that stores a block ID, as well as an optional port number.

◆ device_type_t

using uhd::rfnoc::device_type_t = typedef uint16_t

Device Type.

◆ io_type_t

using uhd::rfnoc::io_type_t = typedef std::string

◆ noc_id_t

using uhd::rfnoc::noc_id_t = typedef uint32_t

The NoC ID is the unique identifier of the block type. All blocks of the same type have the same NoC ID.

◆ sep_id_t

using uhd::rfnoc::sep_id_t = typedef uint16_t

Stream Endpoint ID Type.

Enumeration Type Documentation

◆ chdr_w_t

Type that indicates the CHDR Width in bits.

Enumerator
CHDR_W_64 
CHDR_W_128 
CHDR_W_256 
CHDR_W_512 

◆ fft_direction

enum class uhd::rfnoc::fft_direction
strong
Enumerator
REVERSE 
FORWARD 

◆ fft_magnitude

enum class uhd::rfnoc::fft_magnitude
strong
Enumerator
COMPLEX 
MAGNITUDE 
MAGNITUDE_SQUARED 

◆ fft_shift

enum class uhd::rfnoc::fft_shift
strong
Enumerator
NORMAL 
REVERSE 
NATURAL 

◆ fosphor_waterfall_mode

Enumerator
MAX_HOLD 
AVERAGE 

◆ fosphor_waterfall_predivision_ratio

Enumerator
RATIO_1_1 
RATIO_1_8 
RATIO_1_64 
RATIO_1_256 

◆ siggen_waveform

enum class uhd::rfnoc::siggen_waveform
strong
Enumerator
CONSTANT 
SINE_WAVE 
NOISE 

Function Documentation

◆ chdr_w_to_bits()

constexpr size_t uhd::rfnoc::chdr_w_to_bits ( chdr_w_t  chdr_w)
constexpr

Conversion from chdr_w_t to a number of bits.

◆ connect_through_blocks()

std::vector< graph_edge_t > UHD_API uhd::rfnoc::connect_through_blocks ( rfnoc_graph::sptr  graph,
const block_id_t  src_blk,
const size_t  src_port,
const block_id_t  dst_blk,
const size_t  dst_port,
const bool  skip_property_propagation = false 
)

Connect desired blocks by whatever path that can be found

This will find the most direct path from a source block to a destination block. If these blocks are statically connected it will simply call connect() on all intermediate connections. If not, it will create a dynamic connection between stream endpoints. If this is not possible, an exception is thrown.

Parameters
graphThe rfnoc_graph that is being examined
src_blkSource block's ID
src_portBlock port where the path starts
dst_blkDestination block's ID
dst_portBlock port where the path ends
skip_property_propagationDeclare back-edge (see also uhd::rfnoc::rfnoc_graph::connect()) If true, it will declare only the first connection in this chain as a back-edge.
Returns
The edge list representing the data path requested

◆ get_block_chain()

std::vector< graph_edge_t > UHD_API uhd::rfnoc::get_block_chain ( const rfnoc_graph::sptr  graph,
const block_id_t  start_block,
const size_t  port,
const bool  source_chain 
)

Get a chain of blocks that statically connect back to a terminating block. This vector's first element is start_block, and the chain continues from there.

This function does not make the connections between blocks, it simply traverses the static connections.

Parameters
graphThe rfnoc_graph that is being examined
start_blockThe block we begin to build the chain from
portThe block port of src_port that the path will begin at
source_chainWhether or not the start_block is a source (or a destination). If true, the chain will start at start_block's output port. If false, the chain will start with start_block's output port.
Returns
The edge list representing the data path requested

◆ get_mock_block()

UHD_API mock_block_container uhd::rfnoc::get_mock_block ( const noc_id_t  noc_id,
const size_t  num_inputs = 1,
const size_t  num_outputs = 1,
const uhd::device_addr_t args = uhd::device_addr_t(),
const size_t  mtu = 8000,
const device_type_t  device_id = ANY_DEVICE,
std::shared_ptr< mock_reg_iface_t client_reg_iface = nullptr,
mb_controller::sptr  mbc = nullptr 
)

Factory function for mock block controllers

◆ operator<<()

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

Shortcut for << block_id.to_string()

Variable Documentation

◆ RFNOC_PROTO_VER

constexpr uint16_t uhd::rfnoc::RFNOC_PROTO_VER = 0x0100
constexpr