diff --git a/fpga/hls/load_from_hbm.cpp b/fpga/hls/load_from_hbm.cpp index 7dba6e98..7582d37c 100644 --- a/fpga/hls/load_from_hbm.cpp +++ b/fpga/hls/load_from_hbm.cpp @@ -39,8 +39,9 @@ void load_from_hbm(STREAM_512 &data_in, while (!cmpl.last) { m_axis_completion << cmpl; - size_t offset = (cmpl.handle * RAW_MODULE_SIZE * sizeof(uint16_t)) / 64; - + size_t offset = ((cmpl.handle / 2) * RAW_MODULE_SIZE * sizeof(uint16_t)) / 64; + if (cmpl.handle % 2 == 1) + offset += hbm_size_bytes / 32; for (int i = 0; i < RAW_MODULE_SIZE * sizeof(uint16_t) / 64; i++) { #pragma HLS PIPELINE II=1 packet_512_t packet_out; diff --git a/fpga/hls/save_to_hbm.cpp b/fpga/hls/save_to_hbm.cpp index e5ee789d..194b57ca 100644 --- a/fpga/hls/save_to_hbm.cpp +++ b/fpga/hls/save_to_hbm.cpp @@ -76,7 +76,9 @@ void save_to_hbm(STREAM_512 &data_in, cmpl[id].packet_count++; } - size_t offset = (cmpl[id].handle * RAW_MODULE_SIZE * sizeof(uint16_t) + eth_packet * 8192) / 64; + size_t offset = ((cmpl[id].handle / 2) * RAW_MODULE_SIZE * sizeof(uint16_t) + eth_packet * 8192) / 64; + if (cmpl[id].handle % 2 == 1) + offset += hbm_size_bytes / 32; for (int i = 0; i < 128; i++) { data_in >> packet_in;