diff --git a/src/finn/analysis/fpgadataflow/hls_synth_res_estimation.py b/src/finn/analysis/fpgadataflow/hls_synth_res_estimation.py
index d2fc9bd37ae74917b93c50afc7340f9fb6c7b8c0..68738aba93b25950cc350caf2a3f87d4eb6dcbcc 100644
--- a/src/finn/analysis/fpgadataflow/hls_synth_res_estimation.py
+++ b/src/finn/analysis/fpgadataflow/hls_synth_res_estimation.py
@@ -60,14 +60,12 @@ def hls_synth_res_estimation(model):
                     )
 
                     if os.path.isfile(xmlfile):
-                        res_dict[node.name] = []
+                        res_dict[node.name] = dict()
                         tree = ET.parse(xmlfile)
                         root = tree.getroot()
                         for item in root.findall("AreaEstimates/Resources"):
                             for child in item:
-                                res_dict[node.name].append(
-                                    "{} : {}".format(child.tag, child.text)
-                                )
+                                res_dict[node.name][child.tag] = child.text
                     else:
                         raise Exception(
                             """Please run "HLSSynth_IPGen" first
diff --git a/src/finn/custom_op/fpgadataflow/__init__.py b/src/finn/custom_op/fpgadataflow/__init__.py
index fb302027b8a6b67ebb0bdb467926eedfda9c5b0d..c4ee7944cf8ceea48bc419c48b8f0d5dbd7cd70f 100644
--- a/src/finn/custom_op/fpgadataflow/__init__.py
+++ b/src/finn/custom_op/fpgadataflow/__init__.py
@@ -79,11 +79,11 @@ class HLSCustomOp(CustomOp):
 
     def node_res_estimation(self):
         """Returns summarized resource estimation of BRAMs and LUTs
-        of the node."""
-        resources = []
-        resources.append("BRAM_18K: " + str(self.bram_estimation()))
-        resources.append("LUT: " + str(self.lut_estimation()))
-        return resources
+        of the node as a dictionary."""
+        ret = dict()
+        ret["BRAM_18K"] = self.bram_estimation()
+        ret["LUT"] = self.lut_estimation()
+        return ret
 
     def bram_estimation(self):
         """Function for BRAM resource estimation, is member function of
diff --git a/src/finn/transformation/fpgadataflow/annotate_resources.py b/src/finn/transformation/fpgadataflow/annotate_resources.py
index e7f5aa6867ed62d4f47ad27ac6e151c73aac4b59..4806c2eb63e05ecb55a10ac4311dff4e477f9175 100644
--- a/src/finn/transformation/fpgadataflow/annotate_resources.py
+++ b/src/finn/transformation/fpgadataflow/annotate_resources.py
@@ -58,9 +58,9 @@ class AnnotateResources(Transformation):
         res_dict = model.analysis(res_fxn)
         total_dict = {}
         for lname in res_dict.keys():
-            layer_res = res_dict[lname]
-            for res_entry in layer_res:
-                r_type, r_amount = res_entry.split(": ")
+            layer_res_dict = res_dict[lname]
+            for r_type in layer_res_dict.keys():
+                r_amount = layer_res_dict[r_type]
                 r_amount = float(r_amount)
                 if r_type in total_dict.keys():
                     total_dict[r_type] += r_amount