589 Commits
Author SHA1 Message Date
miegl 24c9cdb20a b210: remove obsolete set_false_path statements 2026-08-26 22:47:43 +02:00
miegl a95cce3d20 rtl: remove inferred CHDR conversion latches
Give curr_word a complete combinational assignment and use blocking assignments in chdr_16sc_to_12sc.

This removes the two 64-bit latch banks and the resulting bogus inferred-clock timing endpoints while preserving all legal FSM-state behavior.
2026-08-25 22:36:27 +02:00
miegl 286cde0a8d timing: bound asynchronous GPIF-radio crossings
Replace broad GPIF/radio false paths with 10 ns datapath-only maximum delays between the 100 MHz GPIF clock and the generated SISO/MIMO radio clocks.

Preserve physical control of asynchronous CDC paths without overriding the more-specific XPM FIFO CDC constraints.
2026-08-25 22:33:46 +02:00
miegl e7b1ac41e0 timing: model SISO and MIMO BUFGMUX clocks
Create generated clock copies on the shared radio BUFGMUX output and mark the full-rate SISO and divide-by-two MIMO modes logically exclusive.

This prevents static timing from attempting impossible cross-mode hold fixes while retaining valid timing relationships outside the shared clock tree.
2026-08-25 22:31:36 +02:00
miegl eb84b6c949 fifo: synchronize read-domain reset handling
Synchronize legacy and XPM reset indications into the FIFO read clock domain instead of feeding cross-domain reset logic into asynchronous PRE/CLR paths.

This removes the FIFO-induced CDC-10 findings while preserving legacy reset behavior.
2026-08-25 22:22:39 +02:00
miegl 90e0b1d038 fifo: replace synthesized simulation FIFO
Use the real axi_fifo_2clk hierarchy with XPM-based asynchronous FIFO implementations instead of synthesizing axi_fifo_2clk_sim.

Map the deep stream FIFOs into dedicated block RAM while preserving the legacy FWFT FIFO interface.
2026-08-25 22:21:16 +02:00
miegl a83f31ec3b vivado: migrate Kintex-7 build to Vivado 2026.1 2026-08-24 17:53:26 +02:00
miegl 56604b2187 vivado: add reproducible 2024.1 project build 2026-08-24 17:50:44 +02:00
miegl 3dc3446559 b200: import original Kintex-7 clone port 2026-08-23 11:42:22 +02:00
Wade Fife 2f5b331f30 fpga: sim: Make members accessible in RfnocBlockCtrlBfm
Original-commit: 8493888c67a2a7f34e71ecb764ba0316286881a5
2025-04-22 10:04:32 -05:00
Friedrich Wenisch dbb52a6909 fpga: x410: Fix NCO reset mechanism
Original-commit: 1dd1447e9e93b3614c341fd808d090701d521970
2025-04-17 15:37:13 +02:00
Markus Schill 6386d90b35 fpga: lib: Add initial value to ram_2port
Original-commit: da5c64bf4f631012b5969890a751084c998dd154
2025-04-09 13:50:17 -05:00
Wade Fife c9d2c066f3 fpga: lib: Fix pass-through mode in axi_fifo
A missing "else" after 6ea4e48 was causing two configurations to occur
at the same time for some values of SIZE.

This commit also sets the "space" and "occupied" outputs to 0 when in
pass-through mode.


Original-commit: 19b5c85b514e1c37238308e405108c69ecbddb7e
2025-04-08 12:26:02 -05:00
Wade Fife 009b7801f4 fpga: sim: Restore PkgChdrUtils for compatability
This brings back the package PkgChdrUtils after it was removed in
d9f8c08. Its contents were moved because most of the contents were
synthesizable, but many existing testbenches might still reference the
old package name. This new version of PkgChdrUtils simply imports then
exports the things it used to include. New testbenches are encouraged
to reference the new files instead of PkgChdrUtils.


Original-commit: 7992198889c172db04dd324bac42819c51d6ee79
2025-04-08 12:24:51 -05:00
Wade Fife dc4f2dd6e2 fpga: lib: Update FFT IP for parallel builds
Original-commit: ff12e4a2fde1494612061a8a0183555653dacd18
2025-04-04 08:11:57 -05:00
Sam Lane bd85dd37ff fpga: tools: Add assert option to synthesis
Add -assert option to Vivado synthesis to allow VHDL assert statements
to be checked during synthesis.


