From ae2f76c38a7922c655f48bf0a97567d12073d919 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20B=2E=20Preu=C3=9Fer?= <thomas.preusser@xilinx.com> Date: Thu, 8 Sep 2022 13:37:39 +0100 Subject: [PATCH] Maintain static OOB count internally requiring explicit acknowledging reset. --- src/finn/custom_op/fpgadataflow/lookup.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/finn/custom_op/fpgadataflow/lookup.py b/src/finn/custom_op/fpgadataflow/lookup.py index 31344c9f1..98521a926 100644 --- a/src/finn/custom_op/fpgadataflow/lookup.py +++ b/src/finn/custom_op/fpgadataflow/lookup.py @@ -259,8 +259,20 @@ class Lookup(HLSCustomOp): ] elif mem_mode == "external": self.code_gen_dict["$DOCOMPUTE$"] = [ - """StreamingLookup_ext<EmbeddingSize>(in0, out, mem, size, oob_count); - oob_irq = oob_count != 0;""" + """ + static unsigned oob_count_li; + static unsigned oob_count_int; +#pragma HLS reset variable=oob_count_li +#pragma HLS reset variable=oob_count_int + + if(oob_count != oob_count_li) { + oob_count_int -= oob_count_li; + oob_count_li = oob_count; + } + StreamingLookup_ext<EmbeddingSize>(in0, out, mem, size, oob_count_int); + oob_count = oob_count_int; + oob_irq = (oob_count_int != 0); + """ ] def blackboxfunction(self): -- GitLab