Move common hardware IP to hw/ip

- Decouple most target-asnotistic hw IP from top_matcha
- IP from autogen left alone, along with several other IPs
to be moved later

Change-Id: Id349b723f71586a0f369d3e827d7c01f8b12e1d3
diff --git a/BUILD.bazel b/BUILD.bazel
index b131709..65b32d7 100644
--- a/BUILD.bazel
+++ b/BUILD.bazel
@@ -23,7 +23,7 @@
             "@kelvin_core//:kelvin.core",
         ],
         "//conditions:default": [
-            "//hw/top_matcha/ip/dma/chisel:fastvdma.core",
+            "//hw/ip/dma/chisel:fastvdma.core",
             "@kelvin_hw//hdl/chisel:kelvin.core",
         ],
     }),
diff --git a/hw/BUILD b/hw/BUILD
index ec4c0d3..cd7f31a 100644
--- a/hw/BUILD
+++ b/hw/BUILD
@@ -81,6 +81,7 @@
 filegroup(
     name = "all_files",
     srcs = glob(["**"]) + [
+        "//hw/ip:all_files",
         "//hw/top_matcha:all_files",
         "@lowrisc_opentitan//hw/dv:all_files",
     ] + select({
@@ -89,7 +90,7 @@
             "@kelvin_core//:all_files",
         ],
         "//conditions:default": [
-            "//hw/top_matcha/ip/dma/chisel:fastvdma_core",
+            "//hw/ip/dma/chisel:fastvdma_core",
             "@kelvin_hw//hdl/chisel:kelvin_core",
         ],
     }),
