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

Namespaces

 chdr
 
 detail
 
 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  fft_shift { fft_shift::NORMAL, fft_shift::REVERSE, fft_shift::NATURAL }
 
enum  fft_direction { fft_direction::REVERSE, fft_direction::FORWARD }
 
enum  fft_magnitude { fft_magnitude::COMPLEX, fft_magnitude::MAGNITUDE, fft_magnitude::MAGNITUDE_SQUARED }
 
enum  fosphor_waterfall_mode { fosphor_waterfall_mode::MAX_HOLD, fosphor_waterfall_mode::AVERAGE }
 
enum  fosphor_waterfall_predivision_ratio { fosphor_waterfall_predivision_ratio::RATIO_1_1, fosphor_waterfall_predivision_ratio::RATIO_1_8, fosphor_waterfall_predivision_ratio::RATIO_1_64, fosphor_waterfall_predivision_ratio::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  siggen_waveform { siggen_waveform::CONSTANT, siggen_waveform::SINE_WAVE, siggen_waveform::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...
 
constexpr chdr_w_t bits_to_chdr_w (size_t bits)
 Conversion from number of bits to chdr_w_t. 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

Enumerator
REVERSE 
FORWARD 

◆ fft_magnitude

Enumerator
COMPLEX 
MAGNITUDE 
MAGNITUDE_SQUARED 

◆ fft_shift

enum 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

Enumerator
CONSTANT 
SINE_WAVE 
NOISE 

Function Documentation

◆ bits_to_chdr_w()

constexpr chdr_w_t uhd::rfnoc::bits_to_chdr_w ( size_t  bits)

Conversion from number of bits to chdr_w_t.

◆ chdr_w_to_bits()

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

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 input 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