Commit Graph

11014 Commits

Author SHA1 Message Date
Lars Amsel
308126a479 cmake: Set build type before package find
Packages may use the build type to decide whether to look for
release or debug binaries. It is therefore cruicial to set the
build type before searching any package.
2025-01-27 15:59:07 +01:00
Marian Koop
fcf6f4c5f4 doc: Update manifest to refer to 4.8.0.0 release filesystem 2025-01-23 20:43:38 +01:00
Marian Koop
bfe4883080 doc: Appended changelog for UHD 4.8 release
Added mention for bug fix of usrp_update_fs utility.
2025-01-23 20:43:38 +01:00
Lars Amsel
abdc56aecc cmake: Generate pyproject.toml only for Windows
Install the toml file for Windows only, otherwise pip installs into
venv with Python versions between min (3.7) and 3.10 (what the toml
requests), which will fail.
2025-01-23 13:15:30 +01:00
Frank Dietze
2eec0db210 ci: devtest: fix wrong channel number 2025-01-23 13:15:27 +01:00
Marian Koop
481fd9222c doc: Correct grammar in copyright string 2025-01-23 13:15:23 +01:00
Clemens Felber
08fe50b374 host: fixed python version for wheel build to >=3.10 and <=3.12 (win) 2025-01-22 11:15:24 +01:00
SHoenerNI
a86e9d17d2 doc: Update configuration.dox with table showing OTW formats
Update configuration.dox with table showing which OTW formats are
supported by each device.
2025-01-22 11:15:24 +01:00
SHoenerNI
2e8bc05a38 doc: Update usrp_x4xx.dox with table for supported sample rate examples and links to KB and X440 Spec.
doc: Update usrp_x4xx.dox with table for supported sample rate examples and links to KB and X440 Spec.
Co-Authored-By: Aki Tomita <121511582+atomita-ni@users.noreply.github.com>
2025-01-21 10:18:17 +01:00
Clemens Felber
fa9c8f41d6 docs: updated information for Python support under Windows 2025-01-21 10:16:27 +01:00
Clemens Felber
2484997339 host: fixed mailing list URL in readme 2025-01-21 10:16:25 +01:00
Clemens Felber
e0a3bedb6a host: add readme and license file to poetry python builds
(cherry picked from commit 208dd3a50169f28578441894bc95384748a85c77)
2025-01-21 10:16:22 +01:00
Lars Amsel
1eb1ba2ed1 ci: Use NSIS installer from Python enabled build
The Python examples are only included in the installer, if Python
is enabled during build. Therefore use the NSIS installer from the
Python enabled build. This makes it unnecessary to distinguish
Python/non-Python pipeline build which speeds up pipeline runs.
On the downside Python examples are installed no matter whether
they are needed or not.
2025-01-21 10:16:18 +01:00
Wade Fife
6509d1dc36 fpga: rfnoc: fft: Fix tready on magnitude path
The tready signal that was used when EN_MAGNITUDE equals 0 was not
correct. This commit allows EN_MAGNITUDE to be disabled.
2025-01-21 10:16:14 +01:00
Jörg Hofrichter
ba01ba207d ci: streaming test: fix call of uhd_usrp_probe 2025-01-21 10:16:09 +01:00
Jörg Hofrichter
abfbd3d6b9 mpm: linting of zbx_update_cpld 2025-01-17 13:55:34 +01:00
Jörg Hofrichter
8eacab950c mpm: add PID check to zbx_update_cpld 2025-01-17 13:55:34 +01:00
Jörg Hofrichter
d7e91d8d06 ci: enable CI/PR trigger on release branches 2025-01-17 13:28:35 +01:00
Grant Meyerhoff
204bd7fb20 host: modify return type of get_eeprom for pybind 2025-01-16 09:49:15 +01:00
Jörg Hofrichter
07d63c4f45 mpm: make usrp_update_fs support all embedded devices
Fix the support for e320 and n3xx and add support for
e310_sg1 and e310_sg3.
2025-01-15 16:09:35 +01:00
Jörg Hofrichter
11cec23adc mpm: linting of usrp_update_fs 2025-01-15 16:09:35 +01:00
Jörg Hofrichter
9b08d44ffb host: Fix download directory for uhd_images_downloader
... in case the configuration ENABLE_PYMOD_UTILS was not set.

