Commit Graph

939 Commits

Author SHA1 Message Date
Max Köhler
be791eb065 ci: apply target name for X420 FPGA compiles 2026-08-28 16:06:17 +01:00
Jörg Hofrichter
3cfb163340 fpga: e320/n3xx: dts: Fixed PHY mode for 1G connections
Without this change, kernel 6.12 generates the following warning:

nixge 40000000.ethernet (unnamed net_device) (uninitialized): fixed link full duplex 1000Mbps not recognised

With the change, the link is correctly detected as 1G:

nixge 40000000.ethernet sfp0: configuring for fixed/gmii link mode
2026-08-28 15:02:53 +01:00
Niels Garibaldi
17c0114771 fpga: dsp: fix race condition in axi_tag_time_ms
Fixed an issue when multiple timed DDS commands were present, where
the first one was popped and then the second command immediately
got popped as well to the stale a lookahead signal.
The fix is to clear the lookahead signal and threshold signal on
every fifo pop command.
2026-08-28 14:59:35 +01:00
Niels Garibaldi
31be5b875a fpga: dsp: add rounding to CIC filter barrel shifter
Add an additional rounding step to the cic barrel shifter module
to avoid any DC bias occuring, caused by bit truncation without
rounding.
2026-08-28 14:59:35 +01:00
Wade Fife
000cd8e3cb fpga: b310: Fix synthesis-only builds 2026-08-27 16:10:53 +01:00
mschill
0e3b241021 fpga: x440: add X1_200 bifile variant 2026-08-27 13:31:33 +01:00
Marian Koop
84d6af328b ci: Update fpga packaging configs 2026-08-27 08:41:16 +01:00
Max Köhler
5a8d5b3a6e fpga: x420: adding endpoint 0 for ctrl only 2026-08-27 08:40:35 +01:00
Lars Amsel
29c459f1b3 fpga: enable clock watch circuit on X440 images
Enable clock watch circuit for images with 200 and 400MHz bandwidth
as well. With this we also move from watch the rfdc_clk to watch the
radio_clk. This makes is easier to calculate the max clock rate for
all flavours of images.
2026-08-23 02:17:12 +02:00
Niels Garibaldi
344c6793ac doc: fpga: host: Updated Wideband DDC DUC related documentation
Updated the references to DDC and DUC RFNoC blocks to reflect the
new split between legacy(singlesample) and wideband(multisample)
implementations.
Updated the related manual references as well as the C++ block
controller API comments that are pulled in by doxygen.
Also fixed a minor outdated comment in the FPGA source code.
2026-08-23 02:03:43 +02:00
Niels Garibaldi
6ab55e0cf4 fpga: add wideband ddc and duc blocks to default fpga images(Part2)
Adding the RFNoC DDC and DUC blocks to our shipping bitfiles.

The new wideband DxC implementation allow processing input/output
rates up to a maximum of 2000MSps.
This commit adds the DDC/DUC blocks to some of our shipping
bitfiles for all channels.

Co-authored-by: Niels Garibaldi <niels.steffen.garibaldi@emerson.com>
Co-authored-by: André Zoch <andre.zoch@emerson.com>
Co-authored-by: Meghana Halladamath <meghana.halladamath@emerson.com>
Co-authored-by: Wade Fife <wade.fife@ettus.com>
Co-authored-by: Max Köhler <max.koehler@emerson.com>
2026-08-23 02:02:27 +02:00
Max Köhler
a9ddd67fb9 fpga: lib: rfnoc: Merge payload and async FIFO
Merge the payload and async FIFOs in the axis_data_to_chdr and
chdr_to_axis_data conversion conversion modules.
2026-08-20 17:31:01 +02:00
Max Köhler
2ff1a639eb fpga: lib: Make axis_width_conv FIFO size configurable 2026-08-20 17:31:01 +02:00
Jörg Hofrichter
af4058bd64 fpga: n3xx: fix UART initialization for WX image
In kernel 6.12, the "current-speed" parameter is required,
otherwise the UART is not initialized.
2026-08-20 01:48:27 +02:00
Max Köhler
fc6e355f24 fpga: refactor modules still using 2clk IP cores 2026-08-20 01:46:19 +02:00
Max Köhler
7537a2a909 fpga: removing deprecated FIFO IP cores 2026-08-20 01:46:19 +02:00
Max Köhler
04bb66663e fpga: lib: enable XPM fifo for all Xilinx FPGAs 2026-08-20 01:46:19 +02:00
Markus Schill
0b80e7f011 fpga: x410: Add rfdc_clk_1_4 to MMCM output
Adds a direct MMCM output for the quarter rfdc_clk.
Additionally, all other consumers of the rfdc_clk and rfdc_clk_2x
receive their clock from the MMCM output directly instead of
the clock buffers. Thus, making the clock buffers obsolete and
removing them from the design.
2026-08-20 01:40:05 +02:00
Javier Valenzuela
9c3959cdb0 fpga: b310: add synchronizers on async inputs 2026-08-19 11:42:54 -05:00
Max Köhler
87ee25d152 fpga: tools: exclude xsim kernel panic testbenches 2026-08-19 10:38:38 -05:00
Max Köhler
e503aaff88 fpga: tools: capture xsim fatal error in testbench execution 2026-08-19 10:38:38 -05:00
Javier Valenzuela
1c0dfa23d8 fpga: b310: update LMK_SYNC constraint 2026-08-18 12:39:10 -05:00
Javier Valenzuela
ed156ae6cf fpga: b310: removing stale comment 2026-08-18 12:39:10 -05:00
Javier Valenzuela
8676b3e257 fpga: b310: remove vhook comments 2026-08-14 16:33:50 -05:00
Javier Valenzuela
a9aed26306 fpga: lib: move ctrlport_to_jtag to lib sirectory 2026-08-14 16:32:09 -05:00
Javier Valenzuela
c17c6a4c3a fpga: b310: update jtag prescalar 2026-08-14 16:31:15 -05:00
Javier Valenzuela
8745af720e fpga: b310: add CPLD jtag constraints 2026-08-14 16:31:15 -05:00
Niels Garibaldi
c20e60a594 fpga: duc: only include TS in first packet of burst
For the multisample version of the DUC block, in order
to align with the singlesample behavior this changes the packet
generation in axi_rate_change_ms to only include the timestamp in
the first packet of each burst.
2026-08-11 10:47:57 +02:00
Niels Garibaldi
d91c2293d1 fpga: rfnoc: add TS-on-first-only option to axi_rate_change_ms
Add a parameter to the axi_rate_change_ms module called
EN_TIME_ALL_PKTS.
Set to 1, the module will calculate timestamps
for all packets of the output burst.
Set to 0, the module will only insert a timestamp in the first
pkt of each generated output burst.
2026-08-11 10:47:57 +02:00
Javier Valenzuela
9849f85918 fpga: b310: removed unused revision reg 2026-08-10 17:06:59 -05:00
Javier Valenzuela
984bc86793 fpga: b300: update jesd signal naming 2026-08-10 17:06:01 -05:00
Wade Fife
4a9b264b86 fpga: lib: Fix double driver in clocking_watchdog_tb 2026-08-10 17:03:45 -05:00
mhallada
e90b0b4643 fpga: Ensure constant initial phase of dds phase accumulator
between bursts

Reload the phase accumulator (with registered phase increment)
in dds_ms at EoB to maintain constant initial phase between bursts
2026-08-10 23:12:25 +02:00
Wade Fife
1bafc03e08 fpga: tools: Add simulator install locations 2026-08-10 16:05:30 -05:00
Lars Amsel
dd7607fc17 ci: add 800 MHz X440 images to pipeline builds 2026-08-10 17:21:47 +02:00
Lars Amsel
30a4b7fc2b fpga: x440: add 800 MHz images 2026-08-10 17:21:47 +02:00
Lars Amsel
33a0dc16bd fpga: add clock watch circuit 2026-08-10 17:21:47 +02:00
mhallada
6883bb4d39 host: Fix NIPC calculation in ddc/duc
Computed NIPC values now resolve to 1 for
RF_BW < 200 MHz and the workaround in X410_X4_100
bitfile to ensure correct NIPC has been reverted.
2026-08-10 08:38:01 +02:00
Niels Garibaldi
a1f558f16a fpga: add wideband ddc and duc blocks to default fpga images
Adding the RFNoC DDC and DUC blocks to our shipping bitfiles.