Original-commit: 13d004fa9001823e807c4a2b72e92b20efb6f94a
2025-04-03 11:01:14 -05:00
Wade Fife f9d9b106df fpga: tools: Fix escape sequence warnings
This adds to 11c60ee to fix a few additional escape sequence warnings.


Original-commit: 9dc2e089d86e395cb144360fa096ed007b605b9f
2025-04-03 09:51:54 +02:00
Max Köhler d742b4018f fpga: x4xx: add reset option for gearboxes
Original-commit: 22b4a35da29fd70a6a6030e555139b4bb7cc56f1
2025-04-02 08:02:11 +02:00
Max Köhler 14e864bdb1 fpga: x440: bring back TX control remap in RFDC BD
Original-commit: e4cbbe71452b269d8272ff7b1c7658523acfff4f
2025-03-25 07:50:14 +01:00
Max Köhler 88d7598bfc fpga: x400: zbx: update projects for new ctrlport modules
Original-commit: 95e227edaaacc3eb68937cebcc2ba385eb0997a2
2025-03-21 09:09:09 -05:00
Max Köhler 01d6ebd45e fpga: x400: cpld: update projects for new ctrlport modules
Original-commit: 6bcb44df7b94970cdbdb724987e27d5f306c40a7
2025-03-21 09:09:09 -05:00
Max Köhler 8dc5d3aeec fpga: lib: redirect old ctrlport modules to interface based ones
Original-commit: bf294111b9f49efb6373908274bc8d31bb8cb11d
2025-03-21 09:09:09 -05:00
Max Köhler e67d78533c fpga: bump compat number to 10.0
Original-commit: 1cb4898519dfc2661c4537ec06faa23ed4525329
2025-03-20 09:07:06 +01:00
Max Köhler 50f20ef4ab fpga: x4xx: replace ADC/DAC info by RFDC memory
Original-commit: 6c6d52fd655b144aa5ee581edae7911dc734854e
2025-03-20 09:07:06 +01:00
Wade Fife 37b8b0d017 fpga: rfnoc: Move synthesizable code from sim to lib
Original-commit: d9f8c08dfb1afe98c35c5911125c6eead869713f
2025-03-17 17:47:16 -05:00
Wade Fife b4943f4a61 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.


Original-commit: f094aa7ae0f864764276c5c67c51b21547327fb0
2025-03-17 13:40:26 -05:00
Wade Fife 6bcbd09a6b 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.


Original-commit: 7ab4e9a4e2c0408ca595ad168199a54bf416c894
2025-03-17 13:40:26 -05:00
Wade Fife 37fb9138cd fpga: tools: Add support for Questa
Original-commit: 247f9fd2ac8b0a9905a9b587caf9d57b6bacd82a
2025-03-17 13:40:26 -05:00
Wade Fife c499cad53d 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)


Original-commit: 81ccd8cb5154e85636cddd86c466daffb4ab4ebe
2025-03-14 08:03:34 +01:00
Wade Fife 6b19ec030c fpga: rfnoc: fft: Support multiple samples per cycle
This adds the NIPC parameter, which configures support for processing
multiple items or samples per clock cycle. With this enabled, the FFT
block can process at rates higher than 250 MSPS, such as 500 MSPS and
beyond.


Original-commit: fc76aa940e121fe1f85a3513f6d90df4667338cf
2025-03-07 12:39:34 -06:00
Wade Fife d7e5823047 fpga: rfnoc: fft: Add FFT packetize modules
Original-commit: 97ea89fac5c1889e5c0da44349d5f4be3d788965
2025-03-07 12:39:34 -06:00
Wade Fife ef9b86ec03 fpga: tools: Fix CSV reporting in run_testbenches.py
Original-commit: 1c719bc0a6ff8ceba7da74ee42bcceb43d164d2b
2025-03-07 12:40:20 +01:00
Wade Fife 7566014c96 fpga: tools: Reformat run_testbenches.py
Original-commit: 0593f3c8e052f83e89d6269e952681fb83ef30df
2025-03-07 12:40:20 +01:00
Wade Fife 307ba63f99 fpga: lib: Fix trailing bytes in eth_ipv4_chdr_adapter
On the CPU to Ethernet path (c2e) in some configurations the trailing
bytes length was not being properly set in TUSER. This can lead to
extra bytes being added onto packets. Most of the time this is fine,
since the extra bytes would be ignored by the underlying protocols.
But when the packet was near the MTU size, it could lead to an
oversized packet that would get dropped by the network or host
computer.


