USRP Hardware Driver and USRP Manual  Version: 3.15.0.HEAD-0-gaea0e2de
UHD and USRP Manual
uhd::rfnoc::window_block_ctrl Class Referenceabstract

Block controller for the standard windowing RFNoC block. More...

#include <uhd/rfnoc/window_block_ctrl.hpp>

Inheritance diagram for uhd::rfnoc::window_block_ctrl:
uhd::rfnoc::source_block_ctrl_base uhd::rfnoc::sink_block_ctrl_base uhd::rfnoc::block_ctrl_base uhd::rfnoc::source_node_ctrl uhd::rfnoc::block_ctrl_base uhd::rfnoc::sink_node_ctrl uhd::rfnoc::node_ctrl_base uhd::rfnoc::node_ctrl_base uhd::rfnoc::node_ctrl_base uhd::rfnoc::node_ctrl_base

Public Member Functions

virtual void set_window (const std::vector< int > &coeffs)=0
 Configure the window coefficients. More...
 
virtual size_t get_max_len () const =0
 Returns the maximum window length. More...
 
virtual size_t get_window_len () const =0
 Returns the current window length. More...
 
- Public Member Functions inherited from uhd::rfnoc::source_block_ctrl_base
virtual void issue_stream_cmd (const uhd::stream_cmd_t &stream_cmd, const size_t chan=0)
 
stream_sig_t get_output_signature (size_t block_port=0) const
 
std::vector< size_t > get_output_ports () const
 
virtual void set_destination (uint32_t next_address, size_t output_block_port=0)
 
virtual void configure_flow_control_out (const bool enable_output, const bool lossless_link, const size_t buf_size_bytes, const size_t pkt_limit=0, const size_t block_port=0, const uhd::sid_t &sid=uhd::sid_t())
 
size_t get_mtu (size_t block_port=0) const
 
- Public Member Functions inherited from uhd::rfnoc::block_ctrl_base
uint32_t get_address (size_t block_port=0)
 
block_id_t get_block_id () const
 
std::string unique_id () const
 
std::vector< size_t > get_ctrl_ports () const
 
void sr_write (const uint32_t reg, const uint32_t data, const size_t port=0)
 
void sr_write (const std::string &reg, const uint32_t data, const size_t port=0)
 
uint64_t sr_read64 (const settingsbus_reg_t reg, const size_t port=0)
 
uint32_t sr_read32 (const settingsbus_reg_t reg, const size_t port=0)
 
uint64_t user_reg_read64 (const uint32_t addr, const size_t port=0)
 
uint64_t user_reg_read64 (const std::string &reg, const size_t port=0)
 
uint32_t user_reg_read32 (const uint32_t addr, const size_t port=0)
 
uint32_t user_reg_read32 (const std::string &reg, const size_t port=0)
 
void set_command_time (const time_spec_t &time_spec, const size_t port=ANY_PORT)
 
time_spec_t get_command_time (const size_t port=0)
 
void set_command_tick_rate (const double tick_rate, const size_t port=ANY_PORT)
 
void clear_command_time (const size_t port)
 
void clear ()
 
void set_args (const uhd::device_addr_t &args, const size_t port=0)
 
void set_arg (const std::string &key, const std::string &val, const size_t port=0)
 Set a specific block argument. val is converted to the corresponding. More...
 
template<typename T >
void set_arg (const std::string &key, const T &val, const size_t port=0)
 Direct access to set a block argument. More...
 
uhd::device_addr_t get_args (const size_t port=0) const
 Return all block arguments as a device_addr_t. More...
 
std::string get_arg (const std::string &key, const size_t port=0) const
 Return a single block argument in string format. More...
 
template<typename T >
get_arg (const std::string &key, const size_t port=0) const
 Direct access to get a block argument. More...
 
std::string get_arg_type (const std::string &key, const size_t port=0) const
 
- Public Member Functions inherited from uhd::rfnoc::node_ctrl_base
node_map_t list_downstream_nodes ()
 
node_map_t list_upstream_nodes ()
 
void disconnect ()
 
void disconnect_output_port (const size_t output_port)
 
void disconnect_input_port (const size_t input_port)
 
void set_downstream_port (const size_t this_port, const size_t remote_port)
 
