diff --git a/src/finn/transformation/fpgadataflow/make_zynq_proj.py b/src/finn/transformation/fpgadataflow/make_zynq_proj.py
index b24bae203ca32c88831e86e9d0ac97e553774f02..7b6037d5473cf14a3c078dc461cf4aa23f4f414d 100644
--- a/src/finn/transformation/fpgadataflow/make_zynq_proj.py
+++ b/src/finn/transformation/fpgadataflow/make_zynq_proj.py
@@ -258,6 +258,9 @@ class MakeZYNQProject(Transformation):
             raise Exception("Synthesis failed, no hardware handoff file found")
         deploy_hwh_name = vivado_pynq_proj_dir + "/resizer.hwh"
         copy(hwh_name, deploy_hwh_name)
+        # filename for the synth utilization report
+        synth_report_filename = vivado_pynq_proj_dir + "/synth_report.xml"
+        model.set_metadata_prop("vivado_synth_rpt", synth_report_filename)
         return (model, False)
 
 
diff --git a/src/finn/transformation/fpgadataflow/templates.py b/src/finn/transformation/fpgadataflow/templates.py
index 9099c3f841945a730e685e1f636ade1ed7537845..bb4583ef47dc32ebfed5ae89e8f79eb46242a683 100644
--- a/src/finn/transformation/fpgadataflow/templates.py
+++ b/src/finn/transformation/fpgadataflow/templates.py
@@ -395,4 +395,7 @@ make_wrapper -files [get_files top.bd] -import -fileset sources_1 -top
 launch_runs -to_step write_bitstream impl_1 -jobs %d
 wait_on_run [get_runs impl_1]
 
+# generate synthesis report
+open_run synth_1 -name synth_1
+report_utilization -hierarchical -hierarchical_depth 4 -file synth_report.xml -format xml
 """