diff --git a/hw/dv/tools/dvsim/fusesoc.hjson b/hw/dv/tools/dvsim/fusesoc.hjson
index 3337b7a..80650b1 100644
--- a/hw/dv/tools/dvsim/fusesoc.hjson
+++ b/hw/dv/tools/dvsim/fusesoc.hjson
@@ -13,7 +13,7 @@
                        "--setup {fusesoc_core}"]
   fusesoc_cores_root_dirs: ["--cores-root {titan_root}/hw/ip",
           "--cores-root {proj_root}/bazel-bin/external/kelvin_hw/hdl/chisel",
-          "--cores-root {proj_root}/bazel-bin/hw/top_matcha/ip/dma/chisel",
+          "--cores-root {proj_root}/bazel-bin/hw/ip/dma/chisel",
           "--cores-root {proj_root}/../../out/kelvin/hw/kelvin_core",
           "--cores-root {proj_root}/../../out/matcha/hw/fastvdma_core",
           "--cores-root {titan_root}/hw/dv/sv",
diff --git a/hw/ip/BUILD b/hw/ip/BUILD
new file mode 100644
index 0000000..bf8cea7
--- /dev/null
+++ b/hw/ip/BUILD
@@ -0,0 +1,33 @@
+# Copyright 2024 Google LLC
+# Copyright lowRISC contributors.
+# Licensed under the Apache License, Version 2.0, see LICENSE for details.
+# SPDX-License-Identifier: Apache-2.0
+
+package(default_visibility = ["//visibility:public"])
+
+exports_files(glob(["autogen/**"]))
+
+filegroup(
+    name = "all_files",
+    srcs = glob(["**"]) + [
+        "//hw/ip/dma:all_files",
+        "//hw/ip/i2s:all_files",
+        "//hw/ip/ml_top/data:all_files",
+        "//hw/ip/rv_core_smc:all_files",
+        "//hw/ip/smc_ctrl:all_files",
+        "//hw/ip/tlul_mailbox:all_files",
+    ],
+)
+
+filegroup(
+    name = "all_hjson_files",
+    srcs = glob(["**/data/**/*.hjson"]) + [
+        "//hw/ip/cam_ctrl/data:cam_ctrl.hjson",
+        "//hw/ip/dma/data:dma.hjson",
+        "//hw/ip/i2s/data:i2s.hjson",
+        "//hw/ip/ml_top/data:ml_top.hjson",
+        "//hw/ip/rv_core_smc/data:rv_core_smc.hjson",
+        "//hw/ip/smc_ctrl/data:smc_ctrl.hjson",
+        "//hw/ip/tlul_mailbox/data:tlul_mailbox.hjson",
+    ],
+)
diff --git a/hw/top_matcha/ip/cam_ctrl/cam_ctrl.core b/hw/ip/cam_ctrl/cam_ctrl.core
similarity index 100%
rename from hw/top_matcha/ip/cam_ctrl/cam_ctrl.core
rename to hw/ip/cam_ctrl/cam_ctrl.core
diff --git a/hw/top_matcha/ip/cam_ctrl/data/BUILD b/hw/ip/cam_ctrl/data/BUILD
similarity index 100%
rename from hw/top_matcha/ip/cam_ctrl/data/BUILD
rename to hw/ip/cam_ctrl/data/BUILD
diff --git a/hw/top_matcha/ip/cam_ctrl/data/cam_ctrl.hjson b/hw/ip/cam_ctrl/data/cam_ctrl.hjson
similarity index 100%
rename from hw/top_matcha/ip/cam_ctrl/data/cam_ctrl.hjson
rename to hw/ip/cam_ctrl/data/cam_ctrl.hjson
diff --git a/hw/top_matcha/ip/cam_ctrl/data/cam_ctrl.prj.hjson b/hw/ip/cam_ctrl/data/cam_ctrl.prj.hjson
similarity index 100%
rename from hw/top_matcha/ip/cam_ctrl/data/cam_ctrl.prj.hjson
rename to hw/ip/cam_ctrl/data/cam_ctrl.prj.hjson
diff --git a/hw/top_matcha/ip/cam_ctrl/data/cam_ctrl_testplan.hjson b/hw/ip/cam_ctrl/data/cam_ctrl_testplan.hjson
similarity index 100%
rename from hw/top_matcha/ip/cam_ctrl/data/cam_ctrl_testplan.hjson
rename to hw/ip/cam_ctrl/data/cam_ctrl_testplan.hjson
diff --git a/hw/top_matcha/ip/cam_ctrl/doc/_index.md b/hw/ip/cam_ctrl/doc/_index.md
similarity index 100%
rename from hw/top_matcha/ip/cam_ctrl/doc/_index.md
rename to hw/ip/cam_ctrl/doc/_index.md
diff --git a/hw/top_matcha/ip/cam_ctrl/dv/cam_ctrl_sim.core b/hw/ip/cam_ctrl/dv/cam_ctrl_sim.core
similarity index 100%
rename from hw/top_matcha/ip/cam_ctrl/dv/cam_ctrl_sim.core
rename to hw/ip/cam_ctrl/dv/cam_ctrl_sim.core
diff --git a/hw/top_matcha/ip/cam_ctrl/dv/cam_ctrl_sim_cfg.hjson b/hw/ip/cam_ctrl/dv/cam_ctrl_sim_cfg.hjson
similarity index 100%
rename from hw/top_matcha/ip/cam_ctrl/dv/cam_ctrl_sim_cfg.hjson
rename to hw/ip/cam_ctrl/dv/cam_ctrl_sim_cfg.hjson
diff --git a/hw/top_matcha/ip/cam_ctrl/dv/env/cam_ctrl_env.core b/hw/ip/cam_ctrl/dv/env/cam_ctrl_env.core
similarity index 100%
rename from hw/top_matcha/ip/cam_ctrl/dv/env/cam_ctrl_env.core
rename to hw/ip/cam_ctrl/dv/env/cam_ctrl_env.core
diff --git a/hw/top_matcha/ip/cam_ctrl/dv/env/cam_ctrl_env.sv b/hw/ip/cam_ctrl/dv/env/cam_ctrl_env.sv
similarity index 100%
rename from hw/top_matcha/ip/cam_ctrl/dv/env/cam_ctrl_env.sv
rename to hw/ip/cam_ctrl/dv/env/cam_ctrl_env.sv
diff --git a/hw/top_matcha/ip/cam_ctrl/dv/env/cam_ctrl_env_cfg.sv b/hw/ip/cam_ctrl/dv/env/cam_ctrl_env_cfg.sv
similarity index 100%
rename from hw/top_matcha/ip/cam_ctrl/dv/env/cam_ctrl_env_cfg.sv
rename to hw/ip/cam_ctrl/dv/env/cam_ctrl_env_cfg.sv
diff --git a/hw/top_matcha/ip/cam_ctrl/dv/env/cam_ctrl_env_cov.sv b/hw/ip/cam_ctrl/dv/env/cam_ctrl_env_cov.sv
similarity index 100%
rename from hw/top_matcha/ip/cam_ctrl/dv/env/cam_ctrl_env_cov.sv
rename to hw/ip/cam_ctrl/dv/env/cam_ctrl_env_cov.sv
diff --git a/hw/top_matcha/ip/cam_ctrl/dv/env/cam_ctrl_env_pkg.sv b/hw/ip/cam_ctrl/dv/env/cam_ctrl_env_pkg.sv
similarity index 100%
rename from hw/top_matcha/ip/cam_ctrl/dv/env/cam_ctrl_env_pkg.sv
rename to hw/ip/cam_ctrl/dv/env/cam_ctrl_env_pkg.sv
diff --git a/hw/top_matcha/ip/cam_ctrl/dv/env/cam_ctrl_scoreboard.sv b/hw/ip/cam_ctrl/dv/env/cam_ctrl_scoreboard.sv
similarity index 100%
rename from hw/top_matcha/ip/cam_ctrl/dv/env/cam_ctrl_scoreboard.sv
rename to hw/ip/cam_ctrl/dv/env/cam_ctrl_scoreboard.sv
diff --git a/hw/top_matcha/ip/cam_ctrl/dv/env/cam_ctrl_virtual_sequencer.sv b/hw/ip/cam_ctrl/dv/env/cam_ctrl_virtual_sequencer.sv
similarity index 100%
rename from hw/top_matcha/ip/cam_ctrl/dv/env/cam_ctrl_virtual_sequencer.sv
rename to hw/ip/cam_ctrl/dv/env/cam_ctrl_virtual_sequencer.sv
diff --git a/hw/top_matcha/ip/cam_ctrl/dv/env/seq_lib/cam_ctrl_base_vseq.sv b/hw/ip/cam_ctrl/dv/env/seq_lib/cam_ctrl_base_vseq.sv
similarity index 100%
rename from hw/top_matcha/ip/cam_ctrl/dv/env/seq_lib/cam_ctrl_base_vseq.sv
rename to hw/ip/cam_ctrl/dv/env/seq_lib/cam_ctrl_base_vseq.sv
diff --git a/hw/top_matcha/ip/cam_ctrl/dv/env/seq_lib/cam_ctrl_common_vseq.sv b/hw/ip/cam_ctrl/dv/env/seq_lib/cam_ctrl_common_vseq.sv
similarity index 100%
rename from hw/top_matcha/ip/cam_ctrl/dv/env/seq_lib/cam_ctrl_common_vseq.sv
rename to hw/ip/cam_ctrl/dv/env/seq_lib/cam_ctrl_common_vseq.sv
diff --git a/hw/top_matcha/ip/cam_ctrl/dv/env/seq_lib/cam_ctrl_smoke_vseq.sv b/hw/ip/cam_ctrl/dv/env/seq_lib/cam_ctrl_smoke_vseq.sv
similarity index 100%
rename from hw/top_matcha/ip/cam_ctrl/dv/env/seq_lib/cam_ctrl_smoke_vseq.sv
rename to hw/ip/cam_ctrl/dv/env/seq_lib/cam_ctrl_smoke_vseq.sv
diff --git a/hw/top_matcha/ip/cam_ctrl/dv/env/seq_lib/cam_ctrl_vseq_list.sv b/hw/ip/cam_ctrl/dv/env/seq_lib/cam_ctrl_vseq_list.sv
similarity index 100%
rename from hw/top_matcha/ip/cam_ctrl/dv/env/seq_lib/cam_ctrl_vseq_list.sv
rename to hw/ip/cam_ctrl/dv/env/seq_lib/cam_ctrl_vseq_list.sv
diff --git a/hw/top_matcha/ip/cam_ctrl/dv/sva/cam_ctrl_bind.sv b/hw/ip/cam_ctrl/dv/sva/cam_ctrl_bind.sv
similarity index 100%
rename from hw/top_matcha/ip/cam_ctrl/dv/sva/cam_ctrl_bind.sv
rename to hw/ip/cam_ctrl/dv/sva/cam_ctrl_bind.sv
diff --git a/hw/top_matcha/ip/cam_ctrl/dv/sva/cam_ctrl_sva.core b/hw/ip/cam_ctrl/dv/sva/cam_ctrl_sva.core
similarity index 100%
rename from hw/top_matcha/ip/cam_ctrl/dv/sva/cam_ctrl_sva.core
rename to hw/ip/cam_ctrl/dv/sva/cam_ctrl_sva.core
diff --git a/hw/top_matcha/ip/cam_ctrl/dv/tb.sv b/hw/ip/cam_ctrl/dv/tb.sv
similarity index 100%
rename from hw/top_matcha/ip/cam_ctrl/dv/tb.sv
rename to hw/ip/cam_ctrl/dv/tb.sv
diff --git a/hw/top_matcha/ip/cam_ctrl/dv/tests/cam_ctrl_base_test.sv b/hw/ip/cam_ctrl/dv/tests/cam_ctrl_base_test.sv
similarity index 100%
rename from hw/top_matcha/ip/cam_ctrl/dv/tests/cam_ctrl_base_test.sv
rename to hw/ip/cam_ctrl/dv/tests/cam_ctrl_base_test.sv
diff --git a/hw/top_matcha/ip/cam_ctrl/dv/tests/cam_ctrl_test.core b/hw/ip/cam_ctrl/dv/tests/cam_ctrl_test.core
similarity index 100%
rename from hw/top_matcha/ip/cam_ctrl/dv/tests/cam_ctrl_test.core
rename to hw/ip/cam_ctrl/dv/tests/cam_ctrl_test.core
diff --git a/hw/top_matcha/ip/cam_ctrl/dv/tests/cam_ctrl_test_pkg.sv b/hw/ip/cam_ctrl/dv/tests/cam_ctrl_test_pkg.sv
similarity index 100%
rename from hw/top_matcha/ip/cam_ctrl/dv/tests/cam_ctrl_test_pkg.sv
rename to hw/ip/cam_ctrl/dv/tests/cam_ctrl_test_pkg.sv
diff --git a/hw/top_matcha/ip/cam_ctrl/lint/cam_ctrl.vlt b/hw/ip/cam_ctrl/lint/cam_ctrl.vlt
similarity index 100%
rename from hw/top_matcha/ip/cam_ctrl/lint/cam_ctrl.vlt
rename to hw/ip/cam_ctrl/lint/cam_ctrl.vlt
diff --git a/hw/top_matcha/ip/cam_ctrl/lint/cam_ctrl.waiver b/hw/ip/cam_ctrl/lint/cam_ctrl.waiver
similarity index 100%
rename from hw/top_matcha/ip/cam_ctrl/lint/cam_ctrl.waiver
rename to hw/ip/cam_ctrl/lint/cam_ctrl.waiver
diff --git a/hw/top_matcha/ip/cam_ctrl/rtl/cam_ctrl.sv b/hw/ip/cam_ctrl/rtl/cam_ctrl.sv
similarity index 100%
rename from hw/top_matcha/ip/cam_ctrl/rtl/cam_ctrl.sv
rename to hw/ip/cam_ctrl/rtl/cam_ctrl.sv
diff --git a/hw/top_matcha/ip/cam_ctrl/rtl/cam_ctrl_reg_pkg.sv b/hw/ip/cam_ctrl/rtl/cam_ctrl_reg_pkg.sv
similarity index 100%
rename from hw/top_matcha/ip/cam_ctrl/rtl/cam_ctrl_reg_pkg.sv
rename to hw/ip/cam_ctrl/rtl/cam_ctrl_reg_pkg.sv
diff --git a/hw/top_matcha/ip/cam_ctrl/rtl/cam_ctrl_reg_top.sv b/hw/ip/cam_ctrl/rtl/cam_ctrl_reg_top.sv
similarity index 100%
rename from hw/top_matcha/ip/cam_ctrl/rtl/cam_ctrl_reg_top.sv
rename to hw/ip/cam_ctrl/rtl/cam_ctrl_reg_top.sv
diff --git a/hw/top_matcha/ip/dma/BUILD b/hw/ip/dma/BUILD
similarity index 84%
rename from hw/top_matcha/ip/dma/BUILD
rename to hw/ip/dma/BUILD
index fc9717c..13afe4d 100644
--- a/hw/top_matcha/ip/dma/BUILD
+++ b/hw/ip/dma/BUILD
@@ -7,6 +7,6 @@
 filegroup(
     name = "all_files",
     srcs = glob(["**"]) + [
-        "//hw/top_matcha/ip/dma/data:all_files",
+        "//hw/ip/dma/data:all_files",
     ],
 )
diff --git a/hw/top_matcha/ip/dma/chisel/BUILD b/hw/ip/dma/chisel/BUILD
similarity index 88%
rename from hw/top_matcha/ip/dma/chisel/BUILD
rename to hw/ip/dma/chisel/BUILD
index 2a102ea..1272457 100644
--- a/hw/top_matcha/ip/dma/chisel/BUILD
+++ b/hw/ip/dma/chisel/BUILD
@@ -15,14 +15,14 @@
 genrule(
     name = "fastvdma_verilog",
     srcs = [
-        "//hw/top_matcha/ip/dma/chisel/src:DMATop.sv"
+        "//hw/ip/dma/chisel/src:DMATop.sv"
     ],
     outs = [
         "fastvdma.sv",
     ],
 
     cmd = """
-    cat $(location //hw/top_matcha/ip/dma/chisel/src:DMATop.sv) >> $(location fastvdma.sv)
+    cat $(location //hw/ip/dma/chisel/src:DMATop.sv) >> $(location fastvdma.sv)
     """,
     visibility = ["//visibility:public"],
 )
diff --git a/hw/top_matcha/ip/dma/chisel/fastvdma.core.in b/hw/ip/dma/chisel/fastvdma.core.in
similarity index 100%
rename from hw/top_matcha/ip/dma/chisel/fastvdma.core.in
rename to hw/ip/dma/chisel/fastvdma.core.in
diff --git a/hw/top_matcha/ip/dma/chisel/src/BUILD b/hw/ip/dma/chisel/src/BUILD
similarity index 100%
rename from hw/top_matcha/ip/dma/chisel/src/BUILD
rename to hw/ip/dma/chisel/src/BUILD
diff --git a/hw/top_matcha/ip/dma/chisel/src/DMAConfig.scala b/hw/ip/dma/chisel/src/DMAConfig.scala
similarity index 100%
rename from hw/top_matcha/ip/dma/chisel/src/DMAConfig.scala
rename to hw/ip/dma/chisel/src/DMAConfig.scala
diff --git a/hw/top_matcha/ip/dma/chisel/src/DMATop.scala b/hw/ip/dma/chisel/src/DMATop.scala
similarity index 100%
rename from hw/top_matcha/ip/dma/chisel/src/DMATop.scala
rename to hw/ip/dma/chisel/src/DMATop.scala
diff --git a/hw/top_matcha/ip/dma/chisel/src/bus/TLUL.scala b/hw/ip/dma/chisel/src/bus/TLUL.scala
similarity index 100%
rename from hw/top_matcha/ip/dma/chisel/src/bus/TLUL.scala
rename to hw/ip/dma/chisel/src/bus/TLUL.scala
diff --git a/hw/top_matcha/ip/dma/chisel/src/csr/CSR.scala b/hw/ip/dma/chisel/src/csr/CSR.scala
similarity index 100%
rename from hw/top_matcha/ip/dma/chisel/src/csr/CSR.scala
rename to hw/ip/dma/chisel/src/csr/CSR.scala
diff --git a/hw/top_matcha/ip/dma/chisel/src/csr/CSRBusBundle.scala b/hw/ip/dma/chisel/src/csr/CSRBusBundle.scala
similarity index 100%
rename from hw/top_matcha/ip/dma/chisel/src/csr/CSRBusBundle.scala
rename to hw/ip/dma/chisel/src/csr/CSRBusBundle.scala
diff --git a/hw/top_matcha/ip/dma/chisel/src/csr/CSRRegBundle.scala b/hw/ip/dma/chisel/src/csr/CSRRegBundle.scala
similarity index 100%
rename from hw/top_matcha/ip/dma/chisel/src/csr/CSRRegBundle.scala
rename to hw/ip/dma/chisel/src/csr/CSRRegBundle.scala
diff --git a/hw/top_matcha/ip/dma/chisel/src/csr/ClearCSR.scala b/hw/ip/dma/chisel/src/csr/ClearCSR.scala
similarity index 100%
rename from hw/top_matcha/ip/dma/chisel/src/csr/ClearCSR.scala
rename to hw/ip/dma/chisel/src/csr/ClearCSR.scala
diff --git a/hw/top_matcha/ip/dma/chisel/src/csr/SetCSR.scala b/hw/ip/dma/chisel/src/csr/SetCSR.scala
similarity index 100%
rename from hw/top_matcha/ip/dma/chisel/src/csr/SetCSR.scala
rename to hw/ip/dma/chisel/src/csr/SetCSR.scala
diff --git a/hw/top_matcha/ip/dma/chisel/src/csr/SimpleCSR.scala b/hw/ip/dma/chisel/src/csr/SimpleCSR.scala
similarity index 100%
rename from hw/top_matcha/ip/dma/chisel/src/csr/SimpleCSR.scala
rename to hw/ip/dma/chisel/src/csr/SimpleCSR.scala
diff --git a/hw/top_matcha/ip/dma/chisel/src/csr/StatusCSR.scala b/hw/ip/dma/chisel/src/csr/StatusCSR.scala
similarity index 100%
rename from hw/top_matcha/ip/dma/chisel/src/csr/StatusCSR.scala
rename to hw/ip/dma/chisel/src/csr/StatusCSR.scala
diff --git a/hw/top_matcha/ip/dma/chisel/src/frontend/BusBase.scala b/hw/ip/dma/chisel/src/frontend/BusBase.scala
similarity index 100%
rename from hw/top_matcha/ip/dma/chisel/src/frontend/BusBase.scala
rename to hw/ip/dma/chisel/src/frontend/BusBase.scala
diff --git a/hw/top_matcha/ip/dma/chisel/src/frontend/TLULCSR.scala b/hw/ip/dma/chisel/src/frontend/TLULCSR.scala
similarity index 100%
rename from hw/top_matcha/ip/dma/chisel/src/frontend/TLULCSR.scala
rename to hw/ip/dma/chisel/src/frontend/TLULCSR.scala
diff --git a/hw/top_matcha/ip/dma/chisel/src/frontend/TLULReader.scala b/hw/ip/dma/chisel/src/frontend/TLULReader.scala
similarity index 100%
rename from hw/top_matcha/ip/dma/chisel/src/frontend/TLULReader.scala
rename to hw/ip/dma/chisel/src/frontend/TLULReader.scala
diff --git a/hw/top_matcha/ip/dma/chisel/src/frontend/TLULWriter.scala b/hw/ip/dma/chisel/src/frontend/TLULWriter.scala
similarity index 100%
rename from hw/top_matcha/ip/dma/chisel/src/frontend/TLULWriter.scala
rename to hw/ip/dma/chisel/src/frontend/TLULWriter.scala
diff --git a/hw/top_matcha/ip/dma/chisel/src/worker/AddressGenerator.scala b/hw/ip/dma/chisel/src/worker/AddressGenerator.scala
similarity index 100%
rename from hw/top_matcha/ip/dma/chisel/src/worker/AddressGenerator.scala
rename to hw/ip/dma/chisel/src/worker/AddressGenerator.scala
diff --git a/hw/top_matcha/ip/dma/chisel/src/worker/AddressGeneratorCtlBundle.scala b/hw/ip/dma/chisel/src/worker/AddressGeneratorCtlBundle.scala
similarity index 100%
rename from hw/top_matcha/ip/dma/chisel/src/worker/AddressGeneratorCtlBundle.scala
rename to hw/ip/dma/chisel/src/worker/AddressGeneratorCtlBundle.scala
diff --git a/hw/top_matcha/ip/dma/chisel/src/worker/InterruptBundle.scala b/hw/ip/dma/chisel/src/worker/InterruptBundle.scala
similarity index 100%
rename from hw/top_matcha/ip/dma/chisel/src/worker/InterruptBundle.scala
rename to hw/ip/dma/chisel/src/worker/InterruptBundle.scala
diff --git a/hw/top_matcha/ip/dma/chisel/src/worker/InterruptController.scala b/hw/ip/dma/chisel/src/worker/InterruptController.scala
similarity index 100%
rename from hw/top_matcha/ip/dma/chisel/src/worker/InterruptController.scala
rename to hw/ip/dma/chisel/src/worker/InterruptController.scala
diff --git a/hw/top_matcha/ip/dma/chisel/src/worker/SyncBundle.scala b/hw/ip/dma/chisel/src/worker/SyncBundle.scala
similarity index 100%
rename from hw/top_matcha/ip/dma/chisel/src/worker/SyncBundle.scala
rename to hw/ip/dma/chisel/src/worker/SyncBundle.scala
diff --git a/hw/top_matcha/ip/dma/chisel/src/worker/TransferSplitter.scala b/hw/ip/dma/chisel/src/worker/TransferSplitter.scala
similarity index 100%
rename from hw/top_matcha/ip/dma/chisel/src/worker/TransferSplitter.scala
rename to hw/ip/dma/chisel/src/worker/TransferSplitter.scala
diff --git a/hw/top_matcha/ip/dma/chisel/src/worker/WorkerCSRWrapper.scala b/hw/ip/dma/chisel/src/worker/WorkerCSRWrapper.scala
similarity index 100%
rename from hw/top_matcha/ip/dma/chisel/src/worker/WorkerCSRWrapper.scala
rename to hw/ip/dma/chisel/src/worker/WorkerCSRWrapper.scala
diff --git a/hw/top_matcha/ip/dma/chisel/src/worker/XferDescBundle.scala b/hw/ip/dma/chisel/src/worker/XferDescBundle.scala
similarity index 100%
rename from hw/top_matcha/ip/dma/chisel/src/worker/XferDescBundle.scala
rename to hw/ip/dma/chisel/src/worker/XferDescBundle.scala
diff --git a/hw/top_matcha/ip/dma/data/BUILD b/hw/ip/dma/data/BUILD
similarity index 100%
rename from hw/top_matcha/ip/dma/data/BUILD
rename to hw/ip/dma/data/BUILD
diff --git a/hw/top_matcha/ip/dma/data/dma.hjson b/hw/ip/dma/data/dma.hjson
similarity index 100%
rename from hw/top_matcha/ip/dma/data/dma.hjson
rename to hw/ip/dma/data/dma.hjson
diff --git a/hw/top_matcha/ip/dma/data/dma_testplan.hjson b/hw/ip/dma/data/dma_testplan.hjson
similarity index 100%
rename from hw/top_matcha/ip/dma/data/dma_testplan.hjson
rename to hw/ip/dma/data/dma_testplan.hjson
diff --git a/hw/top_matcha/ip/dma/dma.core b/hw/ip/dma/dma.core
similarity index 100%
rename from hw/top_matcha/ip/dma/dma.core
rename to hw/ip/dma/dma.core
diff --git a/hw/top_matcha/ip/dma/dv/README.md b/hw/ip/dma/dv/README.md
similarity index 100%
rename from hw/top_matcha/ip/dma/dv/README.md
rename to hw/ip/dma/dv/README.md
diff --git a/hw/top_matcha/ip/dma/dv/dma_sim.core b/hw/ip/dma/dv/dma_sim.core
similarity index 100%
rename from hw/top_matcha/ip/dma/dv/dma_sim.core
rename to hw/ip/dma/dv/dma_sim.core
diff --git a/hw/top_matcha/ip/dma/dv/dma_sim_cfg.hjson b/hw/ip/dma/dv/dma_sim_cfg.hjson
similarity index 100%
rename from hw/top_matcha/ip/dma/dv/dma_sim_cfg.hjson
rename to hw/ip/dma/dv/dma_sim_cfg.hjson
diff --git a/hw/top_matcha/ip/dma/dv/env/dma_env.core b/hw/ip/dma/dv/env/dma_env.core
similarity index 100%
rename from hw/top_matcha/ip/dma/dv/env/dma_env.core
rename to hw/ip/dma/dv/env/dma_env.core
diff --git a/hw/top_matcha/ip/dma/dv/env/dma_env.sv b/hw/ip/dma/dv/env/dma_env.sv
similarity index 100%
rename from hw/top_matcha/ip/dma/dv/env/dma_env.sv
rename to hw/ip/dma/dv/env/dma_env.sv
diff --git a/hw/top_matcha/ip/dma/dv/env/dma_env_cfg.sv b/hw/ip/dma/dv/env/dma_env_cfg.sv
similarity index 100%
rename from hw/top_matcha/ip/dma/dv/env/dma_env_cfg.sv
rename to hw/ip/dma/dv/env/dma_env_cfg.sv
diff --git a/hw/top_matcha/ip/dma/dv/env/dma_env_cov.sv b/hw/ip/dma/dv/env/dma_env_cov.sv
similarity index 100%
rename from hw/top_matcha/ip/dma/dv/env/dma_env_cov.sv
rename to hw/ip/dma/dv/env/dma_env_cov.sv
diff --git a/hw/top_matcha/ip/dma/dv/env/dma_env_pkg.sv b/hw/ip/dma/dv/env/dma_env_pkg.sv
similarity index 100%
rename from hw/top_matcha/ip/dma/dv/env/dma_env_pkg.sv
rename to hw/ip/dma/dv/env/dma_env_pkg.sv
diff --git a/hw/top_matcha/ip/dma/dv/env/dma_scoreboard.sv b/hw/ip/dma/dv/env/dma_scoreboard.sv
similarity index 100%
rename from hw/top_matcha/ip/dma/dv/env/dma_scoreboard.sv
rename to hw/ip/dma/dv/env/dma_scoreboard.sv
diff --git a/hw/top_matcha/ip/dma/dv/env/dma_virtual_sequencer.sv b/hw/ip/dma/dv/env/dma_virtual_sequencer.sv
similarity index 100%
rename from hw/top_matcha/ip/dma/dv/env/dma_virtual_sequencer.sv
rename to hw/ip/dma/dv/env/dma_virtual_sequencer.sv
diff --git a/hw/top_matcha/ip/dma/dv/env/seq_lib/dma_base_vseq.sv b/hw/ip/dma/dv/env/seq_lib/dma_base_vseq.sv
similarity index 100%
rename from hw/top_matcha/ip/dma/dv/env/seq_lib/dma_base_vseq.sv
rename to hw/ip/dma/dv/env/seq_lib/dma_base_vseq.sv
diff --git a/hw/top_matcha/ip/dma/dv/env/seq_lib/dma_common_vseq.sv b/hw/ip/dma/dv/env/seq_lib/dma_common_vseq.sv
similarity index 100%
rename from hw/top_matcha/ip/dma/dv/env/seq_lib/dma_common_vseq.sv
rename to hw/ip/dma/dv/env/seq_lib/dma_common_vseq.sv
diff --git a/hw/top_matcha/ip/dma/dv/env/seq_lib/dma_smoke_vseq.sv b/hw/ip/dma/dv/env/seq_lib/dma_smoke_vseq.sv
similarity index 100%
rename from hw/top_matcha/ip/dma/dv/env/seq_lib/dma_smoke_vseq.sv
rename to hw/ip/dma/dv/env/seq_lib/dma_smoke_vseq.sv
diff --git a/hw/top_matcha/ip/dma/dv/env/seq_lib/dma_vseq_list.sv b/hw/ip/dma/dv/env/seq_lib/dma_vseq_list.sv
similarity index 100%
rename from hw/top_matcha/ip/dma/dv/env/seq_lib/dma_vseq_list.sv
rename to hw/ip/dma/dv/env/seq_lib/dma_vseq_list.sv
diff --git a/hw/top_matcha/ip/dma/dv/sva/dma_bind.sv b/hw/ip/dma/dv/sva/dma_bind.sv
similarity index 100%
rename from hw/top_matcha/ip/dma/dv/sva/dma_bind.sv
rename to hw/ip/dma/dv/sva/dma_bind.sv
diff --git a/hw/top_matcha/ip/dma/dv/sva/dma_sva.core b/hw/ip/dma/dv/sva/dma_sva.core
similarity index 100%
rename from hw/top_matcha/ip/dma/dv/sva/dma_sva.core
rename to hw/ip/dma/dv/sva/dma_sva.core
diff --git a/hw/top_matcha/ip/dma/dv/tb.sv b/hw/ip/dma/dv/tb.sv
similarity index 100%
rename from hw/top_matcha/ip/dma/dv/tb.sv
rename to hw/ip/dma/dv/tb.sv
diff --git a/hw/top_matcha/ip/dma/dv/tests/dma_base_test.sv b/hw/ip/dma/dv/tests/dma_base_test.sv
similarity index 100%
rename from hw/top_matcha/ip/dma/dv/tests/dma_base_test.sv
rename to hw/ip/dma/dv/tests/dma_base_test.sv
diff --git a/hw/top_matcha/ip/dma/dv/tests/dma_test.core b/hw/ip/dma/dv/tests/dma_test.core
similarity index 100%
rename from hw/top_matcha/ip/dma/dv/tests/dma_test.core
rename to hw/ip/dma/dv/tests/dma_test.core
diff --git a/hw/top_matcha/ip/dma/dv/tests/dma_test_pkg.sv b/hw/ip/dma/dv/tests/dma_test_pkg.sv
similarity index 100%
rename from hw/top_matcha/ip/dma/dv/tests/dma_test_pkg.sv
rename to hw/ip/dma/dv/tests/dma_test_pkg.sv
diff --git a/hw/top_matcha/ip/dma/lint/dma.vlt b/hw/ip/dma/lint/dma.vlt
similarity index 100%
rename from hw/top_matcha/ip/dma/lint/dma.vlt
rename to hw/ip/dma/lint/dma.vlt
diff --git a/hw/top_matcha/ip/dma/lint/dma.waiver b/hw/ip/dma/lint/dma.waiver
similarity index 100%
rename from hw/top_matcha/ip/dma/lint/dma.waiver
rename to hw/ip/dma/lint/dma.waiver
diff --git a/hw/top_matcha/ip/dma/rtl/dma.sv b/hw/ip/dma/rtl/dma.sv
similarity index 100%
rename from hw/top_matcha/ip/dma/rtl/dma.sv
rename to hw/ip/dma/rtl/dma.sv
diff --git a/hw/top_matcha/ip/dma/rtl/dma_reg_pkg.sv b/hw/ip/dma/rtl/dma_reg_pkg.sv
similarity index 100%
rename from hw/top_matcha/ip/dma/rtl/dma_reg_pkg.sv
rename to hw/ip/dma/rtl/dma_reg_pkg.sv
diff --git a/hw/top_matcha/ip/dma/rtl/dma_reg_top.sv b/hw/ip/dma/rtl/dma_reg_top.sv
similarity index 100%
rename from hw/top_matcha/ip/dma/rtl/dma_reg_top.sv
rename to hw/ip/dma/rtl/dma_reg_top.sv
diff --git a/hw/top_matcha/ip/i2s/BUILD b/hw/ip/i2s/BUILD
similarity index 85%
rename from hw/top_matcha/ip/i2s/BUILD
rename to hw/ip/i2s/BUILD
index 4af7d42..ff6f9f5 100644
--- a/hw/top_matcha/ip/i2s/BUILD
+++ b/hw/ip/i2s/BUILD
@@ -8,6 +8,6 @@
 filegroup(
     name = "all_files",
     srcs = glob(["**"]) + [
-        "//hw/top_matcha/ip/i2s/data:all_files",
+        "//hw/ip/i2s/data:all_files",
     ],
 )
diff --git a/hw/top_matcha/ip/i2s/data/BUILD b/hw/ip/i2s/data/BUILD
similarity index 100%
rename from hw/top_matcha/ip/i2s/data/BUILD
rename to hw/ip/i2s/data/BUILD
diff --git a/hw/top_matcha/ip/i2s/data/i2s.hjson b/hw/ip/i2s/data/i2s.hjson
similarity index 100%
rename from hw/top_matcha/ip/i2s/data/i2s.hjson
rename to hw/ip/i2s/data/i2s.hjson
diff --git a/hw/top_matcha/ip/i2s/data/i2s.prj.hjson b/hw/ip/i2s/data/i2s.prj.hjson
similarity index 100%
rename from hw/top_matcha/ip/i2s/data/i2s.prj.hjson
rename to hw/ip/i2s/data/i2s.prj.hjson
diff --git a/hw/top_matcha/ip/i2s/data/i2s_testplan.hjson b/hw/ip/i2s/data/i2s_testplan.hjson
similarity index 100%
rename from hw/top_matcha/ip/i2s/data/i2s_testplan.hjson
rename to hw/ip/i2s/data/i2s_testplan.hjson
diff --git a/hw/top_matcha/ip/i2s/doc/_index.md b/hw/ip/i2s/doc/_index.md
similarity index 100%
rename from hw/top_matcha/ip/i2s/doc/_index.md
rename to hw/ip/i2s/doc/_index.md
diff --git a/hw/top_matcha/ip/i2s/doc/block_diagram.png b/hw/ip/i2s/doc/block_diagram.png
similarity index 100%
rename from hw/top_matcha/ip/i2s/doc/block_diagram.png
rename to hw/ip/i2s/doc/block_diagram.png
Binary files differ
diff --git a/hw/top_matcha/ip/i2s/doc/checklist.md b/hw/ip/i2s/doc/checklist.md
similarity index 100%
rename from hw/top_matcha/ip/i2s/doc/checklist.md
rename to hw/ip/i2s/doc/checklist.md
diff --git a/hw/top_matcha/ip/i2s/doc/dv/index.md b/hw/ip/i2s/doc/dv/index.md
similarity index 100%
rename from hw/top_matcha/ip/i2s/doc/dv/index.md
rename to hw/ip/i2s/doc/dv/index.md
diff --git a/hw/top_matcha/ip/i2s/doc/dv/tb.svg b/hw/ip/i2s/doc/dv/tb.svg
similarity index 100%
rename from hw/top_matcha/ip/i2s/doc/dv/tb.svg
rename to hw/ip/i2s/doc/dv/tb.svg
diff --git a/hw/top_matcha/ip/i2s/dv/cov/i2s_cov_excl.el b/hw/ip/i2s/dv/cov/i2s_cov_excl.el
similarity index 100%
rename from hw/top_matcha/ip/i2s/dv/cov/i2s_cov_excl.el
rename to hw/ip/i2s/dv/cov/i2s_cov_excl.el
diff --git a/hw/top_matcha/ip/i2s/dv/env/i2s_env.core b/hw/ip/i2s/dv/env/i2s_env.core
similarity index 100%
rename from hw/top_matcha/ip/i2s/dv/env/i2s_env.core
rename to hw/ip/i2s/dv/env/i2s_env.core
diff --git a/hw/top_matcha/ip/i2s/dv/env/i2s_env.sv b/hw/ip/i2s/dv/env/i2s_env.sv
similarity index 100%
rename from hw/top_matcha/ip/i2s/dv/env/i2s_env.sv
rename to hw/ip/i2s/dv/env/i2s_env.sv
diff --git a/hw/top_matcha/ip/i2s/dv/env/i2s_env_cfg.sv b/hw/ip/i2s/dv/env/i2s_env_cfg.sv
similarity index 100%
rename from hw/top_matcha/ip/i2s/dv/env/i2s_env_cfg.sv
rename to hw/ip/i2s/dv/env/i2s_env_cfg.sv
diff --git a/hw/top_matcha/ip/i2s/dv/env/i2s_env_cov.sv b/hw/ip/i2s/dv/env/i2s_env_cov.sv
similarity index 100%
rename from hw/top_matcha/ip/i2s/dv/env/i2s_env_cov.sv
rename to hw/ip/i2s/dv/env/i2s_env_cov.sv
diff --git a/hw/top_matcha/ip/i2s/dv/env/i2s_env_pkg.sv b/hw/ip/i2s/dv/env/i2s_env_pkg.sv
similarity index 100%
rename from hw/top_matcha/ip/i2s/dv/env/i2s_env_pkg.sv
rename to hw/ip/i2s/dv/env/i2s_env_pkg.sv
diff --git a/hw/top_matcha/ip/i2s/dv/env/i2s_scoreboard.sv b/hw/ip/i2s/dv/env/i2s_scoreboard.sv
similarity index 100%
rename from hw/top_matcha/ip/i2s/dv/env/i2s_scoreboard.sv
rename to hw/ip/i2s/dv/env/i2s_scoreboard.sv
diff --git a/hw/top_matcha/ip/i2s/dv/env/i2s_virtual_sequencer.sv b/hw/ip/i2s/dv/env/i2s_virtual_sequencer.sv
similarity index 100%
rename from hw/top_matcha/ip/i2s/dv/env/i2s_virtual_sequencer.sv
rename to hw/ip/i2s/dv/env/i2s_virtual_sequencer.sv
diff --git a/hw/top_matcha/ip/i2s/dv/env/seq_lib/i2s_base_vseq.sv b/hw/ip/i2s/dv/env/seq_lib/i2s_base_vseq.sv
similarity index 100%
rename from hw/top_matcha/ip/i2s/dv/env/seq_lib/i2s_base_vseq.sv
rename to hw/ip/i2s/dv/env/seq_lib/i2s_base_vseq.sv
diff --git a/hw/top_matcha/ip/i2s/dv/env/seq_lib/i2s_common_vseq.sv b/hw/ip/i2s/dv/env/seq_lib/i2s_common_vseq.sv
similarity index 100%
rename from hw/top_matcha/ip/i2s/dv/env/seq_lib/i2s_common_vseq.sv
rename to hw/ip/i2s/dv/env/seq_lib/i2s_common_vseq.sv
diff --git a/hw/top_matcha/ip/i2s/dv/env/seq_lib/i2s_fifo_full_vseq.sv b/hw/ip/i2s/dv/env/seq_lib/i2s_fifo_full_vseq.sv
similarity index 100%
rename from hw/top_matcha/ip/i2s/dv/env/seq_lib/i2s_fifo_full_vseq.sv
rename to hw/ip/i2s/dv/env/seq_lib/i2s_fifo_full_vseq.sv
diff --git a/hw/top_matcha/ip/i2s/dv/env/seq_lib/i2s_fifo_overflow_vseq.sv b/hw/ip/i2s/dv/env/seq_lib/i2s_fifo_overflow_vseq.sv
similarity index 100%
rename from hw/top_matcha/ip/i2s/dv/env/seq_lib/i2s_fifo_overflow_vseq.sv
rename to hw/ip/i2s/dv/env/seq_lib/i2s_fifo_overflow_vseq.sv
diff --git a/hw/top_matcha/ip/i2s/dv/env/seq_lib/i2s_fifo_reset_vseq.sv b/hw/ip/i2s/dv/env/seq_lib/i2s_fifo_reset_vseq.sv
similarity index 100%
rename from hw/top_matcha/ip/i2s/dv/env/seq_lib/i2s_fifo_reset_vseq.sv
rename to hw/ip/i2s/dv/env/seq_lib/i2s_fifo_reset_vseq.sv
diff --git a/hw/top_matcha/ip/i2s/dv/env/seq_lib/i2s_intr_vseq.sv b/hw/ip/i2s/dv/env/seq_lib/i2s_intr_vseq.sv
similarity index 100%
rename from hw/top_matcha/ip/i2s/dv/env/seq_lib/i2s_intr_vseq.sv
rename to hw/ip/i2s/dv/env/seq_lib/i2s_intr_vseq.sv
diff --git a/hw/top_matcha/ip/i2s/dv/env/seq_lib/i2s_long_xfer_wo_dly_vseq.sv b/hw/ip/i2s/dv/env/seq_lib/i2s_long_xfer_wo_dly_vseq.sv
similarity index 100%
rename from hw/top_matcha/ip/i2s/dv/env/seq_lib/i2s_long_xfer_wo_dly_vseq.sv
rename to hw/ip/i2s/dv/env/seq_lib/i2s_long_xfer_wo_dly_vseq.sv
diff --git a/hw/top_matcha/ip/i2s/dv/env/seq_lib/i2s_loopback_vseq.sv b/hw/ip/i2s/dv/env/seq_lib/i2s_loopback_vseq.sv
similarity index 100%
rename from hw/top_matcha/ip/i2s/dv/env/seq_lib/i2s_loopback_vseq.sv
rename to hw/ip/i2s/dv/env/seq_lib/i2s_loopback_vseq.sv
diff --git a/hw/top_matcha/ip/i2s/dv/env/seq_lib/i2s_noise_filter_vseq.sv b/hw/ip/i2s/dv/env/seq_lib/i2s_noise_filter_vseq.sv
similarity index 100%
rename from hw/top_matcha/ip/i2s/dv/env/seq_lib/i2s_noise_filter_vseq.sv
rename to hw/ip/i2s/dv/env/seq_lib/i2s_noise_filter_vseq.sv
diff --git a/hw/top_matcha/ip/i2s/dv/env/seq_lib/i2s_perf_vseq.sv b/hw/ip/i2s/dv/env/seq_lib/i2s_perf_vseq.sv
similarity index 100%
rename from hw/top_matcha/ip/i2s/dv/env/seq_lib/i2s_perf_vseq.sv
rename to hw/ip/i2s/dv/env/seq_lib/i2s_perf_vseq.sv
diff --git a/hw/top_matcha/ip/i2s/dv/env/seq_lib/i2s_rx_oversample_vseq.sv b/hw/ip/i2s/dv/env/seq_lib/i2s_rx_oversample_vseq.sv
similarity index 100%
rename from hw/top_matcha/ip/i2s/dv/env/seq_lib/i2s_rx_oversample_vseq.sv
rename to hw/ip/i2s/dv/env/seq_lib/i2s_rx_oversample_vseq.sv
diff --git a/hw/top_matcha/ip/i2s/dv/env/seq_lib/i2s_rx_parity_err_vseq.sv b/hw/ip/i2s/dv/env/seq_lib/i2s_rx_parity_err_vseq.sv
similarity index 100%
rename from hw/top_matcha/ip/i2s/dv/env/seq_lib/i2s_rx_parity_err_vseq.sv
rename to hw/ip/i2s/dv/env/seq_lib/i2s_rx_parity_err_vseq.sv
diff --git a/hw/top_matcha/ip/i2s/dv/env/seq_lib/i2s_rx_start_bit_filter_vseq.sv b/hw/ip/i2s/dv/env/seq_lib/i2s_rx_start_bit_filter_vseq.sv
similarity index 100%
rename from hw/top_matcha/ip/i2s/dv/env/seq_lib/i2s_rx_start_bit_filter_vseq.sv
rename to hw/ip/i2s/dv/env/seq_lib/i2s_rx_start_bit_filter_vseq.sv
diff --git a/hw/top_matcha/ip/i2s/dv/env/seq_lib/i2s_smoke_vseq.sv b/hw/ip/i2s/dv/env/seq_lib/i2s_smoke_vseq.sv
similarity index 100%
rename from hw/top_matcha/ip/i2s/dv/env/seq_lib/i2s_smoke_vseq.sv
rename to hw/ip/i2s/dv/env/seq_lib/i2s_smoke_vseq.sv
diff --git a/hw/top_matcha/ip/i2s/dv/env/seq_lib/i2s_stress_all_vseq.sv b/hw/ip/i2s/dv/env/seq_lib/i2s_stress_all_vseq.sv
similarity index 100%
rename from hw/top_matcha/ip/i2s/dv/env/seq_lib/i2s_stress_all_vseq.sv
rename to hw/ip/i2s/dv/env/seq_lib/i2s_stress_all_vseq.sv
diff --git a/hw/top_matcha/ip/i2s/dv/env/seq_lib/i2s_tx_ovrd_vseq.sv b/hw/ip/i2s/dv/env/seq_lib/i2s_tx_ovrd_vseq.sv
similarity index 100%
rename from hw/top_matcha/ip/i2s/dv/env/seq_lib/i2s_tx_ovrd_vseq.sv
rename to hw/ip/i2s/dv/env/seq_lib/i2s_tx_ovrd_vseq.sv
diff --git a/hw/top_matcha/ip/i2s/dv/env/seq_lib/i2s_tx_rx_vseq.sv b/hw/ip/i2s/dv/env/seq_lib/i2s_tx_rx_vseq.sv
similarity index 100%
rename from hw/top_matcha/ip/i2s/dv/env/seq_lib/i2s_tx_rx_vseq.sv
rename to hw/ip/i2s/dv/env/seq_lib/i2s_tx_rx_vseq.sv
diff --git a/hw/top_matcha/ip/i2s/dv/env/seq_lib/i2s_vseq_list.sv b/hw/ip/i2s/dv/env/seq_lib/i2s_vseq_list.sv
similarity index 100%
rename from hw/top_matcha/ip/i2s/dv/env/seq_lib/i2s_vseq_list.sv
rename to hw/ip/i2s/dv/env/seq_lib/i2s_vseq_list.sv
diff --git a/hw/top_matcha/ip/i2s/dv/i2s_sim.core b/hw/ip/i2s/dv/i2s_sim.core
similarity index 100%
rename from hw/top_matcha/ip/i2s/dv/i2s_sim.core
rename to hw/ip/i2s/dv/i2s_sim.core
diff --git a/hw/top_matcha/ip/i2s/dv/i2s_sim_cfg.hjson b/hw/ip/i2s/dv/i2s_sim_cfg.hjson
similarity index 100%
rename from hw/top_matcha/ip/i2s/dv/i2s_sim_cfg.hjson
rename to hw/ip/i2s/dv/i2s_sim_cfg.hjson
diff --git a/hw/top_matcha/ip/i2s/dv/sva/i2s_bind.sv b/hw/ip/i2s/dv/sva/i2s_bind.sv
similarity index 100%
rename from hw/top_matcha/ip/i2s/dv/sva/i2s_bind.sv
rename to hw/ip/i2s/dv/sva/i2s_bind.sv
diff --git a/hw/top_matcha/ip/i2s/dv/sva/i2s_sva.core b/hw/ip/i2s/dv/sva/i2s_sva.core
similarity index 100%
rename from hw/top_matcha/ip/i2s/dv/sva/i2s_sva.core
rename to hw/ip/i2s/dv/sva/i2s_sva.core
diff --git a/hw/top_matcha/ip/i2s/dv/tb/tb.sv b/hw/ip/i2s/dv/tb/tb.sv
similarity index 100%
rename from hw/top_matcha/ip/i2s/dv/tb/tb.sv
rename to hw/ip/i2s/dv/tb/tb.sv
diff --git a/hw/top_matcha/ip/i2s/dv/tests/i2s_base_test.sv b/hw/ip/i2s/dv/tests/i2s_base_test.sv
similarity index 100%
rename from hw/top_matcha/ip/i2s/dv/tests/i2s_base_test.sv
rename to hw/ip/i2s/dv/tests/i2s_base_test.sv
diff --git a/hw/top_matcha/ip/i2s/dv/tests/i2s_test.core b/hw/ip/i2s/dv/tests/i2s_test.core
similarity index 100%
rename from hw/top_matcha/ip/i2s/dv/tests/i2s_test.core
rename to hw/ip/i2s/dv/tests/i2s_test.core
diff --git a/hw/top_matcha/ip/i2s/dv/tests/i2s_test_pkg.sv b/hw/ip/i2s/dv/tests/i2s_test_pkg.sv
similarity index 100%
rename from hw/top_matcha/ip/i2s/dv/tests/i2s_test_pkg.sv
rename to hw/ip/i2s/dv/tests/i2s_test_pkg.sv
diff --git a/hw/top_matcha/ip/i2s/i2s.core b/hw/ip/i2s/i2s.core
similarity index 100%
rename from hw/top_matcha/ip/i2s/i2s.core
rename to hw/ip/i2s/i2s.core
diff --git a/hw/top_matcha/ip/i2s/lint/i2s.vlt b/hw/ip/i2s/lint/i2s.vlt
similarity index 100%
rename from hw/top_matcha/ip/i2s/lint/i2s.vlt
rename to hw/ip/i2s/lint/i2s.vlt
diff --git a/hw/top_matcha/ip/i2s/lint/i2s.waiver b/hw/ip/i2s/lint/i2s.waiver
similarity index 100%
rename from hw/top_matcha/ip/i2s/lint/i2s.waiver
rename to hw/ip/i2s/lint/i2s.waiver
diff --git a/hw/top_matcha/ip/i2s/rtl/i2s.sv b/hw/ip/i2s/rtl/i2s.sv
similarity index 100%
rename from hw/top_matcha/ip/i2s/rtl/i2s.sv
rename to hw/ip/i2s/rtl/i2s.sv
diff --git a/hw/top_matcha/ip/i2s/rtl/i2s_core.sv b/hw/ip/i2s/rtl/i2s_core.sv
similarity index 100%
rename from hw/top_matcha/ip/i2s/rtl/i2s_core.sv
rename to hw/ip/i2s/rtl/i2s_core.sv
diff --git a/hw/top_matcha/ip/i2s/rtl/i2s_pkg.sv b/hw/ip/i2s/rtl/i2s_pkg.sv
similarity index 100%
rename from hw/top_matcha/ip/i2s/rtl/i2s_pkg.sv
rename to hw/ip/i2s/rtl/i2s_pkg.sv
diff --git a/hw/top_matcha/ip/i2s/rtl/i2s_reg_pkg.sv b/hw/ip/i2s/rtl/i2s_reg_pkg.sv
similarity index 100%
rename from hw/top_matcha/ip/i2s/rtl/i2s_reg_pkg.sv
rename to hw/ip/i2s/rtl/i2s_reg_pkg.sv
diff --git a/hw/top_matcha/ip/i2s/rtl/i2s_reg_top.sv b/hw/ip/i2s/rtl/i2s_reg_top.sv
similarity index 100%
rename from hw/top_matcha/ip/i2s/rtl/i2s_reg_top.sv
rename to hw/ip/i2s/rtl/i2s_reg_top.sv
diff --git a/hw/top_matcha/ip/i2s/rtl/i2s_rx.sv b/hw/ip/i2s/rtl/i2s_rx.sv
similarity index 100%
rename from hw/top_matcha/ip/i2s/rtl/i2s_rx.sv
rename to hw/ip/i2s/rtl/i2s_rx.sv
diff --git a/hw/top_matcha/ip/i2s/rtl/i2s_tx.sv b/hw/ip/i2s/rtl/i2s_tx.sv
similarity index 100%
rename from hw/top_matcha/ip/i2s/rtl/i2s_tx.sv
rename to hw/ip/i2s/rtl/i2s_tx.sv
diff --git a/hw/top_matcha/ip/ml_top/data/BUILD b/hw/ip/ml_top/data/BUILD
similarity index 100%
rename from hw/top_matcha/ip/ml_top/data/BUILD
rename to hw/ip/ml_top/data/BUILD
diff --git a/hw/top_matcha/ip/ml_top/data/ml_top.hjson b/hw/ip/ml_top/data/ml_top.hjson
similarity index 100%
rename from hw/top_matcha/ip/ml_top/data/ml_top.hjson
rename to hw/ip/ml_top/data/ml_top.hjson
diff --git a/hw/top_matcha/ip/ml_top/data/ml_top_testplan.hjson b/hw/ip/ml_top/data/ml_top_testplan.hjson
similarity index 100%
rename from hw/top_matcha/ip/ml_top/data/ml_top_testplan.hjson
rename to hw/ip/ml_top/data/ml_top_testplan.hjson
diff --git a/hw/top_matcha/ip/ml_top/doc/checklist.md b/hw/ip/ml_top/doc/checklist.md
similarity index 100%
rename from hw/top_matcha/ip/ml_top/doc/checklist.md
rename to hw/ip/ml_top/doc/checklist.md
diff --git a/hw/top_matcha/ip/ml_top/doc/dv/index.md b/hw/ip/ml_top/doc/dv/index.md
similarity index 100%
rename from hw/top_matcha/ip/ml_top/doc/dv/index.md
rename to hw/ip/ml_top/doc/dv/index.md
diff --git a/hw/top_matcha/ip/ml_top/dv/env/ml_top_env.core b/hw/ip/ml_top/dv/env/ml_top_env.core
similarity index 100%
rename from hw/top_matcha/ip/ml_top/dv/env/ml_top_env.core
rename to hw/ip/ml_top/dv/env/ml_top_env.core
diff --git a/hw/top_matcha/ip/ml_top/dv/env/ml_top_env.sv b/hw/ip/ml_top/dv/env/ml_top_env.sv
similarity index 100%
rename from hw/top_matcha/ip/ml_top/dv/env/ml_top_env.sv
rename to hw/ip/ml_top/dv/env/ml_top_env.sv
diff --git a/hw/top_matcha/ip/ml_top/dv/env/ml_top_env_cfg.sv b/hw/ip/ml_top/dv/env/ml_top_env_cfg.sv
similarity index 100%
rename from hw/top_matcha/ip/ml_top/dv/env/ml_top_env_cfg.sv
rename to hw/ip/ml_top/dv/env/ml_top_env_cfg.sv
diff --git a/hw/top_matcha/ip/ml_top/dv/env/ml_top_env_cov.sv b/hw/ip/ml_top/dv/env/ml_top_env_cov.sv
similarity index 100%
rename from hw/top_matcha/ip/ml_top/dv/env/ml_top_env_cov.sv
rename to hw/ip/ml_top/dv/env/ml_top_env_cov.sv
diff --git a/hw/top_matcha/ip/ml_top/dv/env/ml_top_env_pkg.sv b/hw/ip/ml_top/dv/env/ml_top_env_pkg.sv
similarity index 100%
rename from hw/top_matcha/ip/ml_top/dv/env/ml_top_env_pkg.sv
rename to hw/ip/ml_top/dv/env/ml_top_env_pkg.sv
diff --git a/hw/top_matcha/ip/ml_top/dv/env/ml_top_scoreboard.sv b/hw/ip/ml_top/dv/env/ml_top_scoreboard.sv
similarity index 100%
rename from hw/top_matcha/ip/ml_top/dv/env/ml_top_scoreboard.sv
rename to hw/ip/ml_top/dv/env/ml_top_scoreboard.sv
diff --git a/hw/top_matcha/ip/ml_top/dv/env/ml_top_virtual_sequencer.sv b/hw/ip/ml_top/dv/env/ml_top_virtual_sequencer.sv
similarity index 100%
rename from hw/top_matcha/ip/ml_top/dv/env/ml_top_virtual_sequencer.sv
rename to hw/ip/ml_top/dv/env/ml_top_virtual_sequencer.sv
diff --git a/hw/top_matcha/ip/ml_top/dv/env/seq_lib/ml_top_base_vseq.sv b/hw/ip/ml_top/dv/env/seq_lib/ml_top_base_vseq.sv
similarity index 100%
rename from hw/top_matcha/ip/ml_top/dv/env/seq_lib/ml_top_base_vseq.sv
rename to hw/ip/ml_top/dv/env/seq_lib/ml_top_base_vseq.sv
diff --git a/hw/top_matcha/ip/ml_top/dv/env/seq_lib/ml_top_common_vseq.sv b/hw/ip/ml_top/dv/env/seq_lib/ml_top_common_vseq.sv
similarity index 100%
rename from hw/top_matcha/ip/ml_top/dv/env/seq_lib/ml_top_common_vseq.sv
rename to hw/ip/ml_top/dv/env/seq_lib/ml_top_common_vseq.sv
diff --git a/hw/top_matcha/ip/ml_top/dv/env/seq_lib/ml_top_smoke_vseq.sv b/hw/ip/ml_top/dv/env/seq_lib/ml_top_smoke_vseq.sv
similarity index 100%
rename from hw/top_matcha/ip/ml_top/dv/env/seq_lib/ml_top_smoke_vseq.sv
rename to hw/ip/ml_top/dv/env/seq_lib/ml_top_smoke_vseq.sv
diff --git a/hw/top_matcha/ip/ml_top/dv/env/seq_lib/ml_top_vseq_list.sv b/hw/ip/ml_top/dv/env/seq_lib/ml_top_vseq_list.sv
similarity index 100%
rename from hw/top_matcha/ip/ml_top/dv/env/seq_lib/ml_top_vseq_list.sv
rename to hw/ip/ml_top/dv/env/seq_lib/ml_top_vseq_list.sv
diff --git a/hw/top_matcha/ip/ml_top/dv/ml_top_core_ral_pkg.sv b/hw/ip/ml_top/dv/ml_top_core_ral_pkg.sv
similarity index 100%
rename from hw/top_matcha/ip/ml_top/dv/ml_top_core_ral_pkg.sv
rename to hw/ip/ml_top/dv/ml_top_core_ral_pkg.sv
diff --git a/hw/top_matcha/ip/ml_top/dv/ml_top_dmem_ral_pkg.sv b/hw/ip/ml_top/dv/ml_top_dmem_ral_pkg.sv
similarity index 100%
rename from hw/top_matcha/ip/ml_top/dv/ml_top_dmem_ral_pkg.sv
rename to hw/ip/ml_top/dv/ml_top_dmem_ral_pkg.sv
diff --git a/hw/top_matcha/ip/ml_top/dv/ml_top_ral_pkg.core b/hw/ip/ml_top/dv/ml_top_ral_pkg.core
similarity index 100%
rename from hw/top_matcha/ip/ml_top/dv/ml_top_ral_pkg.core
rename to hw/ip/ml_top/dv/ml_top_ral_pkg.core
diff --git a/hw/top_matcha/ip/ml_top/dv/ml_top_sim.core b/hw/ip/ml_top/dv/ml_top_sim.core
similarity index 100%
rename from hw/top_matcha/ip/ml_top/dv/ml_top_sim.core
rename to hw/ip/ml_top/dv/ml_top_sim.core
diff --git a/hw/top_matcha/ip/ml_top/dv/ml_top_sim_cfg.hjson b/hw/ip/ml_top/dv/ml_top_sim_cfg.hjson
similarity index 100%
rename from hw/top_matcha/ip/ml_top/dv/ml_top_sim_cfg.hjson
rename to hw/ip/ml_top/dv/ml_top_sim_cfg.hjson
diff --git a/hw/top_matcha/ip/ml_top/dv/sva/ml_top_bind.sv b/hw/ip/ml_top/dv/sva/ml_top_bind.sv
similarity index 100%
rename from hw/top_matcha/ip/ml_top/dv/sva/ml_top_bind.sv
rename to hw/ip/ml_top/dv/sva/ml_top_bind.sv
diff --git a/hw/top_matcha/ip/ml_top/dv/sva/ml_top_sva.core b/hw/ip/ml_top/dv/sva/ml_top_sva.core
similarity index 100%
rename from hw/top_matcha/ip/ml_top/dv/sva/ml_top_sva.core
rename to hw/ip/ml_top/dv/sva/ml_top_sva.core
diff --git a/hw/top_matcha/ip/ml_top/dv/tb.sv b/hw/ip/ml_top/dv/tb.sv
similarity index 100%
rename from hw/top_matcha/ip/ml_top/dv/tb.sv
rename to hw/ip/ml_top/dv/tb.sv
diff --git a/hw/top_matcha/ip/ml_top/dv/tests/ml_top_base_test.sv b/hw/ip/ml_top/dv/tests/ml_top_base_test.sv
similarity index 100%
rename from hw/top_matcha/ip/ml_top/dv/tests/ml_top_base_test.sv
rename to hw/ip/ml_top/dv/tests/ml_top_base_test.sv
diff --git a/hw/top_matcha/ip/ml_top/dv/tests/ml_top_test.core b/hw/ip/ml_top/dv/tests/ml_top_test.core
similarity index 100%
rename from hw/top_matcha/ip/ml_top/dv/tests/ml_top_test.core
rename to hw/ip/ml_top/dv/tests/ml_top_test.core
diff --git a/hw/top_matcha/ip/ml_top/dv/tests/ml_top_test_pkg.sv b/hw/ip/ml_top/dv/tests/ml_top_test_pkg.sv
similarity index 100%
rename from hw/top_matcha/ip/ml_top/dv/tests/ml_top_test_pkg.sv
rename to hw/ip/ml_top/dv/tests/ml_top_test_pkg.sv
diff --git a/hw/top_matcha/ip/ml_top/lint/ml_top.vlt b/hw/ip/ml_top/lint/ml_top.vlt
similarity index 100%
rename from hw/top_matcha/ip/ml_top/lint/ml_top.vlt
rename to hw/ip/ml_top/lint/ml_top.vlt
diff --git a/hw/top_matcha/ip/ml_top/lint/ml_top.waiver b/hw/ip/ml_top/lint/ml_top.waiver
similarity index 100%
rename from hw/top_matcha/ip/ml_top/lint/ml_top.waiver
rename to hw/ip/ml_top/lint/ml_top.waiver
diff --git a/hw/top_matcha/ip/ml_top/ml_top.core b/hw/ip/ml_top/ml_top.core
similarity index 100%
rename from hw/top_matcha/ip/ml_top/ml_top.core
rename to hw/ip/ml_top/ml_top.core
diff --git a/hw/top_matcha/ip/ml_top/rtl/ml_dmem.sv b/hw/ip/ml_top/rtl/ml_dmem.sv
similarity index 100%
rename from hw/top_matcha/ip/ml_top/rtl/ml_dmem.sv
rename to hw/ip/ml_top/rtl/ml_dmem.sv
diff --git a/hw/top_matcha/ip/ml_top/rtl/ml_pkg.sv b/hw/ip/ml_top/rtl/ml_pkg.sv
similarity index 100%
rename from hw/top_matcha/ip/ml_top/rtl/ml_pkg.sv
rename to hw/ip/ml_top/rtl/ml_pkg.sv
diff --git a/hw/top_matcha/ip/ml_top/rtl/ml_top.sv b/hw/ip/ml_top/rtl/ml_top.sv
similarity index 100%
rename from hw/top_matcha/ip/ml_top/rtl/ml_top.sv
rename to hw/ip/ml_top/rtl/ml_top.sv
diff --git a/hw/top_matcha/ip/ml_top/rtl/ml_top_core_reg_top.sv b/hw/ip/ml_top/rtl/ml_top_core_reg_top.sv
similarity index 100%
rename from hw/top_matcha/ip/ml_top/rtl/ml_top_core_reg_top.sv
rename to hw/ip/ml_top/rtl/ml_top_core_reg_top.sv
diff --git a/hw/top_matcha/ip/ml_top/rtl/ml_top_dmem_reg_top.sv b/hw/ip/ml_top/rtl/ml_top_dmem_reg_top.sv
similarity index 100%
rename from hw/top_matcha/ip/ml_top/rtl/ml_top_dmem_reg_top.sv
rename to hw/ip/ml_top/rtl/ml_top_dmem_reg_top.sv
diff --git a/hw/top_matcha/ip/ml_top/rtl/ml_top_reg_pkg.sv b/hw/ip/ml_top/rtl/ml_top_reg_pkg.sv
similarity index 100%
rename from hw/top_matcha/ip/ml_top/rtl/ml_top_reg_pkg.sv
rename to hw/ip/ml_top/rtl/ml_top_reg_pkg.sv
diff --git a/hw/top_matcha/ip/prim/lint/prim_fifo.vlt b/hw/ip/prim/lint/prim_fifo.vlt
similarity index 100%
rename from hw/top_matcha/ip/prim/lint/prim_fifo.vlt
rename to hw/ip/prim/lint/prim_fifo.vlt
diff --git a/hw/top_matcha/ip/prim/lint/prim_fifo.waiver b/hw/ip/prim/lint/prim_fifo.waiver
similarity index 100%
rename from hw/top_matcha/ip/prim/lint/prim_fifo.waiver
rename to hw/ip/prim/lint/prim_fifo.waiver
diff --git a/hw/top_matcha/ip/prim/prim_fifo.core b/hw/ip/prim/prim_fifo.core
similarity index 100%
rename from hw/top_matcha/ip/prim/prim_fifo.core
rename to hw/ip/prim/prim_fifo.core
diff --git a/hw/top_matcha/ip/prim/rtl/fifo_v3.sv b/hw/ip/prim/rtl/fifo_v3.sv
similarity index 100%
rename from hw/top_matcha/ip/prim/rtl/fifo_v3.sv
rename to hw/ip/prim/rtl/fifo_v3.sv
diff --git a/hw/top_matcha/ip/prim_xilinx/lint/prim_xilinx_clock_gating.vlt b/hw/ip/prim_xilinx/lint/prim_xilinx_clock_gating.vlt
similarity index 100%
rename from hw/top_matcha/ip/prim_xilinx/lint/prim_xilinx_clock_gating.vlt
rename to hw/ip/prim_xilinx/lint/prim_xilinx_clock_gating.vlt
diff --git a/hw/top_matcha/ip/prim_xilinx/lint/prim_xilinx_clock_gating.waiver b/hw/ip/prim_xilinx/lint/prim_xilinx_clock_gating.waiver
similarity index 100%
rename from hw/top_matcha/ip/prim_xilinx/lint/prim_xilinx_clock_gating.waiver
rename to hw/ip/prim_xilinx/lint/prim_xilinx_clock_gating.waiver
diff --git a/hw/top_matcha/ip/prim_xilinx/lint/prim_xilinx_pad_wrapper.vlt b/hw/ip/prim_xilinx/lint/prim_xilinx_pad_wrapper.vlt
similarity index 100%
rename from hw/top_matcha/ip/prim_xilinx/lint/prim_xilinx_pad_wrapper.vlt
rename to hw/ip/prim_xilinx/lint/prim_xilinx_pad_wrapper.vlt
diff --git a/hw/top_matcha/ip/prim_xilinx/lint/prim_xilinx_pad_wrapper.waiver b/hw/ip/prim_xilinx/lint/prim_xilinx_pad_wrapper.waiver
similarity index 100%
rename from hw/top_matcha/ip/prim_xilinx/lint/prim_xilinx_pad_wrapper.waiver
rename to hw/ip/prim_xilinx/lint/prim_xilinx_pad_wrapper.waiver
diff --git a/hw/top_matcha/ip/prim_xilinx/prim_xilinx_clock_gating.core b/hw/ip/prim_xilinx/prim_xilinx_clock_gating.core
similarity index 100%
rename from hw/top_matcha/ip/prim_xilinx/prim_xilinx_clock_gating.core
rename to hw/ip/prim_xilinx/prim_xilinx_clock_gating.core
diff --git a/hw/top_matcha/ip/prim_xilinx/prim_xilinx_pad_wrapper.core b/hw/ip/prim_xilinx/prim_xilinx_pad_wrapper.core
similarity index 100%
rename from hw/top_matcha/ip/prim_xilinx/prim_xilinx_pad_wrapper.core
rename to hw/ip/prim_xilinx/prim_xilinx_pad_wrapper.core
diff --git a/hw/top_matcha/ip/prim_xilinx/rtl/prim_xilinx_clock_gating.sv b/hw/ip/prim_xilinx/rtl/prim_xilinx_clock_gating.sv
similarity index 100%
rename from hw/top_matcha/ip/prim_xilinx/rtl/prim_xilinx_clock_gating.sv
rename to hw/ip/prim_xilinx/rtl/prim_xilinx_clock_gating.sv
diff --git a/hw/top_matcha/ip/prim_xilinx/rtl/prim_xilinx_pad_wrapper.sv b/hw/ip/prim_xilinx/rtl/prim_xilinx_pad_wrapper.sv
similarity index 100%
rename from hw/top_matcha/ip/prim_xilinx/rtl/prim_xilinx_pad_wrapper.sv
rename to hw/ip/prim_xilinx/rtl/prim_xilinx_pad_wrapper.sv
diff --git a/hw/top_matcha/ip/smc_ctrl/BUILD b/hw/ip/rv_core_smc/BUILD
similarity index 83%
copy from hw/top_matcha/ip/smc_ctrl/BUILD
copy to hw/ip/rv_core_smc/BUILD
index a2f2099..3853be2 100644
--- a/hw/top_matcha/ip/smc_ctrl/BUILD
+++ b/hw/ip/rv_core_smc/BUILD
@@ -7,6 +7,6 @@
 filegroup(
     name = "all_files",
     srcs = glob(["**"]) + [
-        "//hw/top_matcha/ip/smc_ctrl/data:all_files",
+        "//hw/ip/rv_core_smc/data:all_files",
     ],
 )
diff --git a/hw/top_matcha/ip/rv_core_smc/data/BUILD b/hw/ip/rv_core_smc/data/BUILD
similarity index 100%
rename from hw/top_matcha/ip/rv_core_smc/data/BUILD
rename to hw/ip/rv_core_smc/data/BUILD
diff --git a/hw/top_matcha/ip/rv_core_smc/data/rv_core_smc.hjson b/hw/ip/rv_core_smc/data/rv_core_smc.hjson
similarity index 100%
rename from hw/top_matcha/ip/rv_core_smc/data/rv_core_smc.hjson
rename to hw/ip/rv_core_smc/data/rv_core_smc.hjson
diff --git a/hw/top_matcha/ip/rv_core_smc/data/rv_core_smc.prj.hjson b/hw/ip/rv_core_smc/data/rv_core_smc.prj.hjson
similarity index 100%
rename from hw/top_matcha/ip/rv_core_smc/data/rv_core_smc.prj.hjson
rename to hw/ip/rv_core_smc/data/rv_core_smc.prj.hjson
diff --git a/hw/top_matcha/ip/rv_core_smc/data/rv_core_smc_sec_cm_testplan.hjson b/hw/ip/rv_core_smc/data/rv_core_smc_sec_cm_testplan.hjson
similarity index 100%
rename from hw/top_matcha/ip/rv_core_smc/data/rv_core_smc_sec_cm_testplan.hjson
rename to hw/ip/rv_core_smc/data/rv_core_smc_sec_cm_testplan.hjson
diff --git a/hw/top_matcha/ip/rv_core_smc/data/rv_core_smc_testplan.hjson b/hw/ip/rv_core_smc/data/rv_core_smc_testplan.hjson
similarity index 100%
rename from hw/top_matcha/ip/rv_core_smc/data/rv_core_smc_testplan.hjson
rename to hw/ip/rv_core_smc/data/rv_core_smc_testplan.hjson
diff --git a/hw/top_matcha/ip/rv_core_smc/doc/_index.md b/hw/ip/rv_core_smc/doc/_index.md
similarity index 100%
rename from hw/top_matcha/ip/rv_core_smc/doc/_index.md
rename to hw/ip/rv_core_smc/doc/_index.md
diff --git a/hw/top_matcha/ip/rv_core_smc/doc/checklist.md b/hw/ip/rv_core_smc/doc/checklist.md
similarity index 100%
rename from hw/top_matcha/ip/rv_core_smc/doc/checklist.md
rename to hw/ip/rv_core_smc/doc/checklist.md
diff --git a/hw/top_matcha/ip/rv_core_smc/doc/dv/_index.md b/hw/ip/rv_core_smc/doc/dv/_index.md
similarity index 100%
rename from hw/top_matcha/ip/rv_core_smc/doc/dv/_index.md
rename to hw/ip/rv_core_smc/doc/dv/_index.md
diff --git a/hw/top_matcha/ip/rv_core_smc/dv/sva/rv_core_smc_bind.sv b/hw/ip/rv_core_smc/dv/sva/rv_core_smc_bind.sv
similarity index 100%
rename from hw/top_matcha/ip/rv_core_smc/dv/sva/rv_core_smc_bind.sv
rename to hw/ip/rv_core_smc/dv/sva/rv_core_smc_bind.sv
diff --git a/hw/top_matcha/ip/rv_core_smc/dv/sva/rv_core_smc_sva.core b/hw/ip/rv_core_smc/dv/sva/rv_core_smc_sva.core
similarity index 100%
rename from hw/top_matcha/ip/rv_core_smc/dv/sva/rv_core_smc_sva.core
rename to hw/ip/rv_core_smc/dv/sva/rv_core_smc_sva.core
diff --git a/hw/top_matcha/ip/rv_core_smc/lint/rv_core_ibex.vlt b/hw/ip/rv_core_smc/lint/rv_core_ibex.vlt
similarity index 100%
rename from hw/top_matcha/ip/rv_core_smc/lint/rv_core_ibex.vlt
rename to hw/ip/rv_core_smc/lint/rv_core_ibex.vlt
diff --git a/hw/top_matcha/ip/rv_core_smc/lint/rv_core_ibex.waiver b/hw/ip/rv_core_smc/lint/rv_core_ibex.waiver
similarity index 100%
rename from hw/top_matcha/ip/rv_core_smc/lint/rv_core_ibex.waiver
rename to hw/ip/rv_core_smc/lint/rv_core_ibex.waiver
diff --git a/hw/top_matcha/ip/rv_core_smc/rtl/rv_core_smc.sv b/hw/ip/rv_core_smc/rtl/rv_core_smc.sv
similarity index 100%
rename from hw/top_matcha/ip/rv_core_smc/rtl/rv_core_smc.sv
rename to hw/ip/rv_core_smc/rtl/rv_core_smc.sv
diff --git a/hw/top_matcha/ip/rv_core_smc/rtl/rv_core_smc_addr_trans.sv b/hw/ip/rv_core_smc/rtl/rv_core_smc_addr_trans.sv
similarity index 100%
rename from hw/top_matcha/ip/rv_core_smc/rtl/rv_core_smc_addr_trans.sv
rename to hw/ip/rv_core_smc/rtl/rv_core_smc_addr_trans.sv
diff --git a/hw/top_matcha/ip/rv_core_smc/rtl/rv_core_smc_cfg_reg_top.sv b/hw/ip/rv_core_smc/rtl/rv_core_smc_cfg_reg_top.sv
similarity index 100%
rename from hw/top_matcha/ip/rv_core_smc/rtl/rv_core_smc_cfg_reg_top.sv
rename to hw/ip/rv_core_smc/rtl/rv_core_smc_cfg_reg_top.sv
diff --git a/hw/top_matcha/ip/rv_core_smc/rtl/rv_core_smc_peri.sv b/hw/ip/rv_core_smc/rtl/rv_core_smc_peri.sv
similarity index 100%
rename from hw/top_matcha/ip/rv_core_smc/rtl/rv_core_smc_peri.sv
rename to hw/ip/rv_core_smc/rtl/rv_core_smc_peri.sv
diff --git a/hw/top_matcha/ip/rv_core_smc/rtl/rv_core_smc_pkg.sv b/hw/ip/rv_core_smc/rtl/rv_core_smc_pkg.sv
similarity index 100%
rename from hw/top_matcha/ip/rv_core_smc/rtl/rv_core_smc_pkg.sv
rename to hw/ip/rv_core_smc/rtl/rv_core_smc_pkg.sv
diff --git a/hw/top_matcha/ip/rv_core_smc/rtl/rv_core_smc_reg_pkg.sv b/hw/ip/rv_core_smc/rtl/rv_core_smc_reg_pkg.sv
similarity index 100%
rename from hw/top_matcha/ip/rv_core_smc/rtl/rv_core_smc_reg_pkg.sv
rename to hw/ip/rv_core_smc/rtl/rv_core_smc_reg_pkg.sv
diff --git a/hw/top_matcha/ip/rv_core_smc/rtl/smc_pmp_reset.svh b/hw/ip/rv_core_smc/rtl/smc_pmp_reset.svh
similarity index 100%
rename from hw/top_matcha/ip/rv_core_smc/rtl/smc_pmp_reset.svh
rename to hw/ip/rv_core_smc/rtl/smc_pmp_reset.svh
diff --git a/hw/top_matcha/ip/rv_core_smc/rv_core_smc.core b/hw/ip/rv_core_smc/rv_core_smc.core
similarity index 100%
rename from hw/top_matcha/ip/rv_core_smc/rv_core_smc.core
rename to hw/ip/rv_core_smc/rv_core_smc.core
diff --git a/hw/top_matcha/ip/rv_core_smc/rv_core_smc_pkg.core b/hw/ip/rv_core_smc/rv_core_smc_pkg.core
similarity index 100%
rename from hw/top_matcha/ip/rv_core_smc/rv_core_smc_pkg.core
rename to hw/ip/rv_core_smc/rv_core_smc_pkg.core
diff --git a/hw/top_matcha/ip/rv_core_smc/syn/constraints.sdc b/hw/ip/rv_core_smc/syn/constraints.sdc
similarity index 100%
rename from hw/top_matcha/ip/rv_core_smc/syn/constraints.sdc
rename to hw/ip/rv_core_smc/syn/constraints.sdc
diff --git a/hw/top_matcha/ip/rv_core_smc/syn/post_elab_gtech.tcl b/hw/ip/rv_core_smc/syn/post_elab_gtech.tcl
similarity index 100%
rename from hw/top_matcha/ip/rv_core_smc/syn/post_elab_gtech.tcl
rename to hw/ip/rv_core_smc/syn/post_elab_gtech.tcl
diff --git a/hw/top_matcha/ip/rv_core_smc/syn/rv_core_smc_gtech_syn_cfg.hjson b/hw/ip/rv_core_smc/syn/rv_core_smc_gtech_syn_cfg.hjson
similarity index 100%
rename from hw/top_matcha/ip/rv_core_smc/syn/rv_core_smc_gtech_syn_cfg.hjson
rename to hw/ip/rv_core_smc/syn/rv_core_smc_gtech_syn_cfg.hjson
diff --git a/hw/top_matcha/ip/rv_core_smc/syn/rv_core_smc_syn_cfg.hjson b/hw/ip/rv_core_smc/syn/rv_core_smc_syn_cfg.hjson
similarity index 100%
rename from hw/top_matcha/ip/rv_core_smc/syn/rv_core_smc_syn_cfg.hjson
rename to hw/ip/rv_core_smc/syn/rv_core_smc_syn_cfg.hjson
diff --git a/hw/top_matcha/ip/smc/.clang-format b/hw/ip/smc/.clang-format
similarity index 100%
rename from hw/top_matcha/ip/smc/.clang-format
rename to hw/ip/smc/.clang-format
diff --git a/hw/top_matcha/ip/smc/.gitignore b/hw/ip/smc/.gitignore
similarity index 100%
rename from hw/top_matcha/ip/smc/.gitignore
rename to hw/ip/smc/.gitignore
diff --git a/hw/top_matcha/ip/smc/.inter.fsdb.tbsim b/hw/ip/smc/.inter.fsdb.tbsim
similarity index 100%
rename from hw/top_matcha/ip/smc/.inter.fsdb.tbsim
rename to hw/ip/smc/.inter.fsdb.tbsim
diff --git a/hw/top_matcha/ip/smc/.svlint.toml b/hw/ip/smc/.svlint.toml
similarity index 100%
rename from hw/top_matcha/ip/smc/.svlint.toml
rename to hw/ip/smc/.svlint.toml
diff --git a/hw/top_matcha/ip/smc/.vcs_checkpoint_shared_memory.hoangm.1461923 b/hw/ip/smc/.vcs_checkpoint_shared_memory.hoangm.1461923
similarity index 100%
rename from hw/top_matcha/ip/smc/.vcs_checkpoint_shared_memory.hoangm.1461923
rename to hw/ip/smc/.vcs_checkpoint_shared_memory.hoangm.1461923
Binary files differ
diff --git a/hw/top_matcha/ip/smc/check_tool_requirements.core b/hw/ip/smc/check_tool_requirements.core
similarity index 100%
rename from hw/top_matcha/ip/smc/check_tool_requirements.core
rename to hw/ip/smc/check_tool_requirements.core
diff --git a/hw/top_matcha/ip/smc/doc/.gitignore b/hw/ip/smc/doc/.gitignore
similarity index 100%
rename from hw/top_matcha/ip/smc/doc/.gitignore
rename to hw/ip/smc/doc/.gitignore
diff --git a/hw/top_matcha/ip/smc/doc/01_overview/compliance.rst b/hw/ip/smc/doc/01_overview/compliance.rst
similarity index 100%
rename from hw/top_matcha/ip/smc/doc/01_overview/compliance.rst
rename to hw/ip/smc/doc/01_overview/compliance.rst
diff --git a/hw/top_matcha/ip/smc/doc/01_overview/index.rst b/hw/ip/smc/doc/01_overview/index.rst
similarity index 100%
rename from hw/top_matcha/ip/smc/doc/01_overview/index.rst
rename to hw/ip/smc/doc/01_overview/index.rst
diff --git a/hw/top_matcha/ip/smc/doc/01_overview/licensing.rst b/hw/ip/smc/doc/01_overview/licensing.rst
similarity index 100%
rename from hw/top_matcha/ip/smc/doc/01_overview/licensing.rst
rename to hw/ip/smc/doc/01_overview/licensing.rst
diff --git a/hw/top_matcha/ip/smc/doc/01_overview/targets.rst b/hw/ip/smc/doc/01_overview/targets.rst
similarity index 100%
rename from hw/top_matcha/ip/smc/doc/01_overview/targets.rst
rename to hw/ip/smc/doc/01_overview/targets.rst
diff --git a/hw/top_matcha/ip/smc/doc/02_user/examples.rst b/hw/ip/smc/doc/02_user/examples.rst
similarity index 100%
rename from hw/top_matcha/ip/smc/doc/02_user/examples.rst
rename to hw/ip/smc/doc/02_user/examples.rst
diff --git a/hw/top_matcha/ip/smc/doc/02_user/getting_started.rst b/hw/ip/smc/doc/02_user/getting_started.rst
similarity index 100%
rename from hw/top_matcha/ip/smc/doc/02_user/getting_started.rst
rename to hw/ip/smc/doc/02_user/getting_started.rst
diff --git a/hw/top_matcha/ip/smc/doc/02_user/index.rst b/hw/ip/smc/doc/02_user/index.rst
similarity index 100%
rename from hw/top_matcha/ip/smc/doc/02_user/index.rst
rename to hw/ip/smc/doc/02_user/index.rst
diff --git a/hw/top_matcha/ip/smc/doc/02_user/integration.rst b/hw/ip/smc/doc/02_user/integration.rst
similarity index 100%
rename from hw/top_matcha/ip/smc/doc/02_user/integration.rst
rename to hw/ip/smc/doc/02_user/integration.rst
diff --git a/hw/top_matcha/ip/smc/doc/02_user/system_requirements.rst b/hw/ip/smc/doc/02_user/system_requirements.rst
similarity index 100%
rename from hw/top_matcha/ip/smc/doc/02_user/system_requirements.rst
rename to hw/ip/smc/doc/02_user/system_requirements.rst
diff --git a/hw/top_matcha/ip/smc/doc/03_reference/cosim.rst b/hw/ip/smc/doc/03_reference/cosim.rst
similarity index 100%
rename from hw/top_matcha/ip/smc/doc/03_reference/cosim.rst
rename to hw/ip/smc/doc/03_reference/cosim.rst
diff --git a/hw/top_matcha/ip/smc/doc/03_reference/coverage_plan.rst b/hw/ip/smc/doc/03_reference/coverage_plan.rst
similarity index 100%
rename from hw/top_matcha/ip/smc/doc/03_reference/coverage_plan.rst
rename to hw/ip/smc/doc/03_reference/coverage_plan.rst
diff --git a/hw/top_matcha/ip/smc/doc/03_reference/cs_registers.rst b/hw/ip/smc/doc/03_reference/cs_registers.rst
similarity index 100%
rename from hw/top_matcha/ip/smc/doc/03_reference/cs_registers.rst
rename to hw/ip/smc/doc/03_reference/cs_registers.rst
diff --git a/hw/top_matcha/ip/smc/doc/03_reference/debug.rst b/hw/ip/smc/doc/03_reference/debug.rst
similarity index 100%
rename from hw/top_matcha/ip/smc/doc/03_reference/debug.rst
rename to hw/ip/smc/doc/03_reference/debug.rst
diff --git a/hw/top_matcha/ip/smc/doc/03_reference/exception_interrupts.rst b/hw/ip/smc/doc/03_reference/exception_interrupts.rst
similarity index 100%
rename from hw/top_matcha/ip/smc/doc/03_reference/exception_interrupts.rst
rename to hw/ip/smc/doc/03_reference/exception_interrupts.rst
diff --git a/hw/top_matcha/ip/smc/doc/03_reference/history.rst b/hw/ip/smc/doc/03_reference/history.rst
similarity index 100%
rename from hw/top_matcha/ip/smc/doc/03_reference/history.rst
rename to hw/ip/smc/doc/03_reference/history.rst
diff --git a/hw/top_matcha/ip/smc/doc/03_reference/icache.rst b/hw/ip/smc/doc/03_reference/icache.rst
similarity index 100%
rename from hw/top_matcha/ip/smc/doc/03_reference/icache.rst
rename to hw/ip/smc/doc/03_reference/icache.rst
diff --git a/hw/top_matcha/ip/smc/doc/03_reference/images/blockdiagram.svg b/hw/ip/smc/doc/03_reference/images/blockdiagram.svg
similarity index 100%
rename from hw/top_matcha/ip/smc/doc/03_reference/images/blockdiagram.svg
rename to hw/ip/smc/doc/03_reference/images/blockdiagram.svg
diff --git a/hw/top_matcha/ip/smc/doc/03_reference/images/de_ex_stage.svg b/hw/ip/smc/doc/03_reference/images/de_ex_stage.svg
similarity index 100%
rename from hw/top_matcha/ip/smc/doc/03_reference/images/de_ex_stage.svg
rename to hw/ip/smc/doc/03_reference/images/de_ex_stage.svg
diff --git a/hw/top_matcha/ip/smc/doc/03_reference/images/dv-flow.png b/hw/ip/smc/doc/03_reference/images/dv-flow.png
similarity index 100%
rename from hw/top_matcha/ip/smc/doc/03_reference/images/dv-flow.png
rename to hw/ip/smc/doc/03_reference/images/dv-flow.png
Binary files differ
diff --git a/hw/top_matcha/ip/smc/doc/03_reference/images/icache_block.svg b/hw/ip/smc/doc/03_reference/images/icache_block.svg
similarity index 100%
rename from hw/top_matcha/ip/smc/doc/03_reference/images/icache_block.svg
rename to hw/ip/smc/doc/03_reference/images/icache_block.svg
diff --git a/hw/top_matcha/ip/smc/doc/03_reference/images/icache_mux.svg b/hw/ip/smc/doc/03_reference/images/icache_mux.svg
similarity index 100%
rename from hw/top_matcha/ip/smc/doc/03_reference/images/icache_mux.svg
rename to hw/ip/smc/doc/03_reference/images/icache_mux.svg
diff --git a/hw/top_matcha/ip/smc/doc/03_reference/images/if_stage.svg b/hw/ip/smc/doc/03_reference/images/if_stage.svg
similarity index 100%
rename from hw/top_matcha/ip/smc/doc/03_reference/images/if_stage.svg
rename to hw/ip/smc/doc/03_reference/images/if_stage.svg
diff --git a/hw/top_matcha/ip/smc/doc/03_reference/images/logo.svg b/hw/ip/smc/doc/03_reference/images/logo.svg
similarity index 100%
rename from hw/top_matcha/ip/smc/doc/03_reference/images/logo.svg
rename to hw/ip/smc/doc/03_reference/images/logo.svg
diff --git a/hw/top_matcha/ip/smc/doc/03_reference/images/tb.svg b/hw/ip/smc/doc/03_reference/images/tb.svg
similarity index 100%
rename from hw/top_matcha/ip/smc/doc/03_reference/images/tb.svg
rename to hw/ip/smc/doc/03_reference/images/tb.svg
diff --git a/hw/top_matcha/ip/smc/doc/03_reference/images/tb2.svg b/hw/ip/smc/doc/03_reference/images/tb2.svg
similarity index 100%
rename from hw/top_matcha/ip/smc/doc/03_reference/images/tb2.svg
rename to hw/ip/smc/doc/03_reference/images/tb2.svg
diff --git a/hw/top_matcha/ip/smc/doc/03_reference/index.rst b/hw/ip/smc/doc/03_reference/index.rst
similarity index 100%
rename from hw/top_matcha/ip/smc/doc/03_reference/index.rst
rename to hw/ip/smc/doc/03_reference/index.rst
diff --git a/hw/top_matcha/ip/smc/doc/03_reference/instruction_decode_execute.rst b/hw/ip/smc/doc/03_reference/instruction_decode_execute.rst
similarity index 100%
rename from hw/top_matcha/ip/smc/doc/03_reference/instruction_decode_execute.rst
rename to hw/ip/smc/doc/03_reference/instruction_decode_execute.rst
diff --git a/hw/top_matcha/ip/smc/doc/03_reference/instruction_fetch.rst b/hw/ip/smc/doc/03_reference/instruction_fetch.rst
similarity index 100%
rename from hw/top_matcha/ip/smc/doc/03_reference/instruction_fetch.rst
rename to hw/ip/smc/doc/03_reference/instruction_fetch.rst
diff --git a/hw/top_matcha/ip/smc/doc/03_reference/load_store_unit.rst b/hw/ip/smc/doc/03_reference/load_store_unit.rst
similarity index 100%
rename from hw/top_matcha/ip/smc/doc/03_reference/load_store_unit.rst
rename to hw/ip/smc/doc/03_reference/load_store_unit.rst
diff --git a/hw/top_matcha/ip/smc/doc/03_reference/performance_counters.rst b/hw/ip/smc/doc/03_reference/performance_counters.rst
similarity index 100%
rename from hw/top_matcha/ip/smc/doc/03_reference/performance_counters.rst
rename to hw/ip/smc/doc/03_reference/performance_counters.rst
diff --git a/hw/top_matcha/ip/smc/doc/03_reference/pipeline_details.rst b/hw/ip/smc/doc/03_reference/pipeline_details.rst
similarity index 100%
rename from hw/top_matcha/ip/smc/doc/03_reference/pipeline_details.rst
rename to hw/ip/smc/doc/03_reference/pipeline_details.rst
diff --git a/hw/top_matcha/ip/smc/doc/03_reference/pmp.rst b/hw/ip/smc/doc/03_reference/pmp.rst
similarity index 100%
rename from hw/top_matcha/ip/smc/doc/03_reference/pmp.rst
rename to hw/ip/smc/doc/03_reference/pmp.rst
diff --git a/hw/top_matcha/ip/smc/doc/03_reference/register_file.rst b/hw/ip/smc/doc/03_reference/register_file.rst
similarity index 100%
rename from hw/top_matcha/ip/smc/doc/03_reference/register_file.rst
rename to hw/ip/smc/doc/03_reference/register_file.rst
diff --git a/hw/top_matcha/ip/smc/doc/03_reference/rvfi.rst b/hw/ip/smc/doc/03_reference/rvfi.rst
similarity index 100%
rename from hw/top_matcha/ip/smc/doc/03_reference/rvfi.rst
rename to hw/ip/smc/doc/03_reference/rvfi.rst
diff --git a/hw/top_matcha/ip/smc/doc/03_reference/security.rst b/hw/ip/smc/doc/03_reference/security.rst
similarity index 100%
rename from hw/top_matcha/ip/smc/doc/03_reference/security.rst
rename to hw/ip/smc/doc/03_reference/security.rst
diff --git a/hw/top_matcha/ip/smc/doc/03_reference/testplan.rst b/hw/ip/smc/doc/03_reference/testplan.rst
similarity index 100%
rename from hw/top_matcha/ip/smc/doc/03_reference/testplan.rst
rename to hw/ip/smc/doc/03_reference/testplan.rst
diff --git a/hw/top_matcha/ip/smc/doc/03_reference/tracer.rst b/hw/ip/smc/doc/03_reference/tracer.rst
similarity index 100%
rename from hw/top_matcha/ip/smc/doc/03_reference/tracer.rst
rename to hw/ip/smc/doc/03_reference/tracer.rst
diff --git a/hw/top_matcha/ip/smc/doc/03_reference/verification.rst b/hw/ip/smc/doc/03_reference/verification.rst
similarity index 100%
rename from hw/top_matcha/ip/smc/doc/03_reference/verification.rst
rename to hw/ip/smc/doc/03_reference/verification.rst
diff --git a/hw/top_matcha/ip/smc/doc/03_reference/verification_stages.rst b/hw/ip/smc/doc/03_reference/verification_stages.rst
similarity index 100%
rename from hw/top_matcha/ip/smc/doc/03_reference/verification_stages.rst
rename to hw/ip/smc/doc/03_reference/verification_stages.rst
diff --git a/hw/top_matcha/ip/smc/doc/04_developer/concierge.rst b/hw/ip/smc/doc/04_developer/concierge.rst
similarity index 100%
rename from hw/top_matcha/ip/smc/doc/04_developer/concierge.rst
rename to hw/ip/smc/doc/04_developer/concierge.rst
diff --git a/hw/top_matcha/ip/smc/doc/04_developer/index.rst b/hw/ip/smc/doc/04_developer/index.rst
similarity index 100%
rename from hw/top_matcha/ip/smc/doc/04_developer/index.rst
rename to hw/ip/smc/doc/04_developer/index.rst
diff --git a/hw/top_matcha/ip/smc/doc/Makefile b/hw/ip/smc/doc/Makefile
similarity index 100%
rename from hw/top_matcha/ip/smc/doc/Makefile
rename to hw/ip/smc/doc/Makefile
diff --git a/hw/top_matcha/ip/smc/doc/_static/theme_overrides.css b/hw/ip/smc/doc/_static/theme_overrides.css
similarity index 100%
rename from hw/top_matcha/ip/smc/doc/_static/theme_overrides.css
rename to hw/ip/smc/doc/_static/theme_overrides.css
diff --git a/hw/top_matcha/ip/smc/doc/conf.py b/hw/ip/smc/doc/conf.py
similarity index 100%
rename from hw/top_matcha/ip/smc/doc/conf.py
rename to hw/ip/smc/doc/conf.py
diff --git a/hw/top_matcha/ip/smc/doc/index.rst b/hw/ip/smc/doc/index.rst
similarity index 100%
rename from hw/top_matcha/ip/smc/doc/index.rst
rename to hw/ip/smc/doc/index.rst
diff --git a/hw/top_matcha/ip/smc/doc/make.bat b/hw/ip/smc/doc/make.bat
similarity index 100%
rename from hw/top_matcha/ip/smc/doc/make.bat
rename to hw/ip/smc/doc/make.bat
diff --git a/hw/top_matcha/ip/smc/lint/verible_waiver.vbw b/hw/ip/smc/lint/verible_waiver.vbw
similarity index 100%
rename from hw/top_matcha/ip/smc/lint/verible_waiver.vbw
rename to hw/ip/smc/lint/verible_waiver.vbw
diff --git a/hw/top_matcha/ip/smc/lint/verilator_waiver.vlt b/hw/ip/smc/lint/verilator_waiver.vlt
similarity index 100%
rename from hw/top_matcha/ip/smc/lint/verilator_waiver.vlt
rename to hw/ip/smc/lint/verilator_waiver.vlt
diff --git a/hw/top_matcha/ip/smc/rtl/smc_alu.sv b/hw/ip/smc/rtl/smc_alu.sv
similarity index 100%
rename from hw/top_matcha/ip/smc/rtl/smc_alu.sv
rename to hw/ip/smc/rtl/smc_alu.sv
diff --git a/hw/top_matcha/ip/smc/rtl/smc_branch_predict.sv b/hw/ip/smc/rtl/smc_branch_predict.sv
similarity index 100%
rename from hw/top_matcha/ip/smc/rtl/smc_branch_predict.sv
rename to hw/ip/smc/rtl/smc_branch_predict.sv
diff --git a/hw/top_matcha/ip/smc/rtl/smc_compressed_decoder.sv b/hw/ip/smc/rtl/smc_compressed_decoder.sv
similarity index 100%
rename from hw/top_matcha/ip/smc/rtl/smc_compressed_decoder.sv
rename to hw/ip/smc/rtl/smc_compressed_decoder.sv
diff --git a/hw/top_matcha/ip/smc/rtl/smc_controller.sv b/hw/ip/smc/rtl/smc_controller.sv
similarity index 100%
rename from hw/top_matcha/ip/smc/rtl/smc_controller.sv
rename to hw/ip/smc/rtl/smc_controller.sv
diff --git a/hw/top_matcha/ip/smc/rtl/smc_core.f b/hw/ip/smc/rtl/smc_core.f
similarity index 100%
rename from hw/top_matcha/ip/smc/rtl/smc_core.f
rename to hw/ip/smc/rtl/smc_core.f
diff --git a/hw/top_matcha/ip/smc/rtl/smc_core.sv b/hw/ip/smc/rtl/smc_core.sv
similarity index 100%
rename from hw/top_matcha/ip/smc/rtl/smc_core.sv
rename to hw/ip/smc/rtl/smc_core.sv
diff --git a/hw/top_matcha/ip/smc/rtl/smc_counter.sv b/hw/ip/smc/rtl/smc_counter.sv
similarity index 100%
rename from hw/top_matcha/ip/smc/rtl/smc_counter.sv
rename to hw/ip/smc/rtl/smc_counter.sv
diff --git a/hw/top_matcha/ip/smc/rtl/smc_cs_registers.sv b/hw/ip/smc/rtl/smc_cs_registers.sv
similarity index 100%
rename from hw/top_matcha/ip/smc/rtl/smc_cs_registers.sv
rename to hw/ip/smc/rtl/smc_cs_registers.sv
diff --git a/hw/top_matcha/ip/smc/rtl/smc_csr.sv b/hw/ip/smc/rtl/smc_csr.sv
similarity index 100%
rename from hw/top_matcha/ip/smc/rtl/smc_csr.sv
rename to hw/ip/smc/rtl/smc_csr.sv
diff --git a/hw/top_matcha/ip/smc/rtl/smc_decoder.sv b/hw/ip/smc/rtl/smc_decoder.sv
similarity index 100%
rename from hw/top_matcha/ip/smc/rtl/smc_decoder.sv
rename to hw/ip/smc/rtl/smc_decoder.sv
diff --git a/hw/top_matcha/ip/smc/rtl/smc_dummy_instr.sv b/hw/ip/smc/rtl/smc_dummy_instr.sv
similarity index 100%
rename from hw/top_matcha/ip/smc/rtl/smc_dummy_instr.sv
rename to hw/ip/smc/rtl/smc_dummy_instr.sv
diff --git a/hw/top_matcha/ip/smc/rtl/smc_ex_block.sv b/hw/ip/smc/rtl/smc_ex_block.sv
similarity index 100%
rename from hw/top_matcha/ip/smc/rtl/smc_ex_block.sv
rename to hw/ip/smc/rtl/smc_ex_block.sv
diff --git a/hw/top_matcha/ip/smc/rtl/smc_fetch_fifo.sv b/hw/ip/smc/rtl/smc_fetch_fifo.sv
similarity index 100%
rename from hw/top_matcha/ip/smc/rtl/smc_fetch_fifo.sv
rename to hw/ip/smc/rtl/smc_fetch_fifo.sv
diff --git a/hw/top_matcha/ip/smc/rtl/smc_icache.sv b/hw/ip/smc/rtl/smc_icache.sv
similarity index 100%
rename from hw/top_matcha/ip/smc/rtl/smc_icache.sv
rename to hw/ip/smc/rtl/smc_icache.sv
diff --git a/hw/top_matcha/ip/smc/rtl/smc_id_stage.sv b/hw/ip/smc/rtl/smc_id_stage.sv
similarity index 100%
rename from hw/top_matcha/ip/smc/rtl/smc_id_stage.sv
rename to hw/ip/smc/rtl/smc_id_stage.sv
diff --git a/hw/top_matcha/ip/smc/rtl/smc_if_stage.sv b/hw/ip/smc/rtl/smc_if_stage.sv
similarity index 100%
rename from hw/top_matcha/ip/smc/rtl/smc_if_stage.sv
rename to hw/ip/smc/rtl/smc_if_stage.sv
diff --git a/hw/top_matcha/ip/smc/rtl/smc_load_store_unit.sv b/hw/ip/smc/rtl/smc_load_store_unit.sv
similarity index 100%
rename from hw/top_matcha/ip/smc/rtl/smc_load_store_unit.sv
rename to hw/ip/smc/rtl/smc_load_store_unit.sv
diff --git a/hw/top_matcha/ip/smc/rtl/smc_lockstep.sv b/hw/ip/smc/rtl/smc_lockstep.sv
similarity index 100%
rename from hw/top_matcha/ip/smc/rtl/smc_lockstep.sv
rename to hw/ip/smc/rtl/smc_lockstep.sv
diff --git a/hw/top_matcha/ip/smc/rtl/smc_mmu.sv b/hw/ip/smc/rtl/smc_mmu.sv
similarity index 100%
rename from hw/top_matcha/ip/smc/rtl/smc_mmu.sv
rename to hw/ip/smc/rtl/smc_mmu.sv
diff --git a/hw/top_matcha/ip/smc/rtl/smc_multdiv_fast.sv b/hw/ip/smc/rtl/smc_multdiv_fast.sv
similarity index 100%
rename from hw/top_matcha/ip/smc/rtl/smc_multdiv_fast.sv
rename to hw/ip/smc/rtl/smc_multdiv_fast.sv
diff --git a/hw/top_matcha/ip/smc/rtl/smc_multdiv_slow.sv b/hw/ip/smc/rtl/smc_multdiv_slow.sv
similarity index 100%
rename from hw/top_matcha/ip/smc/rtl/smc_multdiv_slow.sv
rename to hw/ip/smc/rtl/smc_multdiv_slow.sv
diff --git a/hw/top_matcha/ip/smc/rtl/smc_pkg.sv b/hw/ip/smc/rtl/smc_pkg.sv
similarity index 100%
rename from hw/top_matcha/ip/smc/rtl/smc_pkg.sv
rename to hw/ip/smc/rtl/smc_pkg.sv
diff --git a/hw/top_matcha/ip/smc/rtl/smc_pmp.sv b/hw/ip/smc/rtl/smc_pmp.sv
similarity index 100%
rename from hw/top_matcha/ip/smc/rtl/smc_pmp.sv
rename to hw/ip/smc/rtl/smc_pmp.sv
diff --git a/hw/top_matcha/ip/smc/rtl/smc_pmp_reset_default.svh b/hw/ip/smc/rtl/smc_pmp_reset_default.svh
similarity index 100%
rename from hw/top_matcha/ip/smc/rtl/smc_pmp_reset_default.svh
rename to hw/ip/smc/rtl/smc_pmp_reset_default.svh
diff --git a/hw/top_matcha/ip/smc/rtl/smc_prefetch_buffer.sv b/hw/ip/smc/rtl/smc_prefetch_buffer.sv
similarity index 100%
rename from hw/top_matcha/ip/smc/rtl/smc_prefetch_buffer.sv
rename to hw/ip/smc/rtl/smc_prefetch_buffer.sv
diff --git a/hw/top_matcha/ip/smc/rtl/smc_ptw.sv b/hw/ip/smc/rtl/smc_ptw.sv
similarity index 100%
rename from hw/top_matcha/ip/smc/rtl/smc_ptw.sv
rename to hw/ip/smc/rtl/smc_ptw.sv
diff --git a/hw/top_matcha/ip/smc/rtl/smc_register_file_ff.sv b/hw/ip/smc/rtl/smc_register_file_ff.sv
similarity index 100%
rename from hw/top_matcha/ip/smc/rtl/smc_register_file_ff.sv
rename to hw/ip/smc/rtl/smc_register_file_ff.sv
diff --git a/hw/top_matcha/ip/smc/rtl/smc_register_file_fpga.sv b/hw/ip/smc/rtl/smc_register_file_fpga.sv
similarity index 100%
rename from hw/top_matcha/ip/smc/rtl/smc_register_file_fpga.sv
rename to hw/ip/smc/rtl/smc_register_file_fpga.sv
diff --git a/hw/top_matcha/ip/smc/rtl/smc_register_file_latch.sv b/hw/ip/smc/rtl/smc_register_file_latch.sv
similarity index 100%
rename from hw/top_matcha/ip/smc/rtl/smc_register_file_latch.sv
rename to hw/ip/smc/rtl/smc_register_file_latch.sv
diff --git a/hw/top_matcha/ip/smc/rtl/smc_tlb.sv b/hw/ip/smc/rtl/smc_tlb.sv
similarity index 100%
rename from hw/top_matcha/ip/smc/rtl/smc_tlb.sv
rename to hw/ip/smc/rtl/smc_tlb.sv
diff --git a/hw/top_matcha/ip/smc/rtl/smc_top.sv b/hw/ip/smc/rtl/smc_top.sv
similarity index 100%
rename from hw/top_matcha/ip/smc/rtl/smc_top.sv
rename to hw/ip/smc/rtl/smc_top.sv
diff --git a/hw/top_matcha/ip/smc/rtl/smc_top_tracing.sv b/hw/ip/smc/rtl/smc_top_tracing.sv
similarity index 100%
rename from hw/top_matcha/ip/smc/rtl/smc_top_tracing.sv
rename to hw/ip/smc/rtl/smc_top_tracing.sv
diff --git a/hw/top_matcha/ip/smc/rtl/smc_tracer.sv b/hw/ip/smc/rtl/smc_tracer.sv
similarity index 100%
rename from hw/top_matcha/ip/smc/rtl/smc_tracer.sv
rename to hw/ip/smc/rtl/smc_tracer.sv
diff --git a/hw/top_matcha/ip/smc/rtl/smc_tracer_pkg.sv b/hw/ip/smc/rtl/smc_tracer_pkg.sv
similarity index 100%
rename from hw/top_matcha/ip/smc/rtl/smc_tracer_pkg.sv
rename to hw/ip/smc/rtl/smc_tracer_pkg.sv
diff --git a/hw/top_matcha/ip/smc/rtl/smc_wb_stage.sv b/hw/ip/smc/rtl/smc_wb_stage.sv
similarity index 100%
rename from hw/top_matcha/ip/smc/rtl/smc_wb_stage.sv
rename to hw/ip/smc/rtl/smc_wb_stage.sv
diff --git a/hw/top_matcha/ip/smc/smc_core.core b/hw/ip/smc/smc_core.core
similarity index 100%
rename from hw/top_matcha/ip/smc/smc_core.core
rename to hw/ip/smc/smc_core.core
diff --git a/hw/top_matcha/ip/smc/smc_icache.core b/hw/ip/smc/smc_icache.core
similarity index 100%
rename from hw/top_matcha/ip/smc/smc_icache.core
rename to hw/ip/smc/smc_icache.core
diff --git a/hw/top_matcha/ip/smc/smc_multdiv.core b/hw/ip/smc/smc_multdiv.core
similarity index 100%
rename from hw/top_matcha/ip/smc/smc_multdiv.core
rename to hw/ip/smc/smc_multdiv.core
diff --git a/hw/top_matcha/ip/smc/smc_pkg.core b/hw/ip/smc/smc_pkg.core
similarity index 100%
rename from hw/top_matcha/ip/smc/smc_pkg.core
rename to hw/ip/smc/smc_pkg.core
diff --git a/hw/top_matcha/ip/smc/smc_top.core b/hw/ip/smc/smc_top.core
similarity index 100%
rename from hw/top_matcha/ip/smc/smc_top.core
rename to hw/ip/smc/smc_top.core
diff --git a/hw/top_matcha/ip/smc/smc_top_tracing.core b/hw/ip/smc/smc_top_tracing.core
similarity index 100%
rename from hw/top_matcha/ip/smc/smc_top_tracing.core
rename to hw/ip/smc/smc_top_tracing.core
diff --git a/hw/top_matcha/ip/smc/smc_tracer.core b/hw/ip/smc/smc_tracer.core
similarity index 100%
rename from hw/top_matcha/ip/smc/smc_tracer.core
rename to hw/ip/smc/smc_tracer.core
diff --git a/hw/top_matcha/ip/smc/tool_requirements.py b/hw/ip/smc/tool_requirements.py
similarity index 100%
rename from hw/top_matcha/ip/smc/tool_requirements.py
rename to hw/ip/smc/tool_requirements.py
diff --git a/hw/top_matcha/ip/smc/util/__init__.py b/hw/ip/smc/util/__init__.py
similarity index 100%
rename from hw/top_matcha/ip/smc/util/__init__.py
rename to hw/ip/smc/util/__init__.py
diff --git a/hw/top_matcha/ip/smc/util/check_tool_requirements.py b/hw/ip/smc/util/check_tool_requirements.py
similarity index 100%
rename from hw/top_matcha/ip/smc/util/check_tool_requirements.py
rename to hw/ip/smc/util/check_tool_requirements.py
diff --git a/hw/top_matcha/ip/smc_ctrl/BUILD b/hw/ip/smc_ctrl/BUILD
similarity index 83%
rename from hw/top_matcha/ip/smc_ctrl/BUILD
rename to hw/ip/smc_ctrl/BUILD
index a2f2099..9ba46db 100644
--- a/hw/top_matcha/ip/smc_ctrl/BUILD
+++ b/hw/ip/smc_ctrl/BUILD
@@ -7,6 +7,6 @@
 filegroup(
     name = "all_files",
     srcs = glob(["**"]) + [
-        "//hw/top_matcha/ip/smc_ctrl/data:all_files",
+        "//hw/ip/smc_ctrl/data:all_files",
     ],
 )
diff --git a/hw/top_matcha/ip/smc_ctrl/data/BUILD b/hw/ip/smc_ctrl/data/BUILD
similarity index 100%
rename from hw/top_matcha/ip/smc_ctrl/data/BUILD
rename to hw/ip/smc_ctrl/data/BUILD
diff --git a/hw/top_matcha/ip/smc_ctrl/data/smc_ctrl.hjson b/hw/ip/smc_ctrl/data/smc_ctrl.hjson
similarity index 100%
rename from hw/top_matcha/ip/smc_ctrl/data/smc_ctrl.hjson
rename to hw/ip/smc_ctrl/data/smc_ctrl.hjson
diff --git a/hw/top_matcha/ip/smc_ctrl/data/smc_ctrl.prj.hjson b/hw/ip/smc_ctrl/data/smc_ctrl.prj.hjson
similarity index 100%
rename from hw/top_matcha/ip/smc_ctrl/data/smc_ctrl.prj.hjson
rename to hw/ip/smc_ctrl/data/smc_ctrl.prj.hjson
diff --git a/hw/top_matcha/ip/smc_ctrl/data/smc_ctrl_testplan.hjson b/hw/ip/smc_ctrl/data/smc_ctrl_testplan.hjson
similarity index 100%
rename from hw/top_matcha/ip/smc_ctrl/data/smc_ctrl_testplan.hjson
rename to hw/ip/smc_ctrl/data/smc_ctrl_testplan.hjson
diff --git a/hw/top_matcha/ip/smc_ctrl/doc/_index.md b/hw/ip/smc_ctrl/doc/_index.md
similarity index 100%
rename from hw/top_matcha/ip/smc_ctrl/doc/_index.md
rename to hw/ip/smc_ctrl/doc/_index.md
diff --git a/hw/top_matcha/ip/smc_ctrl/dv/env/seq_lib/smc_ctrl_base_vseq.sv b/hw/ip/smc_ctrl/dv/env/seq_lib/smc_ctrl_base_vseq.sv
similarity index 100%
rename from hw/top_matcha/ip/smc_ctrl/dv/env/seq_lib/smc_ctrl_base_vseq.sv
rename to hw/ip/smc_ctrl/dv/env/seq_lib/smc_ctrl_base_vseq.sv
diff --git a/hw/top_matcha/ip/smc_ctrl/dv/env/seq_lib/smc_ctrl_common_vseq.sv b/hw/ip/smc_ctrl/dv/env/seq_lib/smc_ctrl_common_vseq.sv
similarity index 100%
rename from hw/top_matcha/ip/smc_ctrl/dv/env/seq_lib/smc_ctrl_common_vseq.sv
rename to hw/ip/smc_ctrl/dv/env/seq_lib/smc_ctrl_common_vseq.sv
diff --git a/hw/top_matcha/ip/smc_ctrl/dv/env/seq_lib/smc_ctrl_smoke_vseq.sv b/hw/ip/smc_ctrl/dv/env/seq_lib/smc_ctrl_smoke_vseq.sv
similarity index 100%
rename from hw/top_matcha/ip/smc_ctrl/dv/env/seq_lib/smc_ctrl_smoke_vseq.sv
rename to hw/ip/smc_ctrl/dv/env/seq_lib/smc_ctrl_smoke_vseq.sv
diff --git a/hw/top_matcha/ip/smc_ctrl/dv/env/seq_lib/smc_ctrl_vseq_list.sv b/hw/ip/smc_ctrl/dv/env/seq_lib/smc_ctrl_vseq_list.sv
similarity index 100%
rename from hw/top_matcha/ip/smc_ctrl/dv/env/seq_lib/smc_ctrl_vseq_list.sv
rename to hw/ip/smc_ctrl/dv/env/seq_lib/smc_ctrl_vseq_list.sv
diff --git a/hw/top_matcha/ip/smc_ctrl/dv/env/smc_ctrl_env.core b/hw/ip/smc_ctrl/dv/env/smc_ctrl_env.core
similarity index 100%
rename from hw/top_matcha/ip/smc_ctrl/dv/env/smc_ctrl_env.core
rename to hw/ip/smc_ctrl/dv/env/smc_ctrl_env.core
diff --git a/hw/top_matcha/ip/smc_ctrl/dv/env/smc_ctrl_env.sv b/hw/ip/smc_ctrl/dv/env/smc_ctrl_env.sv
similarity index 100%
rename from hw/top_matcha/ip/smc_ctrl/dv/env/smc_ctrl_env.sv
rename to hw/ip/smc_ctrl/dv/env/smc_ctrl_env.sv
diff --git a/hw/top_matcha/ip/smc_ctrl/dv/env/smc_ctrl_env_cfg.sv b/hw/ip/smc_ctrl/dv/env/smc_ctrl_env_cfg.sv
similarity index 100%
rename from hw/top_matcha/ip/smc_ctrl/dv/env/smc_ctrl_env_cfg.sv
rename to hw/ip/smc_ctrl/dv/env/smc_ctrl_env_cfg.sv
diff --git a/hw/top_matcha/ip/smc_ctrl/dv/env/smc_ctrl_env_cov.sv b/hw/ip/smc_ctrl/dv/env/smc_ctrl_env_cov.sv
similarity index 100%
rename from hw/top_matcha/ip/smc_ctrl/dv/env/smc_ctrl_env_cov.sv
rename to hw/ip/smc_ctrl/dv/env/smc_ctrl_env_cov.sv
diff --git a/hw/top_matcha/ip/smc_ctrl/dv/env/smc_ctrl_env_pkg.sv b/hw/ip/smc_ctrl/dv/env/smc_ctrl_env_pkg.sv
similarity index 100%
rename from hw/top_matcha/ip/smc_ctrl/dv/env/smc_ctrl_env_pkg.sv
rename to hw/ip/smc_ctrl/dv/env/smc_ctrl_env_pkg.sv
diff --git a/hw/top_matcha/ip/smc_ctrl/dv/env/smc_ctrl_scoreboard.sv b/hw/ip/smc_ctrl/dv/env/smc_ctrl_scoreboard.sv
similarity index 100%
rename from hw/top_matcha/ip/smc_ctrl/dv/env/smc_ctrl_scoreboard.sv
rename to hw/ip/smc_ctrl/dv/env/smc_ctrl_scoreboard.sv
diff --git a/hw/top_matcha/ip/smc_ctrl/dv/env/smc_ctrl_virtual_sequencer.sv b/hw/ip/smc_ctrl/dv/env/smc_ctrl_virtual_sequencer.sv
similarity index 100%
rename from hw/top_matcha/ip/smc_ctrl/dv/env/smc_ctrl_virtual_sequencer.sv
rename to hw/ip/smc_ctrl/dv/env/smc_ctrl_virtual_sequencer.sv
diff --git a/hw/top_matcha/ip/smc_ctrl/dv/smc_ctrl_sim.core b/hw/ip/smc_ctrl/dv/smc_ctrl_sim.core
similarity index 100%
rename from hw/top_matcha/ip/smc_ctrl/dv/smc_ctrl_sim.core
rename to hw/ip/smc_ctrl/dv/smc_ctrl_sim.core
diff --git a/hw/top_matcha/ip/smc_ctrl/dv/smc_ctrl_sim_cfg.hjson b/hw/ip/smc_ctrl/dv/smc_ctrl_sim_cfg.hjson
similarity index 100%
rename from hw/top_matcha/ip/smc_ctrl/dv/smc_ctrl_sim_cfg.hjson
rename to hw/ip/smc_ctrl/dv/smc_ctrl_sim_cfg.hjson
diff --git a/hw/top_matcha/ip/smc_ctrl/dv/sva/smc_ctrl_bind.sv b/hw/ip/smc_ctrl/dv/sva/smc_ctrl_bind.sv
similarity index 100%
rename from hw/top_matcha/ip/smc_ctrl/dv/sva/smc_ctrl_bind.sv
rename to hw/ip/smc_ctrl/dv/sva/smc_ctrl_bind.sv
diff --git a/hw/top_matcha/ip/smc_ctrl/dv/sva/smc_ctrl_sva.core b/hw/ip/smc_ctrl/dv/sva/smc_ctrl_sva.core
similarity index 100%
rename from hw/top_matcha/ip/smc_ctrl/dv/sva/smc_ctrl_sva.core
rename to hw/ip/smc_ctrl/dv/sva/smc_ctrl_sva.core
diff --git a/hw/top_matcha/ip/smc_ctrl/dv/tb.sv b/hw/ip/smc_ctrl/dv/tb.sv
similarity index 100%
rename from hw/top_matcha/ip/smc_ctrl/dv/tb.sv
rename to hw/ip/smc_ctrl/dv/tb.sv
diff --git a/hw/top_matcha/ip/smc_ctrl/dv/tests/smc_ctrl_base_test.sv b/hw/ip/smc_ctrl/dv/tests/smc_ctrl_base_test.sv
similarity index 100%
rename from hw/top_matcha/ip/smc_ctrl/dv/tests/smc_ctrl_base_test.sv
rename to hw/ip/smc_ctrl/dv/tests/smc_ctrl_base_test.sv
diff --git a/hw/top_matcha/ip/smc_ctrl/dv/tests/smc_ctrl_test.core b/hw/ip/smc_ctrl/dv/tests/smc_ctrl_test.core
similarity index 100%
rename from hw/top_matcha/ip/smc_ctrl/dv/tests/smc_ctrl_test.core
rename to hw/ip/smc_ctrl/dv/tests/smc_ctrl_test.core
diff --git a/hw/top_matcha/ip/smc_ctrl/dv/tests/smc_ctrl_test_pkg.sv b/hw/ip/smc_ctrl/dv/tests/smc_ctrl_test_pkg.sv
similarity index 100%
rename from hw/top_matcha/ip/smc_ctrl/dv/tests/smc_ctrl_test_pkg.sv
rename to hw/ip/smc_ctrl/dv/tests/smc_ctrl_test_pkg.sv
diff --git a/hw/top_matcha/ip/smc_ctrl/lint/smc_ctrl.vlt b/hw/ip/smc_ctrl/lint/smc_ctrl.vlt
similarity index 100%
rename from hw/top_matcha/ip/smc_ctrl/lint/smc_ctrl.vlt
rename to hw/ip/smc_ctrl/lint/smc_ctrl.vlt
diff --git a/hw/top_matcha/ip/smc_ctrl/lint/smc_ctrl.waiver b/hw/ip/smc_ctrl/lint/smc_ctrl.waiver
similarity index 100%
rename from hw/top_matcha/ip/smc_ctrl/lint/smc_ctrl.waiver
rename to hw/ip/smc_ctrl/lint/smc_ctrl.waiver
diff --git a/hw/top_matcha/ip/smc_ctrl/rtl/smc_ctrl.sv b/hw/ip/smc_ctrl/rtl/smc_ctrl.sv
similarity index 100%
rename from hw/top_matcha/ip/smc_ctrl/rtl/smc_ctrl.sv
rename to hw/ip/smc_ctrl/rtl/smc_ctrl.sv
diff --git a/hw/top_matcha/ip/smc_ctrl/rtl/smc_ctrl_reg_pkg.sv b/hw/ip/smc_ctrl/rtl/smc_ctrl_reg_pkg.sv
similarity index 100%
rename from hw/top_matcha/ip/smc_ctrl/rtl/smc_ctrl_reg_pkg.sv
rename to hw/ip/smc_ctrl/rtl/smc_ctrl_reg_pkg.sv
diff --git a/hw/top_matcha/ip/smc_ctrl/rtl/smc_ctrl_reg_top.sv b/hw/ip/smc_ctrl/rtl/smc_ctrl_reg_top.sv
similarity index 100%
rename from hw/top_matcha/ip/smc_ctrl/rtl/smc_ctrl_reg_top.sv
rename to hw/ip/smc_ctrl/rtl/smc_ctrl_reg_top.sv
diff --git a/hw/top_matcha/ip/smc_ctrl/smc_ctrl.core b/hw/ip/smc_ctrl/smc_ctrl.core
similarity index 100%
rename from hw/top_matcha/ip/smc_ctrl/smc_ctrl.core
rename to hw/ip/smc_ctrl/smc_ctrl.core
diff --git a/hw/top_matcha/ip/tluh/rtl/helpers.sv b/hw/ip/tluh/rtl/helpers.sv
similarity index 100%
rename from hw/top_matcha/ip/tluh/rtl/helpers.sv
rename to hw/ip/tluh/rtl/helpers.sv
diff --git a/hw/top_matcha/ip/tluh/rtl/primitives.sv b/hw/ip/tluh/rtl/primitives.sv
similarity index 100%
rename from hw/top_matcha/ip/tluh/rtl/primitives.sv
rename to hw/ip/tluh/rtl/primitives.sv
diff --git a/hw/top_matcha/ip/tluh/rtl/tl_interface.sv b/hw/ip/tluh/rtl/tl_interface.sv
similarity index 100%
rename from hw/top_matcha/ip/tluh/rtl/tl_interface.sv
rename to hw/ip/tluh/rtl/tl_interface.sv
diff --git a/hw/top_matcha/ip/tluh/rtl/tl_package.sv b/hw/ip/tluh/rtl/tl_package.sv
similarity index 100%
rename from hw/top_matcha/ip/tluh/rtl/tl_package.sv
rename to hw/ip/tluh/rtl/tl_package.sv
diff --git a/hw/top_matcha/ip/tluh/rtl/tluh_adapter_host.sv b/hw/ip/tluh/rtl/tluh_adapter_host.sv
similarity index 100%
rename from hw/top_matcha/ip/tluh/rtl/tluh_adapter_host.sv
rename to hw/ip/tluh/rtl/tluh_adapter_host.sv
diff --git a/hw/top_matcha/ip/tluh/rtl/tluh_adapter_sram.sv b/hw/ip/tluh/rtl/tluh_adapter_sram.sv
similarity index 100%
rename from hw/top_matcha/ip/tluh/rtl/tluh_adapter_sram.sv
rename to hw/ip/tluh/rtl/tluh_adapter_sram.sv
diff --git a/hw/top_matcha/ip/tluh/rtl/tluh_mem_bridge.sv b/hw/ip/tluh/rtl/tluh_mem_bridge.sv
similarity index 100%
rename from hw/top_matcha/ip/tluh/rtl/tluh_mem_bridge.sv
rename to hw/ip/tluh/rtl/tluh_mem_bridge.sv
diff --git a/hw/top_matcha/ip/tluh/rtl/tluh_mem_bridge_alu.sv b/hw/ip/tluh/rtl/tluh_mem_bridge_alu.sv
similarity index 100%
rename from hw/top_matcha/ip/tluh/rtl/tluh_mem_bridge_alu.sv
rename to hw/ip/tluh/rtl/tluh_mem_bridge_alu.sv
diff --git a/hw/top_matcha/ip/tluh/rtl/tluh_mem_bridge_decoder.sv b/hw/ip/tluh/rtl/tluh_mem_bridge_decoder.sv
similarity index 100%
rename from hw/top_matcha/ip/tluh/rtl/tluh_mem_bridge_decoder.sv
rename to hw/ip/tluh/rtl/tluh_mem_bridge_decoder.sv
diff --git a/hw/top_matcha/ip/tluh/tluh_adapter_host.core b/hw/ip/tluh/tluh_adapter_host.core
similarity index 100%
rename from hw/top_matcha/ip/tluh/tluh_adapter_host.core
rename to hw/ip/tluh/tluh_adapter_host.core
diff --git a/hw/top_matcha/ip/tluh/tluh_adapter_sram.core b/hw/ip/tluh/tluh_adapter_sram.core
similarity index 100%
rename from hw/top_matcha/ip/tluh/tluh_adapter_sram.core
rename to hw/ip/tluh/tluh_adapter_sram.core
diff --git a/hw/top_matcha/ip/tluh/tluh_adapter_sram_pkg.core b/hw/ip/tluh/tluh_adapter_sram_pkg.core
similarity index 100%
rename from hw/top_matcha/ip/tluh/tluh_adapter_sram_pkg.core
rename to hw/ip/tluh/tluh_adapter_sram_pkg.core
diff --git a/hw/top_matcha/ip/i2s/BUILD b/hw/ip/tlul_mailbox/BUILD
similarity index 85%
copy from hw/top_matcha/ip/i2s/BUILD
copy to hw/ip/tlul_mailbox/BUILD
index 4af7d42..b4d795b 100644
--- a/hw/top_matcha/ip/i2s/BUILD
+++ b/hw/ip/tlul_mailbox/BUILD
@@ -8,6 +8,6 @@
 filegroup(
     name = "all_files",
     srcs = glob(["**"]) + [
-        "//hw/top_matcha/ip/i2s/data:all_files",
+        "//hw/ip/tlul_mailbox/data:all_files",
     ],
 )
diff --git a/hw/top_matcha/ip/tlul_mailbox/data/BUILD b/hw/ip/tlul_mailbox/data/BUILD
similarity index 100%
rename from hw/top_matcha/ip/tlul_mailbox/data/BUILD
rename to hw/ip/tlul_mailbox/data/BUILD
diff --git a/hw/top_matcha/ip/tlul_mailbox/data/tlul_mailbox.hjson b/hw/ip/tlul_mailbox/data/tlul_mailbox.hjson
similarity index 100%
rename from hw/top_matcha/ip/tlul_mailbox/data/tlul_mailbox.hjson
rename to hw/ip/tlul_mailbox/data/tlul_mailbox.hjson
diff --git a/hw/top_matcha/ip/tlul_mailbox/data/tlul_mailbox.prj.hjson b/hw/ip/tlul_mailbox/data/tlul_mailbox.prj.hjson
similarity index 100%
rename from hw/top_matcha/ip/tlul_mailbox/data/tlul_mailbox.prj.hjson
rename to hw/ip/tlul_mailbox/data/tlul_mailbox.prj.hjson
diff --git a/hw/top_matcha/ip/tlul_mailbox/data/tlul_mailbox_testplan.hjson b/hw/ip/tlul_mailbox/data/tlul_mailbox_testplan.hjson
similarity index 100%
rename from hw/top_matcha/ip/tlul_mailbox/data/tlul_mailbox_testplan.hjson
rename to hw/ip/tlul_mailbox/data/tlul_mailbox_testplan.hjson
diff --git a/hw/top_matcha/ip/tlul_mailbox/doc/checklist.md b/hw/ip/tlul_mailbox/doc/checklist.md
similarity index 100%
rename from hw/top_matcha/ip/tlul_mailbox/doc/checklist.md
rename to hw/ip/tlul_mailbox/doc/checklist.md
diff --git a/hw/top_matcha/ip/tlul_mailbox/doc/dv/index.md b/hw/ip/tlul_mailbox/doc/dv/index.md
similarity index 100%
rename from hw/top_matcha/ip/tlul_mailbox/doc/dv/index.md
rename to hw/ip/tlul_mailbox/doc/dv/index.md
diff --git a/hw/top_matcha/ip/tlul_mailbox/dv/env/seq_lib/tlul_mailbox_base_vseq.sv b/hw/ip/tlul_mailbox/dv/env/seq_lib/tlul_mailbox_base_vseq.sv
similarity index 100%
rename from hw/top_matcha/ip/tlul_mailbox/dv/env/seq_lib/tlul_mailbox_base_vseq.sv
rename to hw/ip/tlul_mailbox/dv/env/seq_lib/tlul_mailbox_base_vseq.sv
diff --git a/hw/top_matcha/ip/tlul_mailbox/dv/env/seq_lib/tlul_mailbox_common_vseq.sv b/hw/ip/tlul_mailbox/dv/env/seq_lib/tlul_mailbox_common_vseq.sv
similarity index 100%
rename from hw/top_matcha/ip/tlul_mailbox/dv/env/seq_lib/tlul_mailbox_common_vseq.sv
rename to hw/ip/tlul_mailbox/dv/env/seq_lib/tlul_mailbox_common_vseq.sv
diff --git a/hw/top_matcha/ip/tlul_mailbox/dv/env/seq_lib/tlul_mailbox_smoke_vseq.sv b/hw/ip/tlul_mailbox/dv/env/seq_lib/tlul_mailbox_smoke_vseq.sv
similarity index 100%
rename from hw/top_matcha/ip/tlul_mailbox/dv/env/seq_lib/tlul_mailbox_smoke_vseq.sv
rename to hw/ip/tlul_mailbox/dv/env/seq_lib/tlul_mailbox_smoke_vseq.sv
diff --git a/hw/top_matcha/ip/tlul_mailbox/dv/env/seq_lib/tlul_mailbox_vseq_list.sv b/hw/ip/tlul_mailbox/dv/env/seq_lib/tlul_mailbox_vseq_list.sv
similarity index 100%
rename from hw/top_matcha/ip/tlul_mailbox/dv/env/seq_lib/tlul_mailbox_vseq_list.sv
rename to hw/ip/tlul_mailbox/dv/env/seq_lib/tlul_mailbox_vseq_list.sv
diff --git a/hw/top_matcha/ip/tlul_mailbox/dv/env/tlul_mailbox_env.core b/hw/ip/tlul_mailbox/dv/env/tlul_mailbox_env.core
similarity index 100%
rename from hw/top_matcha/ip/tlul_mailbox/dv/env/tlul_mailbox_env.core
rename to hw/ip/tlul_mailbox/dv/env/tlul_mailbox_env.core
diff --git a/hw/top_matcha/ip/tlul_mailbox/dv/env/tlul_mailbox_env.sv b/hw/ip/tlul_mailbox/dv/env/tlul_mailbox_env.sv
similarity index 100%
rename from hw/top_matcha/ip/tlul_mailbox/dv/env/tlul_mailbox_env.sv
rename to hw/ip/tlul_mailbox/dv/env/tlul_mailbox_env.sv
diff --git a/hw/top_matcha/ip/tlul_mailbox/dv/env/tlul_mailbox_env_cfg.sv b/hw/ip/tlul_mailbox/dv/env/tlul_mailbox_env_cfg.sv
similarity index 100%
rename from hw/top_matcha/ip/tlul_mailbox/dv/env/tlul_mailbox_env_cfg.sv
rename to hw/ip/tlul_mailbox/dv/env/tlul_mailbox_env_cfg.sv
diff --git a/hw/top_matcha/ip/tlul_mailbox/dv/env/tlul_mailbox_env_cov.sv b/hw/ip/tlul_mailbox/dv/env/tlul_mailbox_env_cov.sv
similarity index 100%
rename from hw/top_matcha/ip/tlul_mailbox/dv/env/tlul_mailbox_env_cov.sv
rename to hw/ip/tlul_mailbox/dv/env/tlul_mailbox_env_cov.sv
diff --git a/hw/top_matcha/ip/tlul_mailbox/dv/env/tlul_mailbox_env_pkg.sv b/hw/ip/tlul_mailbox/dv/env/tlul_mailbox_env_pkg.sv
similarity index 100%
rename from hw/top_matcha/ip/tlul_mailbox/dv/env/tlul_mailbox_env_pkg.sv
rename to hw/ip/tlul_mailbox/dv/env/tlul_mailbox_env_pkg.sv
diff --git a/hw/top_matcha/ip/tlul_mailbox/dv/env/tlul_mailbox_scoreboard.sv b/hw/ip/tlul_mailbox/dv/env/tlul_mailbox_scoreboard.sv
similarity index 100%
rename from hw/top_matcha/ip/tlul_mailbox/dv/env/tlul_mailbox_scoreboard.sv
rename to hw/ip/tlul_mailbox/dv/env/tlul_mailbox_scoreboard.sv
diff --git a/hw/top_matcha/ip/tlul_mailbox/dv/env/tlul_mailbox_virtual_sequencer.sv b/hw/ip/tlul_mailbox/dv/env/tlul_mailbox_virtual_sequencer.sv
similarity index 100%
rename from hw/top_matcha/ip/tlul_mailbox/dv/env/tlul_mailbox_virtual_sequencer.sv
rename to hw/ip/tlul_mailbox/dv/env/tlul_mailbox_virtual_sequencer.sv
diff --git a/hw/top_matcha/ip/tlul_mailbox/dv/sva/tlul_mailbox_bind.sv b/hw/ip/tlul_mailbox/dv/sva/tlul_mailbox_bind.sv
similarity index 100%
rename from hw/top_matcha/ip/tlul_mailbox/dv/sva/tlul_mailbox_bind.sv
rename to hw/ip/tlul_mailbox/dv/sva/tlul_mailbox_bind.sv
diff --git a/hw/top_matcha/ip/tlul_mailbox/dv/sva/tlul_mailbox_sva.core b/hw/ip/tlul_mailbox/dv/sva/tlul_mailbox_sva.core
similarity index 100%
rename from hw/top_matcha/ip/tlul_mailbox/dv/sva/tlul_mailbox_sva.core
rename to hw/ip/tlul_mailbox/dv/sva/tlul_mailbox_sva.core
diff --git a/hw/top_matcha/ip/tlul_mailbox/dv/tb.sv b/hw/ip/tlul_mailbox/dv/tb.sv
similarity index 100%
rename from hw/top_matcha/ip/tlul_mailbox/dv/tb.sv
rename to hw/ip/tlul_mailbox/dv/tb.sv
diff --git a/hw/top_matcha/ip/tlul_mailbox/dv/tests/tlul_mailbox_base_test.sv b/hw/ip/tlul_mailbox/dv/tests/tlul_mailbox_base_test.sv
similarity index 100%
rename from hw/top_matcha/ip/tlul_mailbox/dv/tests/tlul_mailbox_base_test.sv
rename to hw/ip/tlul_mailbox/dv/tests/tlul_mailbox_base_test.sv
diff --git a/hw/top_matcha/ip/tlul_mailbox/dv/tests/tlul_mailbox_test.core b/hw/ip/tlul_mailbox/dv/tests/tlul_mailbox_test.core
similarity index 100%
rename from hw/top_matcha/ip/tlul_mailbox/dv/tests/tlul_mailbox_test.core
rename to hw/ip/tlul_mailbox/dv/tests/tlul_mailbox_test.core
diff --git a/hw/top_matcha/ip/tlul_mailbox/dv/tests/tlul_mailbox_test_pkg.sv b/hw/ip/tlul_mailbox/dv/tests/tlul_mailbox_test_pkg.sv
similarity index 100%
rename from hw/top_matcha/ip/tlul_mailbox/dv/tests/tlul_mailbox_test_pkg.sv
rename to hw/ip/tlul_mailbox/dv/tests/tlul_mailbox_test_pkg.sv
diff --git a/hw/top_matcha/ip/tlul_mailbox/dv/tlul_mailbox_sim.core b/hw/ip/tlul_mailbox/dv/tlul_mailbox_sim.core
similarity index 100%
rename from hw/top_matcha/ip/tlul_mailbox/dv/tlul_mailbox_sim.core
rename to hw/ip/tlul_mailbox/dv/tlul_mailbox_sim.core
diff --git a/hw/top_matcha/ip/tlul_mailbox/dv/tlul_mailbox_sim_cfg.hjson b/hw/ip/tlul_mailbox/dv/tlul_mailbox_sim_cfg.hjson
similarity index 100%
rename from hw/top_matcha/ip/tlul_mailbox/dv/tlul_mailbox_sim_cfg.hjson
rename to hw/ip/tlul_mailbox/dv/tlul_mailbox_sim_cfg.hjson
diff --git a/hw/top_matcha/ip/tlul_mailbox/lint/tlul_mailbox.vlt b/hw/ip/tlul_mailbox/lint/tlul_mailbox.vlt
similarity index 100%
rename from hw/top_matcha/ip/tlul_mailbox/lint/tlul_mailbox.vlt
rename to hw/ip/tlul_mailbox/lint/tlul_mailbox.vlt
diff --git a/hw/top_matcha/ip/tlul_mailbox/lint/tlul_mailbox.waiver b/hw/ip/tlul_mailbox/lint/tlul_mailbox.waiver
similarity index 100%
rename from hw/top_matcha/ip/tlul_mailbox/lint/tlul_mailbox.waiver
rename to hw/ip/tlul_mailbox/lint/tlul_mailbox.waiver
diff --git a/hw/top_matcha/ip/tlul_mailbox/rtl/tlul_mailbox.sv b/hw/ip/tlul_mailbox/rtl/tlul_mailbox.sv
similarity index 100%
rename from hw/top_matcha/ip/tlul_mailbox/rtl/tlul_mailbox.sv
rename to hw/ip/tlul_mailbox/rtl/tlul_mailbox.sv
diff --git a/hw/top_matcha/ip/tlul_mailbox/rtl/tlul_mailbox_core.sv b/hw/ip/tlul_mailbox/rtl/tlul_mailbox_core.sv
similarity index 100%
rename from hw/top_matcha/ip/tlul_mailbox/rtl/tlul_mailbox_core.sv
rename to hw/ip/tlul_mailbox/rtl/tlul_mailbox_core.sv
diff --git a/hw/top_matcha/ip/tlul_mailbox/rtl/tlul_mailbox_reg_pkg.sv b/hw/ip/tlul_mailbox/rtl/tlul_mailbox_reg_pkg.sv
similarity index 100%
rename from hw/top_matcha/ip/tlul_mailbox/rtl/tlul_mailbox_reg_pkg.sv
rename to hw/ip/tlul_mailbox/rtl/tlul_mailbox_reg_pkg.sv
diff --git a/hw/top_matcha/ip/tlul_mailbox/rtl/tlul_mailbox_reg_top.sv b/hw/ip/tlul_mailbox/rtl/tlul_mailbox_reg_top.sv
similarity index 100%
rename from hw/top_matcha/ip/tlul_mailbox/rtl/tlul_mailbox_reg_top.sv
rename to hw/ip/tlul_mailbox/rtl/tlul_mailbox_reg_top.sv
diff --git a/hw/top_matcha/ip/tlul_mailbox/tlul_mailbox.core b/hw/ip/tlul_mailbox/tlul_mailbox.core
similarity index 100%
rename from hw/top_matcha/ip/tlul_mailbox/tlul_mailbox.core
rename to hw/ip/tlul_mailbox/tlul_mailbox.core
diff --git a/hw/top_matcha/BUILD b/hw/top_matcha/BUILD
index 6700398..b7f96b7 100644
--- a/hw/top_matcha/BUILD
+++ b/hw/top_matcha/BUILD
@@ -43,6 +43,7 @@
 filegroup(
     name = "all_files",
     srcs = glob(["**"]) + [
+        "//hw/ip:all_files",
         "//hw/top_matcha/data:all_files",
         "//hw/top_matcha/dv:all_files",
         "//hw/top_matcha/ip:all_files",
@@ -53,6 +54,7 @@
 filegroup(
     name = "all_hjson_files",
     srcs = glob(["ip_autogen/**/*.hjson"]) + [
+        "//hw/ip:all_hjson_files",
         "//hw/top_matcha/data:all_hjson_files",
         "//hw/top_matcha/ip:all_hjson_files",
     ],
diff --git a/hw/top_matcha/data/top_matcha.hjson b/hw/top_matcha/data/top_matcha.hjson
index 844d419..e5dd4f5 100644
--- a/hw/top_matcha/data/top_matcha.hjson
+++ b/hw/top_matcha/data/top_matcha.hjson
@@ -901,8 +901,8 @@
       clock_group: "peri",
       reset_connections: {rst_ni: "lc_io_div4"},
       base_addr: "0x54050000",
-      attr: "reggen_top",
       intr_to: "smc",
+      attr: "reggen_top",
     },
     { name: "isp_wrapper",
       type: "isp_wrapper",
@@ -920,8 +920,8 @@
       clock_group: "infra",
       reset_connections: {rst_ni: "smc"},
       base_addr: "0x54070000",
-      attr: "reggen_top",
       intr_to: "smc",
+      attr: "reggen_top",
     },
     { name: "rv_plic_smc",
       type: "rv_plic_smc",
@@ -952,6 +952,7 @@
       base_addr: "0x540F1000",
       //size:     "0x1000",
       intr_to: "smc",
+      attr: "reggen_top",
     },
 
     // ML/Vector Core
@@ -975,8 +976,8 @@
             size:     "0x400000"
           }
         }
-      attr: "reggen_top",
       intr_to: "smc",
+      attr: "reggen_top",
     },
     { name: "spi_host2",
       type: "spi_host",
@@ -1000,8 +1001,8 @@
       clock_group: "peri",
       reset_connections: {rst_ni: "sys_io_div4"},
       base_addr: "0x54100000",
-      attr: "reggen_top",
       intr_to: "smc",
+      attr: "reggen_top",
     },
     { name: "rv_core_ibex_smc",
       type: "rv_core_smc",
diff --git a/hw/top_matcha/ip/BUILD b/hw/top_matcha/ip/BUILD
index bf3969b..1de1728 100644
--- a/hw/top_matcha/ip/BUILD
+++ b/hw/top_matcha/ip/BUILD
@@ -12,19 +12,13 @@
     srcs = glob(["**"]) + [
         "//hw/top_matcha/ip/ast:all_files",
         "//hw/top_matcha/ip/clkmgr:all_files",
-        "//hw/top_matcha/ip/dma:all_files",
         "//hw/top_matcha/ip/flash_ctrl:all_files",
-        "//hw/top_matcha/ip/i2s:all_files",
         "//hw/top_matcha/ip/isp_wrapper/data:all_files",
-        "//hw/top_matcha/ip/ml_top/data:all_files",
         "//hw/top_matcha/ip/padctrl:all_files",
         "//hw/top_matcha/ip/pinmux:all_files",
         "//hw/top_matcha/ip/pwrmgr:all_files",
         "//hw/top_matcha/ip/rstmgr:all_files",
-        "//hw/top_matcha/ip/rv_core_smc:all_files",
         "//hw/top_matcha/ip/sensor_ctrl:all_files",
-        "//hw/top_matcha/ip/smc_ctrl:all_files",
-        "//hw/top_matcha/ip/tlul_mailbox:all_files",
     ],
 )
 
