Commit Graph

140 Commits

Author SHA1 Message Date
Max Köhler
81c53bed91 fpga: ci: Replace modelsim with questasim 2026-09-29 09:09:08 +02:00
Max Köhler
edac52a8d9 fpga: tools: Upgrade to Vivado 2025.2 2026-09-29 09:09:08 +02:00
Max Köhler
cf14224aa6 fpga: tools: skip phy_opt step for partially routed designs 2026-09-18 16:08:29 +01:00
Wade Fife
ddb7e6866b fpga: tools: Make each BUILD_SEED random
Use --seed only to initialize a local deterministic random number
generator. Generate a new signed 32-bit BUILD_SEED for each FPGA build
attempt instead of passing --seed directly to the first build. This
avoids accidentally using sequential pipeline attempt numbers as
BUILD_SEED values.

Using the same --seed produces the same BUILD_SEED sequence, preserving
reproducibility.
2026-09-16 09:53:50 -05:00
Max Köhler
15283f106b fpga: tools: add target matrix generator script 2026-09-15 23:55:20 +01:00
Marian Koop
84d6af328b ci: Update fpga packaging configs 2026-08-27 08:41:16 +01:00
Max Köhler
04bb66663e fpga: lib: enable XPM fifo for all Xilinx FPGAs 2026-08-20 01:46:19 +02: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
Wade Fife
1bafc03e08 fpga: tools: Add simulator install locations 2026-08-10 16:05:30 -05: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
Wade Fife
c60a872c21 fpga: tools: Use VHDL 2008 in Vivado 2026-07-21 19:29:47 -06:00
Max Köhler
547acfb776 ci: add X420_XX_400 bitfiles to pipeline 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
Max Köhler
6bd71fbda3 fpga: tools: enable printing of all Vivado messages 2026-04-29 23:22:53 -05: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
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
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
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
Jörg Hofrichter
0779575294 fpga: tools: Add --include-dir to repeat_fpga_build 2026-01-13 12:38:50 +01:00
Max Köhler
a12e94bd8d fpga: tools: add security program command to diamond SVF files 2025-12-18 14:26:56 +01:00
Max Köhler
0623c5aa8e fpga: tools: refactor Quartus warning check 2025-12-04 12:04:50 +01:00
Wade Fife
3f2b1d9c32 fpga: tools: Turn off cs_server version check
The version check causes an error in Vivado that prevents the use of
JTAG/debug when users have a patch installed. This disables the error,
but it will still give a warning in case they really do have a
legitimate mismatch. This change fixes the issue when users use our
tooling to launch a build in the GUI then launch the hardware manager,
but it may still occur if they launch the GUI themselves outside of our
tooling.
2025-11-12 15:10:38 -06:00
Max Köhler
9cc9fe81b7 fpga: tools: update Vivado simulator exclusions 2025-11-04 16:48:29 -06:00
Frank Dietze
6a38b70fb1 ci: utils: Update winusb_drv file mapping in image_package_mapping.py 2025-08-23 00:21:06 +02:00
Max Köhler
e329fd0474 fpga: tools: error out on unconstrained paths for diamond builds 2025-06-27 10:27:14 -05:00
Sam Lane
13d004fa90 fpga: tools: Add assert option to synthesis
Add -assert option to Vivado synthesis to allow VHDL assert statements
to be checked during synthesis.
2025-04-03 11:01:14 -05:00
Wade Fife
9dc2e089d8 fpga: tools: Fix escape sequence warnings
This adds to 11c60ee to fix a few additional escape sequence warnings.
2025-04-03 09:51:54 +02:00
Wade Fife
f094aa7ae0 fpga: tools: Disable common simulation warnings
This change sets StdArithNoWarnings and NumericStdNoWarnings by
default for ModelSim simulations. Without this, an excessive number of
warnings can be generated by Xilinx IP during simulation.
2025-03-17 13:40:26 -05:00
Wade Fife
7ab4e9a4e2 fpga: tools: Change -onfinish to final
This changes the -onfinish setting from "stop" to "final" for Questa
and ModelSim. The "final" setting is required so that SystemVerilog
final blocks run. This also has the same effect as "stop" in that it
won't ask you in the GUI if you want to exit the simulator when
$finish() is called.
2025-03-17 13:40:26 -05:00
Wade Fife
247f9fd2ac fpga: tools: Add support for Questa 2025-03-17 13:40:26 -05:00
Wade Fife
81ccd8cb51 fpga: tools: Fix issues in run_testbenches.py
This commit addresses several issues that can occur with different
simulators. It changes the following:

