Commit Graph

814 Commits

Author SHA1 Message Date
Wade Fife
0b7f642d4a fpga: tools: Add support for DCP files as source 2026-10-08 09:32:01 +02:00
Max Köhler
020608b971 fpga: x4xx: fixed sequence for RFDC NCO reset 2026-10-08 09:31:17 +02:00
Max Köhler
dad6f906f9 fpga: remove X420 variants without DDC/DUC 2026-10-06 08:54:58 +02:00
Javier Valenzuela
5709e8b546 fpga: lib: adjust ctrlport_to_wb_uart signal width 2026-10-01 13:02:57 -05:00
Max Becker
e6470cf8ce fpga: x4xx: Extend GPIO SPI support
Extend GPIO SPI transactions up to 64 bits and update the X4xx FPGA
register map and RTL to support the new access width.
Migrate the GPIO SPI register definitions to SystemVerilog.

Add testbench for X4xx GPIO SPI module covering both exisiting
32bit functionality and added 64bit functionality.
Separate TB Makefiles for X4xx and X410 implementation variant.

Bump the FPGA compatibility number so host and MPM software can reject
images that do not provide the required GPIO SPI register interface.
2026-09-29 13:12:32 +02:00
Max Becker
772e682503 fpga: Update SPI simulation testbenches
Extend the SPI slave model to propagate simulation failures to the test
execution framework.

Extract the timing monitor from the control-port SPI testbench so it
can be shared by the GPIO SPI simulations while keeping timing checks
centralized and consistent.
2026-09-29 13:12:32 +02:00
Max Becker
440ed5ae76 fpga: tools: Fix --CHECK image build flag
Fix CHECK_VIVADO_DESIGN make target.
This fixes the --CHECK target/argument for available in the rfnoc_image_builder
2026-09-29 10:52:44 +02:00
Max Köhler
65b9c0270e fpga: Upgrade to Vivado 2025.2: Repair all testbenches 2026-09-29 09:09:08 +02:00
Max Köhler
81c53bed91 fpga: ci: Replace modelsim with questasim 2026-09-29 09:09:08 +02:00
Max Köhler
0df07dcde8 fpga: Upgrade to Vivado 2025.2: Repair all FPGA compiles 2026-09-29 09:09:08 +02:00
Max Köhler
f3d6cd6c01 fpga: b300: Upgrade to Vivado 2025.2 2026-09-29 09:09:08 +02:00
Max Köhler
4e8fa298dd fpga: n3xx: Upgrade to Vivado 2025.2 2026-09-29 09:09:08 +02:00
Max Köhler
2a036118de fpga: e320: Upgrade to Vivado 2025.2 2026-09-29 09:09:08 +02:00
Max Köhler
f8240b6871 fpga: e31x: Upgrade to Vivado 2025.2 2026-09-29 09:09:08 +02:00
Max Köhler
91ae70080e fpga: x300: Upgrade to Vivado 2025.2 2026-09-29 09:09:08 +02:00
Max Köhler
31ff7ce148 fpga: x400: Upgrade to Vivado 2025.2 2026-09-29 09:09:08 +02:00
Max Köhler
1e80ef2fe9 fpga: lib: Upgrade to Vivado 2025.2 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
Javier Valenzuela
34a43948aa fpga: b310: add synchronizers on async inputs 2026-09-28 23:35:16 -05:00
Javier Valenzuela
ef0a814a3d fpga: lib: fixup uart non-blocking assignments 2026-09-24 08:56:44 +02:00
Javier Valenzuela
7351887ab5 fpga: lib: fixup i2c non-blocking assignments 2026-09-24 08:56:44 +02:00
Javier Valenzuela
04a7f8c6bf fpga: lib: fixup simple_uart instantiation 2026-09-24 08:56:44 +02:00
Max Köhler
3f46b68c6d fpga: lib: disable clocks at startup for ddc_ms_tb 2026-09-18 16:15:40 +01: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
5ff8ca11f3 fpga: b310: 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.