@@ -32,18 +26,11 @@
     name = "all_hjson_files",
     srcs = glob(["**/data/**/*.hjson"]) + [
         "//hw/top_matcha/ip/ast/data:ast.hjson",
-        "//hw/top_matcha/ip/cam_ctrl/data:cam_ctrl.hjson",
         "//hw/top_matcha/ip/clkmgr/data/autogen:clkmgr.hjson",
-        "//hw/top_matcha/ip/dma/data:dma.hjson",
         "//hw/top_matcha/ip/flash_ctrl/data/autogen:flash_ctrl.hjson",
-        "//hw/top_matcha/ip/i2s/data:i2s.hjson",
         "//hw/top_matcha/ip/isp_wrapper/data:isp_wrapper.hjson",
-        "//hw/top_matcha/ip/ml_top/data:ml_top.hjson",
         "//hw/top_matcha/ip/pwrmgr/data/autogen:pwrmgr.hjson",
         "//hw/top_matcha/ip/rstmgr/data/autogen:rstmgr.hjson",
-        "//hw/top_matcha/ip/rv_core_smc/data:rv_core_smc.hjson",
         "//hw/top_matcha/ip/sensor_ctrl/data:sensor_ctrl.hjson",
-        "//hw/top_matcha/ip/smc_ctrl/data:smc_ctrl.hjson",
-        "//hw/top_matcha/ip/tlul_mailbox/data:tlul_mailbox.hjson",
     ],
 )
