diff --git a/artiq/gateware/targets/kc705.py b/artiq/gateware/targets/kc705.py
index 617f0431d..71c069281 100755
--- a/artiq/gateware/targets/kc705.py
+++ b/artiq/gateware/targets/kc705.py
@@ -118,6 +118,12 @@ class _NIST_QCx(MiniSoC, AMPSoC):
                          ident=artiq_version,
                          **kwargs)
         AMPSoC.__init__(self)
+        if isinstance(self.platform.toolchain, XilinxVivadoToolchain):
+            self.platform.toolchain.bitstream_commands.extend([
+                "set_property BITSTREAM.GENERAL.COMPRESS True [current_design]",
+            ])
+        if isinstance(self.platform.toolchain, XilinxISEToolchain):
+            self.platform.toolchain.bitgen_opt += " -g compress"
 
         self.submodules.leds = gpio.GPIOOut(Cat(
             self.platform.request("user_led", 0),
diff --git a/artiq/gateware/targets/pipistrello.py b/artiq/gateware/targets/pipistrello.py
index 11eef2072..450d6fa5d 100755
--- a/artiq/gateware/targets/pipistrello.py
+++ b/artiq/gateware/targets/pipistrello.py
@@ -126,6 +126,7 @@ class NIST_QC1(BaseSoC, AMPSoC):
 
         platform = self.platform
 
+        platform.toolchain.bitgen_opt += " -g compress"
         platform.toolchain.ise_commands += """
 trce -v 12 -fastpaths -tsi {build_name}.tsi -o {build_name}.twr {build_name}.ncd {build_name}.pcf
 """