From f4f35adb021c9c55168ea303641b767bebb5c357 Mon Sep 17 00:00:00 2001 From: leonarski_f Date: Mon, 20 Nov 2023 15:11:51 +0100 Subject: [PATCH] FPGA: load_calibration - First check if addresses are OK, then issue datamover read commands --- fpga/hls/load_calibration.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/fpga/hls/load_calibration.cpp b/fpga/hls/load_calibration.cpp index 22ab89f3..7d31963c 100644 --- a/fpga/hls/load_calibration.cpp +++ b/fpga/hls/load_calibration.cpp @@ -59,9 +59,11 @@ int load_calibration(ap_uint<256> *d_hbm_p0, for (int i = 0; i < 3 * (modules + storage_cells * modules); i++) { if (in_mem_location[i] == 0) return 2; - setup_datamover(datamover_in_cmd, in_mem_location[i], RAW_MODULE_SIZE * sizeof(int16_t)); } + for (int i = 0; i < 3 * (modules + storage_cells * modules); i++) + setup_datamover(datamover_in_cmd, in_mem_location[i], RAW_MODULE_SIZE * sizeof(int16_t)); + for (int c = 0; c < 3; c++) { for (int m = 0; m < modules; m++) { #pragma HLS PIPELINE OFF @@ -86,8 +88,10 @@ int load_calibration(ap_uint<256> *d_hbm_p0, for (int i = 0; i < 2 * modules; i++) { if (in_mem_location[i] == 0) return 2; - setup_datamover(datamover_in_cmd, in_mem_location[i], RAW_MODULE_SIZE * sizeof(int16_t)); } + + for (int i = 0; i < 2 * modules; i++) + setup_datamover(datamover_in_cmd, in_mem_location[i], RAW_MODULE_SIZE * sizeof(int16_t)); for (int m = 0; m < modules; m++) { #pragma HLS PIPELINE OFF @@ -106,9 +110,11 @@ int load_calibration(ap_uint<256> *d_hbm_p0, for (int i = 0; i < modules; i++) { if (in_mem_location[i] == 0) return 2; - setup_datamover(datamover_in_cmd, in_mem_location[i], RAW_MODULE_SIZE * sizeof(int16_t)); } + for (int i = 0; i < modules; i++) + setup_datamover(datamover_in_cmd, in_mem_location[i], RAW_MODULE_SIZE * sizeof(int16_t)); + for (int m = 0; m < modules; m++) { #pragma HLS PIPELINE OFF size_t offset_hbm_0 = 20 * hbm_size_bytes / 32 + m * RAW_MODULE_SIZE * sizeof(int16_t) / 64;