diff --git a/hw/top_matcha/ip/rv_core_smc/BUILD b/hw/top_matcha/ip/rv_core_smc/BUILD
deleted file mode 100644
index df7e0ca..0000000
--- a/hw/top_matcha/ip/rv_core_smc/BUILD
+++ /dev/null
@@ -1,12 +0,0 @@
-# Copyright lowRISC contributors.
-# Licensed under the Apache License, Version 2.0, see LICENSE for details.
-# SPDX-License-Identifier: Apache-2.0
-
-package(default_visibility = ["//visibility:public"])
-
-filegroup(
-    name = "all_files",
-    srcs = glob(["**"]) + [
-        "//hw/top_matcha/ip/rv_core_smc/data:all_files",
-    ],
-)
diff --git a/hw/top_matcha/ip/tlul_mailbox/BUILD b/hw/top_matcha/ip/tlul_mailbox/BUILD
deleted file mode 100644
index 6299545..0000000
--- a/hw/top_matcha/ip/tlul_mailbox/BUILD
+++ /dev/null
@@ -1,13 +0,0 @@
-# Copyright 2023 Google LLC
-# Copyright lowRISC contributors.
-# Licensed under the Apache License, Version 2.0, see LICENSE for details.
-# SPDX-License-Identifier: Apache-2.0
-
-package(default_visibility = ["//visibility:public"])
-
-filegroup(
-    name = "all_files",
-    srcs = glob(["**"]) + [
-        "//hw/top_matcha/ip/tlul_mailbox/data:all_files",
-    ],
-)
diff --git a/sw/device/examples/demo_hps_from_test_images/BUILD b/sw/device/examples/demo_hps_from_test_images/BUILD
index 3dec3b8..673201c 100644
--- a/sw/device/examples/demo_hps_from_test_images/BUILD
+++ b/sw/device/examples/demo_hps_from_test_images/BUILD
@@ -29,8 +29,8 @@
         "fpga_nexus": [NEXUS_CORE_TARGETS.get("secure_core")],
     },
     deps = [
+        "//hw/ip/ml_top/data:ml_top_regs",
         "//hw/top_matcha/sw:top_matcha",
-        "//hw/top_matcha/ip/ml_top/data:ml_top_regs",
         "//sw/device/lib/dif:smc_ctrl",
         "//sw/device/lib/testing/test_framework:ottf_start",
         "//sw/device/lib/testing/test_framework:test_util",
@@ -57,8 +57,8 @@
         "fpga_nexus": [NEXUS_CORE_TARGETS.get("secure_core")],
     },
     deps = [
+        "//hw/ip/ml_top/data:ml_top_regs",
         "//hw/top_matcha/sw:top_matcha",
-        "//hw/top_matcha/ip/ml_top/data:ml_top_regs",
         "//sw/device/lib/dif:smc_ctrl",
         "//sw/device/lib/testing/test_framework:ottf_start",
         "//sw/device/lib/testing/test_framework:test_util",
@@ -85,8 +85,8 @@
         "fpga_nexus": [NEXUS_CORE_TARGETS.get("secure_core")],
     },
     deps = [
+        "//hw/ip/ml_top/data:ml_top_regs",
         "//hw/top_matcha/sw:top_matcha",
-        "//hw/top_matcha/ip/ml_top/data:ml_top_regs",
         "//sw/device/lib/dif:smc_ctrl",
         "//sw/device/lib/testing/test_framework:ottf_start",
         "//sw/device/lib/testing/test_framework:test_util",
@@ -131,8 +131,8 @@
         "asic": [ASIC_CORE_TARGETS.get("smc")],
     },
     deps = [
+        "//hw/ip/ml_top/data:ml_top_regs",
         "//hw/top_matcha/sw:top_matcha",
-        "//hw/top_matcha/ip/ml_top/data:ml_top_regs",
         "//sw/device/lib/dif:ml_top",
         "//sw/device/lib/dif:rv_plic_smc",
         "//sw/device/tests:test_lib_smc",
@@ -155,7 +155,7 @@
         "fpga_nexus": [NEXUS_CORE_TARGETS.get("smc")],
     },
     deps = [
-        "//hw/top_matcha/ip/ml_top/data:ml_top_regs",
+        "//hw/ip/ml_top/data:ml_top_regs",
         "//sw/device/lib/dif:ml_top",
         "//sw/device/lib/dif:rv_plic_smc",
         "//sw/device/tests:test_lib_smc",
diff --git a/sw/device/examples/demo_hps_from_test_images/kelvin_checksum_smc.c b/sw/device/examples/demo_hps_from_test_images/kelvin_checksum_smc.c
index 2b34a47..331d7d9 100644
--- a/sw/device/examples/demo_hps_from_test_images/kelvin_checksum_smc.c
+++ b/sw/device/examples/demo_hps_from_test_images/kelvin_checksum_smc.c
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#include "hw/top_matcha/ip/ml_top/data/ml_top_regs.h"  // Generated.
+#include "hw/ip/ml_top/data/ml_top_regs.h"  // Generated.
 #include "hw/top_matcha/sw/autogen/top_matcha.h"
 #include "sw/device/examples/testdata/hps_images/hps_images.h"  // Generated.
 #include "sw/device/lib/arch/device.h"
diff --git a/sw/device/examples/demo_hps_from_test_images/kelvin_model_smc.c b/sw/device/examples/demo_hps_from_test_images/kelvin_model_smc.c
index 3aa087b..723fb35 100644
--- a/sw/device/examples/demo_hps_from_test_images/kelvin_model_smc.c
+++ b/sw/device/examples/demo_hps_from_test_images/kelvin_model_smc.c
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-#include "hw/top_matcha/ip/ml_top/data/ml_top_regs.h"  // Generated.
+#include "hw/ip/ml_top/data/ml_top_regs.h"  // Generated.
 #include "hw/top_matcha/sw/autogen/top_matcha.h"
 #include "sw/device/examples/testdata/hps_images/hps_images.h"  // Generated.
 #include "sw/device/examples/testdata/kelvin_model_ml_bin.h"    // Generated.
diff --git a/sw/device/examples/demo_hps_from_test_images/simple_sc.c b/sw/device/examples/demo_hps_from_test_images/simple_sc.c
index e5bbef8..05d9ac0 100644
--- a/sw/device/examples/demo_hps_from_test_images/simple_sc.c
+++ b/sw/device/examples/demo_hps_from_test_images/simple_sc.c
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#include "hw/top_matcha/ip/ml_top/data/ml_top_regs.h"  // Generated.
+#include "hw/ip/ml_top/data/ml_top_regs.h"  // Generated.
 #include "hw/top_matcha/sw/autogen/top_matcha.h"
 #include "sw/device/lib/arch/device.h"
 #include "sw/device/lib/dif/dif_smc_ctrl.h"
diff --git a/sw/device/examples/demo_hps_live/BUILD b/sw/device/examples/demo_hps_live/BUILD
index cbe8e37..ac0eafd 100644
--- a/sw/device/examples/demo_hps_live/BUILD
+++ b/sw/device/examples/demo_hps_live/BUILD
@@ -28,7 +28,7 @@
     },
     deps = [
         ":hps_demo_smc_h",
-        "//hw/top_matcha/ip/ml_top/data:ml_top_regs",
+        "//hw/ip/ml_top/data:ml_top_regs",
         "//sw/device/lib/dif:rv_plic_sec",
         "//sw/device/lib/dif:smc_ctrl",
         "//sw/device/lib/dif:tlul_mailbox",
@@ -52,7 +52,7 @@
         "asic": [ASIC_CORE_TARGETS.get("smc")],
     },
     deps = [
-        "//hw/top_matcha/ip/ml_top/data:ml_top_regs",
+        "//hw/ip/ml_top/data:ml_top_regs",
         "//sw/device/lib:camera_hm01b0",
         "//sw/device/lib/dif:isp_wrapper",
         "//sw/device/lib/dif:ml_top",
diff --git a/sw/device/examples/demo_hps_live/hps_demo_smc.c b/sw/device/examples/demo_hps_live/hps_demo_smc.c
index 7741835..121194c 100644
--- a/sw/device/examples/demo_hps_live/hps_demo_smc.c
+++ b/sw/device/examples/demo_hps_live/hps_demo_smc.c
@@ -16,7 +16,7 @@
 
 // ISP live stream mode with user defined resolution: 320 x 240 in grayscale.
 
-#include "hw/top_matcha/ip/ml_top/data/ml_top_regs.h"  // Generated.
+#include "hw/ip/ml_top/data/ml_top_regs.h"  // Generated.
 #include "hw/top_matcha/sw/autogen/top_matcha.h"
 #include "sw/device/examples/testdata/kelvin_model_ml_bin.h"  // Generated.
 #include "sw/device/lib/arch/device.h"
diff --git a/sw/device/examples/hello_world_multicore/BUILD b/sw/device/examples/hello_world_multicore/BUILD
index 9d68700..62fb784 100644
--- a/sw/device/examples/hello_world_multicore/BUILD
+++ b/sw/device/examples/hello_world_multicore/BUILD
@@ -80,7 +80,7 @@
     },
     var_name = "hello_world_multicore_smc_fpga_nexus_bin",
     deps = [
-        "//hw/top_matcha/ip/ml_top/data:ml_top_regs",
+        "//hw/ip/ml_top/data:ml_top_regs",
         "//sw/device/lib/dif:ml_top",
         "//sw/device/lib/testing/test_framework:ottf_start_smc",
         "//sw/device/lib/testing/test_framework:test_util",
diff --git a/sw/device/examples/hello_world_multicore/hello_world_multicore_smc.c b/sw/device/examples/hello_world_multicore/hello_world_multicore_smc.c
index 4f0fe88..c7b1021 100644
--- a/sw/device/examples/hello_world_multicore/hello_world_multicore_smc.c
+++ b/sw/device/examples/hello_world_multicore/hello_world_multicore_smc.c
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#include "hw/top_matcha/ip/ml_top/data/ml_top_regs.h"  // Generated.
+#include "hw/ip/ml_top/data/ml_top_regs.h"  // Generated.
 #include "hw/top_matcha/sw/autogen/top_matcha.h"
 #include "sw/device/lib/arch/device.h"
 #include "sw/device/lib/dif/dif_ml_top.h"
diff --git a/sw/device/examples/i2s_record_playback/i2s_record_playback_smc.c b/sw/device/examples/i2s_record_playback/i2s_record_playback_smc.c
index 93f8313..ef9b4f9 100644
--- a/sw/device/examples/i2s_record_playback/i2s_record_playback_smc.c
+++ b/sw/device/examples/i2s_record_playback/i2s_record_playback_smc.c
@@ -17,7 +17,7 @@
 
 #include <limits.h>
 
-#include "hw/top_matcha/ip/i2s/data/i2s_regs.h"
+#include "hw/ip/i2s/data/i2s_regs.h"
 #include "hw/top_matcha/sw/autogen/top_matcha.h"
 #include "sw/device/examples/i2s_record_playback/i2s_record_playback.h"
 #include "sw/device/lib/dif/dif_i2s.h"
diff --git a/sw/device/lib/dif/BUILD b/sw/device/lib/dif/BUILD
index 8008deb..0eef654 100644
--- a/sw/device/lib/dif/BUILD
+++ b/sw/device/lib/dif/BUILD
@@ -16,7 +16,7 @@
         "dif_smc_ctrl.h",
     ],
     deps = [
-        "//hw/top_matcha/ip/smc_ctrl/data:smc_ctrl_regs",
+        "//hw/ip/smc_ctrl/data:smc_ctrl_regs",
         "@lowrisc_opentitan//sw/device/lib/base:macros",
         "@lowrisc_opentitan//sw/device/lib/base:memory",
         "@lowrisc_opentitan//sw/device/lib/base:mmio",
@@ -36,7 +36,7 @@
         "dif_cam_ctrl.h",
     ],
     deps = [
-        "//hw/top_matcha/ip/cam_ctrl/data:cam_ctrl_regs",
+        "//hw/ip/cam_ctrl/data:cam_ctrl_regs",
         "@lowrisc_opentitan//sw/device/lib/base:macros",
         "@lowrisc_opentitan//sw/device/lib/base:memory",
         "@lowrisc_opentitan//sw/device/lib/base:mmio",
@@ -125,7 +125,7 @@
         "dif_tlul_mailbox.h",
     ],
     deps = [
-        "//hw/top_matcha/ip/tlul_mailbox/data:tlul_mailbox_regs",
+        "//hw/ip/tlul_mailbox/data:tlul_mailbox_regs",
         "@lowrisc_opentitan//sw/device/lib/base:macros",
         "@lowrisc_opentitan//sw/device/lib/base:memory",
         "@lowrisc_opentitan//sw/device/lib/base:mmio",
@@ -145,7 +145,7 @@
         "dif_ml_top.h",
     ],
     deps = [
-        "//hw/top_matcha/ip/ml_top/data:ml_top_regs",
+        "//hw/ip/ml_top/data:ml_top_regs",
         "@lowrisc_opentitan//sw/device/lib/base:macros",
         "@lowrisc_opentitan//sw/device/lib/base:memory",
         "@lowrisc_opentitan//sw/device/lib/base:mmio",
@@ -165,7 +165,7 @@
         "dif_dma.h",
     ],
     deps = [
-        "//hw/top_matcha/ip/dma/data:dma_regs",
+        "//hw/ip/dma/data:dma_regs",
         "@lowrisc_opentitan//sw/device/lib/base:macros",
         "@lowrisc_opentitan//sw/device/lib/base:memory",
         "@lowrisc_opentitan//sw/device/lib/base:mmio",
@@ -243,7 +243,7 @@
         "dif_i2s.h",
     ],
     deps = [
-        "//hw/top_matcha/ip/i2s/data:i2s_regs",
+        "//hw/ip/i2s/data:i2s_regs",
         "@lowrisc_opentitan//sw/device/lib/base:macros",
         "@lowrisc_opentitan//sw/device/lib/base:memory",
         "@lowrisc_opentitan//sw/device/lib/base:mmio",
diff --git a/sw/device/lib/testing/test_framework/BUILD b/sw/device/lib/testing/test_framework/BUILD
index b527390..c14ed35 100644
--- a/sw/device/lib/testing/test_framework/BUILD
+++ b/sw/device/lib/testing/test_framework/BUILD
@@ -48,7 +48,7 @@
     deps = [
         ":linker_script",
         "//hw/top_matcha/sw:top_matcha",
-        "//hw/top_matcha/ip/ml_top/data:ml_top_regs",
+        "//hw/ip/ml_top/data:ml_top_regs",
         "//sw/device/lib/dif:ml_top",
         "//sw/device/lib/dif:rv_plic_sec",
         "@lowrisc_opentitan//sw/device/lib/base:csr",
diff --git a/sw/device/lib/testing/test_framework/fix_kelvin.c b/sw/device/lib/testing/test_framework/fix_kelvin.c
index 64f6b63..c693923 100644
--- a/sw/device/lib/testing/test_framework/fix_kelvin.c
+++ b/sw/device/lib/testing/test_framework/fix_kelvin.c
@@ -2,7 +2,7 @@
 // Licensed under the Apache License, Version 2.0, see LICENSE for details.
 // SPDX-License-Identifier: Apache-2.0
 
-#include "hw/top_matcha/ip/ml_top/data/ml_top_regs.h"  // Generated.
+#include "hw/ip/ml_top/data/ml_top_regs.h"  // Generated.
 #include "hw/top_matcha/sw/autogen/top_matcha.h"
 #include "sw/device/lib/dif/dif_ml_top.h"
 #include "sw/device/lib/testing/test_framework/check.h"
diff --git a/sw/device/tests/BUILD b/sw/device/tests/BUILD
index 85e2b9c..baa7a0a 100644
--- a/sw/device/tests/BUILD
+++ b/sw/device/tests/BUILD
@@ -443,7 +443,7 @@
     ],
     deps = [
         ":test_lib",
-        "//hw/top_matcha/ip/dma/data:dma_regs",
+        "//hw/ip/dma/data:dma_regs",
         "//sw/device/lib/dif:dma",
     ],
 )
