From d2be2418724e467027cf0f4191ff57d2aeb8b28a Mon Sep 17 00:00:00 2001
From: auphelia <jakobapk@web.de>
Date: Tue, 28 Jan 2020 12:43:32 +0000
Subject: [PATCH] [Analysis pass] Added resource estimation analysis pass

---
 .../analysis/fpgadataflow/res_estimation.py   | 20 +++++++++++++++++++
 1 file changed, 20 insertions(+)
 create mode 100644 src/finn/analysis/fpgadataflow/res_estimation.py

diff --git a/src/finn/analysis/fpgadataflow/res_estimation.py b/src/finn/analysis/fpgadataflow/res_estimation.py
new file mode 100644
index 000000000..8004e2798
--- /dev/null
+++ b/src/finn/analysis/fpgadataflow/res_estimation.py
@@ -0,0 +1,20 @@
+import finn.custom_op.registry as registry
+import finn.core.utils as util
+
+def res_estimation(model):
+    """Estimates the resources needed for the given model.
+    Returns {node op_type : resource estimation}"""
+
+    res_dict = {}
+    for node in model.graph.node:
+        if node.domain == "finn":
+            backend_attribute = util.get_by_name(node.attribute, "backend")
+            if backend_attribute is None:
+                continue
+            backend_value = backend_attribute.s.decode("UTF-8")
+            if backend_value == "fpgadataflow":
+                op_type = node.op_type
+                inst = registry.custom_op[op_type](node)
+                res_dict[op_type] = inst.node_res_estimation()
+
+    return res_dict
-- 
GitLab