[Earlgrey] Generate TOP for Xbar Inter-module

Revised the collateral for Xbar Inter-module Connections.

Signed-off-by: Eunchan Kim <eunchan@opentitan.org>
diff --git a/hw/top_earlgrey/data/autogen/top_earlgrey.gen.hjson b/hw/top_earlgrey/data/autogen/top_earlgrey.gen.hjson
index 2507a0d..26d73f5 100644
--- a/hw/top_earlgrey/data/autogen/top_earlgrey.gen.hjson
+++ b/hw/top_earlgrey/data/autogen/top_earlgrey.gen.hjson
@@ -358,6 +358,21 @@
       wakeup_list: []
       scan: "false"
       scan_reset: "false"
+      inter_signal_list:
+      [
+        {
+          struct: tl
+          package: tlul_pkg
+          type: req_rsp
+          act: rsp
+          name: tl
+          inst_name: uart
+          width: 1
+          default: ""
+          top_signame: uart_tl
+          index: -1
+        }
+      ]
     }
     {
       name: gpio
@@ -408,6 +423,21 @@
       wakeup_list: []
       scan: "false"
       scan_reset: "false"
+      inter_signal_list:
+      [
+        {
+          struct: tl
+          package: tlul_pkg
+          type: req_rsp
+          act: rsp
+          name: tl
+          inst_name: gpio
+          width: 1
+          default: ""
+          top_signame: gpio_tl
+          index: -1
+        }
+      ]
     }
     {
       name: spi_device
@@ -535,6 +565,21 @@
       wakeup_list: []
       scan: "true"
       scan_reset: "false"
+      inter_signal_list:
+      [
+        {
+          struct: tl
+          package: tlul_pkg
+          type: req_rsp
+          act: rsp
+          name: tl
+          inst_name: spi_device
+          width: 1
+          default: ""
+          top_signame: spi_device_tl
+          index: -1
+        }
+      ]
     }
     {
       name: flash_ctrl
@@ -661,6 +706,18 @@
           inst_name: flash_ctrl
           index: -1
         }
+        {
+          struct: tl
+          package: tlul_pkg
+          type: req_rsp
+          act: rsp
+          name: tl
+          inst_name: flash_ctrl
+          width: 1
+          default: ""
+          top_signame: flash_ctrl_tl
+          index: -1
+        }
       ]
     }
     {
@@ -698,6 +755,21 @@
       wakeup_list: []
       scan: "false"
       scan_reset: "false"
+      inter_signal_list:
+      [
+        {
+          struct: tl
+          package: tlul_pkg
+          type: req_rsp
+          act: rsp
+          name: tl
+          inst_name: rv_timer
+          width: 1
+          default: ""
+          top_signame: rv_timer_tl
+          index: -1
+        }
+      ]
     }
     {
       name: aes
@@ -749,6 +821,18 @@
           top_signame: aes_idle
           index: -1
         }
+        {
+          struct: tl
+          package: tlul_pkg
+          type: req_rsp
+          act: rsp
+          name: tl
+          inst_name: aes
+          width: 1
+          default: ""
+          top_signame: aes_tl
+          index: -1
+        }
       ]
     }
     {
@@ -825,6 +909,21 @@
       wakeup_list: []
       scan: "false"
       scan_reset: "false"
+      inter_signal_list:
+      [
+        {
+          struct: tl
+          package: tlul_pkg
+          type: req_rsp
+          act: rsp
+          name: tl
+          inst_name: hmac
+          width: 1
+          default: ""
+          top_signame: hmac_tl
+          index: -1
+        }
+      ]
     }
     {
       name: rv_plic
@@ -855,6 +954,21 @@
       wakeup_list: []
       scan: "false"
       scan_reset: "false"
+      inter_signal_list:
+      [
+        {
+          struct: tl
+          package: tlul_pkg
+          type: req_rsp
+          act: rsp
+          name: tl
+          inst_name: rv_plic
+          width: 1
+          default: ""
+          top_signame: rv_plic_tl
+          index: -1
+        }
+      ]
     }
     {
       name: pinmux
@@ -948,6 +1062,18 @@
           top_signame: pwrmgr_wakeups
           index: -1
         }
+        {
+          struct: tl
+          package: tlul_pkg
+          type: req_rsp
+          act: rsp
+          name: tl
+          inst_name: pinmux
+          width: 1
+          default: ""
+          top_signame: pinmux_tl
+          index: -1
+        }
       ]
     }
     {
@@ -980,6 +1106,21 @@
       wakeup_list: []
       scan: "false"
       scan_reset: "false"
+      inter_signal_list:
+      [
+        {
+          struct: tl
+          package: tlul_pkg
+          type: req_rsp
+          act: rsp
+          name: tl
+          inst_name: padctrl
+          width: 1
+          default: ""
+          top_signame: padctrl_tl
+          index: -1
+        }
+      ]
     }
     {
       name: alert_handler
@@ -1066,6 +1207,21 @@
       wakeup_list: []
       scan: "false"
       scan_reset: "false"
+      inter_signal_list:
+      [
+        {
+          struct: tl
+          package: tlul_pkg
+          type: req_rsp
+          act: rsp
+          name: tl
+          inst_name: alert_handler
+          width: 1
+          default: ""
+          top_signame: alert_handler_tl
+          index: -1
+        }
+      ]
     }
     {
       name: pwrmgr
@@ -1210,6 +1366,18 @@
           inst_name: pwrmgr
           index: -1
         }
+        {
+          struct: tl
+          package: tlul_pkg
+          type: req_rsp
+          act: rsp
+          name: tl
+          inst_name: pwrmgr
+          width: 1
+          default: ""
+          top_signame: pwrmgr_tl
+          index: -1
+        }
       ]
     }
     {
@@ -1306,6 +1474,18 @@
           inst_name: rstmgr
           index: -1
         }
+        {
+          struct: tl
+          package: tlul_pkg
+          type: req_rsp
+          act: rsp
+          name: tl
+          inst_name: rstmgr
+          width: 1
+          default: ""
+          top_signame: rstmgr_tl
+          index: -1
+        }
       ]
     }
     {
@@ -1436,6 +1616,18 @@
           top_signame: clkmgr_status
           index: -1
         }
+        {
+          struct: tl
+          package: tlul_pkg
+          type: req_rsp
+          act: rsp
+          name: tl
+          inst_name: clkmgr
+          width: 1
+          default: ""
+          top_signame: clkmgr_tl
+          index: -1
+        }
       ]
     }
     {
@@ -1516,6 +1708,21 @@
       wakeup_list: []
       scan: "false"
       scan_reset: "false"
+      inter_signal_list:
+      [
+        {
+          struct: tl
+          package: tlul_pkg
+          type: req_rsp
+          act: rsp
+          name: tl
+          inst_name: nmi_gen
+          width: 1
+          default: ""
+          top_signame: nmi_gen_tl
+          index: -1
+        }
+      ]
     }
     {
       name: usbdev
@@ -1815,6 +2022,18 @@
           inst_name: usbdev
           index: -1
         }
+        {
+          struct: tl
+          package: tlul_pkg
+          type: req_rsp
+          act: rsp
+          name: tl
+          inst_name: usbdev
+          width: 1
+          default: ""
+          top_signame: usbdev_tl
+          index: -1
+        }
       ]
     }
     {
@@ -1902,6 +2121,18 @@
           inst_name: otbn
           index: -1
         }
+        {
+          struct: tl
+          package: tlul_pkg
+          type: req_rsp
+          act: rsp
+          name: tl
+          inst_name: otbn
+          width: 1
+          default: ""
+          top_signame: otbn_tl
+          index: -1
+        }
       ]
     }
   ]
@@ -1922,6 +2153,21 @@
       base_addr: 0x00008000
       swaccess: ro
       size: 0x4000
+      inter_signal_list:
+      [
+        {
+          struct: tl
+          package: tlul_pkg
+          type: req_rsp
+          act: rsp
+          name: tl
+          inst_name: rom
+          width: 1
+          default: ""
+          top_signame: rom_tl
+          index: -1
+        }
+      ]
       clock_connections:
       {
         clk_i: clkmgr_clocks.clk_main_infra
@@ -1941,6 +2187,21 @@
       type: ram_1p
       base_addr: 0x10000000
       size: 0x10000
+      inter_signal_list:
+      [
+        {
+          struct: tl
+          package: tlul_pkg
+          type: req_rsp
+          act: rsp
+          name: tl
+          inst_name: ram_main
+          width: 1
+          default: ""
+          top_signame: ram_main_tl
+          index: -1
+        }
+      ]
       clock_connections:
       {
         clk_i: clkmgr_clocks.clk_main_infra
@@ -1960,6 +2221,21 @@
       type: ram_1p
       base_addr: 0x18000000
       size: 0x1000
+      inter_signal_list:
+      [
+        {
+          struct: tl
+          package: tlul_pkg
+          type: req_rsp
+          act: rsp
+          name: tl
+          inst_name: ram_ret
+          width: 1
+          default: ""
+          top_signame: ram_ret_tl
+          index: -1
+        }
+      ]
       clock_connections:
       {
         clk_i: clkmgr_clocks.clk_io_infra
@@ -1994,6 +2270,18 @@
           top_signame: flash_ctrl_flash
           index: -1
         }
+        {
+          struct: tl
+          package: tlul_pkg
+          type: req_rsp
+          act: rsp
+          name: tl
+          inst_name: eflash
+          width: 1
+          default: ""
+          top_signame: eflash_tl
+          index: -1
+        }
       ]
       clock_connections:
       {
@@ -2017,6 +2305,94 @@
       [
         clkmgr.pwr
       ]
+      rom.tl:
+      [
+        main.tl_rom
+      ]
+      ram_main.tl:
+      [
+        main.tl_ram_main
+      ]
+      eflash.tl:
+      [
+        main.tl_eflash
+      ]
+      main.tl_peri:
+      [
+        peri.tl_main
+      ]
+      flash_ctrl.tl:
+      [
+        main.tl_flash_ctrl
+      ]
+      hmac.tl:
+      [
+        main.tl_hmac
+      ]
+      aes.tl:
+      [
+        main.tl_aes
+      ]
+      rv_plic.tl:
+      [
+        main.tl_rv_plic
+      ]
+      pinmux.tl:
+      [
+        main.tl_pinmux
+      ]
+      padctrl.tl:
+      [
+        main.tl_padctrl
+      ]
+      alert_handler.tl:
+      [
+        main.tl_alert_handler
+      ]
+      nmi_gen.tl:
+      [
+        main.tl_nmi_gen
+      ]
+      otbn.tl:
+      [
+        main.tl_otbn
+      ]
+      uart.tl:
+      [
+        peri.tl_uart
+      ]
+      gpio.tl:
+      [
+        peri.tl_gpio
+      ]
+      spi_device.tl:
+      [
+        peri.tl_spi_device
+      ]
+      rv_timer.tl:
+      [
+        peri.tl_rv_timer
+      ]
+      usbdev.tl:
+      [
+        peri.tl_usbdev
+      ]
+      pwrmgr.tl:
+      [
+        peri.tl_pwrmgr
+      ]
+      rstmgr.tl:
+      [
+        peri.tl_rstmgr
+      ]
+      clkmgr.tl:
+      [
+        peri.tl_clkmgr
+      ]
+      ram_ret.tl:
+      [
+        peri.tl_ram_ret
+      ]
       pwrmgr.wakeups:
       [
         pinmux.aon_wkup_req
@@ -2030,6 +2406,10 @@
       clkmgr.clocks
       aes.idle
       clkmgr.status
+      main.tl_corei
+      main.tl_cored
+      main.tl_dm_sba
+      main.tl_debug_mem
     ]
     external:
     [
@@ -2214,39 +2594,23 @@
           addr_range:
           [
             {
+              base_addr: 0x18000000
+              size_byte: 0x1000
+            }
+            {
               base_addr: 0x40000000
-              size_byte: 0x1000
-            }
-            {
-              base_addr: 0x40010000
-              size_byte: 0x1000
-            }
-            {
-              base_addr: 0x40020000
-              size_byte: 0x1000
+              size_byte: 0x21000
             }
             {
               base_addr: 0x40080000
               size_byte: 0x1000
             }
             {
-              base_addr: 0x40150000
-              size_byte: 0x1000
-            }
-            {
               base_addr: 0x400A0000
-              size_byte: 0x1000
+              size_byte: 0x21000
             }
             {
-              base_addr: 0x400B0000
-              size_byte: 0x1000
-            }
-            {
-              base_addr: 0x400C0000
-              size_byte: 0x1000
-            }
-            {
-              base_addr: 0x18000000
+              base_addr: 0x40150000
               size_byte: 0x1000
             }
           ]
@@ -2404,6 +2768,214 @@
         }
       ]
       clock: clk_main_i
+      type: xbar
+      inter_signal_list:
+      [
+        {
+          struct: tl
+          type: req_rsp
+          name: tl_corei
+          act: rsp
+          package: tlul_pkg
+          inst_name: main
+          width: 1
+          default: ""
+          top_signame: main_tl_corei
+          index: -1
+        }
+        {
+          struct: tl
+          type: req_rsp
+          name: tl_cored
+          act: rsp
+          package: tlul_pkg
+          inst_name: main
+          width: 1
+          default: ""
+          top_signame: main_tl_cored
+          index: -1
+        }
+        {
+          struct: tl
+          type: req_rsp
+          name: tl_dm_sba
+          act: rsp
+          package: tlul_pkg
+          inst_name: main
+          width: 1
+          default: ""
+          top_signame: main_tl_dm_sba
+          index: -1
+        }
+        {
+          struct: tl
+          type: req_rsp
+          name: tl_rom
+          act: req
+          package: tlul_pkg
+          inst_name: main
+          width: 1
+          default: ""
+          top_signame: rom_tl
+          index: -1
+        }
+        {
+          struct: tl
+          type: req_rsp
+          name: tl_debug_mem
+          act: req
+          package: tlul_pkg
+          inst_name: main
+          width: 1
+          default: ""
+          top_signame: main_tl_debug_mem
+          index: -1
+        }
+        {
+          struct: tl
+          type: req_rsp
+          name: tl_ram_main
+          act: req
+          package: tlul_pkg
+          inst_name: main
+          width: 1
+          default: ""
+          top_signame: ram_main_tl
+          index: -1
+        }
+        {
+          struct: tl
+          type: req_rsp
+          name: tl_eflash
+          act: req
+          package: tlul_pkg
+          inst_name: main
+          width: 1
+          default: ""
+          top_signame: eflash_tl
+          index: -1
+        }
+        {
+          struct: tl
+          type: req_rsp
+          name: tl_peri
+          act: req
+          package: tlul_pkg
+          inst_name: main
+          width: 1
+          default: ""
+          top_signame: main_tl_peri
+          index: -1
+        }
+        {
+          struct: tl
+          type: req_rsp
+          name: tl_flash_ctrl
+          act: req
+          package: tlul_pkg
+          inst_name: main
+          width: 1
+          default: ""
+          top_signame: flash_ctrl_tl
+          index: -1
+        }
+        {
+          struct: tl
+          type: req_rsp
+          name: tl_hmac
+          act: req
+          package: tlul_pkg
+          inst_name: main
+          width: 1
+          default: ""
+          top_signame: hmac_tl
+          index: -1
+        }
+        {
+          struct: tl
+          type: req_rsp
+          name: tl_aes
+          act: req
+          package: tlul_pkg
+          inst_name: main
+          width: 1
+          default: ""
+          top_signame: aes_tl
+          index: -1
+        }
+        {
+          struct: tl
+          type: req_rsp
+          name: tl_rv_plic
+          act: req
+          package: tlul_pkg
+          inst_name: main
+          width: 1
+          default: ""
+          top_signame: rv_plic_tl
+          index: -1
+        }
+        {
+          struct: tl
+          type: req_rsp
+          name: tl_pinmux
+          act: req
+          package: tlul_pkg
+          inst_name: main
+          width: 1
+          default: ""
+          top_signame: pinmux_tl
+          index: -1
+        }
+        {
+          struct: tl
+          type: req_rsp
+          name: tl_padctrl
+          act: req
+          package: tlul_pkg
+          inst_name: main
+          width: 1
+          default: ""
+          top_signame: padctrl_tl
+          index: -1
+        }
+        {
+          struct: tl
+          type: req_rsp
+          name: tl_alert_handler
+          act: req
+          package: tlul_pkg
+          inst_name: main
+          width: 1
+          default: ""
+          top_signame: alert_handler_tl
+          index: -1
+        }
+        {
+          struct: tl
+          type: req_rsp
+          name: tl_nmi_gen
+          act: req
+          package: tlul_pkg
+          inst_name: main
+          width: 1
+          default: ""
+          top_signame: nmi_gen_tl
+          index: -1
+        }
+        {
+          struct: tl
+          type: req_rsp
+          name: tl_otbn
+          act: req
+          package: tlul_pkg
+          inst_name: main
+          width: 1
+          default: ""
+          top_signame: otbn_tl
+          index: -1
+        }
+      ]
     }
     {
       name: peri
@@ -2603,6 +3175,130 @@
         }
       ]
       clock: clk_peri_i
+      type: xbar
+      inter_signal_list:
+      [
+        {
+          struct: tl
+          type: req_rsp
+          name: tl_main
+          act: rsp
+          package: tlul_pkg
+          inst_name: peri
+          width: 1
+          default: ""
+          top_signame: main_tl_peri
+          index: -1
+        }
+        {
+          struct: tl
+          type: req_rsp
+          name: tl_uart
+          act: req
+          package: tlul_pkg
+          inst_name: peri
+          width: 1
+          default: ""
+          top_signame: uart_tl
+          index: -1
+        }
+        {
+          struct: tl
+          type: req_rsp
+          name: tl_gpio
+          act: req
+          package: tlul_pkg
+          inst_name: peri
+          width: 1
+          default: ""
+          top_signame: gpio_tl
+          index: -1
+        }
+        {
+          struct: tl
+          type: req_rsp
+          name: tl_spi_device
+          act: req
+          package: tlul_pkg
+          inst_name: peri
+          width: 1
+          default: ""
+          top_signame: spi_device_tl
+          index: -1
+        }
+        {
+          struct: tl
+          type: req_rsp
+          name: tl_rv_timer
+          act: req
+          package: tlul_pkg
+          inst_name: peri
+          width: 1
+          default: ""
+          top_signame: rv_timer_tl
+          index: -1
+        }
+        {
+          struct: tl
+          type: req_rsp
+          name: tl_usbdev
+          act: req
+          package: tlul_pkg
+          inst_name: peri
+          width: 1
+          default: ""
+          top_signame: usbdev_tl
+          index: -1
+        }
+        {
+          struct: tl
+          type: req_rsp
+          name: tl_pwrmgr
+          act: req
+          package: tlul_pkg
+          inst_name: peri
+          width: 1
+          default: ""
+          top_signame: pwrmgr_tl
+          index: -1
+        }
+        {
+          struct: tl
+          type: req_rsp
+          name: tl_rstmgr
+          act: req
+          package: tlul_pkg
+          inst_name: peri
+          width: 1
+          default: ""
+          top_signame: rstmgr_tl
+          index: -1
+        }
+        {
+          struct: tl
+          type: req_rsp
+          name: tl_clkmgr
+          act: req
+          package: tlul_pkg
+          inst_name: peri
+          width: 1
+          default: ""
+          top_signame: clkmgr_tl
+          index: -1
+        }
+        {
+          struct: tl
+          type: req_rsp
+          name: tl_ram_ret
+          act: req
+          package: tlul_pkg
+          inst_name: peri
+          width: 1
+          default: ""
+          top_signame: ram_ret_tl
+          index: -1
+        }
+      ]
     }
   ]
   interrupt_module:
