UHD 4.7.0.0
Highlights / Main Changes
- Major updates to rfnoc_image_builder (a98ce26). This change adds support for
defining transport adapters in the image builder YAML files, adding custom
modules, and more. - Updated embedded OS on file system images for E3xx, N3xx, and X4xx devices
to Yocto 4.0 (kirkstone).
New Features
- General
- Allow installing only Python-based utilities (e.g., rfnoc_image_builder)
by adding the ENABLE_PYMOD_UTILS option to CMake. - Added ability to query dot representation of RFNoC graph
- Allow installing only Python-based utilities (e.g., rfnoc_image_builder)
- Python support
- Added DRAMReceiver class and amend rx_to_file.py example to use new class.
This supplements the DRAMTransmitter class and simplifies using the DRAM-backed
RFNoC replay block to when signal bandwidth exceeds available streaming bandwidth.
- Added DRAMReceiver class and amend rx_to_file.py example to use new class.
- CMake
- We now search for a system version of Pybind11 before falling back to the
bundled version. The system version is preferred, and the bundled version
may be removed in a future release.
- We now search for a system version of Pybind11 before falling back to the
- RFNoC
- Image builder: Major update, which adds support for defining transport
adapters in the image builder YAML files, adding custom modules, choosing
custom directories for build, IP, and intermediate files, building IP
only, saving Vivado projects, and more. Image core YAML files created with
this version are not compatible with previous versions, and vice versa!
Also adds many more checks to avoid building bitfiles that are either
incomplete, or valid but probably not the desired outcome. - Added support for defining custom register spaces in RFNoC blocks.
- Added license checking subsystem. This allows creating RFNoC blocks that
require a license key to operate. - Add device DNA feature for X310, X410, X440. This allows reading back the
FPGA's DNA, which is a unique identifier.
- Image builder: Major update, which adds support for defining transport
- Embedded OS for E3xx, N3xx, and X4xx devices
- With the switch to Yocto 4.0 (kirkstone), the SD card and eMMC images no
longer pre-populate the second system partition. Refer to the device
specific "Updating Filesystems" section in the user manual for how to populate it.
This reduces the size of compressed .sdimg filesystem images.
- With the switch to Yocto 4.0 (kirkstone), the SD card and eMMC images no
- X440
- Added new guided log info mode to provide more information about the Nyquist
zone in which the chosen frequency is located. These additional info logs
are enabled by default. For disabling the guided mode, add the entry
guided_mode=false
to the UHD config file in the "Global" section.
- Added new guided log info mode to provide more information about the Nyquist
- Examples
- rfnoc-example now also generates Python bindings for OOT block control functions.
Dependencies changes
- Increase minimum required version
- Python to 3.7.0
- Pybind11 to 2.7.0
Bug Fixes
- General UHD
- Fix issue with undefined HOME or XDG_CONFIG_HOME
- Fix compilation error with boost 1.85.0 (closed issue 740)
- Fixed cmake find_library for UHD to fail if the library is not found
- Fixed setters for ALL_CHANS in multi_usrp
- Demoted safe call logging to warning
- Fixed outstanding clang-format issues
- Fixed compiling with gcc 13.2
- Removed superfluous usage of const in return values
- Python support
- YAML files are now listed as part of the package
- Fix setting start_time having no effect
- RFNoC
- Add EOB to source port of null_src_sink block
- Fix RFNoC graph action queue lockup on action exceptions
- FIR filters now uses newer IP revisions
- Reverse FIR filter coefficients now get embedded in DSPE48
- B2xx
- Fixed FRAC2 calculation (closed issue 684).
- Fix DC truncation bias by adding rounding to DDC chain
- X310
- Fix warning about duplicate reg
- ubx
- update ubx xcvr mode options
- write output power to correct LO
- Fix width of gain register
- MPM
- Deactivate explicit DAD (Duplicate Address Detection) on int0 interface
since this is the default behavior of systemd v250.5 (Yocto release kirkstone)
for static IPv4 addresses if the IP address is a link local address. - Correct outdated mender command in prints of usrp_update_fs utility
- No longer import from from rpc_server when already importing usrp_mpm
- Demoted log level of ECHO send error
- No longer print iptables errors when setting up forwarding
- Deactivate explicit DAD (Duplicate Address Detection) on int0 interface
- X400 Platform
- Add PPS interface to X410/X440 BSP
- Add netlist make flow
- Update PS DRAM speed bin
- Replace Ethernet transport adapter
- X410
- Set Locale for ZBX Lattice build
- Improve Lattice make flow
- X440
- Fix error in master clock table for 1000MHz mcr.
- Place SPI into IOB on X440
- mpm
- Add error for recurring TA node inst values
- Fix warning about different converter rates
- Fix MTS skip for dual-rate
- Use greatest converter rate for sysref rate
- Add warning for bad conv rate order
- Enable multiple LMK VCO rates per MCR
- Examples
- Fix rx_samples_to_file failure for multichannel fullpath.
- Fixed bugs observing cmd argument -c in remote_rx.py example.
- Updated tx_waveforms examples now also use timed commands during
frequency tuning for all devices except for x410.
On X440 this allows reproducing specified channel to channel phase alignments. - Consistently comment out sections in rx_samples_to_file.
Validated OS Environments
(Versions for build and runtime dependencies can be determined from the
docker container definitions in the UHD repository at .ci/docker/...)
- Linux:
- Ubuntu: bionic (18.04), focal (20.04), jammy (22.04), noble (24.04)
- Fedora: 37, 38*
- Windows: 10 21H2, 11 21H2
- MacOS: Monterey (12.6)
* Corrected post release