Original-commit: 00d9a228f58b384798f0a1346fbab8f40b017a9c
2025-03-03 09:02:29 -06:00
Wade Fife 4eb1279423 fpga: lib: Enable TUSER in eth_ipv4_interface_wrapper
This wrapper was using TUSER for the number of trailing bytes, but it
wasn't properly enabled, which could cause it to be ignored in some
cases.


Original-commit: e7ebe601163d01d157bc3de9c2652952932e4a1c
2025-03-03 09:02:29 -06:00
Wade Fife 6fe021fdcd fpga: x400: Change NUM_DRAM_BANKS to 2 on X410 X4_400 image
This was set to 1 in UHD 4.7, but it must be 2 for all channels to
have sufficient bandwidth.


Original-commit: b012c18fd653714e84b1d4a86e27ff90fe13ae04
2025-02-27 10:53:07 -06:00
Niels Garibaldi cfa8afcf37 fpga: rfnoc: Fix DDC overflow issue
Fixed an issue where the DDC could experience an arithmetic overflow
when receiving a full-scale signal with non-zero DDS frequency.


Original-commit: 5030d0106b6d2230a1c28e72f765098c7916cf1b
2025-02-26 22:09:04 -06:00
Niels Garibaldi 2535aa4f1b fpga: sim: Add coerce function to PkgMath
Original-commit: 1f7ea94d8f9f1b9007fa1cd1d808f385139e264d
2025-02-26 22:09:04 -06:00
Martin Braun 1a3bdccd51 Revert "Get rid of unnecessary bash wrappers in subprocesses.Popen"
This reverts commit e572bab3ee5aa40f57bdc6e11d6381cad1d1401a.

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.


Original-commit: 888850d6417c93f561e0555c693e3f11e9f40856
2025-02-20 10:24:16 +01:00
Wade Fife bb2bfbfe95 fpga: lib: Add AXI-Stream load split and merge modules
Original-commit: 32fb626ef1b1d3078fd331143b03cd38d1e155f0
2025-02-14 15:59:19 -06:00
Wade Fife 72432c9278 fpga: lib: Add zero-length option to axi_fifo
Original-commit: 6ea4e4808e09e55bb2ba05e787e79ec3c5fe4340
2025-02-14 15:59:19 -06:00
465be512e7 fpga: Ensure RX radio command FIFO does not overflow
Radio command FIFO will back pressure commands until there is room
for new elements.

Co-authored-by: Max Köhler <max.koehler@ni.com>
Co-authored-by: Martin Braun <martin.braun@ettus.com>


Original-commit: 474a17020e649e9ae4a39ef7cbce810d0ec67983
2025-02-14 09:22:33 -06:00
Max Köhler f961936a43 rfnoc: lib: introduce ctrl-port interface and BFM
Original-commit: 886cf97ad5d494b20c6fff0a53113f6096d458c7
2025-02-14 08:04:26 -06:00
Max Köhler c48f8bd5f1 fpga: rfnoc: lib: add AXI FIR filter for >1 SPC
Original-commit: 90ad1fecb62b804f543def6e4c680706d76442b5
2025-02-13 08:28:46 -06:00
Max Köhler 7446db939c fpga: x440: fix refactored rf_core_full
Original-commit: f1fab29e4444476378faa8d435c1f76faa5a702c
2025-02-13 07:58:10 -06:00
Friedrich Wenisch 3ed06cc861 fpga: x400: refactor RFDC block diagrams and timing constraints
Original-commit: a7bce74be154de9a68d6bdf2f9a6651b480b6dfa
2025-02-13 07:51:05 -06:00
Wade Fife f480008cf9 fpga: rfnoc: fft: Use DEFAULT on reset in axis_cp_list
Original-commit: 2eba2e9303d84e1a66f9841f894d526f62d91901
2025-02-12 22:06:20 -06:00
Wade Fife ac04bb81c4 fpga: sim: Allow DATA_WIDTH that's not a multiple of 8
Original-commit: f1173f14d18feb5fb40285b393d0d5bc286acd17
2025-02-12 22:06:20 -06:00
Wade Fife 30180c36f0 fpga: rfnoc: Add CHDR_HEADER_W constant
Original-commit: eaee884576883f930e5dcac6b034646be6fbedf2
2025-02-12 22:06:20 -06:00
Wade Fife c637f538fa fpga: lib: Add TO_SIGNED to usrp_utils.svh
Original-commit: c4eaadfaca97490d68f7b4702f009eb50252d0dc
2025-02-12 22:06:20 -06:00