19#define RFNOC_BLOCK_CONSTRUCTOR(CLASS_NAME) \
20 CLASS_NAME##_impl(make_args_ptr make_args) : CLASS_NAME(std::move(make_args))
22#define RFNOC_DECLARE_BLOCK(CLASS_NAME) \
23 using sptr = std::shared_ptr<CLASS_NAME>; \
24 CLASS_NAME(make_args_ptr make_args) : noc_block_base(std::move(make_args)) {}
26namespace uhd {
namespace rfnoc {
48 using sptr = std::shared_ptr<noc_block_base>;
64 return get_block_id().to_string();
76 return _num_input_ports;
88 return _num_output_ports;
318 friend class block_initializer;
325 void _set_tick_rate(
const double tick_rate);
332 void shutdown()
override;
355 size_t _num_input_ports;
358 size_t _num_output_ports;
362 std::vector<property_t<double>> _tick_rate_props;
368 bool _mtu_fwd_policy_set =
false;
372 std::vector<property_t<size_t>> _mtu_props;
375 std::unordered_map<res_source_info, size_t> _mtu;
381 std::shared_ptr<clock_iface> _ctrlport_clock_iface;
384 std::shared_ptr<clock_iface> _tb_clock_iface;
388 std::shared_ptr<mb_controller> _mb_controller;
Definition device_addr.hpp:38
std::shared_ptr< property_tree > sptr
Definition property_tree.hpp:223
Definition block_id.hpp:40
Definition noc_block_base.hpp:43
uhd::device_addr_t get_block_args() const
Definition noc_block_base.hpp:183
std::unique_ptr< make_args_t > make_args_ptr
Opaque pointer to the constructor arguments.
Definition noc_block_base.hpp:54
void set_mtu_forwarding_policy(const forwarding_policy_t policy)
size_t get_num_output_ports() const override
Definition noc_block_base.hpp:86
size_t get_mtu(const res_source_info &edge)
void set_mtu(const res_source_info &edge, const size_t new_mtu)
size_t get_max_payload_size(const res_source_info &edge, const bool account_for_ts=true)
double get_tick_rate() const
void set_num_input_ports(const size_t num_ports)
size_t get_num_input_ports() const override
Definition noc_block_base.hpp:74
std::string get_unique_id() const override
Unique ID for an RFNoC block is its block ID.
Definition noc_block_base.hpp:62
noc_block_base(make_args_ptr make_args)
uhd::property_tree::sptr & get_tree() const
Return a reference to this block's subtree.
Definition noc_block_base.hpp:189
size_t get_chdr_hdr_len(const bool account_for_ts=true) const
~noc_block_base() override
uhd::property_tree::sptr & get_tree()
Return a reference to this block's subtree (non-const version)
Definition noc_block_base.hpp:195
noc_id_t get_noc_id() const
Definition noc_block_base.hpp:98
std::shared_ptr< mb_controller > get_mb_controller()
std::shared_ptr< noc_block_base > sptr
Definition noc_block_base.hpp:48
const block_id_t & get_block_id() const
Definition noc_block_base.hpp:107
property_base_t * get_mtu_prop_ref(const res_source_info &edge)
void set_tick_rate(const double tick_rate)
void set_num_output_ports(const size_t num_ports)
forwarding_policy_t
Types of property/action forwarding for those not defined by the block itself.
Definition node.hpp:46
Definition property.hpp:26
Definition register_iface_holder.hpp:19
#define UHD_API
Definition config.h:87
uint32_t noc_id_t
Definition defaults.hpp:51
chdr_w_t
Type that indicates the CHDR Width in bits.
Definition rfnoc_types.hpp:19
Definition build_info.hpp:12
Definition noc_block_make_args.hpp:25
Definition res_source_info.hpp:18