#include <uhd/rfnoc/siggen_block_control.hpp>
Public Member Functions | |
RFNOC_DECLARE_BLOCK (siggen_block_control) | |
virtual void | set_enable (const bool enable, const size_t port)=0 |
virtual bool | get_enable (const size_t port) const =0 |
virtual void | set_waveform (const siggen_waveform type, const size_t port)=0 |
virtual siggen_waveform | get_waveform (const size_t port) const =0 |
virtual void | set_amplitude (const double amplitude, const size_t port)=0 |
virtual double | get_amplitude (const size_t port) const =0 |
virtual void | set_constant (const std::complex< double > constant, const size_t port)=0 |
virtual std::complex< double > | get_constant (const size_t port) const =0 |
virtual void | set_sine_phase_increment (const double phase_inc, const size_t port)=0 |
virtual double | get_sine_phase_increment (const size_t port) const =0 |
virtual void | set_samples_per_packet (const size_t spp, const size_t port)=0 |
virtual size_t | get_samples_per_packet (const size_t port) const =0 |
void | set_sine_frequency (const double frequency, const double sample_rate, const size_t port) |
![]() | |
~noc_block_base () override | |
std::string | get_unique_id () const override |
Unique ID for an RFNoC block is its block ID. More... | |
size_t | get_num_input_ports () const override |
Number of input ports. Note: This gets passed into this block from the. More... | |
size_t | get_num_output_ports () const override |
Number of output ports. Note: This gets passed outto this block from the. More... | |
noc_id_t | get_noc_id () const |
const block_id_t & | get_block_id () const |
double | get_tick_rate () const |
size_t | get_mtu (const res_source_info &edge) |
size_t | get_chdr_hdr_len (const bool account_for_ts=true) const |
size_t | get_max_payload_size (const res_source_info &edge, const bool account_for_ts=true) |
uhd::device_addr_t | get_block_args () const |
uhd::property_tree::sptr & | get_tree () const |
Return a reference to this block's subtree. More... | |
uhd::property_tree::sptr & | get_tree () |
Return a reference to this block's subtree (non-const version) More... | |
std::shared_ptr< mb_controller > | get_mb_controller () |
![]() | |
node_t () | |
virtual | ~node_t () |
std::vector< std::string > | get_property_ids () const |
template<typename prop_data_t > | |
void | set_property (const std::string &id, const prop_data_t &val, const size_t instance=0) |
void | set_properties (const uhd::device_addr_t &props, const size_t instance=0) |
template<typename prop_data_t > | |
const prop_data_t & | get_property (const std::string &id, const size_t instance=0) |
virtual void | set_command_time (uhd::time_spec_t time, const size_t instance) |
virtual uhd::time_spec_t | get_command_time (const size_t instance) const |
virtual void | clear_command_time (const size_t instance) |
![]() | |
register_iface_holder (register_iface::sptr reg) | |
virtual | ~register_iface_holder ()=default |
register_iface & | regs () |
Static Public Attributes | |
static const uint32_t | REG_BLOCK_SIZE |
static const uint32_t | REG_ENABLE_OFFSET |
static const uint32_t | REG_SPP_OFFSET |
static const uint32_t | REG_WAVEFORM_OFFSET |
static const uint32_t | REG_GAIN_OFFSET |
static const uint32_t | REG_CONSTANT_OFFSET |
static const uint32_t | REG_PHASE_INC_OFFSET |
static const uint32_t | REG_CARTESIAN_OFFSET |
![]() | |
static const size_t | ANY_PORT = size_t(~0) |
Additional Inherited Members | |
![]() | |
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) |
Update number of input ports. More... | |
void | set_num_output_ports (const size_t num_ports) |
Update number of output ports. More... | |
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... | |
Siggen Control Class
The Siggen Block is an RFNoC block that acts as a simple function generating source block. The block supports three functions: generating a constant value, generating a sinusoidal wave with a configurable amplitude and phase increment between samples (but with a random initial phase offset), and a noise source.
|
pure virtual |
Get the amplitude value for noise and sine wave data
Returns the current maximum amplitude of the data generated by the given port on the block. The value only applies to the noise and sine wave functions. Calling this function when in constant mode will return 1.0.
port | The port on the block whose amplitude value to return |
|
pure virtual |
Get the constant value to generate in constant mode
Returns the current constant value to be generated by the function generator on the given block when the block is configured in constant mode.
port | The port on the block whose constant value to return |
|
pure virtual |
Get the function generator stream enable flag
Returns the current enable flag for function generator stream data from the given port on the block.
port | The port on the block to get the flag from |
|
pure virtual |
Get the number of samples per packet to generate
Returns the current number of samples per packet generated by the function generator on the given block.
port | The port on the block whose samples per packet value to get |
|
pure virtual |
Get the phase increment between samples in sine wave mode
Returns the current phase increment between successive samples generated by the function generator on the given block when the block is configured in sine wave mode.
port | The port on the block whose phase increment to return |
|
pure virtual |
Get the function generator waveform type
Returns the current waveform type for the given port on the block.
port | The port on the block whose waveform type to return |
uhd::rfnoc::siggen_block_control::RFNOC_DECLARE_BLOCK | ( | siggen_block_control | ) |
|
pure virtual |
Set the amplitude value for noise and sine wave data
Sets the maximum amplitude of the data generated by the given port on the block. The hardware can generate function data with an amplitude between -1.0 and (2^15-1)/(2^15), or approximately 0.99997, so the provided value must reside within this range. However, for convenience, clients may pass 1.0 to get the maximum amplitude that can be generated.
Setting the amplitude applies only to the noise and to the sine wave functions. The value generated when in constant mode is the value that is configured via the set_constant() function. Calling this function when in constant mode will range check the amplitude value, but will otherwise have no impact on the generated signal.
amplitude | Amplitude of sine wave and noise data |
port | The port on the block whose amplitude value to set |
|
pure virtual |
Set the constant value to generate in constant mode
Sets the value that should be generated by the function generator on the given block when the block is configured in constant mode. The hardware can output a complex value where the real and imaginary components can be between -1.0 and (2^15-1)/(2^15), or approximately 0.99997, so the provided value must reside within this range. However, for convenience, clients may pass 1.0 for either component to get the maximum positive value that can be generated.
constant | The constant value to generate |
port | The port on the block whose constant value to set |
|
pure virtual |
Set the function generator stream enable flag
Enables or disables the stream of function generator data from the given port on the block.
enable | Stream enable/disable flag |
port | The port on the block to enable or disable |
|
pure virtual |
Set the number of samples per packet to generate
Sets the number of samples per packet to be generated by the function generator on the given block. The value will be coerced such that outgoing packets will not exceed the graph MTU.
spp | Number of samples per packet to generate |
port | The port on the block whose samples per packet to set |
|
inline |
Configure the sinusoidal waveform generator given frequency and rate
Convenience function to configure the current phase increment between successive samples generated by the sinusoidal function generator given the desired frequency and assumed sample rate.
frequency | The desired frequency of the sinusoid |
sample_rate | The assumed sample rate |
port | The port on the block whose phase increment to set |
|
pure virtual |
Set the phase increment between samples in sine wave mode
Sets the phase increment between successive samples generated by the function generator on the given block when the block is configured in sine wave mode. The value must be in the range [-pi, pi].
phase_inc | The phase increment between samples |
port | The port on the block whose phase increment to set |
|
pure virtual |
Set the function generator waveform type
Sets the waveform type that the given port on the block should generate when enabled.
type | Function generator waveform type |
port | The port on the block whose waveform type to set |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |