Commit Graph

881 Commits

Author SHA1 Message Date
Wade Fife
e7a480c4c7 fpga: lib: rfnoc: Don't clear cache until safe 2026-07-09 01:09:53 -05:00
Max Köhler
9808a7e12b fpga: x400: autogenerate rfdc_timing_regmap 2026-07-02 13:13:34 +02:00
Max Köhler
547acfb776 ci: add X420_XX_400 bitfiles to pipeline 2026-07-01 10:01:05 +02:00
Max Köhler
ac74766a7b fpga: x420: add 400 MHz variant 2026-07-01 10:01:05 +02:00
Max Köhler
6209751dfa fpga: x420: add fabric resamplers by 3 to 200 MHz variant 2026-07-01 10:01:05 +02:00
Max Köhler
93e1b7c78d fpga: remove synth target
Replacing the synth target of the FPGA Makefiles with the normal "bin" flow
which ends after synthesis if desired. This aligns the build flows in case ILAs
want to be added.
2026-06-30 10:33:29 +02:00
Wade Fife
831f2940d5 fpga: rfnoc: Fix chdr_traffic_source in Questa 2026-06-29 08:08:59 +02:00
Wade Fife
9a437b0650 fpga: sim: Add to DESIGN_SRCS rather than replace
Some testbenches were overwriting DESIGN_SRCS, but this gets
initialized in viv_sim_preamble.mak and overwriting it causes some
necessary files to be removed from the file list.
2026-06-29 08:08:59 +02:00
Wade Fife
3d0afa2c8d fpga: rfnoc: Update block testbenches to use block/burst ctrl 2026-06-29 08:08:59 +02:00
Wade Fife
79ac8c1b8a fpga: sim: Add block and burst support to CtrlBfm 2026-06-29 08:08:59 +02:00
Wade Fife
2574cd52b9 fpga: rfnoc: Support remaining AXIS-Ctrl opcodes
This adds support for block write, block read, and poll operations in
the AXIS-Ctrl endpoint.

A burst mode is also now supported, in which the READ or WRITE opcode
with NumData > 1 allows repeated reads or writes to the same address,
unlike block write/read, which auto-increments the address.

This change also removes the requirement for dummy data words to be
present in read request packets as well as write and sleep response
packets. This improves efficiency of the control interface, especially
for block and burst operations.
2026-06-29 08:08:59 +02:00
Niels Garibaldi
fa7c91a285 fpga: radio: add TX fixed resampler disable X440_200 rf core 2026-06-12 14:30:31 +02:00
Max Köhler
16c3a3acc2 fpga: x4xx: add placement constraints 2026-06-12 14:06:13 +02:00
Max Köhler
8cd65ce2a1 fpga: x440: add fabric resamplers by 3 to 200 MHz variant
Main changes are:
- Creating Xilinx FIR filters based on the X410 ones
- Writing TX and RX resamplers with seperate testbenches
- Creating a RF core around the resamplers and rf_core_full for the 200M variant
  specifically.
- Integration of the core into the FPGA top level based on conditional
  parameters generated by the rfnoc_image_builder workflow
- Changing the 8 SPC to 2 SPC to save DSP resources for the 200M image only
- Adding reset handling from ps_rfdc_bd to the new rf_core.
2026-06-12 14:06:13 +02:00
Martin Braun
4a3873123b docs: Fix FPGA readme (Doxygen link) 2026-05-11 15:26:30 +02:00
Max Köhler
2c411fc8cd fpga: x420: increase radio ctrl fifo size 2026-04-30 09:20:13 +02:00
Max Köhler
5b368a6dcf fpga: rfnoc: radio: Add control output FIFO size parameter 2026-04-30 09:20:13 +02:00
Max Köhler
6bd71fbda3 fpga: tools: enable printing of all Vivado messages 2026-04-29 23:22:53 -05:00
Max Köhler
5949ab1999 fpga: lib: adjust chdr stream endpoint testbenches due to changed timing 2026-04-29 12:43:04 +02:00
Max Köhler
f94c799930 fpga: lib: Add max latency arbitration scheme to axi_mux 2026-04-29 12:43:04 +02:00
Max Köhler
c505ee3d86 fpga: lib: rfnoc: Adding two entry cache for CHDR crossbar 2026-04-29 12:31:56 +02:00
Max Köhler
fd3b2e5d62 fpga: x410: fix critical timing path in adc_gearbox 2026-04-29 12:29:45 +02:00
Wade Fife
4fe3aaff82 fpga: rfnoc: radio: Add control FIFO size parameter 2026-04-27 10:22:57 +02:00
Max Köhler
a344193226 fpga: x420: double CG_1000 image endpoint buffer size 2026-04-27 09:22:10 +02:00
Max Köhler
f3ae0f6ac6 fpga: lib: rfnoc: remove deprecated FIFO modules 2026-04-27 09:22:10 +02:00
Max Köhler
26903f0ce1 fpga: lib: rfnoc: replace CHDR ingress FIFO with large AXI FIFO 2026-04-27 09:22:10 +02:00
Max Köhler
2eb2ac20d3 fpga: lib: create new URAM and large AXI FIFO 2026-04-27 09:22:10 +02:00
Max Köhler
3d93412dec fpga: lib: rfnoc: crossbar: compress AXI mux output signals 2026-04-24 10:54:33 +02:00
Max Köhler
e7cf13875e fpga: lib: rfnoc: crossbar: add complex test case based on X440 2026-04-24 10:54:22 +02:00
Wade Fife
eccb1bfd4d fpga: sim: Fix ctrlport_endpoint_tb for Questa 2026-04-24 10:43:11 +02:00
Max Köhler
4a045a7713 fpga: x420: increment CHDR size and reduce TX buffer for CG image 2026-04-19 14:20:57 +02:00
Max Köhler
5a60aa8110 fpga: x400: fix OOT dependencies for targets other than bin
This fixes special build targets (rtl, synth) that pull in RFNoC blocks
which use RFNOC_OOT_SRCS. Since fa7c3604, we create an OOT source file
to avoid ARG_MAX issues, but these special targets were not updated to
respect this. This would be a problem when using the --SYNTH or --CHECK
flags on a clean build from rfnoc_image_builder.
2026-04-13 12:17:28 +02:00
NIDvoez
a95c20357f fpga: x4xx: Update SYSREF LMK delay to improve RFDC Multi-Tile Sync
Increase analog delay on x4xx sysref.