- Update documentation
- Ignore testbenches in build-ip folders
- Tolerate extra lines in the testbench results regular expression
- Match numbers using \d instead of + to avoid ValueError exceptions
- Only fetch the start_time if it exists
- Allow any simulator make target (don't limit it to specific choices)
2025-03-14 08:03:34 +01:00
Wade Fife
1c719bc0a6 fpga: tools: Fix CSV reporting in run_testbenches.py 2025-03-07 12:40:20 +01:00
Wade Fife
0593f3c8e0 fpga: tools: Reformat run_testbenches.py 2025-03-07 12:40:20 +01:00
Martin Braun
888850d641 Revert "Get rid of unnecessary bash wrappers in subprocesses.Popen"
This reverts commit e572bab3ee.

The problem with skipping the "unnecessary" bash wrappers is that Ubuntu
systems use 'dash' as a default shell, which does not support our build
infrastructure. While we do recommend not using dash for building FPGA
builds in our documentation, it's not obvious that dash is the problem
when calling rfnoc_image_builder.
2025-02-20 10:24:16 +01:00
Martin Braun
0dede88c65 fpga: tools: Refactor viv_ip_xci_editor.py
This Python utility was getting a bit rotten. The following updates
where made:

- Reformatted using ni-python-styleguide
- Fixed formatting of regex strings by declaring them 'raw'
- Updated docstrings and any linter issues

On Pyton 3.12 and beyond, this will no longer throw SyntaxError
warnings.
2025-02-07 14:52:28 +01:00
Martin Braun
21c4c591a5 fpga: Remove vivado_lab support
Previously, the build tools for the FPGA bitfiles would try and
autodetect the Vivado executable, but would allow for a `vivado_lab`
executable. However, Vivado Lab Edition can't build bitfiles nor run
testbenches. Its only use with the USRP FPGA build tooling is to run
`viv_jtag_program` and `viv_jtag_list` (which are command-line proxies
for probing FPGAs attached to JTAG, and for programming bitfiles over
JTAG, e.g. to an X3x0).

When Vivado Lab and Vivado were present, it was possible that we ran
into issues where Vivado Labs would be preferred, and then builds or
testbenches would fail.

We therefore remove the ability to use Vivado Lab. Running the Vivado
Lab Edition with the GUI, and loading and probing bitfiles is of course
still possible, but tools like `rfnoc_image_builder` can no longer
accidentally try to use Vivado Lab instead of regular Vivado.
2025-02-06 16:45:15 +01:00
Frederik Pfautsch
e572bab3ee Get rid of unnecessary bash wrappers in subprocesses.Popen
Signed-off-by: Frederik Pfautsch <frederik.pfautsch@missinglinkelectronics.com>
2025-02-03 21:51:38 +01:00
Max Köhler
d635ee91fb fpga: tools: mark hash dirty with staged changes 2025-01-29 11:37:22 +01:00
Max Köhler
1d1c889c15 fpga: tools: Add --build-dir to repeat_fpga_build 2025-01-27 15:32:22 -06:00
Wade Fife
f1ef9ada68 fpga: tools: Add JUnit XML support to run_testbenches
Co-authored-by: Jörg Hofrichter <joerg.hofrichter@emerson.com>
2024-12-11 09:08:11 +01:00
Wade Fife
381ecf8578 fpga: tools: Add --ignore-warnings to repeat_fpga_build 2024-11-27 19:35:33 -06:00
Wade Fife
9998279986 fpga: tools: Add do file for ModelSim 2024-10-08 18:15:52 -05:00
Wade Fife
b6ce5671f8 fpga: tools: Add parallel FPGA build support
Add parallel FPGA build support to repeat_fpga_build.py.
2024-10-07 11:04:13 -05:00
Max Köhler
aa10241c7f fpga: tools: add diamond build sanity checks 2024-09-24 10:24:29 -05:00
Max Köhler
eb5fe85748 fpga: ci: remove color coding from FPGA bitfile name 2024-07-11 15:29:53 +02:00
Martin Braun
94b4de39d6 image builder: Add --build-ip-dir option
Co-authored-by: Wade Fife <wade.fife@ni.com>
2024-06-11 10:20:08 +02:00
Wade Fife
6abfd8a49a fpga: tools: Force write when saving Vivado project file 2024-06-11 10:20:08 +02:00