refactor: Move fuzzers to ECP5 folder

Signed-off-by: David Shah <dave@ds0.me>
diff --git a/fuzzers/001-plc2_routing/fuzzer.py b/fuzzers/ECP5/001-plc2_routing/fuzzer.py
similarity index 94%
rename from fuzzers/001-plc2_routing/fuzzer.py
rename to fuzzers/ECP5/001-plc2_routing/fuzzer.py
index 762473e..14ebcaf 100644
--- a/fuzzers/001-plc2_routing/fuzzer.py
+++ b/fuzzers/ECP5/001-plc2_routing/fuzzer.py
@@ -8,7 +8,7 @@
 
 
 def main():
-    pytrellis.load_database("../../database")
+    pytrellis.load_database("../../../database")
     cfg.setup()
 
     span1_re = re.compile(r'R\d+C\d+_[VH]01[NESWTLBR]\d{4}')
diff --git a/fuzzers/001-plc2_routing/plc2route.ncl b/fuzzers/ECP5/001-plc2_routing/plc2route.ncl
similarity index 100%
rename from fuzzers/001-plc2_routing/plc2route.ncl
rename to fuzzers/ECP5/001-plc2_routing/plc2route.ncl
diff --git a/fuzzers/003-lut_init/empty.ncl b/fuzzers/ECP5/003-lut_init/empty.ncl
similarity index 100%
rename from fuzzers/003-lut_init/empty.ncl
rename to fuzzers/ECP5/003-lut_init/empty.ncl
diff --git a/fuzzers/003-lut_init/fuzzer.py b/fuzzers/ECP5/003-lut_init/fuzzer.py
similarity index 95%
rename from fuzzers/003-lut_init/fuzzer.py
rename to fuzzers/ECP5/003-lut_init/fuzzer.py
index 662d296..a9a0e1a 100644
--- a/fuzzers/003-lut_init/fuzzer.py
+++ b/fuzzers/ECP5/003-lut_init/fuzzer.py
@@ -28,7 +28,7 @@
 
 
 def main():
-    pytrellis.load_database("../../database")
+    pytrellis.load_database("../../../database")
     cfg.setup()
     empty_bitfile = cfg.build_design(cfg.ncl, {})
     cfg.ncl = "lut.ncl"
diff --git a/fuzzers/003-lut_init/lut.ncl b/fuzzers/ECP5/003-lut_init/lut.ncl
similarity index 100%
rename from fuzzers/003-lut_init/lut.ncl
rename to fuzzers/ECP5/003-lut_init/lut.ncl
diff --git a/fuzzers/005-reg_config/empty.ncl b/fuzzers/ECP5/005-reg_config/empty.ncl
similarity index 100%
rename from fuzzers/005-reg_config/empty.ncl
rename to fuzzers/ECP5/005-reg_config/empty.ncl
diff --git a/fuzzers/005-reg_config/fuzzer.py b/fuzzers/ECP5/005-reg_config/fuzzer.py
similarity index 96%
rename from fuzzers/005-reg_config/fuzzer.py
rename to fuzzers/ECP5/005-reg_config/fuzzer.py
index 2fa2949..fb16ab4 100644
--- a/fuzzers/005-reg_config/fuzzer.py
+++ b/fuzzers/ECP5/005-reg_config/fuzzer.py
@@ -9,7 +9,7 @@
 
 
 def main():
-    pytrellis.load_database("../../database")
+    pytrellis.load_database("../../../database")
     cfg.setup()
     empty_bitfile = cfg.build_design(cfg.ncl, {})
     cfg.ncl = "reg.ncl"
diff --git a/fuzzers/005-reg_config/reg.ncl b/fuzzers/ECP5/005-reg_config/reg.ncl
similarity index 100%
rename from fuzzers/005-reg_config/reg.ncl
rename to fuzzers/ECP5/005-reg_config/reg.ncl
diff --git a/fuzzers/007-plc2_cemux/cemux.ncl b/fuzzers/ECP5/007-plc2_cemux/cemux.ncl
similarity index 100%
rename from fuzzers/007-plc2_cemux/cemux.ncl
rename to fuzzers/ECP5/007-plc2_cemux/cemux.ncl
diff --git a/fuzzers/007-plc2_cemux/empty.ncl b/fuzzers/ECP5/007-plc2_cemux/empty.ncl
similarity index 100%
rename from fuzzers/007-plc2_cemux/empty.ncl
rename to fuzzers/ECP5/007-plc2_cemux/empty.ncl
diff --git a/fuzzers/007-plc2_cemux/fuzzer.py b/fuzzers/ECP5/007-plc2_cemux/fuzzer.py
similarity index 94%
rename from fuzzers/007-plc2_cemux/fuzzer.py
rename to fuzzers/ECP5/007-plc2_cemux/fuzzer.py
index a4eddd0..4c134c6 100644
--- a/fuzzers/007-plc2_cemux/fuzzer.py
+++ b/fuzzers/ECP5/007-plc2_cemux/fuzzer.py
@@ -9,7 +9,7 @@
 
 
 def main():
-    pytrellis.load_database("../../database")
+    pytrellis.load_database("../../../database")
     cfg.setup()
     empty_bitfile = cfg.build_design(cfg.ncl, {})
     cfg.ncl = "cemux.ncl"
diff --git a/fuzzers/008-plc2_clkmux/clkmux.ncl b/fuzzers/ECP5/008-plc2_clkmux/clkmux.ncl
similarity index 100%
rename from fuzzers/008-plc2_clkmux/clkmux.ncl
rename to fuzzers/ECP5/008-plc2_clkmux/clkmux.ncl
diff --git a/fuzzers/008-plc2_clkmux/empty.ncl b/fuzzers/ECP5/008-plc2_clkmux/empty.ncl
similarity index 100%
rename from fuzzers/008-plc2_clkmux/empty.ncl
rename to fuzzers/ECP5/008-plc2_clkmux/empty.ncl
diff --git a/fuzzers/008-plc2_clkmux/fuzzer.py b/fuzzers/ECP5/008-plc2_clkmux/fuzzer.py
similarity index 94%
rename from fuzzers/008-plc2_clkmux/fuzzer.py
rename to fuzzers/ECP5/008-plc2_clkmux/fuzzer.py
index fc1df15..d9d0ebc 100644
--- a/fuzzers/008-plc2_clkmux/fuzzer.py
+++ b/fuzzers/ECP5/008-plc2_clkmux/fuzzer.py
@@ -9,7 +9,7 @@
 
 
 def main():
-    pytrellis.load_database("../../database")
+    pytrellis.load_database("../../../database")
     cfg.setup()
     empty_bitfile = cfg.build_design(cfg.ncl, {})
     cfg.ncl = "clkmux.ncl"
diff --git a/fuzzers/009-plc2_lsr/empty.ncl b/fuzzers/ECP5/009-plc2_lsr/empty.ncl
similarity index 100%
rename from fuzzers/009-plc2_lsr/empty.ncl
rename to fuzzers/ECP5/009-plc2_lsr/empty.ncl
diff --git a/fuzzers/009-plc2_lsr/fuzzer.py b/fuzzers/ECP5/009-plc2_lsr/fuzzer.py
similarity index 95%
rename from fuzzers/009-plc2_lsr/fuzzer.py
rename to fuzzers/ECP5/009-plc2_lsr/fuzzer.py
index 185561c..20aa9dc 100644
--- a/fuzzers/009-plc2_lsr/fuzzer.py
+++ b/fuzzers/ECP5/009-plc2_lsr/fuzzer.py
@@ -9,7 +9,7 @@
 
 
 def main():
-    pytrellis.load_database("../../database")
+    pytrellis.load_database("../../../database")
     cfg.setup()
     empty_bitfile = cfg.build_design(cfg.ncl, {})
     cfg.ncl = "lsr.ncl"
diff --git a/fuzzers/009-plc2_lsr/lsr.ncl b/fuzzers/ECP5/009-plc2_lsr/lsr.ncl
similarity index 100%
rename from fuzzers/009-plc2_lsr/lsr.ncl
rename to fuzzers/ECP5/009-plc2_lsr/lsr.ncl
diff --git a/fuzzers/010-plc2_modes/empty.ncl b/fuzzers/ECP5/010-plc2_modes/empty.ncl
similarity index 100%
rename from fuzzers/010-plc2_modes/empty.ncl
rename to fuzzers/ECP5/010-plc2_modes/empty.ncl
diff --git a/fuzzers/010-plc2_modes/fuzzer.py b/fuzzers/ECP5/010-plc2_modes/fuzzer.py
similarity index 94%
rename from fuzzers/010-plc2_modes/fuzzer.py
rename to fuzzers/ECP5/010-plc2_modes/fuzzer.py
index 6240548..2bf8ede 100644
--- a/fuzzers/010-plc2_modes/fuzzer.py
+++ b/fuzzers/ECP5/010-plc2_modes/fuzzer.py
@@ -9,7 +9,7 @@
 
 
 def main():
-    pytrellis.load_database("../../database")
+    pytrellis.load_database("../../../database")
     cfg.setup()
     empty_bitfile = cfg.build_design(cfg.ncl, {})
     cfg.ncl = "modes.ncl"
diff --git a/fuzzers/010-plc2_modes/modes.ncl b/fuzzers/ECP5/010-plc2_modes/modes.ncl
similarity index 100%
rename from fuzzers/010-plc2_modes/modes.ncl
rename to fuzzers/ECP5/010-plc2_modes/modes.ncl
diff --git a/fuzzers/011-ccu2_inject/ccu2.ncl b/fuzzers/ECP5/011-ccu2_inject/ccu2.ncl
similarity index 100%
rename from fuzzers/011-ccu2_inject/ccu2.ncl
rename to fuzzers/ECP5/011-ccu2_inject/ccu2.ncl
diff --git a/fuzzers/011-ccu2_inject/empty.ncl b/fuzzers/ECP5/011-ccu2_inject/empty.ncl
similarity index 100%
rename from fuzzers/011-ccu2_inject/empty.ncl
rename to fuzzers/ECP5/011-ccu2_inject/empty.ncl
diff --git a/fuzzers/011-ccu2_inject/fuzzer.py b/fuzzers/ECP5/011-ccu2_inject/fuzzer.py
similarity index 95%
rename from fuzzers/011-ccu2_inject/fuzzer.py
rename to fuzzers/ECP5/011-ccu2_inject/fuzzer.py
index b8de8b7..7f7b737 100644
--- a/fuzzers/011-ccu2_inject/fuzzer.py
+++ b/fuzzers/ECP5/011-ccu2_inject/fuzzer.py
@@ -9,7 +9,7 @@
 
 
 def main():
-    pytrellis.load_database("../../database")
+    pytrellis.load_database("../../../database")
     cfg.setup()
     empty_bitfile = cfg.build_design(cfg.ncl, {})
     cfg.ncl = "ccu2.ncl"
diff --git a/fuzzers/012-ccu2_nmux/ccu2.ncl b/fuzzers/ECP5/012-ccu2_nmux/ccu2.ncl
similarity index 100%
rename from fuzzers/012-ccu2_nmux/ccu2.ncl
rename to fuzzers/ECP5/012-ccu2_nmux/ccu2.ncl
diff --git a/fuzzers/012-ccu2_nmux/empty.ncl b/fuzzers/ECP5/012-ccu2_nmux/empty.ncl
similarity index 100%
rename from fuzzers/012-ccu2_nmux/empty.ncl
rename to fuzzers/ECP5/012-ccu2_nmux/empty.ncl
diff --git a/fuzzers/012-ccu2_nmux/fuzzer.py b/fuzzers/ECP5/012-ccu2_nmux/fuzzer.py
similarity index 95%
rename from fuzzers/012-ccu2_nmux/fuzzer.py
rename to fuzzers/ECP5/012-ccu2_nmux/fuzzer.py
index 1b700e3..8141928 100644
--- a/fuzzers/012-ccu2_nmux/fuzzer.py
+++ b/fuzzers/ECP5/012-ccu2_nmux/fuzzer.py
@@ -9,7 +9,7 @@
 
 
 def main():
