Commit Graph

11032 Commits

Author SHA1 Message Date
Wade Fife
af448611ec examples: Start benchmark_rate threads at the same time
When using the multi_streamer option, the streams would start at
different times, which can cause problems if IP processes multiple
channels in parallel. This change ensures that the all channels start
at the same time, even if they're in different threads.
2025-02-05 17:52:01 -06:00
Wade Fife
0fcde5e501 examples: Add 400 MHz FFT to fft_loopback
Add support for bitstreams with 400 MHz of bandwidth (500 MSPS).
2025-02-05 17:52:01 -06:00
Wade Fife
2c80f91e85 tests: Add FFT parameters to on-target test 2025-02-05 17:52:01 -06:00
Wade Fife
6346b3b6da rfnoc: fft: Add support for multiple items per clock
This adds support to the FFT block controller for the NIPC parameter.
Changing the NIPC parameter in the FPGA build allows the resulting
FFT block to process multiple items/samples per clock cycle, which
leads to higher throughput. As of compat version 3.1, the NIPC value
may be greater than 1 and must be a power of 2. The packet size and
cyclic prefix lengths used must also be a multiple of this NIPC
value.
2025-02-05 17:52:01 -06:00
Wade Fife
17a9580e8c rfnoc: Add new FPGA parameters to fft.yml
Adds support to the FFT block for configuring the following at
compile time:

NIPC - Number of items/samples per clock cycle
EN_CP_INSERTION - Enable/disable cyclic prefix insertion support
EN_CP_REMOVAL - Enable/disable cyclic prefix removal support
2025-02-05 17:52:01 -06:00
Wade Fife
0edc35c372 fpga: rfnoc: fft: Support multiple samples per cycle
This adds the NIPC parameter, which configures support for processing
multiple items or samples per clock cycle. With this enabled, the FFT
block can process at rates higher than 250 MSPS, such as 500 MSPS and
beyond.
2025-02-05 17:52:01 -06:00
Wade Fife
3fbddb3872 fpga: rfnoc: fft: Add FFT packetize modules 2025-02-05 16:26:08 -06:00
Wade Fife
d21127c33c fpga: lib: Add AXI-Stream load split and merge modules 2025-02-05 16:26:08 -06:00
Wade Fife
ed9f008b5a fpga: rfnoc: fft: Use DEFAULT on reset in axis_cp_list 2025-02-05 16:26:08 -06:00
Wade Fife
d3ada21915 fpga: sim: Allow DATA_WIDTH that's not a multiple of 8 2025-02-05 16:26:08 -06:00
Wade Fife
a81bf4e9f6 fpga: rfnoc: Add CHDR_HEADER_W constant 2025-02-05 16:26:08 -06:00
Wade Fife
bef123ae1e fpga: lib: Add TO_SIGNED to usrp_utils.svh 2025-02-05 16:26:08 -06:00
Wade Fife
1ad2860413 fpga: tools: Add support for Questa Visualizer 2025-02-05 16:26:08 -06:00
Wade Fife
f1fccacb48 fpga: sim: Add get methods for stall probability 2025-02-05 16:26:08 -06:00
Wade Fife
58cc3f0197 fpga: sim: Remove unused stall arguments
Remove unused stall_probability arguments from
get_master_stall_prob() and get_slave_stall_prob().
2025-02-05 16:26:08 -06:00
Max Köhler
6446c1d351 fpga: lib: add register stage in ipv4 chdr adapter 2025-02-05 16:26:08 -06:00
Max Köhler
0e19a6f356 fpga: x400: refactor 100GEth LBUS to AXI interface 2025-02-05 16:26:08 -06:00
Wade Fife
ce1dfa7940 TEMPORARY: fpga: x400: Add YAML files for X410 FFT builds 2025-02-05 16:16:18 -06:00
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