This corrects the default images directory for
uhd_images_downloader on the embedded filesystem.
2025-01-15 16:08:43 +01:00
Jörg Hofrichter
a74c9c8d9d images: update filesystems to v4.8.0.0-rc1 2025-01-14 15:01:28 +01:00
Jörg Hofrichter
cd16d0b7e4 ci: increase timeout for windows builds 2025-01-14 15:00:59 +01:00
Martin Braun
544997d669 rfnoc: tx streamer: Remove warning regarding alignment with CHDR width
This warning turned out to be scientifically inaccurate. The actual
auto-coercion of the spp value to the CHDR width is left in place, as it
improves streaming under certain conditions, but we no longer warn if
a user-selected spp value is not aligned with the CHDR width.
2025-01-14 09:54:19 +01:00
Marian Koop
ee4c15c5c3 doc: Prepare branch for 4.8.0.0 release
- Updated version string
- Updated CHANGELOG
- Updated Debian-related files
- Updated images package
2025-01-13 22:45:43 +01:00
Marian Koop
71d4bb53ee doc: Updated images manifest with new default fpga resources 2025-01-13 22:45:43 +01:00
Marian Koop
a95735d133 cmake: deb: Raise debhelper compatibility version to 12
Raise debhelper compatibility version from 9 to 12 to follow
current recommendations from http://man.he.net/man7/debhelper.
2025-01-13 22:45:43 +01:00
Marian Koop
3a629f8549 Updated CHANGELOG 2025-01-13 22:35:01 +01:00
Martin Braun
6d630380a2 rfnoc: tx streamer: Default spp to multiple of CHDR width
Unless the user specifies an spp value in a Tx streamer by means of
a stream argument, the Tx streamer now holds additional logic that
aligns the spp value with the CHDR width. For example, in an X410 100
GbE image, the CHDR width is typically 512 bits, which corresponds to 16
samples (sc16), so spp will default to value that's a multiple of 16.

Previously, the default was to simply use the maximum MTU. However,
there have been circumstances observed where using a non-aligned spp
value causes suboptimal behaviour.

For example, when the CHDR width is 512 bits, and the discovered MTU is
8016 bytes, the default spp value would be 1988 samples per packet.
However, a value of 1984 samples per packet causes the CHDR packet to be
of a length that is a multiple of 64 bytes (== 512 bits) which can
improve performance.

This change does not affect applications where the spp size is already
manually configured, and has almost no influence on use cases where the
CHDR width is 64, because that just means the optimal number of samples
per packet should be even.

Under the hood, the following changes were made:
- The CHDR width is passed into the streamer as a reserved key
  (__chdr_width) from the infrastructure.
- After connecting the Tx streamer to the graph, when the MTU is known,
  we add a check for the spp value to make it an integer multiple of the
  CHDR width if not specifically given (like a "soft atomic item size").

Co-authored-by: Jörg Hofrichter <joerg.hofrichter@emerson.com>
2025-01-13 22:33:34 +01:00
Martin Braun
e25b16a303 rfnoc_graph: Add get_chdr_width() API call
This allows querying the CHDR width for a given device in an RFNoC
graph. The mb_index parameter is mostly for future proofing, given that
the CHDR width must be constant between devices.
2025-01-13 22:33:34 +01:00
Martin Braun
dcb582d2b3 examples: benchmark_rate: Properly use --tx_spp
Previously, the value from --tx_spp was only used if --tx_spb was not
also provided (basically, it was a default for --tx_spb).

Now, the value from --tx_spp is used as a stream argument for the Tx
streamer. If both --tx_spp and --tx_spb are provided, then
benchmark_rate will split the full burst size (--tx_spb) into packets of
size --tx_spp. Previously, if both parameters were given, and --tx_spb
was bigger than --tx_spp, the actual packet size was determined by the
maximum packet size available at the interface or the --tx_spb value,
whichever was smaller.

This commit also aligns the usage of --tx_sample_align. Previously, it
was only implemented for the multi-streamer use case. Now it works the
same between the multi- and single-streamer use cases, and the
diagnostic output now shows SPP and SPB values for both. If both
--tx_spb and --tx_sample_align are given, we potentially have a conflict,
which the tool now warns about.

When using --random, --tx_sample_align now also applies to all burst
sizes.
2025-01-13 22:31:20 +01:00
Lars Amsel
c6274925ba host: add patch version number to poetry version
Add the patch version number to poetry version. Because UHD uses
the patch number for adding branch information on development branches
we need to save the patch number in some different variable for later
access.
2025-01-10 15:03:45 +01:00
Lars Amsel
3ffc7a6281 host: Rename build.py to uhd_build.py
Depending on the build folder poetry build might use build.py
instead of the intended build package which leads to an import error
for "BuildBackendException". To prevent confusion rename the script
to something UHD specific.
2025-01-10 15:03:45 +01:00
Lars Amsel
023bb39121 host: Cleanup UHD Python utilities
This moves the calibration Python utilities into the
uhd Python module (because they have dependencies to
uhd). Also the poetry script adds them as scripts to
the uhd module.

