diff --git a/src/finn/transformation/fpgadataflow/vitis_build.py b/src/finn/transformation/fpgadataflow/vitis_build.py
index 047480897b435a3de0f9746e52aa7c3eb634385c..864f8d06d8a581041476a58c45187cd99bb9c062 100644
--- a/src/finn/transformation/fpgadataflow/vitis_build.py
+++ b/src/finn/transformation/fpgadataflow/vitis_build.py
@@ -177,11 +177,15 @@ class VitisLink(Transformation):
     ModelProto's metadata_props field with the XCLBIN full path as value.
     """
 
-    def __init__(self, platform, f_mhz=200, strategy=VitisOptStrategy.PERFORMANCE):
+    def __init__(
+        self, platform, f_mhz=200, strategy=VitisOptStrategy.PERFORMANCE,
+        enable_debug=False
+    ):
         super().__init__()
         self.platform = platform
         self.f_mhz = f_mhz
         self.strategy = strategy
+        self.enable_debug = enable_debug
 
     def apply(self, model):
         _check_vitis_envvars()
@@ -258,6 +262,11 @@ class VitisLink(Transformation):
         with open(link_dir + "/gen_report_xml.tcl", "w") as f:
             f.write(gen_rep_xml)
 
+        debug_commands = []
+        if self.enable_debug:
+            for inst in list(instance_names.values()):
+                debug_commands.append("--dk chipscope:%s" % inst)
+
         # create a shell script and call Vitis
         script = link_dir + "/run_vitis_link.sh"
         working_dir = os.environ["PWD"]
@@ -267,12 +276,13 @@ class VitisLink(Transformation):
             f.write(
                 "v++ -t hw --platform %s --link %s"
                 " --kernel_frequency %d --config config.txt --optimize %s"
-                " --save-temps -R2\n"
+                " --save-temps -R2 %s\n"
                 % (
                     self.platform,
                     " ".join(object_files),
                     self.f_mhz,
                     self.strategy.value,
+                    debug_commands,
                 )
             )
             f.write("cd {}\n".format(working_dir))
@@ -309,13 +319,16 @@ class VitisBuild(Transformation):
     """Best-effort attempt at building the accelerator with Vitis."""
 
     def __init__(
-        self, fpga_part, period_ns, platform, strategy=VitisOptStrategy.PERFORMANCE
+        self, fpga_part, period_ns, platform,
+        strategy=VitisOptStrategy.PERFORMANCE,
+        enable_debug=False
     ):
         super().__init__()
         self.fpga_part = fpga_part
         self.period_ns = period_ns
         self.platform = platform
         self.strategy = strategy
+        self.enable_debug = enable_debug
 
     def apply(self, model):
         _check_vitis_envvars()
@@ -363,7 +376,8 @@ class VitisBuild(Transformation):
         # Assemble design from kernels
         model = model.transform(
             VitisLink(
-                self.platform, round(1000 / self.period_ns), strategy=self.strategy
+                self.platform, round(1000 / self.period_ns), strategy=self.strategy,
+                enable_debug=self.enable_debug
             )
         )
         # set platform attribute for correct remote execution