diff --git a/src/finn/custom_op/fpgadataflow/thresholding_batch.py b/src/finn/custom_op/fpgadataflow/thresholding_batch.py index 0ab987c3d813b9d825f9b49111d717370717372f..173882bf929611f6cd9f560f48a46dfe09430622 100644 --- a/src/finn/custom_op/fpgadataflow/thresholding_batch.py +++ b/src/finn/custom_op/fpgadataflow/thresholding_batch.py @@ -937,3 +937,8 @@ class Thresholding_Batch(HLSCustomOp): thres_count = out_features * num_steps ret_dict[thres_param_type] = thres_count return ret_dict + + def ipgen_extra_directives(self): + "Return a list of extra tcl directives for HLS synthesis." + + return ["config_compile -pipeline_style frp"] diff --git a/tests/fpgadataflow/test_fpgadataflow_thresholding.py b/tests/fpgadataflow/test_fpgadataflow_thresholding.py index f8ca1db586b4864c8f2102db77b8587e2890668c..24f188175ce00fec4626b03101c77be061be9479 100644 --- a/tests/fpgadataflow/test_fpgadataflow_thresholding.py +++ b/tests/fpgadataflow/test_fpgadataflow_thresholding.py @@ -165,6 +165,8 @@ def test_fpgadataflow_thresholding(idt, act, nf, ich, exec_mode, mem_mode): # multithreshold util fxn wants NCHW input, not NHWC y = multithreshold(np.transpose(x, (0, 3, 1, 2)), T) + # convert back to NHWC for comparison to hw outputs + y = np.transpose(y, (0, 2, 3, 1)) if act == DataType["BIPOLAR"]: # binary to bipolar y = 2 * y - 1 @@ -258,7 +260,13 @@ def test_runtime_thresholds_single_layer(): # only use second batch element in output; first will be invalid due to # old weights (see above) y = exec_ctx["outp"][1] - expected = multithreshold(in_tensor, T)[1] + + # multithreshold util fxn wants NCHW input, not NHWC + expected = multithreshold(np.transpose(in_tensor, (0, 3, 1, 2)), T) + # convert back to NHWC for comparison to hw outputs + expected = np.transpose(expected, (0, 2, 3, 1))[1] + + # expected = multithreshold(in_tensor, T)[1] if act == DataType["BIPOLAR"]: # binary to bipolar expected = 2 * expected - 1