size_t get_downstream_port (const size_t this_port)
 
void set_upstream_port (const size_t this_port, const size_t remote_port)
 
size_t get_upstream_port (const size_t this_port)
 
template<typename T >
UHD_INLINE std::vector< boost::shared_ptr< T > > find_downstream_node (bool active_only=false)
 
template<typename T >
UHD_INLINE std::vector< boost::shared_ptr< T > > find_upstream_node (bool active_only=false)
 
template<typename T , typename value_type >
UHD_INLINE value_type find_downstream_unique_property (boost::function< value_type(boost::shared_ptr< T > node, size_t port)> get_property, value_type null_value, const std::set< boost::shared_ptr< T > > &exclude_nodes=std::set< boost::shared_ptr< T > >())
 
template<typename T , typename value_type >
UHD_INLINE value_type find_upstream_unique_property (boost::function< value_type(boost::shared_ptr< T > node, size_t port)> get_property, value_type null_value, const std::set< boost::shared_ptr< T > > &exclude_nodes=std::set< boost::shared_ptr< T > >())
 
- Public Member Functions inherited from uhd::rfnoc::source_node_ctrl
size_t connect_downstream (node_ctrl_base::sptr downstream_node, size_t port=ANY_PORT, const uhd::device_addr_t &args=uhd::device_addr_t())
 
virtual void set_rx_streamer (bool active, const size_t port)
 
- Public Member Functions inherited from uhd::rfnoc::sink_block_ctrl_base
stream_sig_t get_input_signature (size_t block_port=0) const
 
std::vector< size_t > get_input_ports () const
 
size_t get_fifo_size (size_t block_port=0) const
 
size_t get_mtu (size_t block_port=0) const
 
virtual void configure_flow_control_in (const size_t bytes, const size_t block_port=0)
 
virtual void set_error_policy (const std::string &policy)
 
- Public Member Functions inherited from uhd::rfnoc::sink_node_ctrl
size_t connect_upstream (node_ctrl_base::sptr upstream_node, size_t port=ANY_PORT, const uhd::device_addr_t &args=uhd::device_addr_t())
 
virtual void set_tx_streamer (bool active, const size_t port)
 

Static Public Attributes

static const size_t MAX_COEFF_VAL = 32767
 
static const uint32_t SR_WINDOW_LEN = 131
 
static const uint32_t RB_MAX_WINDOW_LEN = 0
 
static const uint32_t AXIS_WINDOW_LOAD = AXIS_CONFIG_BUS + 0
 
static const uint32_t AXIS_WINDOW_LOAD_TLAST = AXIS_CONFIG_BUS + 1
 

Additional Inherited Members

- Public Types inherited from uhd::rfnoc::source_block_ctrl_base
typedef boost::shared_ptr< source_block_ctrl_basesptr
 
- Public Types inherited from uhd::rfnoc::block_ctrl_base
typedef boost::shared_ptr< block_ctrl_basesptr
 
typedef boost::function< sptr(const make_args_t &)> make_t
 
- Public Types inherited from uhd::rfnoc::node_ctrl_base
typedef boost::shared_ptr< node_ctrl_basesptr
 
typedef boost::weak_ptr< node_ctrl_basewptr
 
typedef std::map< size_t, wptrnode_map_t
 
typedef std::pair< size_t, wptrnode_map_pair_t
 
typedef boost::function< void(void)> graph_update_cb_t
 
- Public Types inherited from uhd::rfnoc::source_node_ctrl
typedef boost::shared_ptr< source_node_ctrlsptr
 
typedef std::map< size_t, boost::weak_ptr< source_node_ctrl > > node_map_t
 
typedef std::pair< size_t, boost::weak_ptr< source_node_ctrl > > node_map_pair_t
 
- Public Types inherited from uhd::rfnoc::sink_block_ctrl_base
typedef boost::shared_ptr< sink_block_ctrl_basesptr
 
- Public Types inherited from uhd::rfnoc::sink_node_ctrl
typedef boost::shared_ptr< sink_node_ctrlsptr
 
typedef std::map< size_t, boost::weak_ptr< sink_node_ctrl > > node_map_t
 
typedef std::pair< size_t, boost::weak_ptr< sink_node_ctrl > > node_map_pair_t
 
