|
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 |
|
virtual void | configure_flow_control_in (size_t cycles, size_t packets, size_t block_port=0) |
|
virtual void | set_error_policy (const std::string &policy) |
|
boost::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 boost::uint32_t reg, const boost::uint32_t data, const size_t port=0) |
|
void | sr_write (const std::string ®, const boost::uint32_t data, const size_t port=0) |
|
boost::uint64_t | sr_read64 (const settingsbus_reg_t reg, const size_t port=0) |
|
boost::uint32_t | sr_read32 (const settingsbus_reg_t reg, const size_t port=0) |
|
boost::uint64_t | user_reg_read64 (const boost::uint32_t addr, const size_t port=0) |
|
boost::uint64_t | user_reg_read64 (const std::string ®, const size_t port=0) |
|
boost::uint32_t | user_reg_read32 (const boost::uint32_t addr, const size_t port=0) |
|
boost::uint32_t | user_reg_read32 (const std::string ®, 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 (const size_t port=0) |
|
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 > |
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 |
|
virtual void | clear () |
|
node_map_t | list_downstream_nodes () |
|
node_map_t | list_upstream_nodes () |
|
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 () |
|
template<typename T > |
UHD_INLINE std::vector< boost::shared_ptr< T > > | find_upstream_node () |
|
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 > >()) |
|
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) |
|
virtual void uhd::rfnoc::sink_block_ctrl_base::configure_flow_control_in |
( |
size_t |
cycles, |
|
|
size_t |
packets, |
|
|
size_t |
block_port = 0 |
|
) |
| |
|
virtual |
Configure flow control for incoming streams.
If flow control is enabled for incoming streams, this block will periodically send out ACKs, telling the upstream block which packets have been consumed, so the upstream block can increase his flow control credit.
In the default implementation, this just sets registers SR_FLOW_CTRL_CYCS_PER_ACK and SR_FLOW_CTRL_PKTS_PER_ACK accordingly.
Override this function if your block has port-specific flow control settings.
- Parameters
-
cycles | Send an ACK after this many clock cycles. Setting this to zero disables this type of flow control acknowledgement. |
packets | Send an ACK after this many packets have been consumed. Setting this to zero disables this type of flow control acknowledgement. |
block_port | Set up flow control for a stream coming in on this particular block port. |
size_t uhd::rfnoc::sink_block_ctrl_base::get_fifo_size |
( |
size_t |
block_port = 0 | ) |
const |
Return the size of input buffer on a given block port.
This is necessary for setting up flow control, among other things. Note: This does not query the block's settings register. The FIFO size is queried once during construction and cached.
If the block port is not defined, it will return 0, and not throw.
- Parameters
-
block_port | The block port (0 through 15). |
Returns the size of the buffer in bytes.