diff --git a/src/finn/custom_op/fpgadataflow/lookup.py b/src/finn/custom_op/fpgadataflow/lookup.py index 31344c9f1bd43bfe10489f938174a1137faa30c8..98521a926446b642295b948be6fc420dbb1cd071 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):