Commit Graph

10499 Commits

Author SHA1 Message Date
Aki Tomita
a9f0b4c766 docs: fix yml formatting for rtd 2023-11-16 16:35:16 -06:00
Aki Tomita
50fa3baa2e 4.6.0.0 Release 2023-11-13 09:22:00 -06:00
Aki Tomita
00021d2c7e images: update x4xx fpga images 2023-11-11 21:16:55 -06:00
Aki Tomita
9b78b7dbf4 docs: fixing the readthedocs builds 2023-11-10 16:01:01 -06:00
Martin Anderseck
9aba0832a7 doc: Add dual-rate documentation
This adds the documentation for the dual-rate feature.
2023-11-10 11:29:37 -06:00
mkoop
e547a6bba3 doc: x440: Highlight new X440 features and replay block behavior changes 2023-11-09 07:55:58 -06:00
Aki Tomita
0c4637aba8 Update to changelogs 2023-11-06 18:20:00 -06:00
Aki Tomita
8da53ddfda images: update filesystems to rc2 2023-11-06 16:07:41 -06:00
Aki Tomita
a6ec2ed991 images: update non-x4xx images 2023-11-06 16:07:41 -06:00
Javier Valenzuela
1d095bb930 images: bump x4xx fpga images 2023-11-06 15:44:29 -06:00
Martin Anderseck
c64b9e36cd mpm: Improve fall-back behavior for dual-rate
This fixes the behavior that a non-valid dual-rate config could fall
back to a single-rate configuration with two different converter rates.
With this it also fixes the behavior that with those same master clock
rates we wouldn't run mult-tile sync (as this depends on the converter
rate).
2023-11-06 14:04:11 -06:00
Javier Valenzuela
cee5825ba4 fpga: x400: rfdc timing cleanup 2023-11-03 08:44:00 -05:00
Wade Fife
6a990d9b32 fpga: x400: Add clock IDs to X440 200 MHz image 2023-11-03 07:22:52 -05:00
Virendra Kakade
d6608fc4d0 fixup! examples: L band capture example using dual rate 2023-11-02 08:30:45 -05:00
Javier Valenzuela
034dc0803b mpm: x400: make PRC a multiple of both rfdc rates 2023-11-02 08:30:45 -05:00
michael-west
4cecc1e15a tests: Add tests for module_serial field
Added test to verify existence of the module_serial field and value to
multi_usrp_test.

Signed-off-by: michael-west <michael.west@ettus.com>
2023-11-01 20:45:06 -05:00
michael-west
aa161c5aad multi_usrp: Added module_serial to info
Added 'module_serial' field to retured value of
multi_usrp::get_usrp_rx_info() and multi_usrp::get_usrp_tx_info() API
calls that provides the module serial number.

Signed-off-by: michael-west <michael.west@ettus.com>
2023-11-01 20:45:06 -05:00
michael-west
d1797a2a49 cmake: Fix make_x410 and make_x440 targets
Only the make_x4xx target existed and did not actually run any tests.
Added correct mapping for make_x410 and make_x440 devtest targets.
Removed make_x4xx target.

Signed-off-by: michael-west <michael.west@ettus.com>
2023-11-01 20:45:06 -05:00
Aki Tomita
c2dd6c1d99 Prepare for 4.6.0.0 release
- Updated version string
- Updated CHANGELOG
- Updated Debian-related files
- Updated images package
2023-10-30 21:50:18 -05:00
Javier Valenzuela
7b762b36d0 mpm: x400: Align FPGA revision 2023-10-30 11:22:00 -05:00
Javier Valenzuela
cf1d714816 images: bump x4xx fpga images 2023-10-30 11:22:00 -05:00
Aki Tomita
c51c37f95b images: update non-x4xx images 2023-10-28 20:25:55 -05:00
Virendra Kakade
33a869892f examples: L band capture example using dual rate
This example demonstrates the simultaneous capture of the entire L-band
which extends from 1 GHz to 2.4 GHz using one channel on each of the two
radios using the dual rate feature. This is supported ionly on the X440 device.
Read the comments in the example for details.

Does the following:
- Sets up connections in rfnoc graph
- Configures radios and dual replay blocks
- Synchronously captures data and streams to replay block
- Fetches data to host and plots a windowed FFT.
- Repeat.

Signed-off-by: Virendra Kakade <virendra.kakade@ni.com>
Co-authored-by: Martin Anderseck <martin.anderseck@ni.com>
2023-10-27 15:43:18 -05:00
Martin Braun
05c1ae3025 lib: x4xx: Use auto clock ID in x400_radio_control
This updates the block registry for x400_radio_control to query the
clock information from the FPGA/MPM. This will require an up-to-date
bitfile and MPM.

If the bitfile is not up-to-date, there will be an error message asking
the user to update the bitfile. If MPM is not up to date, it will fail
to detect clock indices '4' and '5'.
2023-10-27 14:53:19 -05:00
Javier Valenzuela
de2eaf3d1a mpm: x400: match HDL PPS updates 2023-10-27 09:20:14 -05:00
Javier Valenzuela
463f4ca9ff images: bump x4xx fpga images 2023-10-26 11:00:26 -05:00
Javier Valenzuela
e7ff54284c fpga: x400: bump minor revision 2023-10-25 14:14:48 -05:00
Javier Valenzuela
982ea5b2d8 fpga: x400: update signals to run on two domains 2023-10-25 14:14:48 -05:00
Martin Anderseck
42c6828aeb mpm: Disable MTS completely for dual rate
Since in dual rate we cannot use multi-tile sync over all tiles we
disable it completely for all tiles. For 1600 MHz bitfiles this isn't an
issue at all because the two remaining channels have different converter
rates anyway. For 400 MHz bitfiles the channels with the same rate will
not be synced, either, but will most probably have a fixed phase
difference.