@@ -3636,6 +4332,42 @@
     signals:
     [
       {
+        struct: tl
+        package: tlul_pkg
+        type: req_rsp
+        act: rsp
+        name: tl
+        inst_name: uart
+        width: 1
+        default: ""
+        top_signame: uart_tl
+        index: -1
+      }
+      {
+        struct: tl
+        package: tlul_pkg
+        type: req_rsp
+        act: rsp
+        name: tl
+        inst_name: gpio
+        width: 1
+        default: ""
+        top_signame: gpio_tl
+        index: -1
+      }
+      {
+        struct: tl
+        package: tlul_pkg
+        type: req_rsp
+        act: rsp
+        name: tl
+        inst_name: spi_device
+        width: 1
+        default: ""
+        top_signame: spi_device_tl
+        index: -1
+      }
+      {
         struct: flash
         type: req_rsp
         name: flash
@@ -3657,6 +4389,30 @@
         index: -1
       }
       {
+        struct: tl
+        package: tlul_pkg
+        type: req_rsp
+        act: rsp
+        name: tl
+        inst_name: flash_ctrl
+        width: 1
+        default: ""
+        top_signame: flash_ctrl_tl
+        index: -1
+      }
+      {
+        struct: tl
+        package: tlul_pkg
+        type: req_rsp
+        act: rsp
+        name: tl
+        inst_name: rv_timer
+        width: 1
+        default: ""
+        top_signame: rv_timer_tl
+        index: -1
+      }
+      {
         name: idle
         type: uni
         act: req
@@ -3669,6 +4425,42 @@
         index: -1
       }
       {
+        struct: tl
+        package: tlul_pkg
+        type: req_rsp
+        act: rsp
+        name: tl
+        inst_name: aes
+        width: 1
+        default: ""
+        top_signame: aes_tl
+        index: -1
+      }
+      {
+        struct: tl
+        package: tlul_pkg
+        type: req_rsp
+        act: rsp
+        name: tl
+        inst_name: hmac
+        width: 1
+        default: ""
+        top_signame: hmac_tl
+        index: -1
+      }
+      {
+        struct: tl
+        package: tlul_pkg
+        type: req_rsp
+        act: rsp
+        name: tl
+        inst_name: rv_plic
+        width: 1
+        default: ""
+        top_signame: rv_plic_tl
+        index: -1
+      }
+      {
         struct: lc_strap
         type: req_rsp
         name: lc_pinmux_strap
@@ -3721,6 +4513,42 @@
         index: -1
       }
       {
+        struct: tl
+        package: tlul_pkg
+        type: req_rsp
+        act: rsp
+        name: tl
+        inst_name: pinmux
+        width: 1
+        default: ""
+        top_signame: pinmux_tl
+        index: -1
+      }
+      {
+        struct: tl
+        package: tlul_pkg
+        type: req_rsp
+        act: rsp
+        name: tl
+        inst_name: padctrl
+        width: 1
+        default: ""
+        top_signame: padctrl_tl
+        index: -1
+      }
+      {
+        struct: tl
+        package: tlul_pkg
+        type: req_rsp
+        act: rsp
+        name: tl
+        inst_name: alert_handler
+        width: 1
+        default: ""
+        top_signame: alert_handler_tl
+        index: -1
+      }
+      {
         struct: pwr_ast
         type: req_rsp
         name: pwr_ast
@@ -3816,6 +4644,18 @@
         index: -1
       }
       {
+        struct: tl
+        package: tlul_pkg
+        type: req_rsp
+        act: rsp
+        name: tl
+        inst_name: pwrmgr
+        width: 1
+        default: ""
+        top_signame: pwrmgr_tl
+        index: -1
+      }
+      {
         struct: pwr_rst
         type: req_rsp
         name: pwr
@@ -3870,6 +4710,18 @@
         index: -1
       }
       {
+        struct: tl
+        package: tlul_pkg
+        type: req_rsp
+        act: rsp
+        name: tl
+        inst_name: rstmgr
+        width: 1
+        default: ""
+        top_signame: rstmgr_tl
+        index: -1
+      }
+      {
         struct: clkmgr_out
         type: uni
         name: clocks
@@ -3963,6 +4815,30 @@
         index: -1
       }
       {
+        struct: tl
+        package: tlul_pkg
+        type: req_rsp
+        act: rsp
+        name: tl
+        inst_name: clkmgr
+        width: 1
+        default: ""
+        top_signame: clkmgr_tl
+        index: -1
+      }
+      {
+        struct: tl
+        package: tlul_pkg
+        type: req_rsp
+        act: rsp
+        name: tl
+        inst_name: nmi_gen
+        width: 1
+        default: ""
+        top_signame: nmi_gen_tl
+        index: -1
+      }
+      {
         name: usb_ref_val
         type: uni
         act: req
@@ -3983,6 +4859,18 @@
         index: -1
       }
       {
+        struct: tl
+        package: tlul_pkg
+        type: req_rsp
+        act: rsp
+        name: tl
+        inst_name: usbdev
+        width: 1
+        default: ""
+        top_signame: usbdev_tl
+        index: -1
+      }
+      {
         name: idle
         type: uni
         struct: logic
@@ -3992,6 +4880,54 @@
         index: -1
       }
       {
+        struct: tl
+        package: tlul_pkg
+        type: req_rsp
+        act: rsp
+        name: tl
+        inst_name: otbn
+        width: 1
+        default: ""
+        top_signame: otbn_tl
+        index: -1
+      }
+      {
+        struct: tl
+        package: tlul_pkg
+        type: req_rsp
+        act: rsp
+        name: tl
+        inst_name: rom
+        width: 1
+        default: ""
+        top_signame: rom_tl
+        index: -1
+      }
+      {
+        struct: tl
+        package: tlul_pkg
+        type: req_rsp
+        act: rsp
+        name: tl
+        inst_name: ram_main
+        width: 1
+        default: ""
+        top_signame: ram_main_tl
+        index: -1
+      }
+      {
+        struct: tl
+        package: tlul_pkg
+        type: req_rsp
+        act: rsp
+        name: tl
+        inst_name: ram_ret
+        width: 1
+        default: ""
+        top_signame: ram_ret_tl
+        index: -1
+      }
+      {
         struct: flash
         type: req_rsp
         name: flash_ctrl
@@ -4003,6 +4939,342 @@
         top_signame: flash_ctrl_flash
         index: -1
       }
+      {
+        struct: tl
+        package: tlul_pkg
+        type: req_rsp
+        act: rsp
+        name: tl
+        inst_name: eflash
+        width: 1
+        default: ""
+        top_signame: eflash_tl
+        index: -1
+      }
+      {
+        struct: tl
+        type: req_rsp
+        name: tl_corei
+        act: rsp
+        package: tlul_pkg
+        inst_name: main
+        width: 1
+        default: ""
+        top_signame: main_tl_corei
+        index: -1
+      }
+      {
+        struct: tl
+        type: req_rsp
+        name: tl_cored
+        act: rsp
+        package: tlul_pkg
+        inst_name: main
+        width: 1
+        default: ""
+        top_signame: main_tl_cored
+        index: -1
+      }
+      {
+        struct: tl
+        type: req_rsp
+        name: tl_dm_sba
+        act: rsp
+        package: tlul_pkg
+        inst_name: main
+        width: 1
+        default: ""
+        top_signame: main_tl_dm_sba
+        index: -1
+      }
+      {
+        struct: tl
+        type: req_rsp
+        name: tl_rom
+        act: req
+        package: tlul_pkg
+        inst_name: main
+        width: 1
+        default: ""
+        top_signame: rom_tl
+        index: -1
+      }
+      {
+        struct: tl
+        type: req_rsp
+        name: tl_debug_mem
+        act: req
+        package: tlul_pkg
+        inst_name: main
+        width: 1
+        default: ""
+        top_signame: main_tl_debug_mem
+        index: -1
+      }
+      {
+        struct: tl
+        type: req_rsp
+        name: tl_ram_main
+        act: req
+        package: tlul_pkg
+        inst_name: main
+        width: 1
+        default: ""
+        top_signame: ram_main_tl
+        index: -1
+      }
+      {
+        struct: tl
+        type: req_rsp
+        name: tl_eflash
+        act: req
+        package: tlul_pkg
+        inst_name: main
+        width: 1
+        default: ""
+        top_signame: eflash_tl
+        index: -1
+      }
+      {
+        struct: tl
+        type: req_rsp
+        name: tl_peri
+        act: req
+        package: tlul_pkg
+        inst_name: main
+        width: 1
+        default: ""
+        top_signame: main_tl_peri
+        index: -1
+      }
+      {
+        struct: tl
+        type: req_rsp
+        name: tl_flash_ctrl
+        act: req
+        package: tlul_pkg
+        inst_name: main
+        width: 1
+        default: ""
+        top_signame: flash_ctrl_tl
+        index: -1
+      }
+      {
+        struct: tl
+        type: req_rsp
+        name: tl_hmac
+        act: req
+        package: tlul_pkg
+        inst_name: main
+        width: 1
+        default: ""
+        top_signame: hmac_tl
+        index: -1
+      }
+      {
+        struct: tl
+        type: req_rsp
+        name: tl_aes
+        act: req
+        package: tlul_pkg
+        inst_name: main
+        width: 1
+        default: ""
+        top_signame: aes_tl
+        index: -1
+      }
+      {
+        struct: tl
+        type: req_rsp
+        name: tl_rv_plic
+        act: req
+        package: tlul_pkg
+        inst_name: main
+        width: 1
+        default: ""
+        top_signame: rv_plic_tl
+        index: -1
+      }
+      {
+        struct: tl
+        type: req_rsp
+        name: tl_pinmux
+        act: req
+        package: tlul_pkg
+        inst_name: main
+        width: 1
+        default: ""
+        top_signame: pinmux_tl
+        index: -1
+      }
+      {
+        struct: tl
+        type: req_rsp
+        name: tl_padctrl
+        act: req
+        package: tlul_pkg
+        inst_name: main
+        width: 1
+        default: ""
+        top_signame: padctrl_tl
+        index: -1
+      }
+      {
+        struct: tl
+        type: req_rsp
+        name: tl_alert_handler
+        act: req
+        package: tlul_pkg
+        inst_name: main
+        width: 1
+        default: ""
+        top_signame: alert_handler_tl
+        index: -1
+      }
+      {
+        struct: tl
+        type: req_rsp
+        name: tl_nmi_gen
+        act: req
+        package: tlul_pkg
+        inst_name: main
+        width: 1
+        default: ""
+        top_signame: nmi_gen_tl
+        index: -1
+      }
+      {
+        struct: tl
+        type: req_rsp
+        name: tl_otbn
+        act: req
+        package: tlul_pkg
+        inst_name: main
+        width: 1
+        default: ""
+        top_signame: otbn_tl
+        index: -1
+      }
+      {
+        struct: tl
+        type: req_rsp
+        name: tl_main
+        act: rsp
+        package: tlul_pkg
+        inst_name: peri
+        width: 1
+        default: ""
+        top_signame: main_tl_peri
+        index: -1
+      }
+      {
+        struct: tl
+        type: req_rsp
+        name: tl_uart
+        act: req
+        package: tlul_pkg
+        inst_name: peri
+        width: 1
+        default: ""
+        top_signame: uart_tl
+        index: -1
+      }
+      {
+        struct: tl
+        type: req_rsp
+        name: tl_gpio
+        act: req
+        package: tlul_pkg
+        inst_name: peri
+        width: 1
+        default: ""
+        top_signame: gpio_tl
+        index: -1
+      }
+      {
+        struct: tl
+        type: req_rsp
+        name: tl_spi_device
+        act: req
+        package: tlul_pkg
+        inst_name: peri
+        width: 1
+        default: ""
+        top_signame: spi_device_tl
+        index: -1
+      }
+      {
+        struct: tl
+        type: req_rsp
+        name: tl_rv_timer
+        act: req
+        package: tlul_pkg
+        inst_name: peri
+        width: 1
+        default: ""
+        top_signame: rv_timer_tl
+        index: -1
+      }
+      {
+        struct: tl
+        type: req_rsp
+        name: tl_usbdev
+        act: req
+        package: tlul_pkg
+        inst_name: peri
+        width: 1
+        default: ""
+        top_signame: usbdev_tl
+        index: -1
+      }
+      {
+        struct: tl
+        type: req_rsp
+        name: tl_pwrmgr
+        act: req
+        package: tlul_pkg
+        inst_name: peri
+        width: 1
+        default: ""
+        top_signame: pwrmgr_tl
+        index: -1
+      }
+      {
+        struct: tl
+        type: req_rsp
+        name: tl_rstmgr
+        act: req
+        package: tlul_pkg
+        inst_name: peri
+        width: 1
+        default: ""
+        top_signame: rstmgr_tl
+        index: -1
+      }
+      {
+        struct: tl
+        type: req_rsp
+        name: tl_clkmgr
+        act: req
+        package: tlul_pkg
+        inst_name: peri
+        width: 1
+        default: ""
+        top_signame: clkmgr_tl
+        index: -1
+      }
+      {
+        struct: tl
+        type: req_rsp
+        name: tl_ram_ret
+        act: req
+        package: tlul_pkg
+        inst_name: peri
+        width: 1
+        default: ""
+        top_signame: ram_ret_tl
+        index: -1
+      }
     ]
     external:
     [
@@ -4094,6 +5366,358 @@
         default: ""
       }
       {
+        package: tlul_pkg
+        struct: tl_h2d
+        signame: rom_tl_req
+        width: 1
+        type: req_rsp
+        default: ""
+      }
+      {
+        package: tlul_pkg
+        struct: tl_d2h
+        signame: rom_tl_rsp
+        width: 1
+        type: req_rsp
+        default: ""
+      }
+      {
+        package: tlul_pkg
+        struct: tl_h2d
+        signame: ram_main_tl_req
+        width: 1
+        type: req_rsp
+        default: ""
+      }
+      {
+        package: tlul_pkg
+        struct: tl_d2h
+        signame: ram_main_tl_rsp
+        width: 1
+        type: req_rsp
+        default: ""
+      }
+      {
+        package: tlul_pkg
+        struct: tl_h2d
+        signame: eflash_tl_req
+        width: 1
+        type: req_rsp
+        default: ""
+      }
+      {
+        package: tlul_pkg
+        struct: tl_d2h
+        signame: eflash_tl_rsp
+        width: 1
+        type: req_rsp
+        default: ""
+      }
+      {
+        package: tlul_pkg
+        struct: tl_h2d
+        signame: main_tl_peri_req
+        width: 1
+        type: req_rsp
+        default: ""
+      }
+      {
+        package: tlul_pkg
+        struct: tl_d2h
+        signame: main_tl_peri_rsp
+        width: 1
+        type: req_rsp
+        default: ""
+      }
+      {
+        package: tlul_pkg
+        struct: tl_h2d
+        signame: flash_ctrl_tl_req
+        width: 1
+        type: req_rsp
+        default: ""
+      }
+      {
+        package: tlul_pkg
+        struct: tl_d2h
+        signame: flash_ctrl_tl_rsp
+        width: 1
+        type: req_rsp
+        default: ""
+      }
+      {
+        package: tlul_pkg
+        struct: tl_h2d
+        signame: hmac_tl_req
+        width: 1
+        type: req_rsp
+        default: ""
+      }
+      {
+        package: tlul_pkg
+        struct: tl_d2h
+        signame: hmac_tl_rsp
+        width: 1
+        type: req_rsp
+        default: ""
+      }
+      {
+        package: tlul_pkg
+        struct: tl_h2d
+        signame: aes_tl_req
+        width: 1
+        type: req_rsp
+        default: ""
+      }
+      {
+        package: tlul_pkg
+        struct: tl_d2h
+        signame: aes_tl_rsp
+        width: 1
+        type: req_rsp
+        default: ""
+      }
+      {
+        package: tlul_pkg
+        struct: tl_h2d
+        signame: rv_plic_tl_req
+        width: 1
+        type: req_rsp
+        default: ""
+      }
+      {
+        package: tlul_pkg
+        struct: tl_d2h
+        signame: rv_plic_tl_rsp
+        width: 1
+        type: req_rsp
+        default: ""
+      }
+      {
+        package: tlul_pkg
+        struct: tl_h2d
+        signame: pinmux_tl_req
+        width: 1
+        type: req_rsp
+        default: ""
+      }
+      {
+        package: tlul_pkg
+        struct: tl_d2h
+        signame: pinmux_tl_rsp
+        width: 1
+        type: req_rsp
+        default: ""
+      }
+      {
+        package: tlul_pkg
+        struct: tl_h2d
+        signame: padctrl_tl_req
+        width: 1
+        type: req_rsp
+        default: ""
+      }
+      {
+        package: tlul_pkg
+        struct: tl_d2h
+        signame: padctrl_tl_rsp
+        width: 1
+        type: req_rsp
+        default: ""
+      }
+      {
+        package: tlul_pkg
+        struct: tl_h2d
+        signame: alert_handler_tl_req
+        width: 1
+        type: req_rsp
+        default: ""
+      }
+      {
+        package: tlul_pkg
+        struct: tl_d2h
+        signame: alert_handler_tl_rsp
+        width: 1
+        type: req_rsp
+        default: ""
+      }
+      {
+        package: tlul_pkg
+        struct: tl_h2d
+        signame: nmi_gen_tl_req
+        width: 1
+        type: req_rsp
+        default: ""
+      }
+      {
+        package: tlul_pkg
+        struct: tl_d2h
+        signame: nmi_gen_tl_rsp
+        width: 1
+        type: req_rsp
+        default: ""
+      }
+      {
+        package: tlul_pkg
+        struct: tl_h2d
+        signame: otbn_tl_req
+        width: 1
+        type: req_rsp
+        default: ""
+      }
+      {
+        package: tlul_pkg
+        struct: tl_d2h
+        signame: otbn_tl_rsp
+        width: 1
+        type: req_rsp
+        default: ""
+      }
+      {
+        package: tlul_pkg
+        struct: tl_h2d
+        signame: uart_tl_req
+        width: 1
+        type: req_rsp
+        default: ""
+      }
+      {
+        package: tlul_pkg
+        struct: tl_d2h
+        signame: uart_tl_rsp
+        width: 1
+        type: req_rsp
+        default: ""
+      }
+      {
+        package: tlul_pkg
+        struct: tl_h2d
+        signame: gpio_tl_req
+        width: 1
+        type: req_rsp
+        default: ""
+      }
+      {
+        package: tlul_pkg
+        struct: tl_d2h
+        signame: gpio_tl_rsp
+        width: 1
+        type: req_rsp
+        default: ""
+      }
+      {
+        package: tlul_pkg
+        struct: tl_h2d
+        signame: spi_device_tl_req
+        width: 1
+        type: req_rsp
+        default: ""
+      }
+      {
+        package: tlul_pkg
+        struct: tl_d2h
+        signame: spi_device_tl_rsp
+        width: 1
+        type: req_rsp
+        default: ""
+      }
+      {
+        package: tlul_pkg
+        struct: tl_h2d
+        signame: rv_timer_tl_req
+        width: 1
+        type: req_rsp
+        default: ""
+      }
+      {
+        package: tlul_pkg
+        struct: tl_d2h
+        signame: rv_timer_tl_rsp
+        width: 1
+        type: req_rsp
+        default: ""
+      }
+      {
+        package: tlul_pkg
+        struct: tl_h2d
+        signame: usbdev_tl_req
+        width: 1
+        type: req_rsp
+        default: ""
+      }
+      {
+        package: tlul_pkg
+        struct: tl_d2h
+        signame: usbdev_tl_rsp
+        width: 1
+        type: req_rsp
+        default: ""
+      }
+      {
+        package: tlul_pkg
+        struct: tl_h2d
+        signame: pwrmgr_tl_req
+        width: 1
+        type: req_rsp
+        default: ""
+      }
+      {
+        package: tlul_pkg
+        struct: tl_d2h
+        signame: pwrmgr_tl_rsp
+        width: 1
+        type: req_rsp
+        default: ""
+      }
+      {
+        package: tlul_pkg
+        struct: tl_h2d
+        signame: rstmgr_tl_req
+        width: 1
+        type: req_rsp
+        default: ""
+      }
+      {
+        package: tlul_pkg
+        struct: tl_d2h
+        signame: rstmgr_tl_rsp
+        width: 1
+        type: req_rsp
+        default: ""
+      }
+      {
+        package: tlul_pkg
+        struct: tl_h2d
+        signame: clkmgr_tl_req
+        width: 1
+        type: req_rsp
+        default: ""
+      }
+      {
+        package: tlul_pkg
+        struct: tl_d2h
+        signame: clkmgr_tl_rsp
+        width: 1
+        type: req_rsp
+        default: ""
+      }
+      {
+        package: tlul_pkg
+        struct: tl_h2d
+        signame: ram_ret_tl_req
+        width: 1
+        type: req_rsp
+        default: ""
+      }
+      {
+        package: tlul_pkg
+        struct: tl_d2h
+        signame: ram_ret_tl_rsp
+        width: 1
+        type: req_rsp
+        default: ""
+      }
+      {
         package: ""
         struct: logic
         signame: pwrmgr_wakeups
@@ -4149,6 +5773,70 @@
         type: uni
         default: ""
       }
+      {
+        package: tlul_pkg
+        struct: tl_h2d
+        signame: main_tl_corei_req
+        width: 1
+        type: req_rsp
+        default: ""
+      }
+      {
+        package: tlul_pkg
+        struct: tl_d2h
+        signame: main_tl_corei_rsp
+        width: 1
+        type: req_rsp
+        default: ""
+      }
+      {
+        package: tlul_pkg
+        struct: tl_h2d
+        signame: main_tl_cored_req
+        width: 1
+        type: req_rsp
+        default: ""
+      }
+      {
+        package: tlul_pkg
+        struct: tl_d2h
+        signame: main_tl_cored_rsp
+        width: 1
+        type: req_rsp
+        default: ""
+      }
+      {
+        package: tlul_pkg
+        struct: tl_h2d
+        signame: main_tl_dm_sba_req
+        width: 1
+        type: req_rsp
+        default: ""
+      }
+      {
+        package: tlul_pkg
+        struct: tl_d2h
+        signame: main_tl_dm_sba_rsp
+        width: 1
+        type: req_rsp
+        default: ""
+      }
+      {
+        package: tlul_pkg
+        struct: tl_h2d
+        signame: main_tl_debug_mem_req
+        width: 1
+        type: req_rsp
+        default: ""
+      }
+      {
+        package: tlul_pkg
+        struct: tl_d2h
+        signame: main_tl_debug_mem_rsp
+        width: 1
+        type: req_rsp
+        default: ""
+      }
     ]
   }
 }