-    pytrellis.load_database("../../database")
+    pytrellis.load_database("../../../database")
     cfg.setup()
     empty_bitfile = cfg.build_design(cfg.ncl, {})
     cfg.ncl = "ccu2.ncl"
diff --git a/fuzzers/013-plc2_mkmux/empty.ncl b/fuzzers/ECP5/013-plc2_mkmux/empty.ncl
similarity index 100%
rename from fuzzers/013-plc2_mkmux/empty.ncl
rename to fuzzers/ECP5/013-plc2_mkmux/empty.ncl
diff --git a/fuzzers/013-plc2_mkmux/fuzzer.py b/fuzzers/ECP5/013-plc2_mkmux/fuzzer.py
similarity index 95%
rename from fuzzers/013-plc2_mkmux/fuzzer.py
rename to fuzzers/ECP5/013-plc2_mkmux/fuzzer.py
index ec56599..f1f7aaf 100644
--- a/fuzzers/013-plc2_mkmux/fuzzer.py
+++ b/fuzzers/ECP5/013-plc2_mkmux/fuzzer.py
@@ -9,7 +9,7 @@
 
 
 def main():
-    pytrellis.load_database("../../database")
+    pytrellis.load_database("../../../database")
     cfg.setup()
     empty_bitfile = cfg.build_design(cfg.ncl, {})
     cfg.ncl = "mkmux.ncl"
diff --git a/fuzzers/013-plc2_mkmux/mkmux.ncl b/fuzzers/ECP5/013-plc2_mkmux/mkmux.ncl
similarity index 100%
rename from fuzzers/013-plc2_mkmux/mkmux.ncl
rename to fuzzers/ECP5/013-plc2_mkmux/mkmux.ncl
diff --git a/fuzzers/014-plc2_wremux/empty.ncl b/fuzzers/ECP5/014-plc2_wremux/empty.ncl
similarity index 100%
rename from fuzzers/014-plc2_wremux/empty.ncl
rename to fuzzers/ECP5/014-plc2_wremux/empty.ncl
diff --git a/fuzzers/014-plc2_wremux/fuzzer.py b/fuzzers/ECP5/014-plc2_wremux/fuzzer.py
similarity index 94%
rename from fuzzers/014-plc2_wremux/fuzzer.py
rename to fuzzers/ECP5/014-plc2_wremux/fuzzer.py
index c200a45..44d3897 100644
--- a/fuzzers/014-plc2_wremux/fuzzer.py
+++ b/fuzzers/ECP5/014-plc2_wremux/fuzzer.py
@@ -9,7 +9,7 @@
 
 
 def main():
-    pytrellis.load_database("../../database")
+    pytrellis.load_database("../../../database")
     cfg.setup()
     empty_bitfile = cfg.build_design(cfg.ncl, {})
     cfg.ncl = "wremux.ncl"
diff --git a/fuzzers/014-plc2_wremux/wremux.ncl b/fuzzers/ECP5/014-plc2_wremux/wremux.ncl
similarity index 100%
rename from fuzzers/014-plc2_wremux/wremux.ncl
rename to fuzzers/ECP5/014-plc2_wremux/wremux.ncl
diff --git a/fuzzers/017-patch_carry/fuzzer.py b/fuzzers/ECP5/017-patch_carry/fuzzer.py
similarity index 85%
rename from fuzzers/017-patch_carry/fuzzer.py
rename to fuzzers/ECP5/017-patch_carry/fuzzer.py
index 02b70f1..a543e5c 100755
--- a/fuzzers/017-patch_carry/fuzzer.py
+++ b/fuzzers/ECP5/017-patch_carry/fuzzer.py
@@ -1,7 +1,7 @@
 import pytrellis
 
 def main():
-    pytrellis.load_database("../../database")
+    pytrellis.load_database("../../../database")
     db = pytrellis.get_tile_bitdata(pytrellis.TileLocator("ECP5", "LFE5U-25F", "PLC2"))
     fc = pytrellis.FixedConnection()
     fc.source = "FCO"
diff --git a/fuzzers/020-tap_drive/fuzzer.py b/fuzzers/ECP5/020-tap_drive/fuzzer.py
similarity index 95%
rename from fuzzers/020-tap_drive/fuzzer.py
rename to fuzzers/ECP5/020-tap_drive/fuzzer.py
index 614df82..5295981 100644
--- a/fuzzers/020-tap_drive/fuzzer.py
+++ b/fuzzers/ECP5/020-tap_drive/fuzzer.py
@@ -19,7 +19,7 @@
 
 
 def main():
-    pytrellis.load_database("../../database")
+    pytrellis.load_database("../../../database")
     for job in jobs:
         cfg = job["cfg"]
         cfg.setup()
diff --git a/fuzzers/020-tap_drive/tap.ncl b/fuzzers/ECP5/020-tap_drive/tap.ncl
similarity index 100%
rename from fuzzers/020-tap_drive/tap.ncl
rename to fuzzers/ECP5/020-tap_drive/tap.ncl
diff --git a/fuzzers/021-spine/fuzzer.py b/fuzzers/ECP5/021-spine/fuzzer.py
similarity index 98%
rename from fuzzers/021-spine/fuzzer.py
rename to fuzzers/ECP5/021-spine/fuzzer.py
index 01c9729..f7df298 100644
--- a/fuzzers/021-spine/fuzzer.py
+++ b/fuzzers/ECP5/021-spine/fuzzer.py
@@ -94,7 +94,7 @@
 
 
 def main():
-    pytrellis.load_database("../../database")
+    pytrellis.load_database("../../../database")
     for job in jobs:
         cfg = job["cfg"]
         cfg.setup()
diff --git a/fuzzers/021-spine/spine_25k.ncl b/fuzzers/ECP5/021-spine/spine_25k.ncl
similarity index 100%
rename from fuzzers/021-spine/spine_25k.ncl
rename to fuzzers/ECP5/021-spine/spine_25k.ncl
diff --git a/fuzzers/021-spine/spine_45k.ncl b/fuzzers/ECP5/021-spine/spine_45k.ncl
similarity index 100%
rename from fuzzers/021-spine/spine_45k.ncl
rename to fuzzers/ECP5/021-spine/spine_45k.ncl
diff --git a/fuzzers/021-spine/spine_85k.ncl b/fuzzers/ECP5/021-spine/spine_85k.ncl
similarity index 100%
rename from fuzzers/021-spine/spine_85k.ncl
rename to fuzzers/ECP5/021-spine/spine_85k.ncl
diff --git a/fuzzers/023-cmux/cmux_25k.ncl b/fuzzers/ECP5/023-cmux/cmux_25k.ncl
similarity index 100%
rename from fuzzers/023-cmux/cmux_25k.ncl
rename to fuzzers/ECP5/023-cmux/cmux_25k.ncl
diff --git a/fuzzers/023-cmux/cmux_45k.ncl b/fuzzers/ECP5/023-cmux/cmux_45k.ncl
similarity index 100%
rename from fuzzers/023-cmux/cmux_45k.ncl
rename to fuzzers/ECP5/023-cmux/cmux_45k.ncl
diff --git a/fuzzers/023-cmux/cmux_85k.ncl b/fuzzers/ECP5/023-cmux/cmux_85k.ncl
similarity index 100%
rename from fuzzers/023-cmux/cmux_85k.ncl
rename to fuzzers/ECP5/023-cmux/cmux_85k.ncl
diff --git a/fuzzers/023-cmux/fuzzer.py b/fuzzers/ECP5/023-cmux/fuzzer.py
similarity index 98%
rename from fuzzers/023-cmux/fuzzer.py
rename to fuzzers/ECP5/023-cmux/fuzzer.py
index b2e9f5f..4b7bb3c 100644
--- a/fuzzers/023-cmux/fuzzer.py
+++ b/fuzzers/ECP5/023-cmux/fuzzer.py
@@ -63,7 +63,7 @@
 
 
 def main():
-    pytrellis.load_database("../../database")
+    pytrellis.load_database("../../../database")
     for job in jobs:
         cfg = job["cfg"]
         cfg.setup()
diff --git a/fuzzers/025-midmux/emux_25k.ncl b/fuzzers/ECP5/025-midmux/emux_25k.ncl
similarity index 100%
rename from fuzzers/025-midmux/emux_25k.ncl
rename to fuzzers/ECP5/025-midmux/emux_25k.ncl
diff --git a/fuzzers/025-midmux/emux_45k.ncl b/fuzzers/ECP5/025-midmux/emux_45k.ncl
similarity index 100%
rename from fuzzers/025-midmux/emux_45k.ncl
rename to fuzzers/ECP5/025-midmux/emux_45k.ncl
diff --git a/fuzzers/025-midmux/emux_85k.ncl b/fuzzers/ECP5/025-midmux/emux_85k.ncl
similarity index 100%
rename from fuzzers/025-midmux/emux_85k.ncl
rename to fuzzers/ECP5/025-midmux/emux_85k.ncl
diff --git a/fuzzers/025-midmux/fuzzer.py b/fuzzers/ECP5/025-midmux/fuzzer.py
similarity index 98%
rename from fuzzers/025-midmux/fuzzer.py
rename to fuzzers/ECP5/025-midmux/fuzzer.py
index e14548d..03662ca 100644
--- a/fuzzers/025-midmux/fuzzer.py
+++ b/fuzzers/ECP5/025-midmux/fuzzer.py
@@ -145,7 +145,7 @@
 
 
 def main():
-    pytrellis.load_database("../../database")
+    pytrellis.load_database("../../../database")
     for job in jobs:
         cfg = job["cfg"]
         cfg.setup()
diff --git a/fuzzers/026-dcc/dcc.ncl b/fuzzers/ECP5/026-dcc/dcc.ncl
similarity index 100%
rename from fuzzers/026-dcc/dcc.ncl
rename to fuzzers/ECP5/026-dcc/dcc.ncl
diff --git a/fuzzers/026-dcc/empty.ncl b/fuzzers/ECP5/026-dcc/empty.ncl
similarity index 100%
rename from fuzzers/026-dcc/empty.ncl
rename to fuzzers/ECP5/026-dcc/empty.ncl
diff --git a/fuzzers/026-dcc/fuzzer.py b/fuzzers/ECP5/026-dcc/fuzzer.py
similarity index 96%
rename from fuzzers/026-dcc/fuzzer.py
rename to fuzzers/ECP5/026-dcc/fuzzer.py
index 72a3b5a..429408f 100644
--- a/fuzzers/026-dcc/fuzzer.py
+++ b/fuzzers/ECP5/026-dcc/fuzzer.py
@@ -17,7 +17,7 @@
 
 
 def main():
-    pytrellis.load_database("../../database")
+    pytrellis.load_database("../../../database")
 
     def per_job(job):
         cfg, side, N = job