diff --git a/sw/device/tests/kelvin/fpga_tests/BUILD b/sw/device/tests/kelvin/fpga_tests/BUILD
index 10b4be8..6cf8527 100644
--- a/sw/device/tests/kelvin/fpga_tests/BUILD
+++ b/sw/device/tests/kelvin/fpga_tests/BUILD
@@ -20,7 +20,7 @@
         "fpga_nexus": [NEXUS_CORE_TARGETS.get("secure_core")],
     },
     deps = [
-        "//hw/top_matcha/ip/ml_top/data:ml_top_regs",
+        "//hw/ip/ml_top/data:ml_top_regs",
         "//sw/device/lib:spi_flash",
         "//sw/device/lib/dif:rv_plic_sec",
         "//sw/device/lib/dif:smc_ctrl",
@@ -42,7 +42,7 @@
         "fpga_nexus": [NEXUS_CORE_TARGETS.get("smc")],
     },
     deps = [
-        "//hw/top_matcha/ip/ml_top/data:ml_top_regs",
+        "//hw/ip/ml_top/data:ml_top_regs",
         "//sw/device/lib/dif:ml_top",
         "//sw/device/lib/dif:rv_plic_smc",
         "//sw/device/lib/dif:tlul_mailbox",
diff --git a/sw/device/tests/kelvin/fpga_tests/kelvin_test_sc.c b/sw/device/tests/kelvin/fpga_tests/kelvin_test_sc.c
index 4c4a922..92666f7 100644
--- a/sw/device/tests/kelvin/fpga_tests/kelvin_test_sc.c
+++ b/sw/device/tests/kelvin/fpga_tests/kelvin_test_sc.c
@@ -15,7 +15,7 @@
  */
 
 
-#include "hw/top_matcha/ip/ml_top/data/ml_top_regs.h"  // Generated.
+#include "hw/ip/ml_top/data/ml_top_regs.h"  // Generated.
 #include "hw/top_matcha/sw/autogen/top_matcha.h"
 #include "sw/device/lib/arch/device.h"
 #include "sw/device/lib/dif/dif_rv_plic.h"
diff --git a/sw/device/tests/kelvin/fpga_tests/kelvin_test_smc.c b/sw/device/tests/kelvin/fpga_tests/kelvin_test_smc.c
index b400fd3..197f259 100644
--- a/sw/device/tests/kelvin/fpga_tests/kelvin_test_smc.c
+++ b/sw/device/tests/kelvin/fpga_tests/kelvin_test_smc.c
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#include "hw/top_matcha/ip/ml_top/data/ml_top_regs.h"  // Generated.
+#include "hw/ip/ml_top/data/ml_top_regs.h"  // Generated.
 #include "hw/top_matcha/sw/autogen/top_matcha.h"
 #include "sw/device/lib/arch/device.h"
 #include "sw/device/lib/dif/dif_ml_top.h"
diff --git a/sw/device/tests/smc/BUILD b/sw/device/tests/smc/BUILD
index 02e0949..b54e46f 100644
--- a/sw/device/tests/smc/BUILD
+++ b/sw/device/tests/smc/BUILD
@@ -277,7 +277,7 @@
         "sim_dv": ["//sw/device/lib/arch:smc_sim_dv"],
     },
     deps = [
-        "//hw/top_matcha/ip/ml_top/data:ml_top_regs",
+        "//hw/ip/ml_top/data:ml_top_regs",
         "//sw/device/lib/dif:ml_top",
         "//sw/device/lib/dif:rv_plic_smc",
         "//sw/device/tests:test_lib_smc",
@@ -299,7 +299,7 @@
         "sim_dv": ["//sw/device/lib/arch:smc_sim_dv"],
     },
     deps = [
-        "//hw/top_matcha/ip/ml_top/data:ml_top_regs",
+        "//hw/ip/ml_top/data:ml_top_regs",
         "//sw/device/lib/dif:ml_top",
         "//sw/device/lib/dif:rv_plic_smc",
         "//sw/device/tests:test_lib_smc",
@@ -322,7 +322,7 @@
         "sim_dv": ["//sw/device/lib/arch:smc_sim_dv"],
     },
     deps = [
-        "//hw/top_matcha/ip/ml_top/data:ml_top_regs",
+        "//hw/ip/ml_top/data:ml_top_regs",
         "//hw/top_matcha/sw/autogen:top_matcha",
         "//sw/device/lib/dif:ml_top",
         "//sw/device/lib/dif:rv_plic_smc",
diff --git a/sw/device/tests/smc/smc_i2s_rx_test.c b/sw/device/tests/smc/smc_i2s_rx_test.c
index e87537f..9dedd2f 100644
--- a/sw/device/tests/smc/smc_i2s_rx_test.c
+++ b/sw/device/tests/smc/smc_i2s_rx_test.c
@@ -17,7 +17,7 @@
 
 // SMC application that exercises the I2S Receive features.
 
-#include "hw/top_matcha/ip/i2s/data/i2s_regs.h"
+#include "hw/ip/i2s/data/i2s_regs.h"
 #include "hw/top_matcha/sw/autogen/top_matcha.h"
 #include "sw/device/lib/dif/dif_i2s.h"
 #include "sw/device/lib/dif/dif_rv_plic.h"
diff --git a/sw/device/tests/smc/smc_i2s_tx_test.c b/sw/device/tests/smc/smc_i2s_tx_test.c
index 4b212e1..082ceca 100644
--- a/sw/device/tests/smc/smc_i2s_tx_test.c
+++ b/sw/device/tests/smc/smc_i2s_tx_test.c
@@ -18,7 +18,7 @@
 // Simple SMC program that prints over UART and confirms OTTF testing
 // capabilities.
 
-#include "hw/top_matcha/ip/i2s/data/i2s_regs.h"
+#include "hw/ip/i2s/data/i2s_regs.h"
 #include "hw/top_matcha/sw/autogen/top_matcha.h"
 #include "sw/device/lib/dif/dif_i2s.h"
 #include "sw/device/lib/dif/dif_rv_plic.h"
diff --git a/sw/device/tests/smc/smc_kelvin_checksum_test.c b/sw/device/tests/smc/smc_kelvin_checksum_test.c
index 5a81c20..f28eccc 100644
--- a/sw/device/tests/smc/smc_kelvin_checksum_test.c
+++ b/sw/device/tests/smc/smc_kelvin_checksum_test.c
@@ -17,7 +17,7 @@
 
 // Run kelvin_chechsum test from SMC
 
-#include "hw/top_matcha/ip/ml_top/data/ml_top_regs.h"  // Generated.
+#include "hw/ip/ml_top/data/ml_top_regs.h"  // Generated.
 #include "hw/top_matcha/sw/autogen/top_matcha.h"
 #include "sw/device/lib/arch/device.h"
 #include "sw/device/lib/dif/dif_ml_top.h"
diff --git a/sw/device/tests/smc/smc_kelvin_hello_test.c b/sw/device/tests/smc/smc_kelvin_hello_test.c
index 8a6babf..86f80a1 100644
--- a/sw/device/tests/smc/smc_kelvin_hello_test.c
+++ b/sw/device/tests/smc/smc_kelvin_hello_test.c
@@ -16,7 +16,7 @@
  */
 
 
-#include "hw/top_matcha/ip/ml_top/data/ml_top_regs.h"  // Generated.
+#include "hw/ip/ml_top/data/ml_top_regs.h"  // Generated.
 #include "hw/top_matcha/sw/autogen/top_matcha.h"
 #include "sw/device/lib/arch/device.h"
 #include "sw/device/lib/dif/dif_ml_top.h"
diff --git a/sw/device/tests/smc/smc_kelvin_model_test.c b/sw/device/tests/smc/smc_kelvin_model_test.c
index 91d4cfb..b783bec 100644
--- a/sw/device/tests/smc/smc_kelvin_model_test.c
+++ b/sw/device/tests/smc/smc_kelvin_model_test.c
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-#include "hw/top_matcha/ip/ml_top/data/ml_top_regs.h"  // Generated.
+#include "hw/ip/ml_top/data/ml_top_regs.h"  // Generated.
 #include "hw/top_matcha/sw/autogen/top_matcha.h"
 #include "sw/device/examples/testdata/kelvin_model_ml_bin.h"  // Generated.
 #include "sw/device/lib/arch/device.h"
diff --git a/util/BUILD b/util/BUILD
index 4016ec9..34d5ced 100644
--- a/util/BUILD
+++ b/util/BUILD
@@ -2,8 +2,8 @@
 # Licensed under the Apache License, Version 2.0, see LICENSE for details.
 # SPDX-License-Identifier: Apache-2.0
 
-load("@rules_python//python:defs.bzl", "py_binary")
 load("@ot_python_deps//:requirements.bzl", "requirement")
+load("@rules_python//python:defs.bzl", "py_binary")
 
 package(default_visibility = ["//visibility:public"])
 
@@ -28,6 +28,7 @@
     # The goal is to generate the rtl, dv, reg files.
     data = [
         ":topgen_tpl_files",
+        "//hw/ip:all_hjson_files",
         "//hw/top_matcha/ip:all_hjson_files",
         "@lowrisc_opentitan//hw/ip:all_files",
         "@lowrisc_opentitan//util:BUILD",
diff --git a/util/topgen_matcha.py b/util/topgen_matcha.py
index aa70e87..1ca2581 100755
--- a/util/topgen_matcha.py
+++ b/util/topgen_matcha.py
@@ -105,6 +105,10 @@
 
 PATH_TO_BUFFER = "entropy_buffer.txt"
 
+# These modules are NOT generated, are NOT a part of OT/hw/ip
+# but are a part of matcha/hw/ip and still marked as reggen_top
+SHODAN_COMMON_IP = [x.stem for x in search_ips(SRCTREE_TOP / "hw/ip")]
+
 
 def is_intr_to_smc(module):
     """Return whether a particular module whose interrupt to SMC core.
@@ -699,16 +703,24 @@
         if reggen_only and alt_hjson_path is not None:
             hjson_dir = Path(alt_hjson_path)
         else:
-            hjson_dir = Path(__file__).resolve(
-            ).parent / f"../hw/top_{topname}/ip/{ip}/data/"
+            if ip in SHODAN_COMMON_IP:
+              hjson_dir = Path(__file__).resolve(
+              ).parent / f"../hw//ip/{ip}/data/"
+            else:
+              hjson_dir = Path(__file__).resolve(
+              ).parent / f"../hw/top_{topname}/ip/{ip}/data/"
 
         hjson_path = hjson_dir / f"{ip}.hjson"
 
         genrtl_dir = out_path / "ip/{}/rtl".format(ip)
         genrtl_dir.mkdir(parents=True, exist_ok=True)
 
-        orig_rtl_path = Path(__file__).resolve(
-        ).parent / f"../hw/top_{topname}/ip/{ip}/rtl"
+        if ip in SHODAN_COMMON_IP:
+          orig_rtl_path = Path(__file__).resolve(
+          ).parent / f"../hw/ip/{ip}/rtl"
+        else:
+          orig_rtl_path = Path(__file__).resolve(
+          ).parent / f"../hw/top_{topname}/ip/{ip}/rtl"
 
         log.info("Generating top modules {}, hjson: {}, output: {}".format(
             ip, hjson_path, genrtl_dir))
@@ -844,8 +856,9 @@
     topname = topcfg["name"]
 
     # Sweep the IP directory and gather the config files
-    ip_dir = OPENTITAN_TOP / "hw/ip"
-    ips = search_ips(ip_dir)
+    ot_ip_dir = OPENTITAN_TOP / "hw/ip"
+    common_ip_dir = SRCTREE_TOP / "hw/ip"
+    ips = search_ips(common_ip_dir) + search_ips(ot_ip_dir)
 
     # exclude filtered IPs (to use top_${topname} one) and
     exclude_list = generated_list + list(top_only_dict.keys())
@@ -892,7 +905,10 @@
         if reggen_only and args.hjson_path:
             ip_hjson = Path(args.hjson_path) / f"{ip}.hjson"
         else:
-            ip_hjson = hjson_dir.parent / f"ip/{ip}/data/{ip}.hjson"
+            if ip in SHODAN_COMMON_IP:
+              ip_hjson = SRCTREE_TOP / f"hw/ip/{ip}/data/{ip}.hjson"
+            else:
+              ip_hjson = hjson_dir.parent / f"ip/{ip}/data/{ip}.hjson"
 
         ips.append(ip_hjson)
 
@@ -937,7 +953,7 @@
                 else:
                     # TODO: Remove this block as soon as all IP templates use
                     # ipgen.
-                    template_hjson_file = ip_dir / "{}/data/{}.hjson".format(
+                    template_hjson_file = ot_ip_dir / "{}/data/{}.hjson".format(
                         ip_name, ip_name)
                     log.info(
                         "To-be-auto-generated Hjson %s does not yet exist. "