Loading...
Searching...
No Matches
duc_block_control.hpp
Go to the documentation of this file.
//
// Copyright 2019 Ettus Research, a National Instruments Brand
//
// SPDX-License-Identifier: GPL-3.0-or-later
//
#pragma once
#include <uhd/config.hpp>
#include <uhd/rfnoc/noc_block_base.hpp>
#include <uhd/types/ranges.hpp>
#include <uhd/types/time_spec.hpp>
#include <boost/optional.hpp>
namespace uhd { namespace rfnoc {
class UHD_API duc_block_control : public noc_block_base
{
public:
RFNOC_DECLARE_BLOCK(duc_block_control)
static const uint16_t MAJOR_COMPAT;
static const uint16_t MINOR_COMPAT;
// Readback addresses
static const uint32_t RB_COMPAT_NUM;
static const uint32_t RB_NUM_HB;
static const uint32_t RB_CIC_MAX_INTERP;
// Write addresses
static const uint32_t SR_N_ADDR;
static const uint32_t SR_M_ADDR;
static const uint32_t SR_CONFIG_ADDR;
static const uint32_t SR_FREQ_ADDR;
static const uint32_t SR_SCALE_IQ_ADDR;
static const uint32_t SR_INTERP_ADDR;
static const uint32_t SR_TIME_INCR_ADDR;
virtual double set_freq(const double freq,
const size_t chan,
const boost::optional<uhd::time_spec_t> time = boost::none) = 0;
virtual double get_freq(const size_t chan) const = 0;
virtual uhd::freq_range_t get_frequency_range(const size_t chan) const = 0;
virtual double get_input_rate(const size_t chan) const = 0;
virtual double get_output_rate(const size_t chan) const = 0;
virtual void set_output_rate(const double rate, const size_t chan) = 0;
virtual uhd::meta_range_t get_input_rates(const size_t chan) const = 0;
virtual double set_input_rate(const double rate, const size_t chan) = 0;
};
}} // namespace uhd::rfnoc
uhd::rfnoc::duc_block_control
Definition duc_block_control.hpp:33
uhd::rfnoc::duc_block_control::set_freq
virtual double set_freq(const double freq, const size_t chan, const boost::optional< uhd::time_spec_t > time=boost::none)=0
uhd::rfnoc::duc_block_control::set_output_rate
virtual void set_output_rate(const double rate, const size_t chan)=0
uhd::rfnoc::duc_block_control::get_freq
virtual double get_freq(const size_t chan) const =0
uhd::rfnoc::duc_block_control::get_input_rate
virtual double get_input_rate(const size_t chan) const =0
uhd::rfnoc::duc_block_control::get_input_rates
virtual uhd::meta_range_t get_input_rates(const size_t chan) const =0
uhd::rfnoc::duc_block_control::get_frequency_range
virtual uhd::freq_range_t get_frequency_range(const size_t chan) const =0
uhd::rfnoc::duc_block_control::MINOR_COMPAT
static const uint16_t MINOR_COMPAT
Definition duc_block_control.hpp:38
uhd::rfnoc::duc_block_control::RB_CIC_MAX_INTERP
static const uint32_t RB_CIC_MAX_INTERP
Definition duc_block_control.hpp:42
uhd::rfnoc::duc_block_control::RB_COMPAT_NUM
static const uint32_t RB_COMPAT_NUM
Definition duc_block_control.hpp:40
uhd::rfnoc::duc_block_control::get_output_rate
virtual double get_output_rate(const size_t chan) const =0
uhd::rfnoc::duc_block_control::SR_M_ADDR
static const uint32_t SR_M_ADDR
Definition duc_block_control.hpp:45
uhd::rfnoc::duc_block_control::MAJOR_COMPAT
static const uint16_t MAJOR_COMPAT
Definition duc_block_control.hpp:37
uhd::rfnoc::duc_block_control::SR_SCALE_IQ_ADDR
static const uint32_t SR_SCALE_IQ_ADDR
Definition duc_block_control.hpp:48
uhd::rfnoc::duc_block_control::RB_NUM_HB
static const uint32_t RB_NUM_HB
Definition duc_block_control.hpp:41
uhd::rfnoc::duc_block_control::SR_N_ADDR
static const uint32_t SR_N_ADDR
Definition duc_block_control.hpp:44
uhd::rfnoc::duc_block_control::SR_FREQ_ADDR
static const uint32_t SR_FREQ_ADDR
Definition duc_block_control.hpp:47
uhd::rfnoc::duc_block_control::SR_INTERP_ADDR
static const uint32_t SR_INTERP_ADDR
Definition duc_block_control.hpp:49
uhd::rfnoc::duc_block_control::set_input_rate
virtual double set_input_rate(const double rate, const size_t chan)=0
uhd::rfnoc::duc_block_control::SR_CONFIG_ADDR
static const uint32_t SR_CONFIG_ADDR
Definition duc_block_control.hpp:46
uhd::rfnoc::duc_block_control::SR_TIME_INCR_ADDR
static const uint32_t SR_TIME_INCR_ADDR
Definition duc_block_control.hpp:50
uhd::rfnoc::noc_block_base::noc_block_base
noc_block_base(make_args_ptr make_args)
uhd::time_spec_t
Definition time_spec.hpp:31
UHD_API
#define UHD_API
Definition config.h:87
config.hpp
uhd::rfnoc
Definition actions.hpp:24
uhd
Definition build_info.hpp:12
uhd::freq_range_t
meta_range_t freq_range_t
Definition ranges.hpp:131
noc_block_base.hpp
RFNOC_DECLARE_BLOCK
#define RFNOC_DECLARE_BLOCK(CLASS_NAME)
Definition noc_block_base.hpp:22
ranges.hpp
uhd::meta_range_t
Definition ranges.hpp:66
time_spec.hpp