From d20837dba6d4b024ce758e046b2c57c352199ed9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20B=2E=20Preu=C3=9Fer?= <thomas.preusser@xilinx.com> Date: Thu, 5 May 2022 13:44:53 +0100 Subject: [PATCH] Generic top-level macro customizable through command-line defines. --- finn-rtllib/checksum/checksum.cpp | 17 +---------------- finn-rtllib/checksum/checksum.hpp | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 16 deletions(-) diff --git a/finn-rtllib/checksum/checksum.cpp b/finn-rtllib/checksum/checksum.cpp index 494adee85..3ea3870d3 100644 --- a/finn-rtllib/checksum/checksum.cpp +++ b/finn-rtllib/checksum/checksum.cpp @@ -33,19 +33,4 @@ * *******************************************************************************/ #include "checksum.hpp" - - -using T = ap_uint<32>; - -void checksum_top( - hls::stream<T> &src, - hls::stream<T> &dst, - ap_uint<32> &chk -) { -#pragma HLS interface port=src axis -#pragma HLS interface port=dst axis -#pragma HLS interface port=chk ap_ovld -#pragma HLS interface port=return ap_ctrl_none -#pragma HLS dataflow - checksum<60, 4>(src, dst, chk); -} +CHECKSUM_TOP(WORDS_PER_FRAME, WORD_SIZE, ITEMS_PER_WORD) diff --git a/finn-rtllib/checksum/checksum.hpp b/finn-rtllib/checksum/checksum.hpp index ed45b5d57..e38b66b0b 100644 --- a/finn-rtllib/checksum/checksum.hpp +++ b/finn-rtllib/checksum/checksum.hpp @@ -112,3 +112,20 @@ void checksum( #pragma HLS reset variable=cnt chk = (cnt++, s); } + +#define CHECKSUM_TOP_(WORDS_PER_FRAME, WORD_SIZE, ITEMS_PER_WORD) \ + using T = ap_uint<WORD_SIZE>; \ + void checksum_ ## WORDS_PER_FRAME ## _ ## WORD_SIZE ## _ ## ITEMS_PER_WORD ( \ + hls::stream<T> &src, \ + hls::stream<T> &dst, \ + ap_uint<32> &chk \ + ) { \ + _Pragma("HLS interface port=src axis") \ + _Pragma("HLS interface port=dst axis") \ + _Pragma("HLS interface port=chk s_axilite") \ + _Pragma("HLS interface port=return ap_ctrl_none") \ + _Pragma("HLS dataflow") \ + checksum<WORDS_PER_FRAME, ITEMS_PER_WORD>(src, dst, chk); \ + } +#define CHECKSUM_TOP(WORDS_PER_FRAME, WORD_SIZE, ITEMS_PER_WORD) \ + CHECKSUM_TOP_(WORDS_PER_FRAME, WORD_SIZE, ITEMS_PER_WORD) -- GitLab