Skip to content

UHD 4.7.0.0

Latest
Compare
Choose a tag to compare
@joergho joergho released this 28 Jun 20:50

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
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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
  • 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: 34, 35, 36
  • Windows: 10 21H2, 11 21H2
  • MacOS: Monterey (12.6)