The install Python module is not executed on Windows
systems.

usrpctl, rfnoc image builder and rfnoc modtool are
not affected.
2025-01-10 15:03:45 +01:00
Martin Braun
aa182e5e52 rfnoc: oot: Fix regex for capturing HDL source files
The existing regex that filters the required HDL sources from
Makefile.srcs had an issue where it would identify VHDL files as Verilog
files (because the string 'file.v' is a substring of 'file.vhdl').

The CMake regex engine does not have support for word boundaries, so we
use the greediness of the regex algorithm and search for .vhd(l) first.
2025-01-09 18:05:35 +01:00
Grant Meyerhoff
5ededca7db host: remove deprecated setName usage
As of Python3.10, setName has been deprecated in favor of using name directly as a property
2025-01-09 16:13:34 +01:00
Grant Meyerhoff
e40121441e host: update python formatting 2025-01-09 16:13:34 +01:00
Grant Meyerhoff
4c874a0349 docs: fix MultiUSRP python object creation 2025-01-07 14:33:03 +01:00
Jörg Hofrichter
8e780be0bc image builder: create build(...) directories in the current directory
Introduce a new parameter --base-dir BASE_DIR.

If the parameters --build-dir BUILD_DIR / --build-ip-dir BUILD_IP_DIR
/ --build-ouput-dir BUILD_OUTPUT_DIR are not set explicitly, they will
be set to these values per default:

- BUILD_DIR=<BASE_DIR>/build-<IMAGE_CORE_NAME>
- BUILD_IP_DIR=<BASE_DIR>/build-ip
- BUILD_OUTPUT_DIR=<BASE_DIR>/build

BASE_DIR defaults to the current directory if the parameter --base-dir
is not set. This means that per default, the build(...) directories
are generated in the current directory.
2024-12-20 10:20:59 +01:00
Jörg Hofrichter
86b06169d0 image builder: print build directories used after build
The directories which are used for the build are printed before
executing the build. However, the build generates hundrets of
lines of output which typically exceeds the scrollback length
of the terminal. Hence, print the directories again after the
build finished.
2024-12-20 10:20:59 +01:00
Joerg Hofrichter
89f3671add examples: added fft_loopback example
This example demonstates the cyclic prefix (CP) insertion and removal
capability of the new FFT block. It is intended to be used in cabled
RF loopback. Multiple OFDM symbols with configurable CP length are
transmitted and received. Each OFDM symbols contains a single tone
so that transmitted and received signal can be compared.
2024-12-17 22:13:42 +01:00
Joerg Hofrichter
52ae8ad308 tests: added a on-target test for the new FFT block
This tests interface functions as well as the correct data processing
2024-12-17 22:13:42 +01:00
Joerg Hofrichter
c921c6a64e test: Extend existing FFT test to cover addition features from new FFT
The interface of the FFT block controller was extended to include functions for
querying the capabilities and setting cyclic prefix insertion / removal values.

-> Extend the existing fft_block_test (for FFT_BLOCK, RFNoC ID 0xFF700000)
to cover the additional functions.

Also add a new test fft_block_test_v2 which tests the interface of the new
FFT block (FFT_BLOCK_V2, RFNoC ID 0xFF700002).
2024-12-17 22:13:42 +01:00
Joerg Hofrichter
cdb4ab1e15 rfnoc: adopted fft block controller for new FFT
The new FFT (FFT_BLOCK_V2, RFNoC ID 0xFF700002) adds support for
- larger FFT length
- cyclic prefix (CP) insertion
- cyclic prefix (CP) removal
2024-12-17 22:13:42 +01:00
Wade Fife
25fffb0067 fpga: rfnoc: Add new FFT block
This replaces the legacy RFNoC FFT block with a new one of the same
name that includes a superset of the original features. New features
include cyclic prefix insertion or removal and FFT sizes up to 64k.
2024-12-17 22:13:42 +01:00
Wade Fife
386d0df1d0 rfnoc: Add fft.yml for new FFT block
This replaces fft_1x64.yml with fft.yml in order to suppor the new
RFNoC FFT block.
2024-12-17 22:13:42 +01:00
Wade Fife
1549f95dc5 fpga: lib: Add axis_sideband_tuser 2024-12-17 22:13:42 +01:00
Wade Fife
f2a9c389d3 fpga: lib: Add axis_split_bus 2024-12-17 22:13:42 +01:00
Wade Fife
ab19d99cb0 fpga: lib: Add axis_combine 2024-12-17 22:13:42 +01:00