Files
Jungfraujoch/fpga/hls/axis_helpers.cpp

27 lines
735 B
C++

// Copyright (2019-2023) Paul Scherrer Institute
#include "hls_jfjoch.h"
void axis_64_to_512(hls::stream<ap_axiu<64,1,1,1>> &data_in,
hls::stream<ap_uint<512>> &data_out) {
#pragma HLS INTERFACE ap_ctrl_none port=return
#pragma HLS INTERFACE axis register both port=data_in
#pragma HLS INTERFACE axis register both port=data_out
ap_axiu<64,1,1,1> packet_64;
data_in >> packet_64;
while (!packet_64.user) {
#pragma HLS PIPELINE II=8
ap_uint<512> val = 0;
val(63,0) = packet_64.data;
for (int i = 1; i < 8; i++) {
data_in >> packet_64;
val(i * 64 + 63, i * 64) = packet_64.data;
}
data_out << val;
data_in >> packet_64;
}
}