From bea06b8aaae00474b7c3af5f875795f90ba8bed3 Mon Sep 17 00:00:00 2001
From: Yaman Umuroglu <maltanar@gmail.com>
Date: Fri, 12 Aug 2022 17:49:36 +0200
Subject: [PATCH] [Test] generalize fifosizing test to enable more nets

---
 tests/fpgadataflow/test_fifosizing.py | 17 ++++++++++++-----
 1 file changed, 12 insertions(+), 5 deletions(-)

diff --git a/tests/fpgadataflow/test_fifosizing.py b/tests/fpgadataflow/test_fifosizing.py
index 34875e897..7287861d5 100644
--- a/tests/fpgadataflow/test_fifosizing.py
+++ b/tests/fpgadataflow/test_fifosizing.py
@@ -26,12 +26,11 @@
 # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-import pkg_resources as pk
-
 import pytest
 
 import json
 import shutil
+from brevitas.export.onnx.generic.manager import BrevitasONNXManager
 from qonnx.transformation.general import GiveUniqueNodeNames
 
 import finn.builder.build_dataflow as build
@@ -46,6 +45,7 @@ from finn.transformation.fpgadataflow.insert_dwc import InsertDWC
 from finn.transformation.fpgadataflow.prepare_ip import PrepareIP
 from finn.transformation.fpgadataflow.prepare_rtlsim import PrepareRTLSim
 from finn.util.basic import make_build_dir
+from finn.util.test import get_trained_network_and_ishape
 
 
 def custom_step_fifosize(model, cfg):
@@ -62,11 +62,18 @@ def custom_step_fifosize(model, cfg):
     return model
 
 
+def fetch_test_model(topology, wbits=2, abits=2):
+    tmp_output_dir = make_build_dir("build_fifosizing_%s_" % topology)
+    (model, ishape) = get_trained_network_and_ishape(topology, wbits, abits)
+    chkpt_name = tmp_output_dir + "/model.onnx"
+    BrevitasONNXManager.export(model, ishape, chkpt_name)
+    return tmp_output_dir
+
+
 @pytest.mark.slow
 @pytest.mark.vivado
 def test_fifosizing():
-    chkpt_name = pk.resource_filename("finn.qnn-data", "build_dataflow/model.onnx")
-    tmp_output_dir = make_build_dir("build_fifosizing_")
+    tmp_output_dir = fetch_test_model("tfc")
     steps = build_cfg.default_build_dataflow_steps
     steps.insert(10, custom_step_fifosize)
     cfg = build_cfg.DataflowBuildConfig(
@@ -85,7 +92,7 @@ def test_fifosizing():
         steps=steps,
         default_mem_mode=build_cfg.ComputeEngineMemMode.DECOUPLED,
     )
-    build.build_dataflow_cfg(chkpt_name, cfg)
+    build.build_dataflow_cfg(tmp_output_dir + "/model.onnx", cfg)
     with open(tmp_output_dir + "/report/estimate_network_performance.json") as f:
         est_data = json.load(f)
     with open(tmp_output_dir + "/report/rtlsim_performance.json") as f:
-- 
GitLab