diff --git a/tests/fpgadataflow/test_fpgadataflow_dwc.py b/tests/fpgadataflow/test_fpgadataflow_dwc.py index db756c6f7e4c8f2b4c92dc98034355181c5443cb..8fe1f35cb3b7726d880a8a53a20fd6c57afebcf0 100644 --- a/tests/fpgadataflow/test_fpgadataflow_dwc.py +++ b/tests/fpgadataflow/test_fpgadataflow_dwc.py @@ -37,8 +37,8 @@ from qonnx.util.basic import gen_finn_dt_tensor import finn.core.onnx_exec as oxe from finn.transformation.fpgadataflow.create_stitched_ip import CreateStitchedIP from finn.transformation.fpgadataflow.hlssynth_ip import HLSSynthIP +from finn.transformation.fpgadataflow.insert_fifo import InsertFIFO from finn.transformation.fpgadataflow.prepare_ip import PrepareIP -from finn.transformation.fpgadataflow.set_exec_mode import SetExecMode def make_single_dwc_modelwrapper(Shape, INWidth, OUTWidth, finn_dtype): @@ -46,6 +46,10 @@ def make_single_dwc_modelwrapper(Shape, INWidth, OUTWidth, finn_dtype): inp = helper.make_tensor_value_info("inp", TensorProto.FLOAT, Shape) outp = helper.make_tensor_value_info("outp", TensorProto.FLOAT, Shape) + max_w = max(OUTWidth, INWidth) + min_w = min(OUTWidth, INWidth) + impl_style = "hls" if max_w % min_w == 0 else "vivado" + DWC_node = helper.make_node( "StreamingDataWidthConverter_Batch", ["inp"], @@ -56,6 +60,7 @@ def make_single_dwc_modelwrapper(Shape, INWidth, OUTWidth, finn_dtype): inWidth=INWidth, outWidth=OUTWidth, dataType=str(finn_dtype.name), + impl_style=impl_style, ) graph = helper.make_graph( @@ -76,13 +81,17 @@ def prepare_inputs(input_tensor, dt): # shape -@pytest.mark.parametrize("Shape", [[1, 4], [1, 2, 8]]) +# @pytest.mark.parametrize("Shape", [[1, 4], [1, 2, 8]]) +@pytest.mark.parametrize("Shape", [[1, 24]]) # inWidth -@pytest.mark.parametrize("INWidth", [2, 4]) +# @pytest.mark.parametrize("INWidth", [2, 4]) +@pytest.mark.parametrize("INWidth", [6]) # outWidth -@pytest.mark.parametrize("OUTWidth", [2, 4]) +# @pytest.mark.parametrize("OUTWidth", [2, 4]) +@pytest.mark.parametrize("OUTWidth", [4]) # finn_dtype -@pytest.mark.parametrize("finn_dtype", [DataType["BIPOLAR"], DataType["INT2"]]) +# @pytest.mark.parametrize("finn_dtype", [DataType["BIPOLAR"], DataType["INT2"]]) +@pytest.mark.parametrize("finn_dtype", [DataType["INT2"]]) @pytest.mark.fpgadataflow @pytest.mark.slow @pytest.mark.vivado @@ -94,13 +103,13 @@ def test_fpgadataflow_dwc_rtlsim(Shape, INWidth, OUTWidth, finn_dtype): input_dict = prepare_inputs(x, finn_dtype) model = make_single_dwc_modelwrapper(Shape, INWidth, OUTWidth, finn_dtype) - - model = model.transform(SetExecMode("rtlsim")) + model = model.transform(InsertFIFO(create_shallow_fifos=True)) model = model.transform(GiveUniqueNodeNames()) model = model.transform(PrepareIP(test_fpga_part, 5)) model = model.transform(HLSSynthIP()) model = model.transform(CreateStitchedIP(test_fpga_part, target_clk_ns)) model.set_metadata_prop("exec_mode", "rtlsim") + model.set_metadata_prop("rtlsim_trace", "dwc.vcd") y = oxe.execute_onnx(model, input_dict)["outp"]