27 lines
735 B
C++
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;
|
|
}
|
|
}
|
|
|