From 7a5146c4aa415aee84f6eceedec676102fdf7dfe Mon Sep 17 00:00:00 2001 From: Yaman Umuroglu <yamanu@xilinx.com> Date: Fri, 12 Nov 2021 21:31:42 +0100 Subject: [PATCH] [Concat] make both cppsim and rtl/stitched-ip rtlsim work --- src/finn/custom_op/fpgadataflow/concat.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/finn/custom_op/fpgadataflow/concat.py b/src/finn/custom_op/fpgadataflow/concat.py index c591cdec6..3d61d3abc 100644 --- a/src/finn/custom_op/fpgadataflow/concat.py +++ b/src/finn/custom_op/fpgadataflow/concat.py @@ -150,7 +150,14 @@ class StreamingConcat(HLSCustomOp): impl_hls_code.append("for(unsigned int i = 0; i < numReps; i++) {") impl_hls_code.append("#pragma HLS PIPELINE II=1") impl_hls_code.append("ap_uint<%d> out_elem;" % total_bw) + # FIXME: the order of streams for concatenation works out differently + # for cppsim vs rtlsim, addressed via reversing the order of commands + # for now + impl_hls_code.append("#ifdef __SYNTHESIS__") + impl_hls_code.append("out_elem = (" + ",".join(commands[::-1]) + ");") + impl_hls_code.append("#else") impl_hls_code.append("out_elem = (" + ",".join(commands) + ");") + impl_hls_code.append("#endif") impl_hls_code.append("out.write(out_elem);") impl_hls_code.append("}") impl_hls_code.append("}") @@ -211,7 +218,7 @@ class StreamingConcat(HLSCustomOp): "%s/input_%d.npy" % (code_gen_dir, i), export_idt, nbits, - reverse_inner=False, + reverse_inner=True, ) io_dict["inputs"]["in%d" % i] = rtlsim_inp super().reset_rtlsim(sim) @@ -231,7 +238,7 @@ class StreamingConcat(HLSCustomOp): out_shape, packed_bits, target_bits, - reverse_inner=False, + reverse_inner=True, ) # load and reshape output output = np.load(out_npy_path) -- GitLab