\ No newline at end of file
diff --git a/hw/top_earlgrey/rtl/autogen/top_earlgrey.sv b/hw/top_earlgrey/rtl/autogen/top_earlgrey.sv
index 2acc14e..027fb16 100644
--- a/hw/top_earlgrey/rtl/autogen/top_earlgrey.sv
+++ b/hw/top_earlgrey/rtl/autogen/top_earlgrey.sv
@@ -57,65 +57,6 @@
   import top_pkg::*;
   import tl_main_pkg::*;
 
-  tl_h2d_t  tl_corei_h_h2d;
-  tl_d2h_t  tl_corei_h_d2h;
-
-  tl_h2d_t  tl_cored_h_h2d;
-  tl_d2h_t  tl_cored_h_d2h;
-
-  tl_h2d_t  tl_dm_sba_h_h2d;
-  tl_d2h_t  tl_dm_sba_h_d2h;
-
-  tl_h2d_t  tl_debug_mem_d_h2d;
-  tl_d2h_t  tl_debug_mem_d_d2h;
-
-  tl_h2d_t  tl_uart_d_h2d;
-  tl_d2h_t  tl_uart_d_d2h;
-  tl_h2d_t  tl_gpio_d_h2d;
-  tl_d2h_t  tl_gpio_d_d2h;
-  tl_h2d_t  tl_spi_device_d_h2d;
-  tl_d2h_t  tl_spi_device_d_d2h;
-  tl_h2d_t  tl_flash_ctrl_d_h2d;
-  tl_d2h_t  tl_flash_ctrl_d_d2h;
-  tl_h2d_t  tl_rv_timer_d_h2d;
-  tl_d2h_t  tl_rv_timer_d_d2h;
-  tl_h2d_t  tl_aes_d_h2d;
-  tl_d2h_t  tl_aes_d_d2h;
-  tl_h2d_t  tl_hmac_d_h2d;
-  tl_d2h_t  tl_hmac_d_d2h;
-  tl_h2d_t  tl_rv_plic_d_h2d;
-  tl_d2h_t  tl_rv_plic_d_d2h;
-  tl_h2d_t  tl_pinmux_d_h2d;
-  tl_d2h_t  tl_pinmux_d_d2h;
-  tl_h2d_t  tl_padctrl_d_h2d;
-  tl_d2h_t  tl_padctrl_d_d2h;
-  tl_h2d_t  tl_alert_handler_d_h2d;
-  tl_d2h_t  tl_alert_handler_d_d2h;
-  tl_h2d_t  tl_pwrmgr_d_h2d;
-  tl_d2h_t  tl_pwrmgr_d_d2h;
-  tl_h2d_t  tl_rstmgr_d_h2d;
-  tl_d2h_t  tl_rstmgr_d_d2h;
-  tl_h2d_t  tl_clkmgr_d_h2d;
-  tl_d2h_t  tl_clkmgr_d_d2h;
-  tl_h2d_t  tl_nmi_gen_d_h2d;
-  tl_d2h_t  tl_nmi_gen_d_d2h;
-  tl_h2d_t  tl_usbdev_d_h2d;
-  tl_d2h_t  tl_usbdev_d_d2h;
-  tl_h2d_t  tl_otbn_d_h2d;
-  tl_d2h_t  tl_otbn_d_d2h;
-
-  tl_h2d_t tl_rom_d_h2d;
-  tl_d2h_t tl_rom_d_d2h;
-  tl_h2d_t tl_ram_main_d_h2d;
-  tl_d2h_t tl_ram_main_d_d2h;
-  tl_h2d_t tl_ram_ret_d_h2d;
-  tl_d2h_t tl_ram_ret_d_d2h;
-  tl_h2d_t tl_eflash_d_h2d;
-  tl_d2h_t tl_eflash_d_d2h;
-
-  tl_h2d_t tl_main_peri_h2d;
-  tl_d2h_t tl_main_peri_d2h;
-
   // Signals
   logic [31:0] mio_p2d;
   logic [31:0] mio_d2p;
@@ -253,6 +194,50 @@
   pwrmgr_pkg::pwr_rst_rsp_t       pwrmgr_pwr_rst_rsp;
   pwrmgr_pkg::pwr_clk_req_t       pwrmgr_pwr_clk_req;
   pwrmgr_pkg::pwr_clk_rsp_t       pwrmgr_pwr_clk_rsp;