Co-authored-by: Martin Braun <martin.braun@ettus.com>
2023-10-25 13:56:34 -05:00
Wade Fife
9001c66380 fpga: x400: Split DRAM interface on X440_X4_200 2023-10-25 12:49:38 -05:00
Wade Fife
410d315899 docs: x440: Add X440_X4_200 to image flavors 2023-10-25 09:44:29 -05:00
Wade Fife
4d8f9f1818 fpga: tools: Add X440_X4_200 to X440 package 2023-10-25 09:44:29 -05:00
Wade Fife
9484356a3a fpga: ci: Add X440_X4_200 to pipelines 2023-10-25 09:44:29 -05:00
Wade Fife
b5cfab8922 fpga: x400: Split DRAM interface into two banks
This updates the RFNoC image cores to separate the two DRAM banks on
X4xx by splitting them into "dram0" and "dram1". Previously, both DRAM
banks shared the same DRAM port, named "dram", which created some
confusion.

The Replay block has also been duplicated in the bitstreams that use
both banks, so we now have one Replay block per bank.
2023-10-24 13:03:41 -05:00
Matthew Crymble
29e45f7a95 ci: replace deprecated ruamel.yaml methods 2023-10-24 12:51:42 -05:00
Martin Braun
f215af2ccd x4xx: Add support for auto clock ID
- Update X410 and X440 BSP YAML files to properly index clocks
- Update image core files to declare clock indices
- Update get_clocks() in MPM to return the correct values

This does not include changes to the x400_radio_control block registry.
This change by itself will thus not change behaviour.
2023-10-20 07:30:16 -05:00
Martin Anderseck
68d8734f9c mpm: Add LUT for def. MCR per DSP bandwidth
This change adds a lookup table for the default master clock rate based
on the DSP bandwidth of the FPGA image for X440. Since the default
master clock rate currently is 368.64 MHz and we don't want to change
this for backwards compatibility, we need to have a way to handle lower
bandwidth FPGA images. This is what the LUT provides.
2023-10-19 13:41:25 -05:00
Martin Braun
78c360f772 lib: rfnoc: Add support for auto-clock discovery
During creation of the RFNoC graph, the block registry is queried to
identify the clocks used for timebase and control. This adds the option
to ask the FPGA instead (via backend interface).
2023-10-19 13:36:57 -05:00
Martin Braun
26e7e7226e lib: rfnoc: Add clock info fields to client zero
- Allow client zero to read clock info fields from backend interface
2023-10-19 13:36:57 -05:00
Wade Fife
bdaba58750 fpga: x400: Add X440 200 MHz variant
This adds support for the X440_X4_200 variant which supports up to
200 MHz bandwidth (250 Msps), has a DDC and DUC on each channel,
4 x 10 GbE interfaces, and no DRAM.
2023-10-18 22:41:55 -05:00
Wade Fife
ab93cb0929 fpga: x400: Add CE clock
Adds a 266.667 MHz compute engine clock and uses it instead of the
radio clock for the DDC and DUC. Using a faster clock than the radio
allows the DDC and DUC to drain after a stall in the data flow.
2023-10-18 22:23:55 -05:00
Wade Fife
ff55d406a0 fpga: n3xx: Add CE clock
Adds a 266.667 MHz compute engine clock and uses it instead of the
radio clock for the DDC and DUC. Using a faster clock than the radio
allows the DDC and DUC to drain after a stall in the data flow.
2023-10-18 22:23:55 -05:00
Wade Fife
32d348efe4 fpga: lib: Allow buffering in eth_ipv4_chdr_adapter
Enable USE_AS_BUFF on packet gate to allow many packets to be buffered.
This reduces latency when several small packets are sent out close
together.
2023-10-18 22:23:55 -05:00
Martin Braun
754813b0d6 rfnoc: image builder: Add clock index support to image builder
- Image core files can now provide timebase_clock and ctrl_clock fields
  to blocks, which will populate the backend interface accordingly.
- Clocks ports now have a direction associated (in, out).
2023-10-17 10:24:15 -05:00
Martin Braun
c669d16a0a fpga: rfnoc: radio: Add clock index parameters
This allows the BSP files that instantiate radio blocks to pass in clock
indices.
2023-10-17 10:24:15 -05:00
Martin Braun
58c0276ff1 fpga: rfnoc: Add clock info to backend ifc
- Adds 6 bits each for an identifier for timebase and control clock
- Update all mako templates accordingly
2023-10-17 10:24:15 -05:00
Javier Valenzuela
ad17a3eba4 fpga: x400: propagate pps_sync changes 2023-10-17 10:18:17 -05:00
Javier Valenzuela
4527a8f70d fpga: x400: pps_sync cleanup 2023-10-17 10:18:17 -05:00
Javier Valenzuela
a2f4fc49ac fpga: x440: remove extra synchronizer 2023-10-17 10:18:17 -05:00
Matthew Crymble
30f3dad38f utils: init device with gpsdo sources in query_gpsdo_sensors
When query_gpsdo_sensors creates a multi_usrp object with no additional device args,
it initializes the device using clock_source and time_source values of 'internal'.
Later, it sets them to 'gpsdo'.  Since the x4xx devices put the GPSDO module in
reset when not being used, it takes several minutes to re-establish a GPS lock
after selecting the 'gpsdo' clock/time sources. By creating the multi_usrp object
using clock/time source values of 'gpsdo', the GPSDO isn't disabled and re-enabled
each run and the GPSDO is able to get a lock after enough time passes.
2023-10-12 12:57:25 -07:00