aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* lib: gain_group: Remove spurious logsMartin Braun2020-03-121-2/+0
| | | | | | Whenever gains where set through a gain_group, it would output spurious log messages that must stem from someone's debug code, since the log messages are not very useful by themselves.
* python: Arrange file in Python module into uhd/ subdirectoryMartin Braun2020-03-108-21/+54
| | | | | | | | | | | | | | | This adds the host/python/uhd subdirectory, which will add all files that go into the actual Python module once installed. Before, all Python files were directly in host/python and got sorted into their appropriate destination folders during configuration and installation. This change doesn't change anything (Python modules will look the same as they do now), except that it makes the source tree a tad neater, but more importantly, it creates a consistent directory structure when adding submodules to the uhd module. Apart from the PyBind11-generated shared object file (which gets generated during build time), the uhd/ subdirectory in host/python exactly resembles the Python module once installed, so it's more obvious where to add new submodules and files.
* README.md: Update references to fpga-srcLane Kolbly2020-03-101-10/+2
|
* sim: Rename class typedefsWade Fife2020-03-094-72/+72
| | | | | | | | For example, the ChdrPacket typedef is being renamed from ChdrPacket to ChdrPacket_t. This allows the code to distinguish between the unparameterized class and the already parameterized class. This isn't strictly necessary, but it makes some Vivado 2019.1 bugs easier to work around. It also makes the code slightly less ambiguous.
* sim: Add ChdrIfaceBfm testWade Fife2020-03-095-5/+675
|
* examples: Update gain block testbench to use samplesWade Fife2020-03-092-26/+25
|
* sim: Add item support to RFNoC simulationWade Fife2020-03-098-40/+420
| | | | | This adds variants of the send and recv methods in RfnocBlockCtrlBfm and ChdrIfaceBfm that input/output items instead of CHDR words.
* sim: Parameterize chdr_word_t data typeWade Fife2020-03-0918-218/+423
| | | | | | | | | | | | | | | | | | This replaces chdr_word_t, which was a statically defined 64-bit data type, with a paramaterizable data type that matches the defined CHDR_W. Code that formerly referenced the chdr_word_t data type can now define the data type for their desired CHDR_W and ITEM_W as follows: // Define the CHDR word and item/sample data types typedef ChdrData #(CHDR_W, ITEM_W)::chdr_word_t chdr_word_t; typedef ChdrData #(CHDR_W, ITEM_W)::item_t item_t; ITEM_W is optional when defining chdr_word_t if items are not needed. Static methods in the ChdrData class also provide the ability to convert between CHDR words and data items. For example: // Convert CHDR data buffer to a buffer of samples samples = ChdrData#(CHDR_W, ITEM_W)::chdr_to_item(data);
* sim: Split PkgRfnocBlockCtrlBfm into separate packagesWade Fife2020-03-095-400/+418
|
* fpga: lib: Modify for loop to Verilog 2001 syntaxMax Köhler2020-03-091-34/+35
| | | | | | This changes the for loop to use the generate keyword, making it compatible with Verilog 2001. This allows tools that only support Verilog 2001 to use this file (e.g., Intel Quartus).
* rfnoc: Fix FIR and AXI RAM block register documentationWade Fife2020-03-052-9/+11
|
* mpm: rpc_server: set correct default unpacker params for msgpack 0.6.1Joerg Hofrichter2020-03-051-2/+2
| | | | | | | | | | | | | | | | | | | | | | msgpack 0.6.1 suggests new default parameters which ensures compatibility with the upcoming msgpack 1.0 release which will have breaking changes. The parameter changes are described in https://github.com/msgpack/msgpack-python/blob/v0.6.1/README.rst The default parameters for msgpack 1.0 will be: - packer: use_bin_type=True - unpacker: raw=False The packer use_bin_type=True option is already set in the client (mpm_shell.py) but the unpacker option raw=False needs to be set in the server (rpc_server.py) This change allows the usage of a patched version of python3-mprpc 0.1.17 which removes passing the encoding option to the Packer and Unpacker Signed-off-by: Joerg Hofrichter <joerg.hofrichter@ni.com>
* mpm: explicitly set max buffer size for msgpack unpackerAndrew Lynch2020-03-051-0/+2
| | | | | | Msgpack version 0.6 reduced the default max buffer size to 1MB which is smaller than the bitfiles. This change sets the max buffer size to 50MB which is larger than the bitfiles.
* Add TwinRX support to phase alignment scripterickshepherdNI2020-03-051-19/+57
|
* mpm: Make contextmanagers exception-safeLane Kolbly2020-03-034-5/+68
| | | | When making context managers in Python, the yield statement has to be wrapped in a try/finally clause in order to properly clean up after exceptions happen.
* mpm: rpc: Use contextmanager for claim timeoutsToni Jones2020-03-031-33/+38
| | | | | Modify the RPC claim timeout mechanism to use a contextmanager helper function when enabling/disabling timeouts.
* mpm: Apply clang-format against all .cpp and .hpp filesMartin Braun2020-03-038-83/+81
|
* uhd: Apply clang-format against all .cpp and .hpp files in host/Martin Braun2020-03-03432-22914/+24827
| | | | | Note: template_lvbitx.{cpp,hpp} need to be excluded from the list of files that clang-format gets applied against.
* utils: populate_images: download with python3bidavis2020-03-021-1/+1
|
* docs: n3xx/x3xx: Fix links to DPDK pagesteviez2020-02-272-2/+2
| | | | | | | The n3xx and x3xx device pages both link to the DPDK page. However, the link was setup as type "subpage" instead of "ref". The result was that both device pages thought they owned the DPDK page which caused non-intuitive behavior when clicking through links in the manual
* e320/e310: Fix get_gpio_srcs() MPM API callMartin Braun2020-02-262-2/+2
| | | | | The Python code contained a typo which would cause a call to get_gpio_srcs() to throw an exception.
* device: read in preferences file before discoveryAndrew Lynch2020-02-261-1/+3
|
* rfnoc: Reuse the graph objectAndrew Lynch2020-02-261-1/+20
| | | | | Keep a reference to the graph object so that when a new multi_usrp is opened to the same device, the same graph is also used.
* lib: move OSX specific code to where the values are initially setMichael Dickens2020-02-211-0/+11
|
* lib: tweak prototypes to not be constexpr to allow building on OSXMichael Dickens2020-02-211-5/+5
| | | | Make all arguments const, in line with how other static methods are declared.
* examples: Wrap get_gpio_src() with try/catch blocksteviez2020-02-191-7/+14
| | | | | Non-RFNoC devices do not support get_gpio_src() entrypoing so wrap call with a try/catch block
* rfnoc: Add management filter to generic xportWade Fife2020-02-194-101/+172
|
* radio: Update TB to use new block ctrl connectWade Fife2020-02-191-41/+17
| | | | | This eliminates the complicated semaphore from the testbench and brings the radio testbench in line with the other testbenches.
* utils: images downloader: Add support for UHD_IMAGES_URL, clean upMartin Braun2020-02-191-35/+29
| | | | | | - Remove Python2 compat hacks - Read the UHD_IMAGES_URL environment variable. If set, it overrides the default value for --base-url
* utils: images downloader: Handle missing content-length responseMartin Braun2020-02-191-7/+18
| | | | | | If the content-length header is not available, uhd_images_downloader will now ask the user if she wants to continue. Previously, the tool would throw an exception.
* rfnoc: actions: Cleanup rx_event_action_info ctorsteviez2020-02-183-13/+18
| | | | | Set error code member variable in rx_event_action_info constructor instead of relying on the caller to set it after object creation
* rfnoc: actions: Fix uninitialized timestampssteviez2020-02-183-11/+18
| | | | | | tx_event_action_info objects were being created with uninitialized timestamp members which led to uhd::tx_streamer::recv_async_msg() returning with invalid timestamps
* utils: image_downloader: check write conditionssteviez2020-02-181-0/+13
| | | | | | | | | | Prior to downloading any images, check that the images destination: - Is a valid directory - Has valid permissions for images to be written Images are downloaded to a temporary location before being written to image destination, so these checks help avoid situation where images are downloaded but unable to be written
* x300: add front-panel GPIO source controleklai2020-02-188-54/+209
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Adds a ZPU register to control the FP GPIO source. These are 2bits per GPIO pin, totalling 24 bits. 0 corresponds to RF-A, 1 corresponds to RF-B. The following Python code will control the upper 6 bits of the front-panel GPIO from the B-side radio on an X300: >>> import uhd >>> U = uhd.usrp.MultiUSRP("type=x300") >>> U.get_gpio_src_banks() ['FP0'] >>> U.get_gpio_src("FP0") ['RFA', 'RFA', 'RFA', 'RFA', 'RFA', 'RFA', 'RFA', 'RFA', 'RFA', 'RFA', 'RFA', 'RFA'] >>> U.set_gpio_src("FP0", ['RFA', 'RFA', 'RFA', 'RFA', 'RFA', 'RFA', 'RFB', 'RFB', 'RFB', 'RFB', 'RFB', 'RFB']) >>> U.get_gpio_src("FP0") ['RFA', 'RFA', 'RFA', 'RFA', 'RFA', 'RFA', 'RFB', 'RFB', 'RFB', 'RFB', 'RFB', 'RFB'] >>> # Make all GPIOs outputs: >>> U.set_gpio_attr("FP0A", "DDR", 0xFFF) >>> U.set_gpio_attr("FP0B", "DDR", 0xFFF) >>> # Control all GPIOs from software (not ATR): >>> U.set_gpio_attr("FP0A", "CTRL", 0x000) >>> U.set_gpio_attr("FP0B", "CTRL", 0x000) >>> # Bottom 3 pins go high from radio A >>> U.set_gpio_attr("FP0A", "OUT", 0x007) >>> # Top 3 pins go high from radio B >>> U.set_gpio_attr("FP0B", "OUT", 0xE00) Amends the gpio.cpp example to allow switching the source. Co-authored-by: Brent Stapleton <brent.stapleton@ettus.com>
* mpm: cmake: added date_time as required boost componentJoerg Hofrichter2020-02-101-0/+1
| | | | | | | this fixes the error of a missing symbol _ZNK5boost9gregorian10greg_month15as_short_stringEv in /usr/lib/libusrp-periphs.so.4 when building with Boost 1.71
* mpm: catalina: Add thread.cpp from UHD to included filesMartin Braun2020-02-101-0/+13
| | | | | This avoids a linker error where set_thread_name and set_thread_priority cannot be found.
* ad9361: Fix formattingMartin Braun2020-02-102-19/+16
| | | | | - Apply clang-format - Remove unnecessary boost::format
* thread: Fix formatting in thread utilitiesMartin Braun2020-02-102-135/+147
| | | | | - Apply clang-format - Remove unnecessary boost::format
* MPM: add ability to run scripts to MPM shellLars Amsel2020-02-071-34/+83
| | | | | | | | | | | | | | | MPM shell now supports script execution. It utilizes the cmdqueue of Pythons cmd.Cmd class for this. The script to execute is a text file containing the commands one per line. The output decoration of MPM shell changed. Commands are decorated with ">" whereas responses use "<" at line start. Multiline responses are decorated in each line. Cleanup overwritten methods of cmd.Cmd to allow proper shutdow in interactive as well as in scripted mode. Improved pylint score.
* lib: utils: Don't use hard-coded path constantsRyan Volz2020-02-072-2/+27
| | | | | | | | | | | | | This replaces the package path constant with a runtime library path lookup. The package path is taken to be the parent directory of the library directory. When boost >= 1.61 is not available, this maintains the current behavior of using CMake to set path contants. Runtime path determination is preferable for making a relocatable library so that it is not necessary to do string substitution on relocated binaries (as with, for example, building a conda package).
* python: Set python module suffix to conform with PEP 3149.Ryan Volz2020-02-071-1/+10
| | | | | | | | | This adds the python implementation, major and minor version numbers, and any additional flags (debug, pymalloc, wide unicode) to the extension module suffix as specified in PEP 3149. Hat tip to @isuruf: https://github.com/conda-forge/staged-recipes/pull/10076#discussion_r348721448
* python: Do not link against python lib for building an extension module.Ryan Volz2020-02-071-1/+10
| | | | | | | | | | | | This fixes a segmentation fault when trying to use the python module on OSX when built with conda (unsure why it doesn't arise otherwise). Instead of linking against the python library, it is proper to not link against the library and, for OSX builds, add linker options for "-undefined" and "dynamic_lookup". This is precisely what the CMake FindPython module does for linking against the Python::Module target. See https://blog.tim-smith.us/2015/09/python-extension-modules-os-x and https://bugs.python.org/issue36721
* python: Fix internal library name (incl. suffix) to match filename.Ryan Volz2020-02-071-7/+7
| | | | | | Instead of renaming the library file, this sets the suffix in CMake so that the filename turns out as desired and also linker references know the correct name.
* rfnoc: ddc: Make scaling optional, prefer to change decimMartin Braun2020-02-071-28/+53
| | | | | | | | | | | This combines two intertwined changes: - The scaling_in and scaling_out properties of the DDC now start off uninitialized. This is to avoid invalid loops of property resolution: When the block is first initialized in a graph context, the default values for scaling over-constrain the resolution problem. - The resolver for samp_rate_in used to prefer changing samp_rate_out, it now prefers to modify the decimation. This is necessary to allow calling set_output_rate() before the graph is committed.
* rfnoc: registry: Fix Doxygen for register_block_direct()Martin Braun2020-02-071-0/+12
|
* rfnoc: Update blocks to use autogenerated noc_shellWade Fife2020-02-0630-1838/+2473
|
* fixup! utils: blocktool: Fix blocktoolWade Fife2020-02-062-5/+5
|
* cmake/doxygen: Fix FPGA manual post-FPGA-mergeMartin Braun2020-02-063-39/+7
| | | | | | | While merging the FPGA code into the UHD codebase, the manual building process was not modified, resulting in either a link to the website instead of building the FPGA manual as part of the rest, or by using a residual submodule.
* fixup! lib: add option for output register in pps generatorHumberto Jimenez2020-02-051-1/+1
|
* rfnoc: Provide make_args_t dtor in rfnoc_blocks_testAaron Rossetto2020-02-041-0/+3
|