The new wideband DxC implementation allow processing input/output
rates up to a maximum of 2000MSps.
This commit adds the DDC/DUC blocks to some of our shipping
bitfiles for all channels.

Co-authored-by: Niels Garibaldi <niels.steffen.garibaldi@emerson.com>
Co-authored-by: André Zoch <andre.zoch@emerson.com>
Co-authored-by: Meghana Halladamath <meghana.halladamath@emerson.com>
Co-authored-by: Wade Fife <wade.fife@ettus.com>
Co-authored-by: Max Köhler <max.koehler@emerson.com>
2026-08-05 08:43:42 +02:00
Niels Garibaldi
66769905bb fpga: x400 add faster ce_clk variant
Add a new faster ce clock called fast_ce to x4xx that runs at
333.33MHz.

Co-authored-by: Max Köhler <max.koehler@emerson.com>
2026-08-05 08:43:42 +02:00
Niels Garibaldi
b4aeb78438 fpga: dsp: add wideband ddc and duc rfnoc blocks
Added variants for the DDC/DUC blocks that can process multiple
samples per cycle and can be used for bandwidths higher than
200Mhz.
This new feature is integrated into the existing RFNoC DDC/DUC
blocks. Depending on the Radio bandwidth specified for the USRP
variant, the DxC blocks will instantiate the existing singlesample
implementation(for FPGA image variants <= 200MHz) or instantiate
the multisample implementation(for FPGA image variants > 200MHz).

Co-authored-by: Niels Garibaldi <niels.steffen.garibaldi@emerson.com>
Co-authored-by: André Zoch <andre.zoch@emerson.com>
Co-authored-by: Meghana Halladamath <meghana.halladamath@emerson.com>
Co-authored-by: Wade Fife <wade.fife@ettus.com>
Co-authored-by: Max Köhler <max.koehler@emerson.com>
2026-08-05 08:43:42 +02:00
Javier Valenzuela
b6286bab13 fpga: Add support for USRP B310
Co-authored-by: Wade Fife <wade.fife@ettus.com>
Co-authored-by: Tony Liecthy <tony.liechty@ni.com>
Co-authored-by: Grant Meyerhoff <grant.meyerhoff@emerson.com>
Co-authored-by: Christopher Oeltjen <christopher.oeltjen@emerson.com>
2026-08-04 10:40:54 +02:00
Javier Valenzuela
2cde73ab6f fpga: lib: add scalability to pcie host datapath components 2026-08-04 10:40:40 +02:00
Javier Valenzuela
d4b827abea fpga: lib: add SV wrapper for ctrlport_timer 2026-08-04 10:40:34 +02:00
Javier Valenzuela
dd708a46f4 fpga: lib: add ctrlport endpoints for I2C, UART and high-throughput SPI
Co-authored-by: Wade Fife <wade.fife@ettus.com>
Co-authored-by: Tony Liecthy <tony.liechty@ni.com>
2026-08-04 10:40:31 +02:00
Max Köhler
6d52cf9155 fpga: lib: disconnect reset from axi_fifo_flop ready path 2026-07-28 14:27:27 +02:00
Wade Fife
90b242eae9 fpga: rfnoc: Reclaim byte in SEP input buffer 2026-07-28 14:25:28 +02:00
Wade Fife
0aaca07efd fpga: rfnoc: Fix null src sink TB description 2026-07-28 14:25:28 +02:00
Wade Fife
19bf6207bd fpga: rfnoc: Support non-power-of-two SEP buffer sizes
Previously it would round up the requested size to the nearest power of
two. Now it will attempt to match the size of the buffer to the
requested size, allowing more control over how many FPGA RAM resources
get consumed.
2026-07-28 14:25:28 +02:00
Wade Fife
8c2a20de50 fpga: rfnoc: Increase Ctrl SeqNum to 8 bits
Increase the control SeqNum field width from 6 bits to 8 bits. See the
changes to rfnoc_fpga.md for details.
2026-07-28 14:24:19 +02:00