aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWade Fife <wade.fife@ettus.com>2020-08-10 09:31:26 -0500
committerWade Fife <wade.fife@ettus.com>2020-08-11 16:20:51 -0500
commit4f387c8ff0571deedc86dc459e94e555b9768282 (patch)
tree4ee19e2843b43d4c986465acab09243bec588be3
parentexamples: replay samples from file (diff)
downloaduhd-4f387c8ff0571deedc86dc459e94e555b9768282.tar.xz
uhd-4f387c8ff0571deedc86dc459e94e555b9768282.zip
fpga: lib: Change max FFT size to 1024
The max FFT size was 4096, but we don't currently have any devices that can do that without modification. This is because, currently, the FFT size must be the same as the packet size, and the largest packet size supported by most devices is about 8000 bytes, or 2000 sc16 samples. Therefore, the largest FFT size supported without modifying other code is 1024 samples. This change frees up about 21% of the LUTs and 36% of the BRAM used by axi_fft and makes the software block controller and the IP agree on the maximum FFT size.
-rw-r--r--fpga/usrp3/lib/ip/axi_fft/axi_fft.xci4
-rw-r--r--host/lib/rfnoc/fft_block_control.cpp2
2 files changed, 3 insertions, 3 deletions
diff --git a/fpga/usrp3/lib/ip/axi_fft/axi_fft.xci b/fpga/usrp3/lib/ip/axi_fft/axi_fft.xci
index 8de860b98..a33d90005 100644
--- a/fpga/usrp3/lib/ip/axi_fft/axi_fft.xci
+++ b/fpga/usrp3/lib/ip/axi_fft/axi_fft.xci
@@ -95,7 +95,7 @@
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_M_AXIS_DATA_TDATA_WIDTH">32</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_M_AXIS_DATA_TUSER_WIDTH">16</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_M_AXIS_STATUS_TDATA_WIDTH">1</spirit:configurableElementValue>
- <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_NFFT_MAX">12</spirit:configurableElementValue>
+ <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_NFFT_MAX">10</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_OPTIMIZE_GOAL">0</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_OUTPUT_WIDTH">16</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_REORDER_MEM_TYPE">1</spirit:configurableElementValue>
@@ -131,7 +131,7 @@
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.target_clock_frequency">200</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.target_data_throughput">50</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.throttle_scheme">nonrealtime</spirit:configurableElementValue>
- <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.transform_length">4096</spirit:configurableElementValue>
+ <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.transform_length">1024</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.xk_index">true</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.ARCHITECTURE">kintex7</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.BASE_BOARD_PART"/>
diff --git a/host/lib/rfnoc/fft_block_control.cpp b/host/lib/rfnoc/fft_block_control.cpp
index 867d458ca..23ee380ac 100644
--- a/host/lib/rfnoc/fft_block_control.cpp
+++ b/host/lib/rfnoc/fft_block_control.cpp
@@ -22,7 +22,7 @@ constexpr int DEFAULT_FFT_SCALING = 1706; // Conservative 1/N scaling
// FFT IP constraints
constexpr int MIN_FFT_LENGTH = 8;
-constexpr int MAX_FFT_LENGTH = 2048;
+constexpr int MAX_FFT_LENGTH = 1024;
const uhd::rfnoc::io_type_t DEFAULT_TYPE = uhd::rfnoc::IO_TYPE_SC16;