|
using | sptr = std::shared_ptr< noc_block_base > |
|
using | make_args_ptr = std::unique_ptr< make_args_t > |
| Opaque pointer to the constructor arguments. More...
|
|
enum | forwarding_policy_t {
forwarding_policy_t::ONE_TO_ONE,
forwarding_policy_t::ONE_TO_FAN,
forwarding_policy_t::ONE_TO_ALL_IN,
forwarding_policy_t::ONE_TO_ALL_OUT,
forwarding_policy_t::ONE_TO_ALL,
forwarding_policy_t::DROP,
forwarding_policy_t::USE_MAP
} |
| Types of property/action forwarding for those not defined by the block itself. More...
|
|
using | resolver_fn_t = std::function< void(void)> |
|
using | resolve_callback_t = std::function< void(void)> |
|
using | graph_mutex_callback_t = std::function< std::recursive_mutex &(void)> |
|
using | action_handler_t = std::function< void(const res_source_info &, action_info::sptr)> |
|
using | forwarding_map_t = std::unordered_map< res_source_info, std::vector< res_source_info > > |
|
using | prop_ptrs_t = std::vector< property_base_t * > |
|
| noc_block_base (make_args_ptr make_args) |
|
void | set_num_input_ports (const size_t num_ports) |
|
void | set_num_output_ports (const size_t num_ports) |
|
void | set_tick_rate (const double tick_rate) |
|
void | set_mtu_forwarding_policy (const forwarding_policy_t policy) |
|
void | set_mtu (const res_source_info &edge, const size_t new_mtu) |
|
property_base_t * | get_mtu_prop_ref (const res_source_info &edge) |
|
virtual void | deinit () |
|
void | register_property (property_base_t *prop, resolve_callback_t &&clean_callback=nullptr) |
|
void | add_property_resolver (prop_ptrs_t &&inputs, prop_ptrs_t &&outputs, resolver_fn_t &&resolver_fn) |
|
void | set_prop_forwarding_policy (forwarding_policy_t policy, const std::string &prop_id="") |
|
void | set_prop_forwarding_map (const forwarding_map_t &map) |
|
template<typename prop_data_t > |
void | set_property (const std::string &id, const prop_data_t &val, const res_source_info &src_info) |
|
template<typename prop_data_t > |
const prop_data_t & | get_property (const std::string &id, const res_source_info &src_info) |
|
void | register_action_handler (const std::string &id, action_handler_t &&handler) |
|
void | set_action_forwarding_policy (forwarding_policy_t policy, const std::string &action_key="") |
|
void | set_action_forwarding_map (const forwarding_map_t &map) |
|
void | post_action (const res_source_info &edge_info, action_info::sptr action) |
|
virtual bool | check_topology (const std::vector< size_t > &connected_inputs, const std::vector< size_t > &connected_outputs) |
|
void | update_reg_iface (register_iface::sptr new_iface=nullptr) |
|
static dirtifier_t | ALWAYS_DIRTY |
| A dirtifyer object, useful for properties that always need updating. More...
|
|
Switchboard Block Control Class
The Switchboard Block is an RFNoC block that routes any single input to any single output. Routing is 1 to 1, that is, an input port can only be connected to one output port, and vice versa.
INIT: This block is initialized with only input port 0 connected to output port 0.
NOTE: This block is not intended to switch during the transmission of packets. Data on disconnected inputs will stall.