diff --git a/fuzzers/027-dcs/dcs.ncl b/fuzzers/ECP5/027-dcs/dcs.ncl
similarity index 100%
rename from fuzzers/027-dcs/dcs.ncl
rename to fuzzers/ECP5/027-dcs/dcs.ncl
diff --git a/fuzzers/027-dcs/dcs_25k.ncl b/fuzzers/ECP5/027-dcs/dcs_25k.ncl
similarity index 100%
rename from fuzzers/027-dcs/dcs_25k.ncl
rename to fuzzers/ECP5/027-dcs/dcs_25k.ncl
diff --git a/fuzzers/027-dcs/dcs_85k.ncl b/fuzzers/ECP5/027-dcs/dcs_85k.ncl
similarity index 100%
rename from fuzzers/027-dcs/dcs_85k.ncl
rename to fuzzers/ECP5/027-dcs/dcs_85k.ncl
diff --git a/fuzzers/027-dcs/empty.ncl b/fuzzers/ECP5/027-dcs/empty.ncl
similarity index 100%
rename from fuzzers/027-dcs/empty.ncl
rename to fuzzers/ECP5/027-dcs/empty.ncl
diff --git a/fuzzers/027-dcs/empty_25k.ncl b/fuzzers/ECP5/027-dcs/empty_25k.ncl
similarity index 100%
rename from fuzzers/027-dcs/empty_25k.ncl
rename to fuzzers/ECP5/027-dcs/empty_25k.ncl
diff --git a/fuzzers/027-dcs/empty_85k.ncl b/fuzzers/ECP5/027-dcs/empty_85k.ncl
similarity index 100%
rename from fuzzers/027-dcs/empty_85k.ncl
rename to fuzzers/ECP5/027-dcs/empty_85k.ncl
diff --git a/fuzzers/027-dcs/fuzzer.py b/fuzzers/ECP5/027-dcs/fuzzer.py
similarity index 97%
rename from fuzzers/027-dcs/fuzzer.py
rename to fuzzers/ECP5/027-dcs/fuzzer.py
index e25b85c..9de9768 100644
--- a/fuzzers/027-dcs/fuzzer.py
+++ b/fuzzers/ECP5/027-dcs/fuzzer.py
@@ -23,7 +23,7 @@
 
 
 def main():
-    pytrellis.load_database("../../database")
+    pytrellis.load_database("../../../database")
 
     def per_job(job):
         cfg = job
diff --git a/fuzzers/028-copy_midmux/fuzzer.py b/fuzzers/ECP5/028-copy_midmux/fuzzer.py
similarity index 84%
rename from fuzzers/028-copy_midmux/fuzzer.py
rename to fuzzers/ECP5/028-copy_midmux/fuzzer.py
index 3b7b8b4..1fd1909 100644
--- a/fuzzers/028-copy_midmux/fuzzer.py
+++ b/fuzzers/ECP5/028-copy_midmux/fuzzer.py
@@ -2,7 +2,7 @@
 import pytrellis
 
 def main():
-    pytrellis.load_database("../../database")
+    pytrellis.load_database("../../../database")
     dbcopy.dbcopy("ECP5", "LFE5U-25F", "BMID_0V", "BMID_0H", copy_enums=True, copy_words=True)
     dbcopy.dbcopy("ECP5", "LFE5U-25F", "BMID_2V", "BMID_2", copy_enums=True, copy_words=True)
 
diff --git a/fuzzers/030-cib_routing/cibroute.ncl b/fuzzers/ECP5/030-cib_routing/cibroute.ncl
similarity index 100%
rename from fuzzers/030-cib_routing/cibroute.ncl
rename to fuzzers/ECP5/030-cib_routing/cibroute.ncl
diff --git a/fuzzers/030-cib_routing/fuzzer.py b/fuzzers/ECP5/030-cib_routing/fuzzer.py
similarity index 95%
rename from fuzzers/030-cib_routing/fuzzer.py
rename to fuzzers/ECP5/030-cib_routing/fuzzer.py
index c3368a0..3679b98 100644
--- a/fuzzers/030-cib_routing/fuzzer.py
+++ b/fuzzers/ECP5/030-cib_routing/fuzzer.py
@@ -8,7 +8,7 @@
 
 
 def main():
-    pytrellis.load_database("../../database")
+    pytrellis.load_database("../../../database")
     cfg.setup()
 
     span1_re = re.compile(r'R\d+C\d+_[VH]01[NESWTLBR]\d{4}')
diff --git a/fuzzers/031-cib_lr_routing/cibroute.ncl b/fuzzers/ECP5/031-cib_lr_routing/cibroute.ncl
similarity index 100%
rename from fuzzers/031-cib_lr_routing/cibroute.ncl
rename to fuzzers/ECP5/031-cib_lr_routing/cibroute.ncl
diff --git a/fuzzers/031-cib_lr_routing/fuzzer.py b/fuzzers/ECP5/031-cib_lr_routing/fuzzer.py
similarity index 95%
rename from fuzzers/031-cib_lr_routing/fuzzer.py
rename to fuzzers/ECP5/031-cib_lr_routing/fuzzer.py
index a6e22d6..cb84abc 100644
--- a/fuzzers/031-cib_lr_routing/fuzzer.py
+++ b/fuzzers/ECP5/031-cib_lr_routing/fuzzer.py
@@ -8,7 +8,7 @@
 
 
 def main():
-    pytrellis.load_database("../../database")
+    pytrellis.load_database("../../../database")
     cfg.setup()
 
     span1_re = re.compile(r'R\d+C\d+_[VH]01[NESWTLBR]\d{4}')
diff --git a/fuzzers/033-copy_cib_routing/fuzzer.py b/fuzzers/ECP5/033-copy_cib_routing/fuzzer.py
similarity index 74%
rename from fuzzers/033-copy_cib_routing/fuzzer.py
rename to fuzzers/ECP5/033-copy_cib_routing/fuzzer.py
index ce87237..bd39044 100644
--- a/fuzzers/033-copy_cib_routing/fuzzer.py
+++ b/fuzzers/ECP5/033-copy_cib_routing/fuzzer.py
@@ -3,7 +3,7 @@
 
 
 def main():
-    pytrellis.load_database("../../database")
+    pytrellis.load_database("../../../database")
     dbcopy.dbcopy("ECP5", "LFE5U-25F", "CIB", "CIB_EBR")
 
 
diff --git a/fuzzers/040-ebr_routing/ebrroute.ncl b/fuzzers/ECP5/040-ebr_routing/ebrroute.ncl
similarity index 100%
rename from fuzzers/040-ebr_routing/ebrroute.ncl
rename to fuzzers/ECP5/040-ebr_routing/ebrroute.ncl
diff --git a/fuzzers/040-ebr_routing/fuzzer.py b/fuzzers/ECP5/040-ebr_routing/fuzzer.py
similarity index 96%
rename from fuzzers/040-ebr_routing/fuzzer.py
rename to fuzzers/ECP5/040-ebr_routing/fuzzer.py
index 8d0bacb..20213aa 100644
--- a/fuzzers/040-ebr_routing/fuzzer.py
+++ b/fuzzers/ECP5/040-ebr_routing/fuzzer.py
@@ -18,7 +18,7 @@
 
 
 def main():
-    pytrellis.load_database("../../database")
+    pytrellis.load_database("../../../database")
     for job in jobs:
         loc, cfg = job
         cfg.setup()
diff --git a/fuzzers/041-ebr_config/ebr.ncl b/fuzzers/ECP5/041-ebr_config/ebr.ncl
similarity index 100%
rename from fuzzers/041-ebr_config/ebr.ncl
rename to fuzzers/ECP5/041-ebr_config/ebr.ncl
diff --git a/fuzzers/041-ebr_config/empty.ncl b/fuzzers/ECP5/041-ebr_config/empty.ncl
similarity index 100%
rename from fuzzers/041-ebr_config/empty.ncl
rename to fuzzers/ECP5/041-ebr_config/empty.ncl
diff --git a/fuzzers/041-ebr_config/fuzzer.py b/fuzzers/ECP5/041-ebr_config/fuzzer.py
similarity index 98%
rename from fuzzers/041-ebr_config/fuzzer.py
rename to fuzzers/ECP5/041-ebr_config/fuzzer.py
index 719b347..89c8996 100644
--- a/fuzzers/041-ebr_config/fuzzer.py
+++ b/fuzzers/ECP5/041-ebr_config/fuzzer.py
@@ -17,7 +17,7 @@
 
 
 def main():
-    pytrellis.load_database("../../database")
+    pytrellis.load_database("../../../database")
 
     def per_job(job):
         def get_substs(mode, settings):
diff --git a/fuzzers/042-ebr_mux/ebr.ncl b/fuzzers/ECP5/042-ebr_mux/ebr.ncl
similarity index 100%
rename from fuzzers/042-ebr_mux/ebr.ncl
rename to fuzzers/ECP5/042-ebr_mux/ebr.ncl
diff --git a/fuzzers/042-ebr_mux/empty.ncl b/fuzzers/ECP5/042-ebr_mux/empty.ncl
similarity index 100%
rename from fuzzers/042-ebr_mux/empty.ncl
rename to fuzzers/ECP5/042-ebr_mux/empty.ncl
diff --git a/fuzzers/042-ebr_mux/fuzzer.py b/fuzzers/ECP5/042-ebr_mux/fuzzer.py
similarity index 98%
rename from fuzzers/042-ebr_mux/fuzzer.py
rename to fuzzers/ECP5/042-ebr_mux/fuzzer.py
index ce7b7d1..490b8d5 100644
--- a/fuzzers/042-ebr_mux/fuzzer.py
+++ b/fuzzers/ECP5/042-ebr_mux/fuzzer.py
@@ -17,7 +17,7 @@
 
 
 def main():
-    pytrellis.load_database("../../database")
+    pytrellis.load_database("../../../database")
 
     def per_job(job):
         def get_substs(mode, settings, muxes = None):
diff --git a/fuzzers/043-cib_constmux/cibconst.ncl b/fuzzers/ECP5/043-cib_constmux/cibconst.ncl
similarity index 100%
rename from fuzzers/043-cib_constmux/cibconst.ncl
rename to fuzzers/ECP5/043-cib_constmux/cibconst.ncl
diff --git a/fuzzers/043-cib_constmux/empty.ncl b/fuzzers/ECP5/043-cib_constmux/empty.ncl
similarity index 100%
rename from fuzzers/043-cib_constmux/empty.ncl
rename to fuzzers/ECP5/043-cib_constmux/empty.ncl
diff --git a/fuzzers/043-cib_constmux/fuzzer.py b/fuzzers/ECP5/043-cib_constmux/fuzzer.py
similarity index 97%
rename from fuzzers/043-cib_constmux/fuzzer.py
rename to fuzzers/ECP5/043-cib_constmux/fuzzer.py
index 06b47d0..2444ffa 100644
--- a/fuzzers/043-cib_constmux/fuzzer.py
+++ b/fuzzers/ECP5/043-cib_constmux/fuzzer.py
@@ -28,7 +28,7 @@
 
 
 def main():
-    pytrellis.load_database("../../database")
+    pytrellis.load_database("../../../database")
     cfg.setup()
     empty_bitfile = cfg.build_design(cfg.ncl, {})
     cfg.ncl = "cibconst.ncl"
diff --git a/fuzzers/045-copy_cib_routing_2/fuzzer.py b/fuzzers/ECP5/045-copy_cib_routing_2/fuzzer.py
similarity index 92%
rename from fuzzers/045-copy_cib_routing_2/fuzzer.py
rename to fuzzers/ECP5/045-copy_cib_routing_2/fuzzer.py
index 456cee2..b52a309 100644
--- a/fuzzers/045-copy_cib_routing_2/fuzzer.py
+++ b/fuzzers/ECP5/045-copy_cib_routing_2/fuzzer.py
@@ -8,7 +8,7 @@
 
 
 def main():
-    pytrellis.load_database("../../database")
+    pytrellis.load_database("../../../database")
     for dest in cib_tiles:
         dbcopy.dbcopy("ECP5", "LFE5U-25F", "CIB_EBR", dest)
 