+  tlul_pkg::tl_h2d_t       rom_tl_req;
+  tlul_pkg::tl_d2h_t       rom_tl_rsp;
+  tlul_pkg::tl_h2d_t       ram_main_tl_req;
+  tlul_pkg::tl_d2h_t       ram_main_tl_rsp;
+  tlul_pkg::tl_h2d_t       eflash_tl_req;
+  tlul_pkg::tl_d2h_t       eflash_tl_rsp;
+  tlul_pkg::tl_h2d_t       main_tl_peri_req;
+  tlul_pkg::tl_d2h_t       main_tl_peri_rsp;
+  tlul_pkg::tl_h2d_t       flash_ctrl_tl_req;
+  tlul_pkg::tl_d2h_t       flash_ctrl_tl_rsp;
+  tlul_pkg::tl_h2d_t       hmac_tl_req;
+  tlul_pkg::tl_d2h_t       hmac_tl_rsp;
+  tlul_pkg::tl_h2d_t       aes_tl_req;
+  tlul_pkg::tl_d2h_t       aes_tl_rsp;
+  tlul_pkg::tl_h2d_t       rv_plic_tl_req;
+  tlul_pkg::tl_d2h_t       rv_plic_tl_rsp;
+  tlul_pkg::tl_h2d_t       pinmux_tl_req;
+  tlul_pkg::tl_d2h_t       pinmux_tl_rsp;
+  tlul_pkg::tl_h2d_t       padctrl_tl_req;
+  tlul_pkg::tl_d2h_t       padctrl_tl_rsp;
+  tlul_pkg::tl_h2d_t       alert_handler_tl_req;
+  tlul_pkg::tl_d2h_t       alert_handler_tl_rsp;
+  tlul_pkg::tl_h2d_t       nmi_gen_tl_req;
+  tlul_pkg::tl_d2h_t       nmi_gen_tl_rsp;
+  tlul_pkg::tl_h2d_t       otbn_tl_req;
+  tlul_pkg::tl_d2h_t       otbn_tl_rsp;
+  tlul_pkg::tl_h2d_t       uart_tl_req;
+  tlul_pkg::tl_d2h_t       uart_tl_rsp;
+  tlul_pkg::tl_h2d_t       gpio_tl_req;
+  tlul_pkg::tl_d2h_t       gpio_tl_rsp;
+  tlul_pkg::tl_h2d_t       spi_device_tl_req;
+  tlul_pkg::tl_d2h_t       spi_device_tl_rsp;
+  tlul_pkg::tl_h2d_t       rv_timer_tl_req;
+  tlul_pkg::tl_d2h_t       rv_timer_tl_rsp;
+  tlul_pkg::tl_h2d_t       usbdev_tl_req;
+  tlul_pkg::tl_d2h_t       usbdev_tl_rsp;
+  tlul_pkg::tl_h2d_t       pwrmgr_tl_req;
+  tlul_pkg::tl_d2h_t       pwrmgr_tl_rsp;
+  tlul_pkg::tl_h2d_t       rstmgr_tl_req;
+  tlul_pkg::tl_d2h_t       rstmgr_tl_rsp;
+  tlul_pkg::tl_h2d_t       clkmgr_tl_req;
+  tlul_pkg::tl_d2h_t       clkmgr_tl_rsp;
+  tlul_pkg::tl_h2d_t       ram_ret_tl_req;
+  tlul_pkg::tl_d2h_t       ram_ret_tl_rsp;
   logic       pwrmgr_wakeups;
   rstmgr_pkg::rstmgr_out_t       rstmgr_resets;
   rstmgr_pkg::rstmgr_cpu_t       rstmgr_cpu;
@@ -260,6 +245,14 @@
   clkmgr_pkg::clkmgr_out_t       clkmgr_clocks;
   logic       aes_idle;
   clkmgr_pkg::clk_hint_status_t       clkmgr_status;
+  tlul_pkg::tl_h2d_t       main_tl_corei_req;
+  tlul_pkg::tl_d2h_t       main_tl_corei_rsp;
+  tlul_pkg::tl_h2d_t       main_tl_cored_req;
+  tlul_pkg::tl_d2h_t       main_tl_cored_rsp;
+  tlul_pkg::tl_h2d_t       main_tl_dm_sba_req;
+  tlul_pkg::tl_d2h_t       main_tl_dm_sba_rsp;
+  tlul_pkg::tl_h2d_t       main_tl_debug_mem_req;
+  tlul_pkg::tl_d2h_t       main_tl_debug_mem_rsp;
 
   always_comb begin
     // TODO: So far just aes is connected
