USRP Hardware Driver and USRP Manual  Version: 3.15.0.HEAD-0-gaea0e2de
UHD and USRP Manual
window_block_ctrl.hpp
Go to the documentation of this file.
1 //
2 // Copyright 2014-2018 Ettus Research, a National Instruments Company
3 //
4 // SPDX-License-Identifier: GPL-3.0-or-later
5 //
6 
7 #ifndef INCLUDED_LIBUHD_RFNOC_WINDOW_BLOCK_CTRL_HPP
8 #define INCLUDED_LIBUHD_RFNOC_WINDOW_BLOCK_CTRL_HPP
9 
12 
13 namespace uhd { namespace rfnoc {
14 
28 {
29 public:
31 
32  static const size_t MAX_COEFF_VAL = 32767;
33  static const uint32_t SR_WINDOW_LEN = 131; // Note: AXI config bus uses 129 & 130
34  static const uint32_t RB_MAX_WINDOW_LEN = 0;
35  static const uint32_t AXIS_WINDOW_LOAD = AXIS_CONFIG_BUS + 0; // 2*0+0
36  static const uint32_t AXIS_WINDOW_LOAD_TLAST = AXIS_CONFIG_BUS + 1; // 2*0+1
37 
39  //
40  // \p coeffs size determines the window length. If it longer than
41  // the maximum window length, throws a uhd::value_error.
42  virtual void set_window(const std::vector<int>& coeffs) = 0;
43 
45  virtual size_t get_max_len() const = 0;
46 
48  virtual size_t get_window_len() const = 0;
49 
50 }; /* class window_block_ctrl*/
51 
52 }} /* namespace uhd::rfnoc */
53 
54 #endif /* INCLUDED_LIBUHD_RFNOC_WINDOW_BLOCK_CTRL_HPP */
#define UHD_RFNOC_BLOCK_OBJECT(class_name)
This macro must be put in the public section of an RFNoC.
Definition: block_ctrl_base.hpp:59
Definition: sink_block_ctrl_base.hpp:25
STL namespace.
Definition: build_info.hpp:13
#define UHD_RFNOC_API
Definition: config.hpp:117
Definition: source_block_ctrl_base.hpp:24
Block controller for the standard windowing RFNoC block.
Definition: window_block_ctrl.hpp:26