aboutsummaryrefslogtreecommitdiffstats
path: root/host/include
Commit message (Collapse)AuthorAgeFilesLines
* rfnoc: Add default block controllerMartin Braun2019-11-263-5/+30
| | | | | The default block controller should get instantiated when no other suitable block controller can be found.
* rfnoc: Add DDC block controllerMartin Braun2019-11-262-0/+136
|
* rfnoc: Added clock_iface to convey info about clocksAshish Chaudhari2019-11-261-0/+3
| | | | | The inteface provides a mechanism for users of clocks to query information such as the running status or rate
* rfnoc: Use RTTI "serialization" for stream commandsMartin Braun2019-11-261-6/+20
| | | | | | | | A small modification to rfnoc::action_info makes it polymorphic, and instead of serializing data structures into a string, this allows creating custom action objects and identifying them via RTTI. The stream command action object is a good example for how to use this, so all the usages of stream command action objects were converted to this scheme.
* log: Add convenience macros for logging from RFNoC blocksMartin Braun2019-11-261-0/+7
|
* rfnoc: Add rfnoc_graph classMartin Braun2019-11-262-0/+234
| | | | This replaces device3() for RFNoC applications.
* rfnoc: Move graph_edge data structure to its own header, add to_string()Martin Braun2019-11-262-0/+87
| | | | | | | | This structure represents information about a graph edge. Required by detail::graph and rfnoc_graph. graph_edge_t::to_string() will now provide a textual representation of the edge.
* rfnoc: Change Block-ID format to 0/FFT#1Martin Braun2019-11-262-17/+19
| | | | | | | Previously, it was 0/FFT_1. The counter was separated by an underscore. Now, we separate by a # symbol to allow for underscores in block names. This means 'FIR_Filter' is now a valid blockname.
* rfnoc: Add block registry/factory and make_argsMartin Braun2019-11-264-2/+143
| | | | | | - noc_block_base now has a ctor defined - The registry stores factory functions to the individual Noc-Block implementations
* rfnoc: Add block_poke support to reg_iface async msgAshish Chaudhari2019-11-261-1/+2
| | | | | The async message callback now has a vector of data words instead of a single one
* rfnoc: add register_iface holder classMartin Braun2019-11-262-2/+42
| | | | | | | | | Adding mixin class that manages holding onto a register_iface. Deriving from this new class in noc_block_base, as it needs access to a register_iface. Co-authored-by: Brent Stapleton <brent.stapleton@ettus.com>
* rfnoc: Added impl for reg_iface and ctrl_endpointAshish Chaudhari2019-11-262-0/+223
| | | | | | | | - Added new register_iface class that translates high-level peek/poke calls into CHDR control payloads - Added new chdr_ctrl_endpoint class that emulates a control stream endpoint in SW. It can create and handle multiple register interfaces
* rfnoc: node: Add default command time APIMartin Braun2019-11-261-0/+42
|
* rfnoc: Add action APIMartin Braun2019-11-264-17/+187
| | | | | | | | - Added action_info class - Allow to send actions from node to node - Allow to post actions into nodes - Allow to set default forwarding policies - Added unit tests
* rfnoc: Refactored CHDR packet interfacesAshish Chaudhari2019-11-264-592/+0
| | | | | | | - Moved packet interface code from public to private include - Split packet interface into two files: payload paring and packet iface - Added support for all CHDR packet types - Added more test cases to unit test
* rfnoc: Add property propagation, Boost.Graph storageMartin Braun2019-11-262-26/+247
| | | | | | | | | | | | - Adds a detail::graph_t class, which handles the propagation - Adds methods to node_t to aid with propagation - Adds unit tests - Adds dynamic property forwarding: Nodes are now able to forward properties they don't know about by providing a forwarding policy. A good example is the FIFO block which simply forwards most properties verbatim. - node: Temporarily disabling consistency check at init
* rfnoc: Add noc_block_base classMartin Braun2019-11-261-0/+92
| | | | This is a parent class for all block controllers.
* rfnoc: add chdr packet interfaceTrung Tran2019-11-262-15/+196
| | | | This is a generic CHDR interface that abstracts out the bus width.
* rfnoc: Add properties, nodes, and accessorsMartin Braun2019-11-267-0/+712
| | | | | | | | | | | | | | Adds the following classes: - uhd::rfnoc::node_t, the base class for RFNoC nodes - uhd::rfnoc::node_accessor_t, a class to access private properties - uhd::rfnoc::res_source_info, a struct that identifies where properties come from - uhd::rfnoc::property_t, and property_base_t (its parent) - uhd::rfnoc::prop_accessor_t, a class to access properties Add always dirty property (dirtifier). Also adds unit tests for properties.
* rfnoc: add new data_chdr packetization.Trung Tran2019-11-264-1/+411
|
* niusrprio: Add get_resource() API callMartin Braun2019-11-261-0/+5
|
* niusrpio: Apply formattingMartin Braun2019-11-261-40/+35
|
* types: time_spec: Add ASAP valueMartin Braun2019-11-261-0/+3
|
* gain groups: FormattingBrent Stapleton2019-11-261-1/+1
| | | | Applying formatting in anticipation of upcoming changes.
* gain_groups: Add zero-value gain groupsBrent Stapleton2019-11-261-0/+7
| | | | | | | | | | | | | | | Add convenience factory for making a gain group that has a single zero-valued element. This factory requires a name, which should probably be ALL_GAINS, or something similar (these constants are device-specific). Using this new make_zero factory in the X300 radio control when we don't find any gain elements so that our gain groups aren't empty. This simplifies our later setters/getters because we know that we'll always have _something_ cached. Note that we only register this zero value gain group for TX, as our ADC is registered as a gain element, so our RX gain groups are never empty.
* uhd: Add thread affinity utility functionsAaron Rossetto2019-11-261-0/+6
|
* utils: cast: Add from_str() typecastMartin Braun2019-11-261-1/+20
| | | | | This is the inverse to std::to_string(), and we can overload it with UHD-internal types.
* soft_register: Replace boost::unordered_map with std versionMartin Braun2019-11-261-2/+2
| | | | This is the only occurrence of boost::unordered_map in UHD.
* utils: soft_register: Remove 16-bit modeMartin Braun2019-11-261-14/+3
| | | | | This mode is never used, and makes it more cumbersome to maintain this code.
* utils: dirty_tracked: Remove custom copy constructorMartin Braun2019-11-261-7/+1
| | | | | | | The custom copy ctor for dirty_tracked was using the = operator, which wouldn't necessarily copy the dirty flag. By removing it (and thus using the default copy ctor), the copied dirty_tracked object now has the same value *and* dirty flag as the original.
* utils: Added set_thread_name for std::threadAshish Chaudhari2019-11-261-0/+8
|
* nirio_fifo: Replace boost::atomic with std::atomicMartin Braun2019-11-261-2/+3
| | | | This is the only occurrence of boost::atomic in UHD.
* uhd: types: Extend stream_cmd_t::num_samps to 64 bitsMartin Braun2019-11-261-1/+1
| | | | Newer devices may be able to provide more then 32 bits worth of samples.
* uhd: Add new exceptions for RFNoC-specific errorsMartin Braun2019-11-261-0/+82
| | | | | | | | | | | | | | | | | | | Add the following exception types: - rfnoc_error - op_failed - op_seqerr - op_timeout - op_timeerr - access_error - It is meant to be used when access violations have taken place, i.e., when a resource is being accessed without appropriate permissions. - resolve_error - This is a derivative of rfnoc_error, and will be used when a property resolution fails unexpectedly. - routing_error - For use when the framework has path setup issues or general routing-related errors
* uhd: Remove deprecated objects and methodsMartin Braun2019-11-267-142/+0
| | | | | | | | | This removes the following symbols: - otw_type_t - clock_config_t - Any functions that use those symbols - Non-standard args from examples (e.g., --total-time is deprecated in favour of --duration)
* uhd: Remove support for N230Martin Braun2019-11-261-1/+1
| | | | Note: N230 is still supported on the 3.15 LTS branch
* cmake: Bump dependency versions for UHD 4.0.0.0Martin Braun2019-11-261-94/+0
| | | | | | | | | | | | - Boost >= 1.58 - CMake >= 3.5.1 - gcc >= 5.4.0 - Clang >= 3.8, AppleClang >= 600 - Python >= 3.5 (Py2k no longer supported) - Numpy >= 1.11 - C++14 for lib, include may now use C++11 constructs. - Because there is no more code requiring C++03 syntax, we remove the include-specific clang-format file
* uhd: dict: Add typecast operator to std::map<>Martin Braun2019-11-042-0/+15
| | | | | | | This will now allow calls like this: uhd::dict<k, v> d = /* ... */; auto m = static_cast<std::map<k, v>>(d);
* cmake: Add UHD_COMPONENT variablemichael-west2019-10-151-0/+3
| | | | | | | | Added cmake variable to set the component (currently UHD or MPM). so the banner printed by the log_resource would reference the correct component. Added accessor function and appropriate calls in log.cpp. Signed-off-by: michael-west <michael.west@ettus.com>
* Revert "uhd: Check property type at access; error if mismatch"Martin Braun2019-09-302-12/+3
| | | | | | | This reverts commit 94592641f0647563bc4d2163805d5284a6796273. The commit itself was OK, but it changed the requirements such that UHD could only be compiled with C++11.
* uhd: include: Add <string> to headers where it was missingMartin Braun2019-09-092-1/+3
|
* rfnoc: Read cmd FIFO size from blocks & configure ctrl_ifaceMartin Braun2019-09-041-2/+2
| | | | | | | | | | This requires noc_shell compat number 6.0. It will allow sending as many command packets, but no more, than there is space. Updated FPGA images for devices: - X310/X300 - N300/N310/N320 - E310/E320
* uhd: Check property type at access; error if mismatchAaron Rossetto2019-09-042-3/+12
|
* docs: Improve language on threading for recv() and send()Martin Braun2019-08-221-1/+11
|
* boost: Replaced units::demangle with core::demangle where appropriateMartin Braun2019-08-221-3/+3
| | | | Boost moved this around in version 1.58.
* uhd: Add UHD_FALLTHROUGH attributeMartin Braun2019-08-161-0/+13
| | | | | | | | | | | | | | | | | This provides a platform-independent attribute to allow fallthroughs in switch statements. Example: switch (foo) { case BAR: do_something(); UHD_FALLTHROUGH case BAZ: do_another_thing(); } The usage of UHD_FALLTHROUGH will avoid a compiler warning if indeed the fallthrough was intentional. The associated warning (-Wimplicit-fallthrough) is only available on gcc and Clang.
* uhd: rfnoc: docs: Fix Doxygen warning due to undoc'd parameterMartin Braun2019-08-131-1/+2
|
* rfnoc: Add update_graph() API callMartin Braun2019-07-151-0/+28
| | | | | | Blocks that change scaling, tick rate, or sampling rate can now notify the graph to update streamers. Before, this was handled only by mult_usrp, and only for DDC and DUC blocks.
* utils: log: Fix includes for UHD_HEX()Martin Braun2019-06-121-0/+1
| | | | Using UHD_HEX() requires <iomanip>, which is now part of log.hpp.
* rfnoc: Consolidate double-documented param in block_ctrl_baseAlex Williams2019-06-071-3/+3
|