@@ -301,10 +294,10 @@
     .hart_id_i            (32'b0),
     .boot_addr_i          (ADDR_SPACE_ROM),
     // TL-UL buses
-    .tl_i_o               (tl_corei_h_h2d),
-    .tl_i_i               (tl_corei_h_d2h),
-    .tl_d_o               (tl_cored_h_h2d),
-    .tl_d_i               (tl_cored_h_d2h),
+    .tl_i_o               (main_tl_corei_req),
+    .tl_i_i               (main_tl_corei_rsp),
+    .tl_d_o               (main_tl_cored_req),
+    .tl_d_i               (main_tl_cored_rsp),
     // interrupts
     .irq_software_i       (msip),
     .irq_timer_i          (intr_rv_timer_timer_expired_0_0),
@@ -334,12 +327,12 @@
     .unavailable_i (1'b0),
 
     // bus device with debug memory (for execution-based debug)
-    .tl_d_i        (tl_debug_mem_d_h2d),
-    .tl_d_o        (tl_debug_mem_d_d2h),
+    .tl_d_i        (main_tl_debug_mem_req),
+    .tl_d_o        (main_tl_debug_mem_rsp),
 
     // bus host (for system bus accesses, SBA)
-    .tl_h_o        (tl_dm_sba_h_h2d),
-    .tl_h_i        (tl_dm_sba_h_d2h),
+    .tl_h_o        (main_tl_dm_sba_req),
+    .tl_h_i        (main_tl_dm_sba_rsp),
 
     //JTAG
     .tck_i            (jtag_tck_i),
@@ -368,8 +361,8 @@
     .clk_i   (clkmgr_clocks.clk_main_infra),
     .rst_ni   (rstmgr_resets.rst_sys_n),
 
-    .tl_i     (tl_rom_d_h2d),
-    .tl_o     (tl_rom_d_d2h),
+    .tl_i     (rom_tl_req),
+    .tl_o     (rom_tl_rsp),
 
     .req_o    (rom_req),
     .gnt_i    (1'b1), // Always grant as only one requester exists
@@ -413,8 +406,8 @@
   ) u_tl_adapter_ram_main (
     .clk_i   (clkmgr_clocks.clk_main_infra),
     .rst_ni   (rstmgr_resets.rst_sys_n),
-    .tl_i     (tl_ram_main_d_h2d),
-    .tl_o     (tl_ram_main_d_d2h),
+    .tl_i     (ram_main_tl_req),
+    .tl_o     (ram_main_tl_rsp),
 
     .req_o    (ram_main_req),
     .gnt_i    (1'b1), // Always grant as only one requester exists
@@ -465,8 +458,8 @@
   ) u_tl_adapter_ram_ret (
     .clk_i   (clkmgr_clocks.clk_io_infra),
     .rst_ni   (rstmgr_resets.rst_sys_io_n),
-    .tl_i     (tl_ram_ret_d_h2d),
-    .tl_o     (tl_ram_ret_d_d2h),
+    .tl_i     (ram_ret_tl_req),
+    .tl_o     (ram_ret_tl_rsp),
 
     .req_o    (ram_ret_req),
     .gnt_i    (1'b1), // Always grant as only one requester exists
@@ -518,8 +511,8 @@
     .clk_i   (clkmgr_clocks.clk_main_infra),
     .rst_ni   (rstmgr_resets.rst_lc_n),
 
-    .tl_i       (tl_eflash_d_h2d),
-    .tl_o       (tl_eflash_d_d2h),
+    .tl_i     (eflash_tl_req),
+    .tl_o     (eflash_tl_rsp),
 
     .req_o    (flash_host_req),
     .gnt_i    (flash_host_req_rdy),
@@ -547,8 +540,6 @@
 
 
   uart u_uart (
-      .tl_i (tl_uart_d_h2d),
-      .tl_o (tl_uart_d_d2h),
 
       // Input
       .cio_rx_i    (cio_uart_rx_p2d),
@@ -566,13 +557,15 @@
       .intr_rx_break_err_o  (intr_uart_rx_break_err),
       .intr_rx_timeout_o    (intr_uart_rx_timeout),
       .intr_rx_parity_err_o (intr_uart_rx_parity_err),
+
+      // Inter-module signals
+      .tl_i(uart_tl_req),
+      .tl_o(uart_tl_rsp),
       .clk_i (clkmgr_clocks.clk_io_secure),
       .rst_ni (rstmgr_resets.rst_sys_io_n)
   );
 
   gpio u_gpio (
-      .tl_i (tl_gpio_d_h2d),
-      .tl_o (tl_gpio_d_d2h),
 
       // Input
       .cio_gpio_i    (cio_gpio_gpio_p2d),
@@ -583,13 +576,15 @@
 
       // Interrupt
       .intr_gpio_o (intr_gpio_gpio),
+
+      // Inter-module signals
+      .tl_i(gpio_tl_req),
+      .tl_o(gpio_tl_rsp),
       .clk_i (clkmgr_clocks.clk_io_peri),
       .rst_ni (rstmgr_resets.rst_sys_io_n)
   );
 
   spi_device u_spi_device (
-      .tl_i (tl_spi_device_d_h2d),
-      .tl_o (tl_spi_device_d_d2h),
 
       // Input
       .cio_sck_i    (cio_spi_device_sck_p2d),
@@ -607,14 +602,16 @@
       .intr_rxerr_o       (intr_spi_device_rxerr),
       .intr_rxoverflow_o  (intr_spi_device_rxoverflow),
       .intr_txunderflow_o (intr_spi_device_txunderflow),
+
+      // Inter-module signals
+      .tl_i(spi_device_tl_req),
+      .tl_o(spi_device_tl_rsp),
       .scanmode_i   (scanmode_i),
       .clk_i (clkmgr_clocks.clk_io_peri),
       .rst_ni (rstmgr_resets.rst_spi_device_n)
   );
 
   flash_ctrl u_flash_ctrl (
-      .tl_i (tl_flash_ctrl_d_h2d),
-      .tl_o (tl_flash_ctrl_d_d2h),
 
       // Interrupt
       .intr_prog_empty_o (intr_flash_ctrl_prog_empty),
@@ -628,23 +625,25 @@
       .flash_o(flash_ctrl_flash_req),
       .flash_i(flash_ctrl_flash_rsp),
       .otp_i(flash_ctrl_pkg::OTP_FLASH_DEFAULT),
+      .tl_i(flash_ctrl_tl_req),
+      .tl_o(flash_ctrl_tl_rsp),
       .clk_i (clkmgr_clocks.clk_main_infra),
       .rst_ni (rstmgr_resets.rst_lc_n)
   );
 
   rv_timer u_rv_timer (
-      .tl_i (tl_rv_timer_d_h2d),
-      .tl_o (tl_rv_timer_d_d2h),
 
       // Interrupt
       .intr_timer_expired_0_0_o (intr_rv_timer_timer_expired_0_0),
+
+      // Inter-module signals
+      .tl_i(rv_timer_tl_req),
+      .tl_o(rv_timer_tl_rsp),
       .clk_i (clkmgr_clocks.clk_io_timers),
       .rst_ni (rstmgr_resets.rst_sys_io_n)
   );
 
   aes u_aes (
-      .tl_i (tl_aes_d_h2d),
-      .tl_o (tl_aes_d_d2h),
 
       // [0]: ctrl_err
       .alert_tx_o  ( alert_tx[0:0] ),
@@ -652,13 +651,13 @@
 
       // Inter-module signals
       .idle_o(aes_idle),
+      .tl_i(aes_tl_req),
+      .tl_o(aes_tl_rsp),
       .clk_i (clkmgr_clocks.clk_main_aes),
       .rst_ni (rstmgr_resets.rst_sys_n)
   );
 
   hmac u_hmac (
-      .tl_i (tl_hmac_d_h2d),
-      .tl_o (tl_hmac_d_d2h),
 
       // Interrupt
       .intr_hmac_done_o  (intr_hmac_hmac_done),
@@ -668,13 +667,19 @@
       // [1]: msg_push_sha_disabled
       .alert_tx_o  ( alert_tx[1:1] ),
       .alert_rx_i  ( alert_rx[1:1] ),
+
+      // Inter-module signals
+      .tl_i(hmac_tl_req),
+      .tl_o(hmac_tl_rsp),
       .clk_i (clkmgr_clocks.clk_main_hmac),
       .rst_ni (rstmgr_resets.rst_sys_n)
   );
 
   rv_plic u_rv_plic (
-      .tl_i (tl_rv_plic_d_h2d),
-      .tl_o (tl_rv_plic_d_d2h),
+
+      // Inter-module signals
+      .tl_i(rv_plic_tl_req),
+      .tl_o(rv_plic_tl_rsp),
 
       .intr_src_i (intr_vector),
       .irq_o      (irq_plic),
@@ -685,8 +690,6 @@
   );
 
   pinmux u_pinmux (
-      .tl_i (tl_pinmux_d_h2d),
-      .tl_o (tl_pinmux_d_d2h),
 
       // Inter-module signals
       .lc_pinmux_strap_i('0),
@@ -695,6 +698,8 @@
       .io_pok_i({pinmux_pkg::NIOPokSignals{1'b1}}),
       .sleep_en_i(1'b0),
       .aon_wkup_req_o(pwrmgr_wakeups),
+      .tl_i(pinmux_tl_req),
+      .tl_o(pinmux_tl_rsp),
 
       .periph_to_mio_i      (mio_d2p    ),
       .periph_to_mio_oe_i   (mio_d2p_en ),
@@ -718,8 +723,10 @@
   );
 
   padctrl u_padctrl (
-      .tl_i (tl_padctrl_d_h2d),
-      .tl_o (tl_padctrl_d_d2h),
+
+      // Inter-module signals
+      .tl_i(padctrl_tl_req),
+      .tl_o(padctrl_tl_rsp),
 
       .mio_attr_o,
       .dio_attr_o,
@@ -728,14 +735,16 @@
   );
 
   alert_handler u_alert_handler (
-      .tl_i (tl_alert_handler_d_h2d),
-      .tl_o (tl_alert_handler_d_d2h),
 
       // Interrupt
       .intr_classa_o (intr_alert_handler_classa),
       .intr_classb_o (intr_alert_handler_classb),
       .intr_classc_o (intr_alert_handler_classc),
       .intr_classd_o (intr_alert_handler_classd),
+
+      // Inter-module signals
+      .tl_i(alert_handler_tl_req),
+      .tl_o(alert_handler_tl_rsp),
       // TODO: wire this to hardware debug circuit
       .crashdump_o (          ),
       // TODO: wire this to TRNG
@@ -751,8 +760,6 @@
   );
 
   pwrmgr u_pwrmgr (
-      .tl_i (tl_pwrmgr_d_h2d),
-      .tl_o (tl_pwrmgr_d_d2h),
 
       // Interrupt
       .intr_wakeup_o (intr_pwrmgr_wakeup),
@@ -772,6 +779,8 @@
       .pwr_cpu_i(pwrmgr_pwr_cpu),
       .wakeups_i(pwrmgr_wakeups),
       .rstreqs_i('0),
+      .tl_i(pwrmgr_tl_req),
+      .tl_o(pwrmgr_tl_rsp),
       .clk_i (clkmgr_clocks.clk_io_powerup),
       .clk_slow_i (clkmgr_clocks.clk_aon_powerup),
       .rst_ni (rstmgr_resets.rst_por_n),
@@ -779,8 +788,6 @@
   );
 
   rstmgr u_rstmgr (
-      .tl_i (tl_rstmgr_d_h2d),
-      .tl_o (tl_rstmgr_d_d2h),
 
       // Inter-module signals
       .pwr_i(pwrmgr_pwr_rst_req),
@@ -789,6 +796,8 @@
       .ast_i(rstmgr_pkg::RSTMGR_AST_DEFAULT),
       .cpu_i(rstmgr_cpu),
       .peri_i(rstmgr_pkg::RSTMGR_PERI_DEFAULT),
+      .tl_i(rstmgr_tl_req),
+      .tl_o(rstmgr_tl_rsp),
       .scanmode_i   (scanmode_i),
       .scan_rst_ni  (scan_rst_ni),
       .clk_i (clkmgr_clocks.clk_io_powerup),
@@ -801,8 +810,6 @@
   );
 
   clkmgr u_clkmgr (
-      .tl_i (tl_clkmgr_d_h2d),
-      .tl_o (tl_clkmgr_d_d2h),
 
       // Inter-module signals
       .clocks_o(clkmgr_clocks),
@@ -814,6 +821,8 @@
       .pwr_o(pwrmgr_pwr_clk_rsp),
       .dft_i(clkmgr_pkg::CLK_DFT_DEFAULT),
       .status_i(clkmgr_status),
+      .tl_i(clkmgr_tl_req),
+      .tl_o(clkmgr_tl_rsp),
       .clk_i (clkmgr_clocks.clk_io_powerup),
       .rst_ni (rstmgr_resets.rst_por_io_n),
       .rst_main_ni (rstmgr_resets.rst_por_n),
@@ -823,14 +832,16 @@
   );
 
   nmi_gen u_nmi_gen (
-      .tl_i (tl_nmi_gen_d_h2d),
-      .tl_o (tl_nmi_gen_d_d2h),
 
       // Interrupt
       .intr_esc0_o (intr_nmi_gen_esc0),
       .intr_esc1_o (intr_nmi_gen_esc1),
       .intr_esc2_o (intr_nmi_gen_esc2),
       .intr_esc3_o (intr_nmi_gen_esc3),
+
+      // Inter-module signals
+      .tl_i(nmi_gen_tl_req),
+      .tl_o(nmi_gen_tl_rsp),
       // escalation signal inputs
       .esc_rx_o    ( esc_rx   ),
       .esc_tx_i    ( esc_tx   ),
@@ -839,8 +850,6 @@
   );
 
   usbdev u_usbdev (
-      .tl_i (tl_usbdev_d_h2d),
-      .tl_o (tl_usbdev_d_d2h),
 
       // Input
       .cio_sense_i         (cio_usbdev_sense_p2d),
@@ -887,6 +896,8 @@
       // Inter-module signals
       .usb_ref_val_o(),
       .usb_ref_pulse_o(),
+      .tl_i(usbdev_tl_req),
+      .tl_o(usbdev_tl_rsp),
       .clk_i (clkmgr_clocks.clk_io_peri),
       .clk_usb_48mhz_i (clkmgr_clocks.clk_usb_peri),
       .rst_ni (rstmgr_resets.rst_sys_io_n),
@@ -894,8 +905,6 @@
   );
 
   otbn u_otbn (
-      .tl_i (tl_otbn_d_h2d),
-      .tl_o (tl_otbn_d_d2h),
 
       // Interrupt
       .intr_done_o (intr_otbn_done),
@@ -909,6 +918,8 @@
 
       // Inter-module signals
       .idle_o(),
+      .tl_i(otbn_tl_req),
+      .tl_o(otbn_tl_rsp),
       .clk_i (clkmgr_clocks.clk_main_otbn),
       .rst_ni (rstmgr_resets.rst_sys_n)
   );
@@ -975,66 +986,122 @@
     .clk_fixed_i (clkmgr_clocks.clk_io_infra),
     .rst_main_ni (rstmgr_resets.rst_sys_n),
     .rst_fixed_ni (rstmgr_resets.rst_sys_io_n),
-    .tl_corei_i         (tl_corei_h_h2d),
-    .tl_corei_o         (tl_corei_h_d2h),
-    .tl_cored_i         (tl_cored_h_h2d),
-    .tl_cored_o         (tl_cored_h_d2h),
-    .tl_dm_sba_i        (tl_dm_sba_h_h2d),
-    .tl_dm_sba_o        (tl_dm_sba_h_d2h),
-    .tl_rom_o           (tl_rom_d_h2d),
-    .tl_rom_i           (tl_rom_d_d2h),
-    .tl_debug_mem_o     (tl_debug_mem_d_h2d),
-    .tl_debug_mem_i     (tl_debug_mem_d_d2h),
-    .tl_ram_main_o      (tl_ram_main_d_h2d),
-    .tl_ram_main_i      (tl_ram_main_d_d2h),
-    .tl_eflash_o        (tl_eflash_d_h2d),
-    .tl_eflash_i        (tl_eflash_d_d2h),
-    .tl_peri_o          (tl_main_peri_h2d),
-    .tl_peri_i          (tl_main_peri_d2h),
-    .tl_flash_ctrl_o    (tl_flash_ctrl_d_h2d),
-    .tl_flash_ctrl_i    (tl_flash_ctrl_d_d2h),
-    .tl_hmac_o          (tl_hmac_d_h2d),
-    .tl_hmac_i          (tl_hmac_d_d2h),
-    .tl_aes_o           (tl_aes_d_h2d),
-    .tl_aes_i           (tl_aes_d_d2h),
-    .tl_rv_plic_o       (tl_rv_plic_d_h2d),
-    .tl_rv_plic_i       (tl_rv_plic_d_d2h),
-    .tl_pinmux_o        (tl_pinmux_d_h2d),
-    .tl_pinmux_i        (tl_pinmux_d_d2h),
-    .tl_padctrl_o       (tl_padctrl_d_h2d),
-    .tl_padctrl_i       (tl_padctrl_d_d2h),
-    .tl_alert_handler_o (tl_alert_handler_d_h2d),
-    .tl_alert_handler_i (tl_alert_handler_d_d2h),
-    .tl_nmi_gen_o       (tl_nmi_gen_d_h2d),
-    .tl_nmi_gen_i       (tl_nmi_gen_d_d2h),
-    .tl_otbn_o          (tl_otbn_d_h2d),
-    .tl_otbn_i          (tl_otbn_d_d2h),
+
+    // port: tl_corei
+    .tl_corei_i(main_tl_corei_req),
+    .tl_corei_o(main_tl_corei_rsp),
+
+    // port: tl_cored
+    .tl_cored_i(main_tl_cored_req),
+    .tl_cored_o(main_tl_cored_rsp),
+
+    // port: tl_dm_sba
+    .tl_dm_sba_i(main_tl_dm_sba_req),
+    .tl_dm_sba_o(main_tl_dm_sba_rsp),
+
+    // port: tl_rom
+    .tl_rom_o(rom_tl_req),
+    .tl_rom_i(rom_tl_rsp),
+
+    // port: tl_debug_mem
+    .tl_debug_mem_o(main_tl_debug_mem_req),
+    .tl_debug_mem_i(main_tl_debug_mem_rsp),
+
+    // port: tl_ram_main
+    .tl_ram_main_o(ram_main_tl_req),
+    .tl_ram_main_i(ram_main_tl_rsp),
+
+    // port: tl_eflash
+    .tl_eflash_o(eflash_tl_req),
+    .tl_eflash_i(eflash_tl_rsp),
+
+    // port: tl_peri
+    .tl_peri_o(main_tl_peri_req),
+    .tl_peri_i(main_tl_peri_rsp),
+
+    // port: tl_flash_ctrl
+    .tl_flash_ctrl_o(flash_ctrl_tl_req),
+    .tl_flash_ctrl_i(flash_ctrl_tl_rsp),
+
+    // port: tl_hmac
+    .tl_hmac_o(hmac_tl_req),
+    .tl_hmac_i(hmac_tl_rsp),
+
+    // port: tl_aes
+    .tl_aes_o(aes_tl_req),
+    .tl_aes_i(aes_tl_rsp),
+
+    // port: tl_rv_plic
+    .tl_rv_plic_o(rv_plic_tl_req),
+    .tl_rv_plic_i(rv_plic_tl_rsp),
+
+    // port: tl_pinmux
+    .tl_pinmux_o(pinmux_tl_req),
+    .tl_pinmux_i(pinmux_tl_rsp),
+
+    // port: tl_padctrl
+    .tl_padctrl_o(padctrl_tl_req),
+    .tl_padctrl_i(padctrl_tl_rsp),
+
+    // port: tl_alert_handler
+    .tl_alert_handler_o(alert_handler_tl_req),
+    .tl_alert_handler_i(alert_handler_tl_rsp),
+
+    // port: tl_nmi_gen
+    .tl_nmi_gen_o(nmi_gen_tl_req),
+    .tl_nmi_gen_i(nmi_gen_tl_rsp),
+
+    // port: tl_otbn
+    .tl_otbn_o(otbn_tl_req),
+    .tl_otbn_i(otbn_tl_rsp),
+
 
     .scanmode_i
   );
   xbar_peri u_xbar_peri (
     .clk_peri_i (clkmgr_clocks.clk_io_infra),
     .rst_peri_ni (rstmgr_resets.rst_sys_io_n),
-    .tl_main_i       (tl_main_peri_h2d),
-    .tl_main_o       (tl_main_peri_d2h),
-    .tl_uart_o       (tl_uart_d_h2d),
-    .tl_uart_i       (tl_uart_d_d2h),
-    .tl_gpio_o       (tl_gpio_d_h2d),
-    .tl_gpio_i       (tl_gpio_d_d2h),
-    .tl_spi_device_o (tl_spi_device_d_h2d),
-    .tl_spi_device_i (tl_spi_device_d_d2h),
-    .tl_rv_timer_o   (tl_rv_timer_d_h2d),
-    .tl_rv_timer_i   (tl_rv_timer_d_d2h),
-    .tl_usbdev_o     (tl_usbdev_d_h2d),
-    .tl_usbdev_i     (tl_usbdev_d_d2h),
-    .tl_pwrmgr_o     (tl_pwrmgr_d_h2d),
-    .tl_pwrmgr_i     (tl_pwrmgr_d_d2h),
-    .tl_rstmgr_o     (tl_rstmgr_d_h2d),
-    .tl_rstmgr_i     (tl_rstmgr_d_d2h),
-    .tl_clkmgr_o     (tl_clkmgr_d_h2d),
-    .tl_clkmgr_i     (tl_clkmgr_d_d2h),
-    .tl_ram_ret_o    (tl_ram_ret_d_h2d),
-    .tl_ram_ret_i    (tl_ram_ret_d_d2h),
+
+    // port: tl_main
+    .tl_main_i(main_tl_peri_req),
+    .tl_main_o(main_tl_peri_rsp),
+
+    // port: tl_uart
+    .tl_uart_o(uart_tl_req),
+    .tl_uart_i(uart_tl_rsp),
+
+    // port: tl_gpio
+    .tl_gpio_o(gpio_tl_req),
+    .tl_gpio_i(gpio_tl_rsp),
+
+    // port: tl_spi_device
+    .tl_spi_device_o(spi_device_tl_req),
+    .tl_spi_device_i(spi_device_tl_rsp),
+
+    // port: tl_rv_timer
+    .tl_rv_timer_o(rv_timer_tl_req),
+    .tl_rv_timer_i(rv_timer_tl_rsp),
+
+    // port: tl_usbdev
+    .tl_usbdev_o(usbdev_tl_req),
+    .tl_usbdev_i(usbdev_tl_rsp),
+
+    // port: tl_pwrmgr
+    .tl_pwrmgr_o(pwrmgr_tl_req),
+    .tl_pwrmgr_i(pwrmgr_tl_rsp),
+
+    // port: tl_rstmgr
+    .tl_rstmgr_o(rstmgr_tl_req),
+    .tl_rstmgr_i(rstmgr_tl_rsp),
+
+    // port: tl_clkmgr
+    .tl_clkmgr_o(clkmgr_tl_req),
+    .tl_clkmgr_i(clkmgr_tl_rsp),
+
+    // port: tl_ram_ret
+    .tl_ram_ret_o(ram_ret_tl_req),
+    .tl_ram_ret_i(ram_ret_tl_rsp),
+
 
     .scanmode_i
   );