Commit Graph

699 Commits

Author SHA1 Message Date
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
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
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
Wade Fife
76786cb075 fpga: rfnoc: Add SKIP_WR_ACK_WAIT parameter to radio
This change allows the SKIP_WR_ACK_WAIT parameter to be set as a
parameter on the radio block with in a YAML file for the RFNoC image
builder.
2026-02-12 11:33:54 -06:00
Wade Fife
2bc5131736 fpga: rfnoc: Add SKIP_WR_ACK_WAIT mode to axis_ctrl_master
This adds an option to not require or wait for the AXIS-Ctrl packet
response for CtrlPort writes. This is useful in cases where the writes
are not critical (e.g., status updates) and occasional packet loss is
expected. Enabling this feature will prevent the endpoint from hanging
in situations where the AXIS-Ctrl write request or the write response
is dropped on the network.
2026-02-12 11:33:54 -06:00
Andre Zoch
734f260534 fpga: lib: optimizations for zero/symmetric coefficients for static FIR
Optimizations aim to reduce number of DSP slices:
For static FIR filter generation (RELOADABLE_COEFFS = 0):
- skip fir_filter_slice instantiation for zero coefficient FIR taps.
  Positiion of zero taps derived from COEFFS_VEC.
  (cherry pick from Max prototype)
- use fir_filter_slice preadder input to jointly process symmetric
  FIR filter taps. Saves almost half the number of fir_filter_slices.
  Symmetry automatically inferred from COEFFS_VEC.

TB Changes:
TB has been extended to validate optimizations for zero/symmetric
coefficients depending on the provided filter coefficients.
- axi_fir_multisample_filter_tb.sv: changed interface to pass
  FIR filter coefficients from outside.
- axi_fir_multisample_filter_tb_wrapper.sv: splitted into
  separate generate loop to test general behavior and specific
  optimizations
2026-02-04 11:27:10 +01:00
Max Köhler
d5ab7df0a0 fpga: x4xx: remove unused JTAG engine from PS BD 2026-01-13 13:40:57 -06:00
Jörg Hofrichter
a21910a185 fpga: x300: slightly relax timing after introducing mux
With the introduction of the output mux, the placing of the
last register inside the IOB is not possible anymore. Instead,
we now require a small input and output delay to ensuring
placement close to the PAD to minimize skew.
2026-01-13 12:38:50 +01:00
Jörg Hofrichter
0779575294 fpga: tools: Add --include-dir to repeat_fpga_build 2026-01-13 12:38:50 +01:00
Jörg Hofrichter
c45de02fb6 rfnoc: add radio_state IO signature 2026-01-13 12:38:50 +01:00
Wade Fife
c950cca232 rfnoc: add pps IO signature for all targets 2026-01-13 12:38:50 +01:00
Jörg Hofrichter
0e7008cd7d fpga: add dummy connections for front panel GPIO 2026-01-13 12:38:50 +01:00
Jörg Hofrichter
f75956d332 fpga: x300: connect RFNoC image core to user logic 2026-01-13 12:38:50 +01:00
Jörg Hofrichter
6accc25554 fpga: x300: Implement GPIO mux for user logic 2026-01-13 12:38:50 +01:00
Jörg Hofrichter
68dd14e5bd fpga: x300: remove output buffering for FP gpio 2026-01-13 12:38:50 +01:00
Jörg Hofrichter
db7e600b53 fpga: x300: Use wire type for fp_gpio_out/ddr in x300_core
- Use wire type instead of reg type for fp_gpio_out/ddr in x300_core.
  This allows adding an unbuffered mux later.
- Set width to correct size of 12 bits to avoid confusion.
2026-01-13 12:38:50 +01:00
Jörg Hofrichter
e8026173a6 fpga: e310/e320/n3xx: implement User mux for GPIO
Add another mux which controls if PS or user logic (=RFNoC)
controls the GPIO. The output is input to the master mux
which controls if Radio or PS/user logic controls the
GPIO.
2026-01-13 12:38:50 +01:00
Jörg Hofrichter
4fedf708f0 fpga: e31x/e320/n3xx: use glitch_free_mux for GPIO muxing 2026-01-13 12:38:50 +01:00
Jörg Hofrichter
9a9d6e71cb fpga: x400: connect front-panel GPIO
Connect the front-panel GPIO signals coming from the RFNoC image core
to the "fabric" input of the X4XX DIO module.
2026-01-13 12:38:50 +01:00
Max Köhler
f471f86409 fpga: lib: rfnoc: reduce FF count in CHDR ingress FIFO 2026-01-07 13:37:22 +01:00