- Static Public Member Functions inherited from uhd::rfnoc::block_ctrl_base
static void register_block (const make_t &make, const std::string &name)
 
static sptr make (const make_args_t &make_args, uint64_t noc_id=~0)
 Create a block controller class given a NoC-ID or a block name. More...
 
- Protected Member Functions inherited from uhd::rfnoc::source_block_ctrl_base
virtual size_t _request_output_port (const size_t suggested_port, const uhd::device_addr_t &args) const
 
- Protected Member Functions inherited from uhd::rfnoc::block_ctrl_base
 block_ctrl_base (void)
 
virtual ~block_ctrl_base ()
 
 block_ctrl_base (const make_args_t &make_args)
 
stream_sig_t _resolve_port_def (const blockdef::port_t &port_def) const
 
uhd::fs_path get_arg_path (const std::string &key, size_t port=0) const
 Return the property tree path to a block argument key on port. More...
 
timed_wb_iface::sptr get_ctrl_iface (const size_t block_port)
 Get a control interface object for block port block_port. More...
 
virtual void _clear (const size_t port=0)
 Override this function if your block does something else. More...
 
virtual void _set_command_time (const time_spec_t &time_spec, const size_t port=ANY_PORT)
 Override this function if your block needs to specially handle. More...
 
- Protected Member Functions inherited from uhd::rfnoc::node_ctrl_base
 node_ctrl_base (void)
 
virtual ~node_ctrl_base ()
 
void update_graph ()
 
- Protected Member Functions inherited from uhd::rfnoc::sink_block_ctrl_base
virtual size_t _request_input_port (const size_t suggested_port, const uhd::device_addr_t &args) const
 
- Protected Attributes inherited from uhd::rfnoc::block_ctrl_base
uhd::property_tree::sptr _tree
 Property sub-tree. More...
 
uhd::fs_path _root_path
 Root node of this block's properties. More...
 
blockdef::sptr _block_def
 Block definition (stores info about the block such as ports) More...
 
- Protected Attributes inherited from uhd::rfnoc::node_ctrl_base
uhd::device_addr_t _args
 Stores default arguments. More...
 
node_map_t _upstream_nodes
 List of upstream nodes. More...
 
node_map_t _downstream_nodes
 List of downstream nodes. More...
 
size_t _num_input_ports
 
size_t _num_output_ports
 
std::map< size_t, bool > _rx_streamer_active
 
std::map< size_t, bool > _tx_streamer_active
 

Detailed Description

Block controller for the standard windowing RFNoC block.

The standard windowing block has the following features:

  • One input- and output-port
  • Configurable window length and coefficients
  • Supports data type sc16 (16-Bit fix-point complex samples)

This block requires packets to be the same size as the downstream FFT length. It will perform one window operation per incoming packet, treating it as a vector of samples.

Member Function Documentation

◆ get_max_len()

virtual size_t uhd::rfnoc::window_block_ctrl::get_max_len ( ) const
pure virtual

Returns the maximum window length.

◆ get_window_len()

virtual size_t uhd::rfnoc::window_block_ctrl::get_window_len ( ) const
pure virtual

Returns the current window length.

◆ set_window()

virtual void uhd::rfnoc::window_block_ctrl::set_window ( const std::vector< int > &  coeffs)
pure virtual

Configure the window coefficients.

Member Data Documentation

◆ AXIS_WINDOW_LOAD

const uint32_t uhd::rfnoc::window_block_ctrl::AXIS_WINDOW_LOAD = AXIS_CONFIG_BUS + 0
static

◆ AXIS_WINDOW_LOAD_TLAST

const uint32_t uhd::rfnoc::window_block_ctrl::AXIS_WINDOW_LOAD_TLAST = AXIS_CONFIG_BUS + 1
static

◆ MAX_COEFF_VAL

const size_t uhd::rfnoc::window_block_ctrl::MAX_COEFF_VAL = 32767
static

◆ RB_MAX_WINDOW_LEN

const uint32_t uhd::rfnoc::window_block_ctrl::RB_MAX_WINDOW_LEN = 0
static

◆ SR_WINDOW_LEN

const uint32_t uhd::rfnoc::window_block_ctrl::SR_WINDOW_LEN = 131
static

The documentation for this class was generated from the following file: