diff --git a/src/finn/custom_op/fpgadataflow/lookup.py b/src/finn/custom_op/fpgadataflow/lookup.py index d3c8af56edbeeb70182570129a76fa486bd3b6e2..6425edd56ef08db19064594b20d2d76c32952782 100644 --- a/src/finn/custom_op/fpgadataflow/lookup.py +++ b/src/finn/custom_op/fpgadataflow/lookup.py @@ -259,8 +259,8 @@ class Lookup(HLSCustomOp): ] elif mem_mode == "external": self.code_gen_dict["$DOCOMPUTE$"] = [ - """StreamingLookup_ext<EmbeddingSize> - (in0, out, mem, size, oob_count);""" + """StreamingLookup_ext<EmbeddingSize>(in0, out, mem, size, oob_count); + oob_irq = oob_count != 0;""" ] def blackboxfunction(self): @@ -279,7 +279,7 @@ class Lookup(HLSCustomOp): "void " + self.onnx_node.name + "(hls::stream<T_SRC> &in0, hls::stream<T_DST> &out, " - + "T_DST const *const mem, unsigned const size, unsigned &oob_count)" + + "T_DST const *const mem, unsigned const size, unsigned &oob_count, bool &oob_irq)" ] def pragmas(self): @@ -298,12 +298,9 @@ class Lookup(HLSCustomOp): elif mem_mode == "external": my_pragmas.append("#pragma HLS INTERFACE m_axi offset=slave port=mem") my_pragmas.append("#pragma HLS INTERFACE s_axilite port=mem bundle=control") - my_pragmas.append( - "#pragma HLS INTERFACE s_axilite port=size bundle=control" - ) - my_pragmas.append( - "#pragma HLS INTERFACE s_axilite port=oob_count bundle=control" - ) + my_pragmas.append("#pragma HLS INTERFACE s_axilite port=size bundle=control") + my_pragmas.append("#pragma HLS INTERFACE s_axilite port=oob_count bundle=control") + my_pragmas.append("#pragma HLS INTERFACE ap_none port=oob_irq") else: raise Exception("Unrecognized mem_mode: " + mem_mode) self.code_gen_dict["$PRAGMAS$"] = my_pragmas @@ -474,4 +471,5 @@ class Lookup(HLSCustomOp): if mem_mode == "external": intf_names["axilite"] = ["s_axi_control"] intf_names["aximm"] = [("m_axi_gmem", self.get_nodeattr("ext_mem_width"))] + intf_names["oob_irq"] = ["ap_none"] return intf_names