Co-Authored-By: Volkan Oez <volkan.oez@emerson.com>
Co-Authored-By: Markus Schill <markus.schill@emerson.com>
2026-04-06 00:04:02 +02:00
EOhlmer
41db0533a3 docs: add list of NI-provided NoC blocks.
Add FFT NoC block documentation.
2026-03-23 09:55:39 +01:00
Max Köhler
680d354397 ci: Add support for USRP X420 (20 GHz USRP)
Co-authored-by: Martin Anderseck <martin.anderseck@emerson.com>
2026-03-20 16:15:06 +01:00
Max Köhler
124f5df1cf fpga: Add support for USRP X420 (20 GHz USRP)
This adds support for the new USRP X420. It is the latest addition to
our X4xx series and comes with two HBX daughterboards. The HBX is
a one-channel direct conversion transceiver that covers 5G NR FR3 and
X-/KU-Band needs for Research and Prototyping in a frequency range of 10
MHz up to 20 GHz. It supports analog bandwidths of up to 1 GHz.

This commit is the FPGA portion of the X420 support.

Co-authored-by: Markus Schill <markus.schill@emerson.com>
2026-03-20 16:13:52 +01:00
Max Köhler
5eaff4efc1 fpga: x400: Prepare RFDC memory for subchannels
For enabling subchannels within logical channels, the RFDC memory needs
to hold the information about what the subchannels are (e.g. Real, I or
Q). This commit adds this and removes the reordering of channels on the
TX side for X440's ADC self-cal. This is a breaking change, therefore
the FPGA compat number gets bumped, too.
2026-03-09 16:13:22 +01:00
Max Köhler
9ce3f875ae fpga: lib: add SPI BFM to Makefile 2026-03-09 15:57:38 +01:00
turcofran
fa7c3604c4 fpga: make: Use a resources file for RFNOC_OOT_SRCS
Use a resources file to pass RFNoC OOT source files to Vivado TCL
scripts, avoiding ARG_MAX argument list limits.

Co-authored-by: Martin Braun <martin.braun@ettus.com>
2026-03-06 19:38:25 +01:00
turcofran
394287cc03 fpga: Add a catch for checkpoint generation
In viv_utils.tcl, we add a catch for checkpoint generation in order to
continue if failed since isn't critical.
2026-03-06 10:00:13 +01:00
Markus Schill
38128417fd fpga: add SV wrapper files for ctrlport interface 2026-03-06 09:22:39 +01:00
Max Köhler
7a5f80e366 fpga: rfnoc: add follow mode to replay block 2026-03-04 08:49:45 +01:00
Max Köhler
3061e66904 ci: fpga: add usrp4-hw tests as part of mono pipeline 2026-02-26 16:18:33 +01:00
Niels Garibaldi
619c8cfe78 rfnoc: sim: add reset behaviour options for axis bfm 2026-02-25 18:23:25 -06:00
Max Köhler
90c4e18e33 fpga: sim: add SPI BFM 2026-02-25 06:57:51 -06:00
Max Köhler
5fb4c8896a fpga: x400: update FPGA CPLD communication constants 2026-02-25 09:30:38 +01:00
Trevor Clark
c7adee30c3 fpga: Use md5 FIPS fix, usedforsecurity=False
In create-lvbitx.py, we declare the md5() function as not security
critical to avoid being flagged as insecure.
2026-02-25 08:00:47 +01:00
Lars Amsel
699cff5941 uhd: Surround all open() calls with with-statement
In addition to commit ab8ec99733
this adds `with` statements to remaining files in the UHD code base.
2026-02-20 12:20:10 +01:00
Max Köhler
56f5002b1a fpga: x4xx: fix typo in DIO pin mapping description 2026-02-20 10:11:28 +01:00
Max Köhler
092451e56d fpga: x410: fix 100m version by widening RFDC data paths to 8 SPC 2026-02-13 14:59:44 +01:00