| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
This points to the location where cal data is stored.
|
|
|
|
|
| |
This adds the "modelsim" simulator option to run_testbenches.py to allow
for regression testing of the native ModelSim simulation target.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This results in a change of operation for LF/Basic Boards on
X300/X310 devices. The RX streaming mode will now be specified
by the antenna rather than the subdev: (AB or BA for complex
streaming, and A or B for real-mode streaming, with AB being
the default antenna value). For real-mode streaming, data is
collected as complex data with zeroed-out values in the
quadrature domain. The subdevs for these boards have been
changed to 0 and 1 for the RX channels, and 0 for the TX
channel, in order to align with subdev specs of other RFNoC
devices.
Note: the old streaming mode paradigm is still in place for
the N210.
|
| |
|
|
|
|
|
|
|
|
| |
Since the webserver responding to requests at http://files.ettus.com
replies with a redirect to the same URL, but using the https://
transport, this isn't only the safer thing we should be doing, anyways,
but also the quicker, since it saves the user from one unnecessary
redirect.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds a simulation make target that allows you to run ModelSim
natively rather than through Vivado.
Adds or modifies the following simulation make targets:
make vlint - Brake up compilation to Verilog/SystemVerilog/VHDL
make modelsim - Depends on make vlint and invokes modelsim
Adds the following variables:
MODELSIM_ARGS - Added to invocation of ModelSim
SVLOG_ARGS - Added to SystemVerilog invocation of vlog
VLOG_ARGS - Added to Verilog invocation of vlog
VHDL_ARGS - Added to VHDL invocation of vcom
|
|
|
|
| |
This lets you linearly interpolate between two points.
|
| |
|
|
|
|
|
|
| |
- FindGit.cmake is no longer part of UHD, removed from copyright list
- The file list includes FPGA code, which needs to be updated to point
to fpga/ instead of fpga-src/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This module allows to add binary files into UHD (e.g., for cal data
storage) in a platform-independent way.
The upstream CMakeRC.cmake is modified in the following way to allow
linkage against a shared object:
```diff
# Generate the actual static library. Each source file is just a single file
# with a character array compiled in containing the contents of the
# corresponding resource file.
add_library(${name} STATIC ${libcpp})
set_property(TARGET ${name} PROPERTY CMRC_LIBDIR "${libdir}")
set_property(TARGET ${name} PROPERTY CMRC_NAMESPACE "${ARG_NAMESPACE}")
target_link_libraries(${name} PUBLIC cmrc::base)
set_property(TARGET ${name} PROPERTY CMRC_IS_RESOURCE_LIBRARY TRUE)
+ set_property(TARGET ${name} PROPERTY POSITION_INDEPENDENT_CODE ON)
```
This forces the -fPIC flag for the static object that CMakeRC generates,
allowing to link it into a shared object file.
The version of CMakeRC used is: a7e355290, cloned from
git@github.com:vector-of-bool/cmrc.git.
|
|
|
|
|
|
|
|
|
|
| |
FlatBuffers is used to (de-)serialize calibration data. For most use
cases, only a few headers are required, so we provide them with UHD
instead of requiring all UHD users to install their own version of
FlatBuffers.
This adds the headers to host/lib/deps, and updates the Debian copyright
file appropriately.
|
|
|
|
|
|
|
| |
This modifies `constrained_device_args_t::bool_arg::parse()` to use
`uhd::cast::from_str<bool>` to interpret strings as Boolean values,
deduplicating the string parsing code and single-sourcing it from
`uhd::cast`.
|
|
|
|
|
|
|
| |
This adds a specialization to `uhd::cast::from_str()` to handle `bool`
as a target type and interpret strings like 'y', 'Y', 'n', 'No', 'True',
'False', etc. as Boolean values, as well as the traditional '0' and '1'
(which also work).
|
|
|
|
|
|
|
| |
Allow a unit test to instantiate a mock_terminator_t and provide a
custom name to be displayed when get_unique_id() is called (generally
for logging purposes). The custom name is optional and the generic
'MOCK_TERMINATOR' is used if unset.
|
|
|
|
|
|
| |
Allow clients to pass a custom instance of a mock_reg_iface_t for use
with mock_block_container. This is especially useful when a block test
subclasses mock_reg_iface_t to implement specialized behaviors.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When using viv_modify_tcl_bd, two Vivado instances are open:
1. GUI-mode Vivado that opens a TCL-based BD for the user to edit.
2. Batch-mode Vivado that saves changes from (1) and rewrites the TCL
source file.
During (2), the previous tool implementation was saving layout
information in the TCL source file. This layout info gets outdated
when the BD is reopened, because (1) regenerates the layout to provide
a clean BD diagram in the Vivado GUI.
Furthermore, each time the BD is open, the layout information will
vary due to Vivado's window size, thus creating untracked changes in
the source TCL file.
This commit removes the command option that requests Vivado to save
layout information.
|
|
|
|
|
|
|
|
|
|
| |
The cal utils read the property tree to identify the daughterboard
information (serial, type, etc.). The paths for properties have changed
in UHD 4.0, causing these utilities to fail.
Instead of conditionally parsing the property tree, this commit changes
the utilities such that dictionaries are pulled out of the multi_usrp
object, which work regardless of the device type.
|
|
|
|
|
|
|
|
|
|
|
|
| |
For RFNoC devices, multi_usrp::get_device() no longer returns a device
pointer, rather, it returns a nullptr.
This is intentional because access to the underlying device is no longer
allowed. However, legacy code can segfault (e.g. portions ofr gr-uhd).
This patch returns a faux uhd::device class, which almost mimicks the
original behaviour perfectly, by redirecting its class methods back to
multi_usrp_rfnoc. The only exception is recv_async_msg(), which requires
a TX streamer. This function will always return false now.
|
|
|
|
|
|
|
|
|
|
| |
The introduction of multi_usrp_rfnoc caused
multi_usrp::get_device()->get_tree() to segfault for gen3 devices.
In defcb174, we introduced a fix for this (multi_usrp::get_tree()) but
we didn't apply it to internal utilities.
That means the uhd_cal_* utilties were broken, along with certain
sections of the C API, and the latency test suite. This fixes the
segfault issue.
|
|
|
|
|
|
|
|
|
| |
All of the functions defined in uhd/utils/paths.hpp are now available in
Python, with the exception of get_module_paths().
#!/usr/bin/env python3
import uhd
print(uhd.get_lib_path()) # Prints location of libuhd
|
| |
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
|
| |
This adds variants of the send and recv methods in RfnocBlockCtrlBfm
and ChdrIfaceBfm that input/output items instead of CHDR words.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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);
|
| |
|
|
|
|
|
|
| |
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).
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
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.
|
|
|
|
|
| |
Modify the RPC claim timeout mechanism to use a contextmanager
helper function when enabling/disabling timeouts.
|
| |
|
|
|
|
|
| |
Note: template_lvbitx.{cpp,hpp} need to be excluded from the list of
files that clang-format gets applied against.
|
| |
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
| |
The Python code contained a typo which would cause a call to
get_gpio_srcs() to throw an exception.
|
| |
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
Make all arguments const, in line with how other static methods are declared.
|
|
|
|
|
| |
Non-RFNoC devices do not support get_gpio_src() entrypoing so wrap call
with a try/catch block
|
| |
|
|
|
|
|
| |
This eliminates the complicated semaphore from the testbench and brings
the radio testbench in line with the other testbenches.
|