diff --git a/fuzzers/047-copy_ebr_config/fuzzer.py b/fuzzers/ECP5/047-copy_ebr_config/fuzzer.py
similarity index 93%
rename from fuzzers/047-copy_ebr_config/fuzzer.py
rename to fuzzers/ECP5/047-copy_ebr_config/fuzzer.py
index 04c3e11..7853599 100644
--- a/fuzzers/047-copy_ebr_config/fuzzer.py
+++ b/fuzzers/ECP5/047-copy_ebr_config/fuzzer.py
@@ -3,7 +3,7 @@
 
 
 def main():
-    pytrellis.load_database("../../database")
+    pytrellis.load_database("../../../database")
     copy_rules = {
         "MIB_EBR8": ["EBR_SPINE_UL0", "EBR_SPINE_UL1", "EBR_SPINE_UL2", "EBR_CMUX_UL",
                      "EBR_SPINE_UR0", "EBR_SPINE_UR1", "EBR_SPINE_UR2",
diff --git a/fuzzers/050-pio_routing/fuzzer.py b/fuzzers/ECP5/050-pio_routing/fuzzer.py
similarity index 97%
rename from fuzzers/050-pio_routing/fuzzer.py
rename to fuzzers/ECP5/050-pio_routing/fuzzer.py
index 95a21fa..36f25f4 100644
--- a/fuzzers/050-pio_routing/fuzzer.py
+++ b/fuzzers/ECP5/050-pio_routing/fuzzer.py
@@ -29,7 +29,7 @@
 
 
 def main():
-    pytrellis.load_database("../../database")
+    pytrellis.load_database("../../../database")
     for job in jobs:
         cfg = job["cfg"]
         cfg.setup()
diff --git a/fuzzers/050-pio_routing/pioroute.ncl b/fuzzers/ECP5/050-pio_routing/pioroute.ncl
similarity index 100%
rename from fuzzers/050-pio_routing/pioroute.ncl
rename to fuzzers/ECP5/050-pio_routing/pioroute.ncl
diff --git a/fuzzers/051-pio_ioconfig/empty.ncl b/fuzzers/ECP5/051-pio_ioconfig/empty.ncl
similarity index 100%
rename from fuzzers/051-pio_ioconfig/empty.ncl
rename to fuzzers/ECP5/051-pio_ioconfig/empty.ncl
diff --git a/fuzzers/051-pio_ioconfig/fuzzer.py b/fuzzers/ECP5/051-pio_ioconfig/fuzzer.py
similarity index 99%
rename from fuzzers/051-pio_ioconfig/fuzzer.py
rename to fuzzers/ECP5/051-pio_ioconfig/fuzzer.py
index 8624e65..d13326f 100644
--- a/fuzzers/051-pio_ioconfig/fuzzer.py
+++ b/fuzzers/ECP5/051-pio_ioconfig/fuzzer.py
@@ -134,7 +134,7 @@
 
 
 def main():
-    pytrellis.load_database("../../database")
+    pytrellis.load_database("../../../database")
     for job in jobs:
         cfg = job["cfg"]
         side = job["side"]
diff --git a/fuzzers/051-pio_ioconfig/pio.lpf b/fuzzers/ECP5/051-pio_ioconfig/pio.lpf
similarity index 100%
rename from fuzzers/051-pio_ioconfig/pio.lpf
rename to fuzzers/ECP5/051-pio_ioconfig/pio.lpf
diff --git a/fuzzers/051-pio_ioconfig/pio.v b/fuzzers/ECP5/051-pio_ioconfig/pio.v
similarity index 100%
rename from fuzzers/051-pio_ioconfig/pio.v
rename to fuzzers/ECP5/051-pio_ioconfig/pio.v
diff --git a/fuzzers/053-pio_term/empty.ncl b/fuzzers/ECP5/053-pio_term/empty.ncl
similarity index 100%
rename from fuzzers/053-pio_term/empty.ncl
rename to fuzzers/ECP5/053-pio_term/empty.ncl
diff --git a/fuzzers/053-pio_term/fuzzer.py b/fuzzers/ECP5/053-pio_term/fuzzer.py
similarity index 98%
rename from fuzzers/053-pio_term/fuzzer.py
rename to fuzzers/ECP5/053-pio_term/fuzzer.py
index 8b788b6..386571f 100644
--- a/fuzzers/053-pio_term/fuzzer.py
+++ b/fuzzers/ECP5/053-pio_term/fuzzer.py
@@ -25,7 +25,7 @@
 
 
 def main():
-    pytrellis.load_database("../../database")
+    pytrellis.load_database("../../../database")
     for job in jobs:
         cfg = job["cfg"]
         side = job["side"]
diff --git a/fuzzers/053-pio_term/pio.lpf b/fuzzers/ECP5/053-pio_term/pio.lpf
similarity index 100%
rename from fuzzers/053-pio_term/pio.lpf
rename to fuzzers/ECP5/053-pio_term/pio.lpf
diff --git a/fuzzers/053-pio_term/pio.v b/fuzzers/ECP5/053-pio_term/pio.v
similarity index 100%
rename from fuzzers/053-pio_term/pio.v
rename to fuzzers/ECP5/053-pio_term/pio.v
diff --git a/fuzzers/057-bankref/empty.ncl b/fuzzers/ECP5/057-bankref/empty.ncl
similarity index 100%
rename from fuzzers/057-bankref/empty.ncl
rename to fuzzers/ECP5/057-bankref/empty.ncl
diff --git a/fuzzers/057-bankref/empty_25k.ncl b/fuzzers/ECP5/057-bankref/empty_25k.ncl
similarity index 100%
rename from fuzzers/057-bankref/empty_25k.ncl
rename to fuzzers/ECP5/057-bankref/empty_25k.ncl
diff --git a/fuzzers/057-bankref/empty_85k.ncl b/fuzzers/ECP5/057-bankref/empty_85k.ncl
similarity index 100%
rename from fuzzers/057-bankref/empty_85k.ncl
rename to fuzzers/ECP5/057-bankref/empty_85k.ncl
diff --git a/fuzzers/057-bankref/fuzzer.py b/fuzzers/ECP5/057-bankref/fuzzer.py
similarity index 98%
rename from fuzzers/057-bankref/fuzzer.py
rename to fuzzers/ECP5/057-bankref/fuzzer.py
index b9c315a..d6b1c30 100644
--- a/fuzzers/057-bankref/fuzzer.py
+++ b/fuzzers/ECP5/057-bankref/fuzzer.py
@@ -73,7 +73,7 @@
 
 
 def main():
-    pytrellis.load_database("../../database")
+    pytrellis.load_database("../../../database")
     for job in jobs:
         cfg = job["cfg"]
         side = job["side"]
diff --git a/fuzzers/057-bankref/pio.v b/fuzzers/ECP5/057-bankref/pio.v
similarity index 100%
rename from fuzzers/057-bankref/pio.v
rename to fuzzers/ECP5/057-bankref/pio.v
diff --git a/fuzzers/060-iologic_modes/empty.ncl b/fuzzers/ECP5/060-iologic_modes/empty.ncl
similarity index 100%
rename from fuzzers/060-iologic_modes/empty.ncl
rename to fuzzers/ECP5/060-iologic_modes/empty.ncl
diff --git a/fuzzers/060-iologic_modes/fuzzer.py b/fuzzers/ECP5/060-iologic_modes/fuzzer.py
similarity index 97%
rename from fuzzers/060-iologic_modes/fuzzer.py
rename to fuzzers/ECP5/060-iologic_modes/fuzzer.py
index 9bf0845..eddcddc 100644
--- a/fuzzers/060-iologic_modes/fuzzer.py
+++ b/fuzzers/ECP5/060-iologic_modes/fuzzer.py
@@ -78,8 +78,8 @@
 
 
 def main():
-    pytrellis.load_database("../../database")
-    pytrellis.load_database("../../database")
+    pytrellis.load_database("../../../database")
+    pytrellis.load_database("../../../database")
 
     def per_job(job):
         def get_substs(mode="IREG_OREG", program=[]):
diff --git a/fuzzers/060-iologic_modes/iologic.ncl b/fuzzers/ECP5/060-iologic_modes/iologic.ncl
similarity index 100%
rename from fuzzers/060-iologic_modes/iologic.ncl
rename to fuzzers/ECP5/060-iologic_modes/iologic.ncl
diff --git a/fuzzers/061-basic_ddr/empty.ncl b/fuzzers/ECP5/061-basic_ddr/empty.ncl
similarity index 100%
rename from fuzzers/061-basic_ddr/empty.ncl
rename to fuzzers/ECP5/061-basic_ddr/empty.ncl
diff --git a/fuzzers/061-basic_ddr/fuzzer.py b/fuzzers/ECP5/061-basic_ddr/fuzzer.py
similarity index 98%
rename from fuzzers/061-basic_ddr/fuzzer.py
rename to fuzzers/ECP5/061-basic_ddr/fuzzer.py
index 1283c3a..0c28742 100644
--- a/fuzzers/061-basic_ddr/fuzzer.py
+++ b/fuzzers/ECP5/061-basic_ddr/fuzzer.py
@@ -89,8 +89,8 @@
 
 
 def main():
-    pytrellis.load_database("../../database")
-    pytrellis.load_database("../../database")
+    pytrellis.load_database("../../../database")
+    pytrellis.load_database("../../../database")
 
     def per_job(job):
         def get_substs(ddrtype="", ddren="OFF", gsr="ENABLED", lsrimux="0", clkimux="CLK", lsromux="0", clkomux="CLK", lsrmux="LSR", datamux="PADDO"):
diff --git a/fuzzers/061-basic_ddr/iologic.ncl b/fuzzers/ECP5/061-basic_ddr/iologic.ncl
similarity index 100%
rename from fuzzers/061-basic_ddr/iologic.ncl
rename to fuzzers/ECP5/061-basic_ddr/iologic.ncl
diff --git a/fuzzers/063-oddrxn/empty.ncl b/fuzzers/ECP5/063-oddrxn/empty.ncl
similarity index 100%
rename from fuzzers/063-oddrxn/empty.ncl
rename to fuzzers/ECP5/063-oddrxn/empty.ncl
diff --git a/fuzzers/063-oddrxn/fuzzer.py b/fuzzers/ECP5/063-oddrxn/fuzzer.py
similarity index 98%
rename from fuzzers/063-oddrxn/fuzzer.py
rename to fuzzers/ECP5/063-oddrxn/fuzzer.py
index e75e6db..731244b 100644
--- a/fuzzers/063-oddrxn/fuzzer.py
+++ b/fuzzers/ECP5/063-oddrxn/fuzzer.py
@@ -64,7 +64,7 @@
 
 
 def main():
-    pytrellis.load_database("../../database")
+    pytrellis.load_database("../../../database")
 
     def per_job(job):
         def get_substs(mode=""):
diff --git a/fuzzers/063-oddrxn/iologic.ncl b/fuzzers/ECP5/063-oddrxn/iologic.ncl
similarity index 100%
rename from fuzzers/063-oddrxn/iologic.ncl
rename to fuzzers/ECP5/063-oddrxn/iologic.ncl
diff --git a/fuzzers/064-iddrxn/empty.ncl b/fuzzers/ECP5/064-iddrxn/empty.ncl
similarity index 100%
rename from fuzzers/064-iddrxn/empty.ncl
rename to fuzzers/ECP5/064-iddrxn/empty.ncl
diff --git a/fuzzers/064-iddrxn/fuzzer.py b/fuzzers/ECP5/064-iddrxn/fuzzer.py
similarity index 98%
rename from fuzzers/064-iddrxn/fuzzer.py
rename to fuzzers/ECP5/064-iddrxn/fuzzer.py
index 203b8f1..c07c38f 100644
--- a/fuzzers/064-iddrxn/fuzzer.py
+++ b/fuzzers/ECP5/064-iddrxn/fuzzer.py
@@ -64,7 +64,7 @@
 
 
 def main():
-    pytrellis.load_database("../../database")
+    pytrellis.load_database("../../../database")
 
     def per_job(job):
         def get_substs(mode=""):
diff --git a/fuzzers/064-iddrxn/iologic.ncl b/fuzzers/ECP5/064-iddrxn/iologic.ncl
similarity index 100%
rename from fuzzers/064-iddrxn/iologic.ncl
rename to fuzzers/ECP5/064-iddrxn/iologic.ncl
diff --git a/fuzzers/065-mddrx/empty.ncl b/fuzzers/ECP5/065-mddrx/empty.ncl
similarity index 100%
rename from fuzzers/065-mddrx/empty.ncl
rename to fuzzers/ECP5/065-mddrx/empty.ncl
diff --git a/fuzzers/065-mddrx/fuzzer.py b/fuzzers/ECP5/065-mddrx/fuzzer.py
similarity index 98%
rename from fuzzers/065-mddrx/fuzzer.py
rename to fuzzers/ECP5/065-mddrx/fuzzer.py
index 4078adc..55e4a9c 100644
--- a/fuzzers/065-mddrx/fuzzer.py
+++ b/fuzzers/ECP5/065-mddrx/fuzzer.py
@@ -72,7 +72,7 @@
 
 
 def main():
-    pytrellis.load_database("../../database")
+    pytrellis.load_database("../../../database")
 
     def per_job(job):
         def get_substs(type, mode, value="", datamux="PADDO", ioltomux="NONE"):
diff --git a/fuzzers/065-mddrx/iologic.ncl b/fuzzers/ECP5/065-mddrx/iologic.ncl
similarity index 100%
rename from fuzzers/065-mddrx/iologic.ncl
rename to fuzzers/ECP5/065-mddrx/iologic.ncl
diff --git a/fuzzers/066-iodelay/empty.ncl b/fuzzers/ECP5/066-iodelay/empty.ncl
similarity index 100%
rename from fuzzers/066-iodelay/empty.ncl
rename to fuzzers/ECP5/066-iodelay/empty.ncl
diff --git a/fuzzers/066-iodelay/fuzzer.py b/fuzzers/ECP5/066-iodelay/fuzzer.py
similarity index 98%
rename from fuzzers/066-iodelay/fuzzer.py
rename to fuzzers/ECP5/066-iodelay/fuzzer.py
index 953dd63..fc451d9 100644
--- a/fuzzers/066-iodelay/fuzzer.py
+++ b/fuzzers/ECP5/066-iodelay/fuzzer.py
@@ -96,7 +96,7 @@
 
 
 def main():
-    pytrellis.load_database("../../database")
+    pytrellis.load_database("../../../database")
 
     def per_job(job):
         def get_substs(mode="", settings={}, program={}, route=""):
diff --git a/fuzzers/066-iodelay/iologic.ncl b/fuzzers/ECP5/066-iodelay/iologic.ncl
similarity index 100%
rename from fuzzers/066-iodelay/iologic.ncl
rename to fuzzers/ECP5/066-iodelay/iologic.ncl
diff --git a/fuzzers/069-copy_pio_data/fuzzer.py b/fuzzers/ECP5/069-copy_pio_data/fuzzer.py
similarity index 96%
rename from fuzzers/069-copy_pio_data/fuzzer.py
rename to fuzzers/ECP5/069-copy_pio_data/fuzzer.py
index 9ecec0b..2a1ffcc 100644
--- a/fuzzers/069-copy_pio_data/fuzzer.py
+++ b/fuzzers/ECP5/069-copy_pio_data/fuzzer.py
@@ -3,7 +3,7 @@
 
 
 def main():
-    pytrellis.load_database("../../database")
+    pytrellis.load_database("../../../database")
     copy_routing_rules = {
         "PICL0": ["PICL0_DQS2"],
         "PICL1": ["PICL1_DQS0", "PICL1_DQS3"],
diff --git a/fuzzers/070-dsp_routing/dsproute.ncl b/fuzzers/ECP5/070-dsp_routing/dsproute.ncl
similarity index 100%
rename from fuzzers/070-dsp_routing/dsproute.ncl
rename to fuzzers/ECP5/070-dsp_routing/dsproute.ncl
diff --git a/fuzzers/070-dsp_routing/fuzzer.py b/fuzzers/ECP5/070-dsp_routing/fuzzer.py
similarity index 98%
rename from fuzzers/070-dsp_routing/fuzzer.py
rename to fuzzers/ECP5/070-dsp_routing/fuzzer.py
index 59ecc00..6978a1d 100644
--- a/fuzzers/070-dsp_routing/fuzzer.py
+++ b/fuzzers/ECP5/070-dsp_routing/fuzzer.py
@@ -46,7 +46,7 @@
 
 
 def main():
-    pytrellis.load_database("../../database")
+    pytrellis.load_database("../../../database")
     for job in jobs:
         loc, cfg = job
         cfg.setup()
diff --git a/fuzzers/071-dsp_constmux/dspconfig.ncl b/fuzzers/ECP5/071-dsp_constmux/dspconfig.ncl
similarity index 100%
rename from fuzzers/071-dsp_constmux/dspconfig.ncl
rename to fuzzers/ECP5/071-dsp_constmux/dspconfig.ncl
diff --git a/fuzzers/071-dsp_constmux/empty.ncl b/fuzzers/ECP5/071-dsp_constmux/empty.ncl
similarity index 100%
rename from fuzzers/071-dsp_constmux/empty.ncl
rename to fuzzers/ECP5/071-dsp_constmux/empty.ncl
diff --git a/fuzzers/071-dsp_constmux/fuzzer.py b/fuzzers/ECP5/071-dsp_constmux/fuzzer.py
similarity index 97%
rename from fuzzers/071-dsp_constmux/fuzzer.py
rename to fuzzers/ECP5/071-dsp_constmux/fuzzer.py
index a62669f..25a1c36 100644
--- a/fuzzers/071-dsp_constmux/fuzzer.py
+++ b/fuzzers/ECP5/071-dsp_constmux/fuzzer.py
@@ -28,7 +28,7 @@
 
 
 def main():
-    pytrellis.load_database("../../database")
+    pytrellis.load_database("../../../database")
 
     def per_job(job):
         def get_substs(net, value):
diff --git a/fuzzers/073-mult18_config/dspconfig.ncl b/fuzzers/ECP5/073-mult18_config/dspconfig.ncl
similarity index 100%
rename from fuzzers/073-mult18_config/dspconfig.ncl
rename to fuzzers/ECP5/073-mult18_config/dspconfig.ncl
diff --git a/fuzzers/073-mult18_config/empty.ncl b/fuzzers/ECP5/073-mult18_config/empty.ncl
similarity index 100%
rename from fuzzers/073-mult18_config/empty.ncl
rename to fuzzers/ECP5/073-mult18_config/empty.ncl
diff --git a/fuzzers/073-mult18_config/fuzzer.py b/fuzzers/ECP5/073-mult18_config/fuzzer.py
similarity index 98%
rename from fuzzers/073-mult18_config/fuzzer.py
rename to fuzzers/ECP5/073-mult18_config/fuzzer.py
index 0efd67c..28b30d3 100644
--- a/fuzzers/073-mult18_config/fuzzer.py
+++ b/fuzzers/ECP5/073-mult18_config/fuzzer.py
@@ -28,7 +28,7 @@
 
 
 def main():
-    pytrellis.load_database("../../database")
+    pytrellis.load_database("../../../database")
 
     def per_job(job):
         def get_substs(settings, mode="MULT18X18D"):
diff --git a/fuzzers/075-alu54b_config/dspconfig.ncl b/fuzzers/ECP5/075-alu54b_config/dspconfig.ncl
similarity index 100%
rename from fuzzers/075-alu54b_config/dspconfig.ncl
rename to fuzzers/ECP5/075-alu54b_config/dspconfig.ncl
diff --git a/fuzzers/075-alu54b_config/empty.ncl b/fuzzers/ECP5/075-alu54b_config/empty.ncl
similarity index 100%
rename from fuzzers/075-alu54b_config/empty.ncl
rename to fuzzers/ECP5/075-alu54b_config/empty.ncl
diff --git a/fuzzers/075-alu54b_config/fuzzer.py b/fuzzers/ECP5/075-alu54b_config/fuzzer.py
similarity index 98%
rename from fuzzers/075-alu54b_config/fuzzer.py
rename to fuzzers/ECP5/075-alu54b_config/fuzzer.py
index 4de5eb9..5af238e 100644
--- a/fuzzers/075-alu54b_config/fuzzer.py
+++ b/fuzzers/ECP5/075-alu54b_config/fuzzer.py
@@ -32,7 +32,7 @@
 
 
 def main():
-    pytrellis.load_database("../../database")
+    pytrellis.load_database("../../../database")
 
     def per_job(job):
         def get_substs(settings, mode="ALU54B"):
diff --git a/fuzzers/076-dsp_cibo/dspconfig.ncl b/fuzzers/ECP5/076-dsp_cibo/dspconfig.ncl
similarity index 100%
rename from fuzzers/076-dsp_cibo/dspconfig.ncl
rename to fuzzers/ECP5/076-dsp_cibo/dspconfig.ncl
diff --git a/fuzzers/076-dsp_cibo/empty.ncl b/fuzzers/ECP5/076-dsp_cibo/empty.ncl
similarity index 100%
rename from fuzzers/076-dsp_cibo/empty.ncl
rename to fuzzers/ECP5/076-dsp_cibo/empty.ncl
diff --git a/fuzzers/076-dsp_cibo/fuzzer.py b/fuzzers/ECP5/076-dsp_cibo/fuzzer.py
similarity index 98%
rename from fuzzers/076-dsp_cibo/fuzzer.py
rename to fuzzers/ECP5/076-dsp_cibo/fuzzer.py
index 0cb9930..237f935 100644
--- a/fuzzers/076-dsp_cibo/fuzzer.py
+++ b/fuzzers/ECP5/076-dsp_cibo/fuzzer.py
@@ -32,7 +32,7 @@
 
 
 def main():
-    pytrellis.load_database("../../database")
+    pytrellis.load_database("../../../database")
 
     def per_job(job):
         def get_substs(settings, cibout="OFF", outclk="CLK0"):
diff --git a/fuzzers/077-copy_dsp_config/fuzzer.py b/fuzzers/ECP5/077-copy_dsp_config/fuzzer.py
similarity index 89%
rename from fuzzers/077-copy_dsp_config/fuzzer.py
rename to fuzzers/ECP5/077-copy_dsp_config/fuzzer.py
index 7b60836..f591c63 100644
--- a/fuzzers/077-copy_dsp_config/fuzzer.py
+++ b/fuzzers/ECP5/077-copy_dsp_config/fuzzer.py
@@ -3,7 +3,7 @@
 
 
 def main():
-    pytrellis.load_database("../../database")
+    pytrellis.load_database("../../../database")
     copy_rules = {
         "MIB_DSP8": ["DSP_SPINE_UL0", "DSP_SPINE_UR0", "DSP_SPINE_UR1"],
     }
diff --git a/fuzzers/090-pll_routing/fuzzer.py b/fuzzers/ECP5/090-pll_routing/fuzzer.py
similarity index 98%
rename from fuzzers/090-pll_routing/fuzzer.py
rename to fuzzers/ECP5/090-pll_routing/fuzzer.py
index 0a1ba72..1e2631a 100644
--- a/fuzzers/090-pll_routing/fuzzer.py
+++ b/fuzzers/ECP5/090-pll_routing/fuzzer.py
@@ -32,7 +32,7 @@
 
 
 def main():
-    pytrellis.load_database("../../database")
+    pytrellis.load_database("../../../database")
     for job in jobs:
         loc, prefix, cfg = job
         cfg.setup()
diff --git a/fuzzers/090-pll_routing/pllroute.ncl b/fuzzers/ECP5/090-pll_routing/pllroute.ncl
similarity index 100%
rename from fuzzers/090-pll_routing/pllroute.ncl
rename to fuzzers/ECP5/090-pll_routing/pllroute.ncl
diff --git a/fuzzers/090-pll_routing/pllroute_25k.ncl b/fuzzers/ECP5/090-pll_routing/pllroute_25k.ncl
similarity index 100%
rename from fuzzers/090-pll_routing/pllroute_25k.ncl
rename to fuzzers/ECP5/090-pll_routing/pllroute_25k.ncl
diff --git a/fuzzers/090-pll_routing/pllroute_85k.ncl b/fuzzers/ECP5/090-pll_routing/pllroute_85k.ncl
similarity index 100%
rename from fuzzers/090-pll_routing/pllroute_85k.ncl
rename to fuzzers/ECP5/090-pll_routing/pllroute_85k.ncl
diff --git a/fuzzers/091-pll_config/empty.ncl b/fuzzers/ECP5/091-pll_config/empty.ncl
similarity index 100%
rename from fuzzers/091-pll_config/empty.ncl
rename to fuzzers/ECP5/091-pll_config/empty.ncl
diff --git a/fuzzers/091-pll_config/fuzzer.py b/fuzzers/ECP5/091-pll_config/fuzzer.py
similarity index 99%
rename from fuzzers/091-pll_config/fuzzer.py
rename to fuzzers/ECP5/091-pll_config/fuzzer.py
index eee73b4..5f84a7c 100644
--- a/fuzzers/091-pll_config/fuzzer.py
+++ b/fuzzers/ECP5/091-pll_config/fuzzer.py
@@ -24,7 +24,7 @@
 
 
 def main():
-    pytrellis.load_database("../../database")
+    pytrellis.load_database("../../../database")
 
     def per_job(job):
         def get_substs(settings, mode="EHXPLLL"):
diff --git a/fuzzers/091-pll_config/pllconfig.ncl b/fuzzers/ECP5/091-pll_config/pllconfig.ncl
similarity index 100%
rename from fuzzers/091-pll_config/pllconfig.ncl
rename to fuzzers/ECP5/091-pll_config/pllconfig.ncl
diff --git a/fuzzers/100-usrmclk/cclk.ncl b/fuzzers/ECP5/100-usrmclk/cclk.ncl
similarity index 100%
rename from fuzzers/100-usrmclk/cclk.ncl
rename to fuzzers/ECP5/100-usrmclk/cclk.ncl
diff --git a/fuzzers/100-usrmclk/cclk_routing.ncl b/fuzzers/ECP5/100-usrmclk/cclk_routing.ncl
similarity index 100%
rename from fuzzers/100-usrmclk/cclk_routing.ncl
rename to fuzzers/ECP5/100-usrmclk/cclk_routing.ncl
diff --git a/fuzzers/100-usrmclk/empty.ncl b/fuzzers/ECP5/100-usrmclk/empty.ncl
similarity index 100%
rename from fuzzers/100-usrmclk/empty.ncl
rename to fuzzers/ECP5/100-usrmclk/empty.ncl
diff --git a/fuzzers/100-usrmclk/fuzzer.py b/fuzzers/ECP5/100-usrmclk/fuzzer.py
similarity index 94%
rename from fuzzers/100-usrmclk/fuzzer.py
rename to fuzzers/ECP5/100-usrmclk/fuzzer.py
index c506ee5..58da58c 100644
--- a/fuzzers/100-usrmclk/fuzzer.py
+++ b/fuzzers/ECP5/100-usrmclk/fuzzer.py
@@ -15,7 +15,7 @@
         comment = ""
     return dict(comment=comment)
 def main():
-    pytrellis.load_database("../../database")
+    pytrellis.load_database("../../../database")
     cfg.setup()
     empty_bitfile = cfg.build_design(cfg.ncl, {})
     cfg.ncl = "cclk.ncl"
diff --git a/fuzzers/101-dtr/dtr.ncl b/fuzzers/ECP5/101-dtr/dtr.ncl
similarity index 100%
rename from fuzzers/101-dtr/dtr.ncl
rename to fuzzers/ECP5/101-dtr/dtr.ncl
diff --git a/fuzzers/101-dtr/dtr_routing.ncl b/fuzzers/ECP5/101-dtr/dtr_routing.ncl
similarity index 100%
rename from fuzzers/101-dtr/dtr_routing.ncl
rename to fuzzers/ECP5/101-dtr/dtr_routing.ncl
diff --git a/fuzzers/101-dtr/empty.ncl b/fuzzers/ECP5/101-dtr/empty.ncl
similarity index 100%
rename from fuzzers/101-dtr/empty.ncl
rename to fuzzers/ECP5/101-dtr/empty.ncl
diff --git a/fuzzers/101-dtr/fuzzer.py b/fuzzers/ECP5/101-dtr/fuzzer.py
similarity index 94%
rename from fuzzers/101-dtr/fuzzer.py
rename to fuzzers/ECP5/101-dtr/fuzzer.py
index 036d55a..80a249e 100644
--- a/fuzzers/101-dtr/fuzzer.py
+++ b/fuzzers/ECP5/101-dtr/fuzzer.py
@@ -15,7 +15,7 @@
         comment = ""
     return dict(comment=comment)
 def main():
-    pytrellis.load_database("../../database")
+    pytrellis.load_database("../../../database")
     cfg.setup()
     empty_bitfile = cfg.build_design(cfg.ncl, {})
     cfg.ncl = "dtr.ncl"
diff --git a/fuzzers/102-oscg/empty.ncl b/fuzzers/ECP5/102-oscg/empty.ncl
similarity index 100%
rename from fuzzers/102-oscg/empty.ncl
rename to fuzzers/ECP5/102-oscg/empty.ncl
diff --git a/fuzzers/102-oscg/fuzzer.py b/fuzzers/ECP5/102-oscg/fuzzer.py
similarity index 95%
rename from fuzzers/102-oscg/fuzzer.py
rename to fuzzers/ECP5/102-oscg/fuzzer.py
index 408ee2c..07b6b11 100644
--- a/fuzzers/102-oscg/fuzzer.py
+++ b/fuzzers/ECP5/102-oscg/fuzzer.py
@@ -16,7 +16,7 @@
     return dict(comment=comment, div=div)
 
 def main():
-    pytrellis.load_database("../../database")
+    pytrellis.load_database("../../../database")
     cfg.setup()
     empty_bitfile = cfg.build_design(cfg.ncl, {})
     cfg.ncl = "osc.ncl"
diff --git a/fuzzers/102-oscg/osc.ncl b/fuzzers/ECP5/102-oscg/osc.ncl
similarity index 100%
rename from fuzzers/102-oscg/osc.ncl
rename to fuzzers/ECP5/102-oscg/osc.ncl
diff --git a/fuzzers/102-oscg/osc_routing.ncl b/fuzzers/ECP5/102-oscg/osc_routing.ncl
similarity index 100%
rename from fuzzers/102-oscg/osc_routing.ncl
rename to fuzzers/ECP5/102-oscg/osc_routing.ncl
diff --git a/fuzzers/103-gsr/empty.ncl b/fuzzers/ECP5/103-gsr/empty.ncl
similarity index 100%
rename from fuzzers/103-gsr/empty.ncl
rename to fuzzers/ECP5/103-gsr/empty.ncl
diff --git a/fuzzers/103-gsr/fuzzer.py b/fuzzers/ECP5/103-gsr/fuzzer.py
similarity index 97%
rename from fuzzers/103-gsr/fuzzer.py
rename to fuzzers/ECP5/103-gsr/fuzzer.py
index 16a39b3..fc2ba61 100644
--- a/fuzzers/103-gsr/fuzzer.py
+++ b/fuzzers/ECP5/103-gsr/fuzzer.py
@@ -19,7 +19,7 @@
 
 
 def main():
-    pytrellis.load_database("../../database")
+    pytrellis.load_database("../../../database")
     cfg.setup()
     empty_bitfile = cfg.build_design(cfg.ncl, {})
     cfg.ncl = "gsr.ncl"
diff --git a/fuzzers/103-gsr/gsr.ncl b/fuzzers/ECP5/103-gsr/gsr.ncl
similarity index 100%
rename from fuzzers/103-gsr/gsr.ncl
rename to fuzzers/ECP5/103-gsr/gsr.ncl
diff --git a/fuzzers/103-gsr/gsr_routing.ncl b/fuzzers/ECP5/103-gsr/gsr_routing.ncl
similarity index 100%
rename from fuzzers/103-gsr/gsr_routing.ncl
rename to fuzzers/ECP5/103-gsr/gsr_routing.ncl
diff --git a/fuzzers/103-gsr/gsr_routing_25k.ncl b/fuzzers/ECP5/103-gsr/gsr_routing_25k.ncl
similarity index 100%
rename from fuzzers/103-gsr/gsr_routing_25k.ncl
rename to fuzzers/ECP5/103-gsr/gsr_routing_25k.ncl
diff --git a/fuzzers/103-gsr/gsr_routing_85k.ncl b/fuzzers/ECP5/103-gsr/gsr_routing_85k.ncl
similarity index 100%
rename from fuzzers/103-gsr/gsr_routing_85k.ncl
rename to fuzzers/ECP5/103-gsr/gsr_routing_85k.ncl
diff --git a/fuzzers/104-jtagg/empty.ncl b/fuzzers/ECP5/104-jtagg/empty.ncl
similarity index 100%
rename from fuzzers/104-jtagg/empty.ncl
rename to fuzzers/ECP5/104-jtagg/empty.ncl
diff --git a/fuzzers/104-jtagg/fuzzer.py b/fuzzers/ECP5/104-jtagg/fuzzer.py
similarity index 96%
rename from fuzzers/104-jtagg/fuzzer.py
rename to fuzzers/ECP5/104-jtagg/fuzzer.py
index 80ab2ab..640f7a8 100644
--- a/fuzzers/104-jtagg/fuzzer.py
+++ b/fuzzers/ECP5/104-jtagg/fuzzer.py
@@ -16,7 +16,7 @@
     return dict(comment=comment, er1=er1, er2=er2)
 
 def main():
-    pytrellis.load_database("../../database")
+    pytrellis.load_database("../../../database")
     cfg.setup()
     empty_bitfile = cfg.build_design(cfg.ncl, {})
     cfg.ncl = "jtag.ncl"
diff --git a/fuzzers/104-jtagg/jtag.ncl b/fuzzers/ECP5/104-jtagg/jtag.ncl
similarity index 100%
rename from fuzzers/104-jtagg/jtag.ncl
rename to fuzzers/ECP5/104-jtagg/jtag.ncl
diff --git a/fuzzers/104-jtagg/jtag_routing.ncl b/fuzzers/ECP5/104-jtagg/jtag_routing.ncl
similarity index 100%
rename from fuzzers/104-jtagg/jtag_routing.ncl
rename to fuzzers/ECP5/104-jtagg/jtag_routing.ncl
diff --git a/fuzzers/105-sedga/empty.ncl b/fuzzers/ECP5/105-sedga/empty.ncl
similarity index 100%
rename from fuzzers/105-sedga/empty.ncl
rename to fuzzers/ECP5/105-sedga/empty.ncl
diff --git a/fuzzers/105-sedga/fuzzer.py b/fuzzers/ECP5/105-sedga/fuzzer.py
similarity index 97%
rename from fuzzers/105-sedga/fuzzer.py
rename to fuzzers/ECP5/105-sedga/fuzzer.py
index 440cf08..50393dd 100644
--- a/fuzzers/105-sedga/fuzzer.py
+++ b/fuzzers/ECP5/105-sedga/fuzzer.py
@@ -21,7 +21,7 @@
 
 
 def main():
-    pytrellis.load_database("../../database")
+    pytrellis.load_database("../../../database")
     cfg.setup()
     empty_bitfile = cfg.build_design(cfg.ncl, {})
     cfg.ncl = "sed.ncl"
diff --git a/fuzzers/105-sedga/sed.ncl b/fuzzers/ECP5/105-sedga/sed.ncl
similarity index 100%
rename from fuzzers/105-sedga/sed.ncl
rename to fuzzers/ECP5/105-sedga/sed.ncl
diff --git a/fuzzers/105-sedga/sed_routing.ncl b/fuzzers/ECP5/105-sedga/sed_routing.ncl
similarity index 100%
rename from fuzzers/105-sedga/sed_routing.ncl
rename to fuzzers/ECP5/105-sedga/sed_routing.ncl
diff --git a/fuzzers/110-dcu_routing/dcuroute.ncl b/fuzzers/ECP5/110-dcu_routing/dcuroute.ncl
similarity index 100%
rename from fuzzers/110-dcu_routing/dcuroute.ncl
rename to fuzzers/ECP5/110-dcu_routing/dcuroute.ncl
diff --git a/fuzzers/110-dcu_routing/fuzzer.py b/fuzzers/ECP5/110-dcu_routing/fuzzer.py
similarity index 94%
rename from fuzzers/110-dcu_routing/fuzzer.py
rename to fuzzers/ECP5/110-dcu_routing/fuzzer.py
index 290a7c9..9c88eaf 100644
--- a/fuzzers/110-dcu_routing/fuzzer.py
+++ b/fuzzers/ECP5/110-dcu_routing/fuzzer.py
@@ -14,7 +14,7 @@
 
 
 def main():
-    pytrellis.load_database("../../database")
+    pytrellis.load_database("../../../database")
     for job in jobs:
         loc, cfg = job
         cfg.setup()
diff --git a/fuzzers/112-dcu_config/dcuconfig.ncl b/fuzzers/ECP5/112-dcu_config/dcuconfig.ncl
similarity index 100%
rename from fuzzers/112-dcu_config/dcuconfig.ncl
rename to fuzzers/ECP5/112-dcu_config/dcuconfig.ncl
diff --git a/fuzzers/112-dcu_config/empty.ncl b/fuzzers/ECP5/112-dcu_config/empty.ncl
similarity index 100%
rename from fuzzers/112-dcu_config/empty.ncl
rename to fuzzers/ECP5/112-dcu_config/empty.ncl
diff --git a/fuzzers/112-dcu_config/fuzzer.py b/fuzzers/ECP5/112-dcu_config/fuzzer.py
similarity index 99%
rename from fuzzers/112-dcu_config/fuzzer.py
rename to fuzzers/ECP5/112-dcu_config/fuzzer.py
index 9cab285..87b8607 100644
--- a/fuzzers/112-dcu_config/fuzzer.py
+++ b/fuzzers/ECP5/112-dcu_config/fuzzer.py
@@ -28,7 +28,7 @@
     return "0d{}".format(res)
 
 def main():
-    pytrellis.load_database("../../database")
+    pytrellis.load_database("../../../database")
 
     def per_job(cfg):
         def get_substs(settings, mode="DCUA"):
diff --git a/fuzzers/114-extrefb/empty.ncl b/fuzzers/ECP5/114-extrefb/empty.ncl
similarity index 100%
rename from fuzzers/114-extrefb/empty.ncl
rename to fuzzers/ECP5/114-extrefb/empty.ncl
diff --git a/fuzzers/114-extrefb/extref.ncl b/fuzzers/ECP5/114-extrefb/extref.ncl
similarity index 100%
rename from fuzzers/114-extrefb/extref.ncl
rename to fuzzers/ECP5/114-extrefb/extref.ncl
diff --git a/fuzzers/114-extrefb/extref_routing.ncl b/fuzzers/ECP5/114-extrefb/extref_routing.ncl
similarity index 100%
rename from fuzzers/114-extrefb/extref_routing.ncl
rename to fuzzers/ECP5/114-extrefb/extref_routing.ncl
diff --git a/fuzzers/114-extrefb/fuzzer.py b/fuzzers/ECP5/114-extrefb/fuzzer.py
similarity index 97%
rename from fuzzers/114-extrefb/fuzzer.py
rename to fuzzers/ECP5/114-extrefb/fuzzer.py
index 833484a..da81927 100644
--- a/fuzzers/114-extrefb/fuzzer.py
+++ b/fuzzers/ECP5/114-extrefb/fuzzer.py
@@ -27,7 +27,7 @@
 
 
 def main():
-    pytrellis.load_database("../../database")
+    pytrellis.load_database("../../../database")
     cfg.setup()
     empty_bitfile = cfg.build_design(cfg.ncl, {})
     cfg.ncl = "extref.ncl"
diff --git a/fuzzers/116-midmux-dcu/emux_25k.ncl b/fuzzers/ECP5/116-midmux-dcu/emux_25k.ncl
similarity index 100%
rename from fuzzers/116-midmux-dcu/emux_25k.ncl
rename to fuzzers/ECP5/116-midmux-dcu/emux_25k.ncl
diff --git a/fuzzers/116-midmux-dcu/emux_45k.ncl b/fuzzers/ECP5/116-midmux-dcu/emux_45k.ncl
similarity index 100%
rename from fuzzers/116-midmux-dcu/emux_45k.ncl
rename to fuzzers/ECP5/116-midmux-dcu/emux_45k.ncl
diff --git a/fuzzers/116-midmux-dcu/emux_85k.ncl b/fuzzers/ECP5/116-midmux-dcu/emux_85k.ncl
similarity index 100%
rename from fuzzers/116-midmux-dcu/emux_85k.ncl
rename to fuzzers/ECP5/116-midmux-dcu/emux_85k.ncl
diff --git a/fuzzers/116-midmux-dcu/fuzzer.py b/fuzzers/ECP5/116-midmux-dcu/fuzzer.py
similarity index 97%
rename from fuzzers/116-midmux-dcu/fuzzer.py
rename to fuzzers/ECP5/116-midmux-dcu/fuzzer.py
index dde98f4..e4ea547 100644
--- a/fuzzers/116-midmux-dcu/fuzzer.py
+++ b/fuzzers/ECP5/116-midmux-dcu/fuzzer.py
@@ -54,7 +54,7 @@
 
 
 def main():
-    pytrellis.load_database("../../database")
+    pytrellis.load_database("../../../database")
     for job in jobs:
         cfg = job["cfg"]
         cfg.setup()
diff --git a/fuzzers/117-pcsclkdiv/empty.ncl b/fuzzers/ECP5/117-pcsclkdiv/empty.ncl
similarity index 100%
rename from fuzzers/117-pcsclkdiv/empty.ncl
rename to fuzzers/ECP5/117-pcsclkdiv/empty.ncl
diff --git a/fuzzers/117-pcsclkdiv/fuzzer.py b/fuzzers/ECP5/117-pcsclkdiv/fuzzer.py
similarity index 97%
rename from fuzzers/117-pcsclkdiv/fuzzer.py
rename to fuzzers/ECP5/117-pcsclkdiv/fuzzer.py
index 3d1784b..e7dd757 100644
--- a/fuzzers/117-pcsclkdiv/fuzzer.py
+++ b/fuzzers/ECP5/117-pcsclkdiv/fuzzer.py
@@ -11,7 +11,7 @@
 
 
 def main():
-    pytrellis.load_database("../../database")
+    pytrellis.load_database("../../../database")
 
     def per_job(job):
         def get_substs(mode="PCSCLKDIV", program=None):
diff --git a/fuzzers/117-pcsclkdiv/pcsclkdiv.ncl b/fuzzers/ECP5/117-pcsclkdiv/pcsclkdiv.ncl
similarity index 100%
rename from fuzzers/117-pcsclkdiv/pcsclkdiv.ncl
rename to fuzzers/ECP5/117-pcsclkdiv/pcsclkdiv.ncl
diff --git a/fuzzers/117-pcsclkdiv/pcsclkdiv_routing.ncl b/fuzzers/ECP5/117-pcsclkdiv/pcsclkdiv_routing.ncl
similarity index 100%
rename from fuzzers/117-pcsclkdiv/pcsclkdiv_routing.ncl
rename to fuzzers/ECP5/117-pcsclkdiv/pcsclkdiv_routing.ncl
diff --git a/fuzzers/120-clkdiv/clkdiv.ncl b/fuzzers/ECP5/120-clkdiv/clkdiv.ncl
similarity index 100%
rename from fuzzers/120-clkdiv/clkdiv.ncl
rename to fuzzers/ECP5/120-clkdiv/clkdiv.ncl
diff --git a/fuzzers/120-clkdiv/clkdiv_routing.ncl b/fuzzers/ECP5/120-clkdiv/clkdiv_routing.ncl
similarity index 100%
rename from fuzzers/120-clkdiv/clkdiv_routing.ncl
rename to fuzzers/ECP5/120-clkdiv/clkdiv_routing.ncl
diff --git a/fuzzers/120-clkdiv/empty.ncl b/fuzzers/ECP5/120-clkdiv/empty.ncl
similarity index 100%
rename from fuzzers/120-clkdiv/empty.ncl
rename to fuzzers/ECP5/120-clkdiv/empty.ncl
diff --git a/fuzzers/120-clkdiv/fuzzer.py b/fuzzers/ECP5/120-clkdiv/fuzzer.py
similarity index 97%
rename from fuzzers/120-clkdiv/fuzzer.py
rename to fuzzers/ECP5/120-clkdiv/fuzzer.py
index bda57c3..7166501 100644
--- a/fuzzers/120-clkdiv/fuzzer.py
+++ b/fuzzers/ECP5/120-clkdiv/fuzzer.py
@@ -16,7 +16,7 @@
 
 
 def main():
-    pytrellis.load_database("../../database")
+    pytrellis.load_database("../../../database")
 
     def per_job(job):
 
diff --git a/fuzzers/121-eclk/emux_45k.ncl b/fuzzers/ECP5/121-eclk/emux_45k.ncl
similarity index 100%
rename from fuzzers/121-eclk/emux_45k.ncl
rename to fuzzers/ECP5/121-eclk/emux_45k.ncl
diff --git a/fuzzers/121-eclk/fuzzer.py b/fuzzers/ECP5/121-eclk/fuzzer.py
similarity index 97%
rename from fuzzers/121-eclk/fuzzer.py
rename to fuzzers/ECP5/121-eclk/fuzzer.py
index fb7a14d..50fb419 100644
--- a/fuzzers/121-eclk/fuzzer.py
+++ b/fuzzers/ECP5/121-eclk/fuzzer.py
@@ -44,7 +44,7 @@
 
 
 def main():
-    pytrellis.load_database("../../database")
+    pytrellis.load_database("../../../database")
     for job in jobs:
         cfg = job["cfg"]
         cfg.setup()
diff --git a/fuzzers/122-eclksync/eclksync.ncl b/fuzzers/ECP5/122-eclksync/eclksync.ncl
similarity index 100%
rename from fuzzers/122-eclksync/eclksync.ncl
rename to fuzzers/ECP5/122-eclksync/eclksync.ncl
diff --git a/fuzzers/122-eclksync/empty.ncl b/fuzzers/ECP5/122-eclksync/empty.ncl
similarity index 100%
rename from fuzzers/122-eclksync/empty.ncl
rename to fuzzers/ECP5/122-eclksync/empty.ncl
diff --git a/fuzzers/122-eclksync/fuzzer.py b/fuzzers/ECP5/122-eclksync/fuzzer.py
similarity index 97%
rename from fuzzers/122-eclksync/fuzzer.py
rename to fuzzers/ECP5/122-eclksync/fuzzer.py
index 22982df..9c740df 100644
--- a/fuzzers/122-eclksync/fuzzer.py
+++ b/fuzzers/ECP5/122-eclksync/fuzzer.py
@@ -26,7 +26,7 @@
 
 
 def main():
-    pytrellis.load_database("../../database")
+    pytrellis.load_database("../../../database")
 
     def per_job(job):
 
diff --git a/fuzzers/130-dqsbuf/dqsbuf.ncl b/fuzzers/ECP5/130-dqsbuf/dqsbuf.ncl
similarity index 100%
rename from fuzzers/130-dqsbuf/dqsbuf.ncl
rename to fuzzers/ECP5/130-dqsbuf/dqsbuf.ncl
diff --git a/fuzzers/130-dqsbuf/dqsbuf_routing.ncl b/fuzzers/ECP5/130-dqsbuf/dqsbuf_routing.ncl
similarity index 100%
rename from fuzzers/130-dqsbuf/dqsbuf_routing.ncl
rename to fuzzers/ECP5/130-dqsbuf/dqsbuf_routing.ncl
diff --git a/fuzzers/130-dqsbuf/empty.ncl b/fuzzers/ECP5/130-dqsbuf/empty.ncl
similarity index 100%
rename from fuzzers/130-dqsbuf/empty.ncl
rename to fuzzers/ECP5/130-dqsbuf/empty.ncl
diff --git a/fuzzers/130-dqsbuf/fuzzer.py b/fuzzers/ECP5/130-dqsbuf/fuzzer.py
similarity index 98%
rename from fuzzers/130-dqsbuf/fuzzer.py
rename to fuzzers/ECP5/130-dqsbuf/fuzzer.py
index d5cb48a..c140495 100644
--- a/fuzzers/130-dqsbuf/fuzzer.py
+++ b/fuzzers/ECP5/130-dqsbuf/fuzzer.py
@@ -24,7 +24,7 @@
 
 
 def main():
-    pytrellis.load_database("../../database")
+    pytrellis.load_database("../../../database")
 
     def per_job(job):
 
diff --git a/fuzzers/132-dlldel/dlldel.ncl b/fuzzers/ECP5/132-dlldel/dlldel.ncl
similarity index 100%
rename from fuzzers/132-dlldel/dlldel.ncl
rename to fuzzers/ECP5/132-dlldel/dlldel.ncl
diff --git a/fuzzers/132-dlldel/dlldel_routing.ncl b/fuzzers/ECP5/132-dlldel/dlldel_routing.ncl
similarity index 100%
rename from fuzzers/132-dlldel/dlldel_routing.ncl
rename to fuzzers/ECP5/132-dlldel/dlldel_routing.ncl
diff --git a/fuzzers/132-dlldel/empty.ncl b/fuzzers/ECP5/132-dlldel/empty.ncl
similarity index 100%
rename from fuzzers/132-dlldel/empty.ncl
rename to fuzzers/ECP5/132-dlldel/empty.ncl
diff --git a/fuzzers/132-dlldel/fuzzer.py b/fuzzers/ECP5/132-dlldel/fuzzer.py
similarity index 98%
rename from fuzzers/132-dlldel/fuzzer.py
rename to fuzzers/ECP5/132-dlldel/fuzzer.py
index d54063a..206cb91 100644
--- a/fuzzers/132-dlldel/fuzzer.py
+++ b/fuzzers/ECP5/132-dlldel/fuzzer.py
@@ -28,7 +28,7 @@
 
 
 def main():
-    pytrellis.load_database("../../database")
+    pytrellis.load_database("../../../database")
 
     def per_job(job):
         cfg, locs = job
diff --git a/fuzzers/133-ddrdll/ddrdll.ncl b/fuzzers/ECP5/133-ddrdll/ddrdll.ncl
similarity index 100%
rename from fuzzers/133-ddrdll/ddrdll.ncl
rename to fuzzers/ECP5/133-ddrdll/ddrdll.ncl
diff --git a/fuzzers/133-ddrdll/ddrdll_25k.ncl b/fuzzers/ECP5/133-ddrdll/ddrdll_25k.ncl
similarity index 100%
rename from fuzzers/133-ddrdll/ddrdll_25k.ncl
rename to fuzzers/ECP5/133-ddrdll/ddrdll_25k.ncl
diff --git a/fuzzers/133-ddrdll/ddrdll_routing.ncl b/fuzzers/ECP5/133-ddrdll/ddrdll_routing.ncl
similarity index 100%
rename from fuzzers/133-ddrdll/ddrdll_routing.ncl
rename to fuzzers/ECP5/133-ddrdll/ddrdll_routing.ncl
diff --git a/fuzzers/133-ddrdll/ddrdll_routing_25k.ncl b/fuzzers/ECP5/133-ddrdll/ddrdll_routing_25k.ncl
similarity index 100%
rename from fuzzers/133-ddrdll/ddrdll_routing_25k.ncl
rename to fuzzers/ECP5/133-ddrdll/ddrdll_routing_25k.ncl
diff --git a/fuzzers/133-ddrdll/empty.ncl b/fuzzers/ECP5/133-ddrdll/empty.ncl
similarity index 100%
rename from fuzzers/133-ddrdll/empty.ncl
rename to fuzzers/ECP5/133-ddrdll/empty.ncl
diff --git a/fuzzers/133-ddrdll/empty_25k.ncl b/fuzzers/ECP5/133-ddrdll/empty_25k.ncl
similarity index 100%
rename from fuzzers/133-ddrdll/empty_25k.ncl
rename to fuzzers/ECP5/133-ddrdll/empty_25k.ncl
diff --git a/fuzzers/133-ddrdll/fuzzer.py b/fuzzers/ECP5/133-ddrdll/fuzzer.py
similarity index 98%
rename from fuzzers/133-ddrdll/fuzzer.py
rename to fuzzers/ECP5/133-ddrdll/fuzzer.py
index 7c97879..a22b2e2 100644
--- a/fuzzers/133-ddrdll/fuzzer.py
+++ b/fuzzers/ECP5/133-ddrdll/fuzzer.py
@@ -41,7 +41,7 @@
 
 
 def main():
-    pytrellis.load_database("../../database")
+    pytrellis.load_database("../../../database")
 
     def per_job(job):
         cfg, loc, rc = job
diff --git a/fuzzers/140-sysconfig/empty.ncl b/fuzzers/ECP5/140-sysconfig/empty.ncl
similarity index 100%
rename from fuzzers/140-sysconfig/empty.ncl
rename to fuzzers/ECP5/140-sysconfig/empty.ncl
diff --git a/fuzzers/140-sysconfig/empty.prf b/fuzzers/ECP5/140-sysconfig/empty.prf
similarity index 100%
rename from fuzzers/140-sysconfig/empty.prf
rename to fuzzers/ECP5/140-sysconfig/empty.prf
diff --git a/fuzzers/140-sysconfig/fuzzer.py b/fuzzers/ECP5/140-sysconfig/fuzzer.py
similarity index 97%
rename from fuzzers/140-sysconfig/fuzzer.py
rename to fuzzers/ECP5/140-sysconfig/fuzzer.py
index ee447c6..d22e07f 100644
--- a/fuzzers/140-sysconfig/fuzzer.py
+++ b/fuzzers/ECP5/140-sysconfig/fuzzer.py
@@ -14,7 +14,7 @@
 
 
 def main():
-    pytrellis.load_database("../../database")
+    pytrellis.load_database("../../../database")
     cfg.setup()
     empty_bitfile = cfg.build_design(cfg.ncl, {})
     nonrouting.fuzz_enum_setting(cfg, "SYSCONFIG.BACKGROUND_RECONFIG", ["OFF", "ON"],
diff --git a/fuzzers/142-bitargs/empty.ncl b/fuzzers/ECP5/142-bitargs/empty.ncl
similarity index 100%
rename from fuzzers/142-bitargs/empty.ncl
rename to fuzzers/ECP5/142-bitargs/empty.ncl
diff --git a/fuzzers/142-bitargs/fuzzer.py b/fuzzers/ECP5/142-bitargs/fuzzer.py
similarity index 96%
rename from fuzzers/142-bitargs/fuzzer.py
rename to fuzzers/ECP5/142-bitargs/fuzzer.py
index 66dc1d5..c92f645 100644
--- a/fuzzers/142-bitargs/fuzzer.py
+++ b/fuzzers/ECP5/142-bitargs/fuzzer.py
@@ -15,7 +15,7 @@
     return {}
 
 def main():
-    pytrellis.load_database("../../database")
+    pytrellis.load_database("../../../database")
     cfg.setup()
     empty_bitfile = cfg.build_design(cfg.ncl, {})
     nonrouting.fuzz_enum_setting(cfg, "SYSCONFIG.DONEPHASE", ["T0", "T1", "T2", "T3"],
diff --git a/fuzzers/143-bankref8/empty.ncl b/fuzzers/ECP5/143-bankref8/empty.ncl
similarity index 100%
rename from fuzzers/143-bankref8/empty.ncl
rename to fuzzers/ECP5/143-bankref8/empty.ncl
diff --git a/fuzzers/143-bankref8/fuzzer.py b/fuzzers/ECP5/143-bankref8/fuzzer.py
similarity index 96%
rename from fuzzers/143-bankref8/fuzzer.py
rename to fuzzers/ECP5/143-bankref8/fuzzer.py
index a2cac1c..7906682 100644
--- a/fuzzers/143-bankref8/fuzzer.py
+++ b/fuzzers/ECP5/143-bankref8/fuzzer.py
@@ -18,7 +18,7 @@
 
 
 def main():
-    pytrellis.load_database("../../database")
+    pytrellis.load_database("../../../database")
     for job in jobs:
         cfg = job["cfg"]
         side = job["side"]
diff --git a/fuzzers/143-bankref8/pio.lpf b/fuzzers/ECP5/143-bankref8/pio.lpf
similarity index 100%
rename from fuzzers/143-bankref8/pio.lpf
rename to fuzzers/ECP5/143-bankref8/pio.lpf
diff --git a/fuzzers/143-bankref8/pio.v b/fuzzers/ECP5/143-bankref8/pio.v
similarity index 100%
rename from fuzzers/143-bankref8/pio.v
rename to fuzzers/ECP5/143-bankref8/pio.v
diff --git a/fuzzers/900-db_fixup/fuzzer.py b/fuzzers/ECP5/900-db_fixup/fuzzer.py
similarity index 70%
rename from fuzzers/900-db_fixup/fuzzer.py
rename to fuzzers/ECP5/900-db_fixup/fuzzer.py
index d2853df..8ade227 100644
--- a/fuzzers/900-db_fixup/fuzzer.py
+++ b/fuzzers/ECP5/900-db_fixup/fuzzer.py
@@ -1,12 +1,12 @@
 import dbfixup
 import pytrellis
 
-device = "LFE5U-45F"
+device = "LFE5UM5G-45F"
 
 
 def main():
-    pytrellis.load_database("../../database")
-    chip = pytrellis.Chip("LFE5U-45F")
+    pytrellis.load_database("../../../database")
+    chip = pytrellis.Chip("LFE5UM5G-45F")
     tiletypes = set()
     for tile in chip.get_all_tiles():
         tiletypes.add(tile.info.type)