This makes B310 consistent with other USRPs that were previously
updated in commit fa7c3604.
2026-09-16 09:59:04 -05: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
Niels Garibaldi
aaaca5bff9 fpga: dsp: add FSM for HB FIR temporal decimation
Added a state machine to fix a bug in the temporal decimation code
of the decimating halfband filter module.

Additionally added a testcase to the testbench for the issue this
change is fixing.
2026-09-15 23:47:05 +01:00
Niels Garibaldi
58ab7a88cc dsp: cic: Add FIFO in CIC decimation to allow tready bypass
Added a Fifo to bypass handshaking inside of the cic filter decim
data pipeline.
2026-09-15 23:47:05 +01:00
Max Köhler
5b1bcabcf8 fpga: dsp: register halfband cascade routing selects 2026-09-15 23:47:05 +01:00
Max Köhler
e5c05cfde1 fpga: dsp: flush stale data across reset boundaries 2026-09-15 23:47:05 +01:00
Max Köhler
c1540c92f1 fpga: dsp: simplify interpolation and decimation configuration 2026-09-15 23:47:05 +01:00
Max Köhler
b7a92cd9d9 fpga: dsp: block input during reset and reconfiguration 2026-09-15 23:47:05 +01:00
Max Köhler
efa47018e4 fpga: dsp: distribute reset and clear through DSP paths 2026-09-15 23:47:05 +01:00
Max Köhler
d394ae626a dsp: cic: Add FIFO in CIC interpolation to allow tready bypass 2026-09-15 23:47:05 +01:00
Max Köhler
5ea031a946 fpga: lib: dsp: add multicycle path for CIC barrel shift 2026-09-15 23:47:05 +01:00
Niels Garibaldi
9365ae9b6a fpga: dsp: reverse order of cic barrel shifter
Reversing the order of the barrel shifter module used by the CIC
filter implementations, in order to reduce the possible bits
selectable from the last stage going into the rounding module.
This should make routing easier.
2026-09-15 23:47:05 +01:00
Niels Garibaldi
4904d06da2 fpga: dsp: Reduce CIC comb bus width for cic_filter_interp
We can reduce the bus width of the comb filter stage in the CIC
interpolation filter, as it is the first module in the CIC filter and
only adds one bit per order stage. Therefore, we do not need to
immediately go to the full accumulation bit width needed for the later
integrator stages of the CIC interpolation filter, and can save some
FPGA resources by only extending to the required width for each CIC
stage.

The same logic also applies to the interpolation stage, which only adds
zeros into the bitstream and therefore does not change the bus width.
2026-09-15 23:47:05 +01:00
Niels Garibaldi
57df0ca685 fpga: dsp: Add FIFO_SIZE parameter to CIC comb filter
Adding a FIFO size module parameter to the comb filter module, in
order to selectively set only the last of N-order filter stages to
use a 2-stage FIFO.
2026-09-15 23:47:05 +01:00
Wade Fife
081429caa9 fpga: lib: Disable XPM FIFO for Spartan-6 FPGAs 2026-09-02 09:58:09 +02:00
Wade Fife
85e163a0d9 fpga: lib: Add DEVICE parameter to gpif2 and radio_legacy 2026-09-02 09:58:09 +02:00
Wade Fife
6a8a56afb2 fpga: b2xx: Add DEVICE parameter
Adds a DEVICE parameter set to SPARTAN6 to properly indicate the FPGA
device family.
2026-09-02 09:58:09 +02:00
Wade Fife
d110c060f2 fpga: Fix check_timing.py break indent
This fixes an issue introduced by commit 699cff5941, where the break
statement was incorrectly indented outside the for loop.
2026-09-02 09:40:20 +02:00
Max Köhler
4e3912efd8 fpga: fix typo in yml files 2026-08-28 16:09:35 +01:00
Max Köhler
9da28f06f7 fpga: x420: Use standard ce clock for DDC and DUC blocks for 400 MHz 2026-08-28 16:09:35 +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