diff --git a/.gitignore b/.gitignore
index 36e5e46bb9c92549ae2469ac31d453fc37c74dea..e1b8ebdacefc51840d3ffa6c6cb2674f489d29d5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,7 @@
 .project
 .ecmproject
 
+logical/nic400_tb
 logical/nic400_sram_chiplet/
 logical/nic400_tlx_sram_chiplet/
 logical/SMC
diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000000000000000000000000000000000000..9ec29b831304e0fb42024294b07c1b9fdc353bcf
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "socdebug_tech"]
+	path = socdebug_tech
+	url = https://git.soton.ac.uk/soclabs/socdebug_tech.git
diff --git a/flist/sram_chiplet_cocotb.flist b/flist/sram_chiplet_cocotb.flist
new file mode 100644
index 0000000000000000000000000000000000000000..1408d4dcff2e4c31a77c114be13f4a2fecabfda9
--- /dev/null
+++ b/flist/sram_chiplet_cocotb.flist
@@ -0,0 +1,231 @@
+
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/top_sram_chiplet/verilog/top_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/SRAM/verilog/SRAM_wrapper.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/SRAM/verilog/SRAM.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/sram_chiplet_apb_subsystem/verilog/sram_chiplet_apb_subsystem.v
+
+#NIC400 nic400_tb
+ 
+EXTRA_ARGS += +incdir+$(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tb/logical/nic400_tb/amib_AXI_CHIPLET_OUT/verilog
+EXTRA_ARGS += +incdir+$(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tb/logical/nic400_tb/asib_AXI_COCOTB/verilog
+EXTRA_ARGS += +incdir+$(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tb/logical/nic400_tb/busmatrix_bm0/verilog
+EXTRA_ARGS += +incdir+$(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tb/logical/nic400_tb/default_slave_ds_1/verilog
+EXTRA_ARGS += +incdir+$(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tb/logical/nic400_tb/reg_slice/verilog
+EXTRA_ARGS += +incdir+$(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tb/logical/nic400_tb/nic400/verilog/Axi
+EXTRA_ARGS += +incdir+$(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tb/logical/nic400_tb/nic400/verilog/Axi4PC
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tb/logical/nic400_tb/nic400/verilog/nic400_tb.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tb/logical/nic400_tb/amib_AXI_CHIPLET_OUT/verilog/nic400_amib_AXI_CHIPLET_OUT_chan_slice_tb.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tb/logical/nic400_tb/amib_AXI_CHIPLET_OUT/verilog/nic400_amib_AXI_CHIPLET_OUT_tb.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tb/logical/nic400_tb/asib_AXI_COCOTB/verilog/nic400_asib_AXI_COCOTB_chan_slice_tb.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tb/logical/nic400_tb/asib_AXI_COCOTB/verilog/nic400_asib_AXI_COCOTB_decode_tb.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tb/logical/nic400_tb/asib_AXI_COCOTB/verilog/nic400_asib_AXI_COCOTB_maskcntl_tb.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tb/logical/nic400_tb/asib_AXI_COCOTB/verilog/nic400_asib_AXI_COCOTB_rd_ss_cdas_tb.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tb/logical/nic400_tb/asib_AXI_COCOTB/verilog/nic400_asib_AXI_COCOTB_tb.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tb/logical/nic400_tb/asib_AXI_COCOTB/verilog/nic400_asib_AXI_COCOTB_wr_ss_cdas_tb.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tb/logical/nic400_tb/busmatrix_bm0/verilog/nic400_bm0_add_sel_ml0_tb.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tb/logical/nic400_tb/busmatrix_bm0/verilog/nic400_bm0_add_sel_ml1_tb.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tb/logical/nic400_tb/busmatrix_bm0/verilog/nic400_bm0_maskcntl_ml0_tb.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tb/logical/nic400_tb/busmatrix_bm0/verilog/nic400_bm0_maskcntl_ml1_tb.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tb/logical/nic400_tb/busmatrix_bm0/verilog/nic400_bm0_ml_blayer_0_tb.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tb/logical/nic400_tb/busmatrix_bm0/verilog/nic400_bm0_ml_build_tb.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tb/logical/nic400_tb/busmatrix_bm0/verilog/nic400_bm0_ml_map_tb.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tb/logical/nic400_tb/busmatrix_bm0/verilog/nic400_bm0_ml_mlayer_0_tb.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tb/logical/nic400_tb/busmatrix_bm0/verilog/nic400_bm0_ml_mlayer_1_tb.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tb/logical/nic400_tb/busmatrix_bm0/verilog/nic400_bm0_rd_ss_tt_s0_tb.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tb/logical/nic400_tb/busmatrix_bm0/verilog/nic400_bm0_rd_wr_arb_0_tb.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tb/logical/nic400_tb/busmatrix_bm0/verilog/nic400_bm0_ret_sel_ml0_tb.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tb/logical/nic400_tb/busmatrix_bm0/verilog/nic400_bm0_ret_sel_ml1_tb.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tb/logical/nic400_tb/busmatrix_bm0/verilog/nic400_bm0_tb.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tb/logical/nic400_tb/busmatrix_bm0/verilog/nic400_bm0_wr_sel_ml0_tb.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tb/logical/nic400_tb/busmatrix_bm0/verilog/nic400_bm0_wr_sel_ml1_tb.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tb/logical/nic400_tb/busmatrix_bm0/verilog/nic400_bm0_wr_ss_tt_s0_tb.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tb/logical/nic400_tb/default_slave_ds_1/verilog/nic400_default_slave_ds_1_tb.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tb/logical/nic400_tb/reg_slice/verilog/nic400_ax4_reg_slice_tb.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tb/logical/nic400_tb/reg_slice/verilog/nic400_buf_reg_slice_tb.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tb/logical/nic400_tb/reg_slice/verilog/nic400_ful_regd_slice_tb.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tb/logical/nic400_tb/reg_slice/verilog/nic400_fwd_regd_slice_tb.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tb/logical/nic400_tb/reg_slice/verilog/nic400_rd_reg_slice_tb.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tb/logical/nic400_tb/reg_slice/verilog/nic400_reg_slice_axi_tb.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tb/logical/nic400_tb/reg_slice/verilog/nic400_rev_regd_slice_tb.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tb/logical/nic400_tb/reg_slice/verilog/nic400_wr_reg_slice_tb.v
+#TLX Files
+EXTRA_ARGS += +incdir+$(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/amib_M1_m/verilog
+EXTRA_ARGS += +incdir+$(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/cdc_blocks/verilog
+EXTRA_ARGS += +incdir+$(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/reg_slice/verilog
+EXTRA_ARGS += +incdir+$(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/tlx_M1_m_tlx/verilog
+EXTRA_ARGS += +incdir+$(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/nic400/verilog/Axi
+EXTRA_ARGS += +incdir+$(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/nic400/verilog/Axi4PC
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/nic400/verilog/nic400_tlx_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/amib_M1_m/verilog/nic400_amib_M1_m_chan_slice_tlx_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/amib_M1_m/verilog/nic400_amib_M1_m_tlx_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/cdc_blocks/verilog/nic400_cdc_capt_nosync_tlx_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/cdc_blocks/verilog/nic400_cdc_capt_sync_tlx_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/cdc_blocks/verilog/nic400_cdc_comb_and2_tlx_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/cdc_blocks/verilog/nic400_cdc_comb_mux2_tlx_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/cdc_blocks/verilog/nic400_cdc_corrupt_gry_tlx_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/cdc_blocks/verilog/nic400_cdc_launch_gry_tlx_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/cdc_blocks/verilog/nic400_cdc_random_tlx_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/nic400/verilog/nic400_cd_clk_m_tlx_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/nic400/verilog/nic400_cd_clk_s_tlx_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/nic400/verilog/nic400_cd_dl_fwd_M1_m_tlx_tlx_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/nic400/verilog/nic400_cd_dl_rev_M1_m_tlx_tlx_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/nic400/verilog/nic400_cd_pl_fwd_M1_m_tlx_tlx_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/nic400/verilog/nic400_cd_pl_rev_M1_m_tlx_tlx_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/nic400/verilog/nic400_master_pwr_M1_m_tlx_tlx_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/nic400/verilog/nic400_slave_pwr_M1_m_tlx_tlx_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/reg_slice/verilog/nic400_ful_regd_slice_tlx_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/reg_slice/verilog/nic400_fwd_regd_slice_tlx_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/reg_slice/verilog/nic400_rev_regd_slice_tlx_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/tlx_M1_m_tlx/verilog/nic400_tlx_M1_m_tlx_ar_fifo_rd_tlx_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/tlx_M1_m_tlx/verilog/nic400_tlx_M1_m_tlx_ar_fifo_sync_tlx_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/tlx_M1_m_tlx/verilog/nic400_tlx_M1_m_tlx_ar_fifo_wr_mux2_tlx_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/tlx_M1_m_tlx/verilog/nic400_tlx_M1_m_tlx_ar_fifo_wr_mux_tlx_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/tlx_M1_m_tlx/verilog/nic400_tlx_M1_m_tlx_ar_fifo_wr_tlx_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/tlx_M1_m_tlx/verilog/nic400_tlx_M1_m_tlx_ar_flow_rd_tlx_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/tlx_M1_m_tlx/verilog/nic400_tlx_M1_m_tlx_ar_flow_sync_tlx_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/tlx_M1_m_tlx/verilog/nic400_tlx_M1_m_tlx_ar_flow_wr_tlx_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/tlx_M1_m_tlx/verilog/nic400_tlx_M1_m_tlx_aw_fifo_rd_tlx_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/tlx_M1_m_tlx/verilog/nic400_tlx_M1_m_tlx_aw_fifo_sync_tlx_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/tlx_M1_m_tlx/verilog/nic400_tlx_M1_m_tlx_aw_fifo_wr_mux2_tlx_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/tlx_M1_m_tlx/verilog/nic400_tlx_M1_m_tlx_aw_fifo_wr_mux_tlx_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/tlx_M1_m_tlx/verilog/nic400_tlx_M1_m_tlx_aw_fifo_wr_tlx_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/tlx_M1_m_tlx/verilog/nic400_tlx_M1_m_tlx_aw_flow_rd_tlx_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/tlx_M1_m_tlx/verilog/nic400_tlx_M1_m_tlx_aw_flow_sync_tlx_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/tlx_M1_m_tlx/verilog/nic400_tlx_M1_m_tlx_aw_flow_wr_tlx_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/tlx_M1_m_tlx/verilog/nic400_tlx_M1_m_tlx_b_fifo_rd_tlx_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/tlx_M1_m_tlx/verilog/nic400_tlx_M1_m_tlx_b_fifo_sync_tlx_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/tlx_M1_m_tlx/verilog/nic400_tlx_M1_m_tlx_b_fifo_wr_mux2_tlx_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/tlx_M1_m_tlx/verilog/nic400_tlx_M1_m_tlx_b_fifo_wr_mux_tlx_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/tlx_M1_m_tlx/verilog/nic400_tlx_M1_m_tlx_b_fifo_wr_tlx_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/tlx_M1_m_tlx/verilog/nic400_tlx_M1_m_tlx_b_flow_rd_tlx_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/tlx_M1_m_tlx/verilog/nic400_tlx_M1_m_tlx_b_flow_sync_tlx_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/tlx_M1_m_tlx/verilog/nic400_tlx_M1_m_tlx_b_flow_wr_tlx_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/tlx_M1_m_tlx/verilog/nic400_tlx_M1_m_tlx_cdc_air_corrupt_tlx_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/tlx_M1_m_tlx/verilog/nic400_tlx_M1_m_tlx_chan_slice_tlx_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/tlx_M1_m_tlx/verilog/nic400_tlx_M1_m_tlx_dl_fwd_domain_tlx_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/tlx_M1_m_tlx/verilog/nic400_tlx_M1_m_tlx_dl_rev_domain_tlx_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/tlx_M1_m_tlx/verilog/nic400_tlx_M1_m_tlx_fwd_clk_buf_tlx_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/tlx_M1_m_tlx/verilog/nic400_tlx_M1_m_tlx_master_domain_tlx_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/tlx_M1_m_tlx/verilog/nic400_tlx_M1_m_tlx_pl_fwd_domain_tlx_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/tlx_M1_m_tlx/verilog/nic400_tlx_M1_m_tlx_pl_rev_domain_tlx_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/tlx_M1_m_tlx/verilog/nic400_tlx_M1_m_tlx_r_fifo_rd_tlx_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/tlx_M1_m_tlx/verilog/nic400_tlx_M1_m_tlx_r_fifo_sync_tlx_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/tlx_M1_m_tlx/verilog/nic400_tlx_M1_m_tlx_r_fifo_wr_mux2_tlx_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/tlx_M1_m_tlx/verilog/nic400_tlx_M1_m_tlx_r_fifo_wr_mux_tlx_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/tlx_M1_m_tlx/verilog/nic400_tlx_M1_m_tlx_r_fifo_wr_tlx_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/tlx_M1_m_tlx/verilog/nic400_tlx_M1_m_tlx_r_flow_rd_tlx_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/tlx_M1_m_tlx/verilog/nic400_tlx_M1_m_tlx_r_flow_sync_tlx_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/tlx_M1_m_tlx/verilog/nic400_tlx_M1_m_tlx_r_flow_wr_tlx_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/tlx_M1_m_tlx/verilog/nic400_tlx_M1_m_tlx_rev_clk_buf_tlx_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/tlx_M1_m_tlx/verilog/nic400_tlx_M1_m_tlx_slave_domain_tlx_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/tlx_M1_m_tlx/verilog/nic400_tlx_M1_m_tlx_w_fifo_rd_tlx_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/tlx_M1_m_tlx/verilog/nic400_tlx_M1_m_tlx_w_fifo_sync_tlx_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/tlx_M1_m_tlx/verilog/nic400_tlx_M1_m_tlx_w_fifo_wr_mux2_tlx_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/tlx_M1_m_tlx/verilog/nic400_tlx_M1_m_tlx_w_fifo_wr_mux_tlx_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/tlx_M1_m_tlx/verilog/nic400_tlx_M1_m_tlx_w_fifo_wr_tlx_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/tlx_M1_m_tlx/verilog/nic400_tlx_M1_m_tlx_w_flow_rd_tlx_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/tlx_M1_m_tlx/verilog/nic400_tlx_M1_m_tlx_w_flow_sync_tlx_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_tlx_sram_chiplet/logical/nic400_tlx_sram_chiplet/tlx_M1_m_tlx/verilog/nic400_tlx_M1_m_tlx_w_flow_wr_tlx_sram_chiplet.v
+
+#NIC400  SRAM Chiplet
+EXTRA_ARGS += +incdir+$(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/amib_AXI_SRAM/verilog
+EXTRA_ARGS += +incdir+$(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/amib_apb_group0/verilog
+EXTRA_ARGS += +incdir+$(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/asib_AHB_ADP/verilog
+EXTRA_ARGS += +incdir+$(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/asib_AXI_CHIPLET_IN/verilog
+EXTRA_ARGS += +incdir+$(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/busmatrix_bm0/verilog
+EXTRA_ARGS += +incdir+$(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/default_slave_ds_1/verilog
+EXTRA_ARGS += +incdir+$(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/reg_slice/verilog
+EXTRA_ARGS += +incdir+$(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/nic400/verilog/Axi
+EXTRA_ARGS += +incdir+$(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/nic400/verilog/Axi4PC
+EXTRA_ARGS += +incdir+$(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/nic400/verilog/ApbPC
+EXTRA_ARGS += +incdir+$(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/nic400/verilog/Apb4PC
+EXTRA_ARGS += +incdir+$(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/nic400/verilog/Ahb
+EXTRA_ARGS += +incdir+$(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/nic400/verilog/AhbPC
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/nic400/verilog/nic400_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/amib_AXI_SRAM/verilog/nic400_amib_AXI_SRAM_chan_slice_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/amib_AXI_SRAM/verilog/nic400_amib_AXI_SRAM_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/amib_apb_group0/verilog/nic400_amib_apb_group0_a_gen_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/amib_apb_group0/verilog/nic400_amib_apb_group0_apb_m_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/amib_apb_group0/verilog/nic400_amib_apb_group0_axi_to_itb_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/amib_apb_group0/verilog/nic400_amib_apb_group0_chan_slice_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/amib_apb_group0/verilog/nic400_amib_apb_group0_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/asib_AHB_ADP/verilog/nic400_asib_AHB_ADP_ahb_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/asib_AHB_ADP/verilog/nic400_asib_AHB_ADP_chan_slice_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/asib_AHB_ADP/verilog/nic400_asib_AHB_ADP_decode_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/asib_AHB_ADP/verilog/nic400_asib_AHB_ADP_itb_to_axi_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/asib_AHB_ADP/verilog/nic400_asib_AHB_ADP_maskcntl_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/asib_AHB_ADP/verilog/nic400_asib_AHB_ADP_rd_ss_cdas_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/asib_AHB_ADP/verilog/nic400_asib_AHB_ADP_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/asib_AHB_ADP/verilog/nic400_asib_AHB_ADP_wr_ss_cdas_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/asib_AXI_CHIPLET_IN/verilog/nic400_asib_AXI_CHIPLET_IN_chan_slice_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/asib_AXI_CHIPLET_IN/verilog/nic400_asib_AXI_CHIPLET_IN_decode_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/asib_AXI_CHIPLET_IN/verilog/nic400_asib_AXI_CHIPLET_IN_maskcntl_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/asib_AXI_CHIPLET_IN/verilog/nic400_asib_AXI_CHIPLET_IN_rd_ss_cdas_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/asib_AXI_CHIPLET_IN/verilog/nic400_asib_AXI_CHIPLET_IN_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/asib_AXI_CHIPLET_IN/verilog/nic400_asib_AXI_CHIPLET_IN_wr_ss_cdas_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/busmatrix_bm0/verilog/nic400_bm0_add_arb_ml0_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/busmatrix_bm0/verilog/nic400_bm0_add_arb_ml1_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/busmatrix_bm0/verilog/nic400_bm0_add_arb_ml2_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/busmatrix_bm0/verilog/nic400_bm0_add_sel_ml0_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/busmatrix_bm0/verilog/nic400_bm0_add_sel_ml1_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/busmatrix_bm0/verilog/nic400_bm0_add_sel_ml2_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/busmatrix_bm0/verilog/nic400_bm0_lrg_arb_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/busmatrix_bm0/verilog/nic400_bm0_maskcntl_ml0_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/busmatrix_bm0/verilog/nic400_bm0_maskcntl_ml1_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/busmatrix_bm0/verilog/nic400_bm0_maskcntl_ml2_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/busmatrix_bm0/verilog/nic400_bm0_ml_blayer_0_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/busmatrix_bm0/verilog/nic400_bm0_ml_blayer_1_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/busmatrix_bm0/verilog/nic400_bm0_ml_build_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/busmatrix_bm0/verilog/nic400_bm0_ml_map_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/busmatrix_bm0/verilog/nic400_bm0_ml_mlayer_0_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/busmatrix_bm0/verilog/nic400_bm0_ml_mlayer_1_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/busmatrix_bm0/verilog/nic400_bm0_ml_mlayer_2_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/busmatrix_bm0/verilog/nic400_bm0_qv_cmp_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/busmatrix_bm0/verilog/nic400_bm0_rd_ss_tt_s0_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/busmatrix_bm0/verilog/nic400_bm0_rd_st_tt_s1_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/busmatrix_bm0/verilog/nic400_bm0_rd_wr_arb_0_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/busmatrix_bm0/verilog/nic400_bm0_rd_wr_arb_1_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/busmatrix_bm0/verilog/nic400_bm0_ret_sel_ml0_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/busmatrix_bm0/verilog/nic400_bm0_ret_sel_ml1_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/busmatrix_bm0/verilog/nic400_bm0_ret_sel_ml2_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/busmatrix_bm0/verilog/nic400_bm0_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/busmatrix_bm0/verilog/nic400_bm0_wr_sel_ml0_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/busmatrix_bm0/verilog/nic400_bm0_wr_sel_ml1_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/busmatrix_bm0/verilog/nic400_bm0_wr_sel_ml2_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/busmatrix_bm0/verilog/nic400_bm0_wr_ss_tt_s0_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/busmatrix_bm0/verilog/nic400_bm0_wr_ss_tt_s1_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/default_slave_ds_1/verilog/nic400_default_slave_ds_1_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/reg_slice/verilog/nic400_ax4_reg_slice_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/reg_slice/verilog/nic400_buf_reg_slice_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/reg_slice/verilog/nic400_ful_regd_slice_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/reg_slice/verilog/nic400_fwd_regd_slice_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/reg_slice/verilog/nic400_rd_reg_slice_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/reg_slice/verilog/nic400_reg_slice_axi_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/reg_slice/verilog/nic400_rev_regd_slice_sram_chiplet.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/nic400_sram_chiplet/logical/nic400_sram_chiplet/reg_slice/verilog/nic400_wr_reg_slice_sram_chiplet.v
+
+# sie300 
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/SMC/logical/models/cells/generic/sie300_arm_and2.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/SMC/logical/models/cells/generic/sie300_arm_or2.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/SMC/logical/models/cells/generic/sie300_arm_sdff2yrpq.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/SMC/logical/models/cells/generic/sie300_arm_xor2.v
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/SMC/logical/shared/verilog/sie300_or_tree/verilog/sie300_or_tree.sv
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/SMC/logical/shared/verilog/sie300_sync/verilog/sie300_sync.sv
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/SMC/logical/sie300_axi5_sram_ctrl_sram_chiplet/verilog/sie300_axi5_sram_ctrl_sram_chiplet.sv
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/SMC/logical/sie300_axi5_sram_ctrl_sram_chiplet/verilog/sie300_axi5_sram_ctrl_sram_chiplet_addr_dec.sv
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/SMC/logical/sie300_axi5_sram_ctrl_sram_chiplet/verilog/sie300_axi5_sram_ctrl_sram_chiplet_arb.sv
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/SMC/logical/sie300_axi5_sram_ctrl_sram_chiplet/verilog/sie300_axi5_sram_ctrl_sram_chiplet_arq.sv
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/SMC/logical/sie300_axi5_sram_ctrl_sram_chiplet/verilog/sie300_axi5_sram_ctrl_sram_chiplet_awq.sv
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/SMC/logical/sie300_axi5_sram_ctrl_sram_chiplet/verilog/sie300_axi5_sram_ctrl_sram_chiplet_axi_mux.sv
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/SMC/logical/sie300_axi5_sram_ctrl_sram_chiplet/verilog/sie300_axi5_sram_ctrl_sram_chiplet_bq.sv
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/SMC/logical/sie300_axi5_sram_ctrl_sram_chiplet/verilog/sie300_axi5_sram_ctrl_sram_chiplet_clamp.sv
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/SMC/logical/sie300_axi5_sram_ctrl_sram_chiplet/verilog/sie300_axi5_sram_ctrl_sram_chiplet_eam.sv
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/SMC/logical/sie300_axi5_sram_ctrl_sram_chiplet/verilog/sie300_axi5_sram_ctrl_sram_chiplet_fifo.sv
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/SMC/logical/sie300_axi5_sram_ctrl_sram_chiplet/verilog/sie300_axi5_sram_ctrl_sram_chiplet_fifo_core.sv
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/SMC/logical/sie300_axi5_sram_ctrl_sram_chiplet/verilog/sie300_axi5_sram_ctrl_sram_chiplet_lpi_ctrl.sv
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/SMC/logical/sie300_axi5_sram_ctrl_sram_chiplet/verilog/sie300_axi5_sram_ctrl_sram_chiplet_one_hot.sv
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/SMC/logical/sie300_axi5_sram_ctrl_sram_chiplet/verilog/sie300_axi5_sram_ctrl_sram_chiplet_rbeat.sv
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/SMC/logical/sie300_axi5_sram_ctrl_sram_chiplet/verilog/sie300_axi5_sram_ctrl_sram_chiplet_resp_gen.sv
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/SMC/logical/sie300_axi5_sram_ctrl_sram_chiplet/verilog/sie300_axi5_sram_ctrl_sram_chiplet_rq.sv
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/SMC/logical/sie300_axi5_sram_ctrl_sram_chiplet/verilog/sie300_axi5_sram_ctrl_sram_chiplet_wbeat.sv
+VERILOG_SOURCES += $(SOCLABS_SRAM_CHIPLET_DIR)/logical/SMC/logical/sie300_axi5_sram_ctrl_sram_chiplet/verilog/sie300_axi5_sram_ctrl_sram_chiplet_wq.sv
diff --git a/logical/SRAM/verilog/SRAM.v b/logical/SRAM/verilog/SRAM.v
new file mode 100644
index 0000000000000000000000000000000000000000..35f5f4b2f470da5e2866744e045874df274d89c5
--- /dev/null
+++ b/logical/SRAM/verilog/SRAM.v
@@ -0,0 +1,76 @@
+
+
+module SRAM (
+    input  wire           clk,
+    input  wire [20:0]    memaddr,
+    input  wire [31:0]   memd,
+    output wire [31:0]   memq,
+    input  wire           memcen,
+    input  wire [3:0]    memwen
+);
+  parameter MEM_DEPTH = (1<<17);
+
+  wire                WriteEnable;        // Write data update
+  wire   [17:0]       Addr;
+  reg    [31:0]      DataAtAddress;      // Current write-data at address
+  reg    [31:0]      Mask;               // Write data-mask
+  reg    [31:0]      NextData;           // Next write-data
+  reg    [31:0]      iQ;   // Memory output data (pipelined)
+
+  integer                  i;     // Write-strobe loop variable
+  integer                  j;     // Mask-bit loop variable
+  assign Addr = memaddr[20:4];
+  // -------------
+  // Memory arrays
+  // -------------
+
+  // Memory array 0 - used in both 32-bit and 64-bit modes
+  reg    [31:0]           mem [MEM_DEPTH-1:0];
+  assign WriteEnable = (memwen != {4{1'b1}}) ? 1'b1 : 1'b0;
+
+  always @ (posedge clk)
+    begin : p_memaccess
+      // Only access the memory when the chip is enabled
+      if (!memcen)
+        begin
+          // Look-up the data at the current address
+          DataAtAddress[31:0] = mem[Addr]; 
+
+          // Update the memory and the data output only when permitted
+          if (WriteEnable)
+            begin
+
+              // Determine the byte-lane mask value by testing the individual
+              //  bits of the active-low write strobes
+              for (i = 0; i < 4; i = i + 1)
+                for (j = i * 8; j <= (i * 8) + 7; j = j + 1)
+                  Mask[j] = ~memwen[i];
+
+              // Determine the value of the next write-data. Term (a) clears
+              //  the required byte lanes and term (b) selects the required
+              //  byte-lanes of the AXI write data. The two data words are
+              //  bit-wise OR'ed together to form the new data word
+              NextData = (DataAtAddress & ~Mask) |             // (a)
+                         (memd & Mask);                           // (b)
+
+              mem[Addr] = NextData[31:0];    // Always assign mem array 0
+
+              // Update the data output with new data
+              iQ <= NextData;
+
+            end
+          else
+            // Update the data output with the original data value
+            iQ <= DataAtAddress;
+
+        end
+
+
+    end
+
+
+  // Drive read data output port at the selected stage of the pipeline
+  assign memq = iQ;
+
+
+endmodule
diff --git a/logical/SRAM/verilog/SRAM_wrapper.v b/logical/SRAM/verilog/SRAM_wrapper.v
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..1615cb2526b72ad16618038e5079b68d7798cb37 100644
--- a/logical/SRAM/verilog/SRAM_wrapper.v
+++ b/logical/SRAM/verilog/SRAM_wrapper.v
@@ -0,0 +1,153 @@
+//-----------------------------------------------------------------------------
+// Expansion Subsystem SRAM Wrapper
+// A joint work commissioned on behalf of SoC Labs, under Arm Academic Access license.
+//
+// Contributors
+//
+// Daniel Newbrook (d.newbrook@soton.ac.uk)
+// 
+// Copyright � 2021-4, SoC Labs (www.soclabs.org)
+//-----------------------------------------------------------------------------
+// Modules instantiated:
+//  sie300_axi5_sram_ctrl_expansion_subsystem
+//  SRAM
+
+module SRAM_wrapper(
+    input  wire             ACLK,
+    input  wire             ARESETn,
+
+    input  wire             AWVALID,
+    output wire             AWREADY,
+    input  wire [4:0]       AWID,
+    input  wire [31:0]      AWADDR,
+    input  wire [7:0]       AWLEN,
+    input  wire [2:0]       AWSIZE,
+    input  wire [1:0]       AWBURST,
+    input  wire             AWLOCK,
+    input  wire [2:0]       AWPROT,
+    input  wire [3:0]       AWQOS,
+    
+    input  wire             WVALID,
+    output wire             WREADY,
+    input  wire [31:0]      WDATA,
+    input  wire [3:0]       WSTRB,
+    input  wire             WLAST,
+    input  wire             WPOISON,
+
+    output wire             BVALID,
+    input  wire             BREADY,
+    output wire [4:0]       BID,
+    output wire [1:0]       BRESP,
+    
+    input  wire             ARVALID,
+    output wire             ARREADY,
+    input  wire [4:0]       ARID,
+    input  wire [31:0]      ARADDR,
+    input  wire [7:0]       ARLEN,
+    input  wire [2:0]       ARSIZE,
+    input  wire [1:0]       ARBURST,
+    input  wire             ARLOCK,
+    input  wire [2:0]       ARPROT,
+    input  wire [3:0]       ARQOS,
+    
+    output wire             RVALID,
+    input  wire             RREADY,
+    output wire [4:0]       RID,
+    output wire [31:0]      RDATA,
+    output wire [1:0]       RRESP,
+    output wire             RLAST,
+    output wire             RPOISON,
+    input  wire             AWAKEUP,
+
+    input  wire             clk_qreqn,
+    output wire             clk_qacceptn,
+    output wire             clk_qdeny,
+    output wire             clk_qactive,
+
+    input  wire             pwr_qreqn,
+    output wire             pwr_qacceptn,
+    output wire             pwr_qdeny,
+    output wire             pwr_qactive,
+
+    input  wire             ext_gt_qreqn,
+    output wire             ext_gt_qacceptn,
+    input  wire             cfg_gate_resp
+
+);
+
+
+wire [20:0]     memaddr;
+wire [31:0]    memd;
+wire [31:0]    memq;
+wire            memcen;
+wire [3:0]     memwen;
+
+sie300_axi5_sram_ctrl_sram_chiplet u_SMC(
+    .aclk(ACLK),
+    .aresetn(ARESETn),
+    .awvalid_s(AWVALID),
+    .awready_s(AWREADY),
+    .awid_s(AWID),
+    .awaddr_s(AWADDR[20:0]),
+    .awlen_s(AWLEN),
+    .awsize_s(AWSIZE),
+    .awburst_s(AWBURST),
+    .awlock_s(AWLOCK),
+    .awprot_s(AWPROT),
+    .awqos_s(AWQOS),
+    .wvalid_s(WVALID),
+    .wready_s(WREADY),
+    .wdata_s(WDATA),
+    .wstrb_s(WSTRB),
+    .wlast_s(WLAST),
+    .wpoison_s(WPOISON),
+    .bvalid_s(BVALID),
+    .bready_s(BREADY),
+    .bid_s(BID),
+    .bresp_s(BRESP),
+    .arvalid_s(ARVALID),
+    .arready_s(ARREADY),
+    .arid_s(ARID),
+    .araddr_s(ARADDR[20:0]),
+    .arlen_s(ARLEN),
+    .arsize_s(ARSIZE),
+    .arburst_s(ARBURST),
+    .arlock_s(ARLOCK),
+    .arprot_s(ARPROT),
+    .arqos_s(ARQOS),
+    .rvalid_s(RVALID),
+    .rready_s(RREADY),
+    .rid_s(RID),
+    .rdata_s(RDATA),
+    .rresp_s(RRESP),
+    .rlast_s(RLAST),
+    .rpoison_s(RPOISON),
+    .awakeup_s(AWAKEUP),
+    .clk_qreqn(clk_qreqn),
+    .clk_qacceptn(clk_qacceptn),
+    .clk_qdeny(clk_qdeny),
+    .clk_qactive(clk_qactive),
+    .pwr_qreqn(pwr_qreqn),
+    .pwr_qacceptn(pwr_qacceptn),
+    .pwr_qdeny(pwr_qdeny),
+    .pwr_qactive(pwr_qactive),
+    .ext_gt_qreqn(ext_gt_qreqn),
+    .ext_gt_qacceptn(ext_gt_qacceptn),
+    .cfg_gate_resp(cfg_gate_resp),
+    .memaddr(memaddr),
+    .memd(memd),
+    .memq(memq),
+    .memcen(memcen),
+    .memwen(memwen)
+);
+
+SRAM u_SRAM(
+    .clk(ACLK),
+    .memaddr(memaddr),
+    .memd(memd),
+    .memq(memq),
+    .memcen(memcen),
+    .memwen(memwen)
+);
+
+endmodule
\ No newline at end of file
diff --git a/logical/sram_chiplet_apb_subsystem/verilog/sram_chiplet_apb_subsystem.v b/logical/sram_chiplet_apb_subsystem/verilog/sram_chiplet_apb_subsystem.v
new file mode 100644
index 0000000000000000000000000000000000000000..8c366c7b3775950ae7d0df21eaf8cd4a0f7f2d09
--- /dev/null
+++ b/logical/sram_chiplet_apb_subsystem/verilog/sram_chiplet_apb_subsystem.v
@@ -0,0 +1,6 @@
+
+module sram_chiplet_apb_subsystem(
+
+);
+
+endmodule
\ No newline at end of file
diff --git a/logical/top_sram_chiplet/verilog/top_sram_chiplet.v b/logical/top_sram_chiplet/verilog/top_sram_chiplet.v
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..fdc45e0334c77c548d6c3fa7cc95b09ddd74943b 100644
--- a/logical/top_sram_chiplet/verilog/top_sram_chiplet.v
+++ b/logical/top_sram_chiplet/verilog/top_sram_chiplet.v
@@ -0,0 +1,412 @@
+//-----------------------------------------------------------------------------
+// SRAM Chiplet Wrapper
+// A joint work commissioned on behalf of SoC Labs, under Arm Academic Access license.
+//
+// Contributors
+//
+// Daniel Newbrook (d.newbrook@soton.ac.uk)
+// 
+// Copyright � 2021-4, SoC Labs (www.soclabs.org)
+//-----------------------------------------------------------------------------
+// Modules instantiated:
+//  nic400_sram_chiplet
+//  nic400_cd_pl_rev_M1_m_tlx_tlx_sram_chiplet
+//  nic400_master_pwr_M1_m_tlx_tlx_sram_chiplet
+//  sram_chiplet_apb_subsystem
+//  SRAM_wrapper
+
+
+module top_sram_chiplet(
+    // Clock and reset
+    input  wire         SYS_CLK,
+    input  wire         DL_FWD_CLK,
+    output wire         DL_REV_CLK,
+
+    input  wire         aRESETn,
+    input  wire         DL_FWD_RESETn,
+    // Thin links interface
+    output wire         tvalid_pl_rev_m1_m_tlx_m_stream,
+    input  wire         tready_pl_rev_m1_m_tlx_m_stream,
+    output wire [15:0]  tdata_pl_rev_m1_m_tlx_m_stream,
+
+    output wire         tvalid_pl_rev_m1_m_tlx_m_flow,
+    input  wire         tready_pl_rev_m1_m_tlx_m_flow,
+    output wire [2:0]   tdata_pl_rev_m1_m_tlx_m_flow,
+
+    input  wire         tvalid_m1_m_tlx_pl_fwd_to_dl_fwd_flow,
+    output wire         tready_m1_m_tlx_pl_fwd_to_dl_fwd_flow,
+    input  wire [1:0]   tdata_m1_m_tlx_pl_fwd_to_dl_fwd_flow,
+
+    input  wire         tvalid_m1_m_tlx_pl_fwd_to_dl_fwd_data,
+    output wire         tready_m1_m_tlx_pl_fwd_to_dl_fwd_data,
+    input  wire [15:0]  tdata_m1_m_tlx_pl_fwd_to_dl_fwd_data
+
+    // FT1248 
+
+    
+);
+
+// Main Bus Wires
+// - SRAM AXI wires
+wire [4:0]  AWID_AXI_SRAM;
+wire [31:0] AWADDR_AXI_SRAM;
+wire [7:0]  AWLEN_AXI_SRAM;
+wire [2:0]  AWSIZE_AXI_SRAM;
+wire [1:0]  AWBURST_AXI_SRAM;
+wire        AWLOCK_AXI_SRAM;
+wire [3:0]  AWCACHE_AXI_SRAM;
+wire [2:0]  AWPROT_AXI_SRAM;
+wire        AWVALID_AXI_SRAM;
+wire        AWREADY_AXI_SRAM;
+wire [31:0] WDATA_AXI_SRAM;
+wire [3:0]  WSTRB_AXI_SRAM;
+wire        WLAST_AXI_SRAM;
+wire        WVALID_AXI_SRAM;
+wire        WREADY_AXI_SRAM;
+wire [4:0]  BID_AXI_SRAM;
+wire [1:0]  BRESP_AXI_SRAM;
+wire        BVALID_AXI_SRAM;
+wire        BREADY_AXI_SRAM;
+wire [4:0]  ARID_AXI_SRAM;
+wire [31:0] ARADDR_AXI_SRAM;
+wire [7:0]  ARLEN_AXI_SRAM;
+wire [2:0]  ARSIZE_AXI_SRAM;
+wire [1:0]  ARBURST_AXI_SRAM;
+wire        ARLOCK_AXI_SRAM;
+wire [3:0]  ARCACHE_AXI_SRAM;
+wire [2:0]  ARPROT_AXI_SRAM;
+wire        ARVALID_AXI_SRAM;
+wire        ARREADY_AXI_SRAM;
+wire [4:0]  RID_AXI_SRAM;
+wire [31:0] RDATA_AXI_SRAM;
+wire [1:0]  RRESP_AXI_SRAM;
+wire        RLAST_AXI_SRAM;
+wire        RVALID_AXI_SRAM;
+wire        RREADY_AXI_SRAM;
+// - PVT (silicon lifetime monitoring) APB wires
+wire [31:0] PADDR_APB_PVT;
+wire [31:0] PWDATA_APB_PVT;
+wire        PWRITE_APB_PVT;
+wire [2:0]  PPROT_APB_PVT;
+wire [3:0]  PSTRB_APB_PVT;
+wire        PENABLE_APB_PVT;
+wire        PSELx_APB_PVT;
+wire [31:0] PRDATA_APB_PVT;
+wire        PSLVERR_APB_PVT;
+wire        PREADY_APB_PVT;
+// - ADP AHB wires
+wire [31:0] HADDR_AHB_ADP;
+wire [1:0]  HTRANS_AHB_ADP;
+wire        HWRITE_AHB_ADP;
+wire [2:0]  HSIZE_AHB_ADP;
+wire [2:0]  HBURST_AHB_ADP;
+wire [3:0]  HPROT_AHB_ADP;
+wire [31:0] HWDATA_AHB_ADP;
+wire        HSELx_AHB_ADP;
+wire [31:0] HRDATA_AHB_ADP;
+wire        HREADY_AHB_ADP;
+wire        HREADYOUT_AHB_ADP;
+wire        HRESP_AHB_ADP;
+// - Chiplet In AXI port
+wire [3:0]  AWID_AXI_CHIPLET_IN;
+wire [31:0] AWADDR_AXI_CHIPLET_IN;
+wire [7:0]  AWLEN_AXI_CHIPLET_IN;
+wire [2:0]  AWSIZE_AXI_CHIPLET_IN;
+wire [1:0]  AWBURST_AXI_CHIPLET_IN;
+wire        AWLOCK_AXI_CHIPLET_IN;
+wire [3:0]  AWCACHE_AXI_CHIPLET_IN;
+wire [2:0]  AWPROT_AXI_CHIPLET_IN;
+wire        AWVALID_AXI_CHIPLET_IN;
+wire        AWREADY_AXI_CHIPLET_IN;
+wire [31:0] WDATA_AXI_CHIPLET_IN;
+wire [3:0]  WSTRB_AXI_CHIPLET_IN;
+wire        WLAST_AXI_CHIPLET_IN;
+wire        WVALID_AXI_CHIPLET_IN;
+wire        WREADY_AXI_CHIPLET_IN;
+wire [3:0]  BID_AXI_CHIPLET_IN;
+wire [1:0]  BRESP_AXI_CHIPLET_IN;
+wire        BVALID_AXI_CHIPLET_IN;
+wire        BREADY_AXI_CHIPLET_IN;
+wire [3:0]  ARID_AXI_CHIPLET_IN;
+wire [31:0] ARADDR_AXI_CHIPLET_IN;
+wire [7:0]  ARLEN_AXI_CHIPLET_IN;
+wire [2:0]  ARSIZE_AXI_CHIPLET_IN;
+wire [1:0]  ARBURST_AXI_CHIPLET_IN;
+wire        ARLOCK_AXI_CHIPLET_IN;
+wire [3:0]  ARCACHE_AXI_CHIPLET_IN;
+wire [2:0]  ARPROT_AXI_CHIPLET_IN;
+wire        ARVALID_AXI_CHIPLET_IN;
+wire        ARREADY_AXI_CHIPLET_IN;
+wire [3:0]  RID_AXI_CHIPLET_IN;
+wire [31:0] RDATA_AXI_CHIPLET_IN;
+wire [1:0]  RRESP_AXI_CHIPLET_IN;
+wire        RLAST_AXI_CHIPLET_IN;
+wire        RVALID_AXI_CHIPLET_IN;
+wire        RREADY_AXI_CHIPLET_IN;
+
+// Thin links internal wires
+wire        tvalid_pl_rev_m1_m_tlx_s_stream;
+wire        tready_pl_rev_m1_m_tlx_s_stream;
+wire [15:0] tdata_pl_rev_m1_m_tlx_s_stream;
+
+
+wire        tvalid_pl_rev_m1_m_tlx_s_flow;
+wire        tready_pl_rev_m1_m_tlx_s_flow;
+wire [2:0]  tdata_pl_rev_m1_m_tlx_s_flow;
+nic400_cd_pl_rev_M1_m_tlx_tlx_sram_chiplet u_cd_pl_rev_M1_m_tlx(
+    // (tdata out)
+    .tvalid_pl_rev_m1_m_tlx_m_stream(tvalid_pl_rev_m1_m_tlx_m_stream),
+    .tready_pl_rev_m1_m_tlx_m_stream(tready_pl_rev_m1_m_tlx_m_stream),
+    .tdata_pl_rev_m1_m_tlx_m_stream(tdata_pl_rev_m1_m_tlx_m_stream),
+
+    // (tdata in)
+    .tvalid_pl_rev_m1_m_tlx_s_stream(tvalid_pl_rev_m1_m_tlx_s_stream),
+    .tready_pl_rev_m1_m_tlx_s_stream(tready_pl_rev_m1_m_tlx_s_stream),
+    .tdata_pl_rev_m1_m_tlx_s_stream(tdata_pl_rev_m1_m_tlx_s_stream),
+
+    // (tdata out)
+    .tvalid_pl_rev_m1_m_tlx_m_flow(tvalid_pl_rev_m1_m_tlx_m_flow),
+    .tready_pl_rev_m1_m_tlx_m_flow(tready_pl_rev_m1_m_tlx_m_flow),
+    .tdata_pl_rev_m1_m_tlx_m_flow(tdata_pl_rev_m1_m_tlx_m_flow),
+
+    // (tdata in)
+    .tvalid_pl_rev_m1_m_tlx_s_flow(tvalid_pl_rev_m1_m_tlx_s_flow),
+    .tready_pl_rev_m1_m_tlx_s_flow(tready_pl_rev_m1_m_tlx_s_flow),
+    .tdata_pl_rev_m1_m_tlx_s_flow(tdata_pl_rev_m1_m_tlx_s_flow),
+
+    .pl_rev_M1_m_tlxclk(SYS_CLK),
+    .pl_rev_M1_m_tlxresetn(aRESETn)
+);
+
+nic400_master_pwr_M1_m_tlx_tlx_sram_chiplet u_master_pwr_M1_m_tlx(
+    // AXI manager power
+    .awid_m1_m_m(AWID_AXI_CHIPLET_IN),
+    .awaddr_m1_m_m(AWADDR_AXI_CHIPLET_IN),
+    .awlen_m1_m_m(AWLEN_AXI_CHIPLET_IN),
+    .awsize_m1_m_m(AWSIZE_AXI_CHIPLET_IN),
+    .awburst_m1_m_m(AWBURST_AXI_CHIPLET_IN),
+    .awlock_m1_m_m(AWLOCK_AXI_CHIPLET_IN),
+    .awcache_m1_m_m(AWCACHE_AXI_CHIPLET_IN),
+    .awprot_m1_m_m(AWPROT_AXI_CHIPLET_IN),
+    .awvalid_m1_m_m(AWVALID_AXI_CHIPLET_IN),
+    .awready_m1_m_m(AWREADY_AXI_CHIPLET_IN),
+    .wdata_m1_m_m(WDATA_AXI_CHIPLET_IN),
+    .wstrb_m1_m_m(WSTRB_AXI_CHIPLET_IN),
+    .wlast_m1_m_m(WLAST_AXI_CHIPLET_IN),
+    .wvalid_m1_m_m(WVALID_AXI_CHIPLET_IN),
+    .wready_m1_m_m(WREADY_AXI_CHIPLET_IN),
+    .bid_m1_m_m(BID_AXI_CHIPLET_IN),
+    .bresp_m1_m_m(BRESP_AXI_CHIPLET_IN),
+    .bvalid_m1_m_m(BVALID_AXI_CHIPLET_IN),
+    .bready_m1_m_m(BREADY_AXI_CHIPLET_IN),
+    .arid_m1_m_m(ARID_AXI_CHIPLET_IN),
+    .araddr_m1_m_m(ARADDR_AXI_CHIPLET_IN),
+    .arlen_m1_m_m(ARLEN_AXI_CHIPLET_IN),
+    .arsize_m1_m_m(ARSIZE_AXI_CHIPLET_IN),
+    .arburst_m1_m_m(ARBURST_AXI_CHIPLET_IN),
+    .arlock_m1_m_m(ARLOCK_AXI_CHIPLET_IN),
+    .arcache_m1_m_m(ARCACHE_AXI_CHIPLET_IN),
+    .arprot_m1_m_m(ARPROT_AXI_CHIPLET_IN),
+    .arvalid_m1_m_m(ARVALID_AXI_CHIPLET_IN),
+    .arready_m1_m_m(ARREADY_AXI_CHIPLET_IN),
+    .rid_m1_m_m(RID_AXI_CHIPLET_IN),
+    .rdata_m1_m_m(RDATA_AXI_CHIPLET_IN),
+    .rresp_m1_m_m(RRESP_AXI_CHIPLET_IN),
+    .rlast_m1_m_m(RLAST_AXI_CHIPLET_IN),
+    .rvalid_m1_m_m(RVALID_AXI_CHIPLET_IN),
+    .rready_m1_m_m(RREADY_AXI_CHIPLET_IN),
+
+    // Thin links data reverse to PL (tdata out)
+    .tvalid_m1_m_tlx_tlx_m_to_pl_rev_data(tvalid_pl_rev_m1_m_tlx_s_stream),
+    .tready_m1_m_tlx_tlx_m_to_pl_rev_data(tready_pl_rev_m1_m_tlx_s_stream),
+    .tdata_m1_m_tlx_tlx_m_to_pl_rev_data(tdata_pl_rev_m1_m_tlx_s_stream),
+
+    // Thin links flow reverse to PL  (tdata out)
+    .tvalid_m1_m_tlx_tlx_m_to_pl_rev_flow(tvalid_pl_rev_m1_m_tlx_s_flow),
+    .tready_m1_m_tlx_tlx_m_to_pl_rev_flow(tready_pl_rev_m1_m_tlx_s_flow),
+    .tdata_m1_m_tlx_tlx_m_to_pl_rev_flow(tdata_pl_rev_m1_m_tlx_s_flow),
+
+    // Thin links data forward from PL (tdata in)
+    .tvalid_m1_m_tlx_pl_fwd_to_dl_fwd_flow(tvalid_m1_m_tlx_pl_fwd_to_dl_fwd_flow),
+    .tready_m1_m_tlx_pl_fwd_to_dl_fwd_flow(tready_m1_m_tlx_pl_fwd_to_dl_fwd_flow),
+    .tdata_m1_m_tlx_pl_fwd_to_dl_fwd_flow(tdata_m1_m_tlx_pl_fwd_to_dl_fwd_flow),
+  
+    // Thin links flow forward from PL (tdata in)
+    .tvalid_m1_m_tlx_pl_fwd_to_dl_fwd_data(tvalid_m1_m_tlx_pl_fwd_to_dl_fwd_data),
+    .tready_m1_m_tlx_pl_fwd_to_dl_fwd_data(tready_m1_m_tlx_pl_fwd_to_dl_fwd_data),
+    .tdata_m1_m_tlx_pl_fwd_to_dl_fwd_data(tdata_m1_m_tlx_pl_fwd_to_dl_fwd_data),
+
+    // Master clock
+    .clk_mclk(SYS_CLK),
+    .clk_mresetn(aRESETn),
+    // DL clock
+    .dl_fwd_M1_m_tlxclk(DL_FWD_CLK),
+    .dl_fwd_M1_m_tlxresetn(DL_FWD_RESETn)
+);
+
+nic400_sram_chiplet u_nic400_sram_chiplet(
+    .AWID_AXI_SRAM(AWID_AXI_SRAM),
+    .AWADDR_AXI_SRAM(AWADDR_AXI_SRAM),
+    .AWLEN_AXI_SRAM(AWLEN_AXI_SRAM),
+    .AWSIZE_AXI_SRAM(AWSIZE_AXI_SRAM),
+    .AWBURST_AXI_SRAM(AWBURST_AXI_SRAM),
+    .AWLOCK_AXI_SRAM(AWLOCK_AXI_SRAM),
+    .AWCACHE_AXI_SRAM(AWCACHE_AXI_SRAM),
+    .AWPROT_AXI_SRAM(AWPROT_AXI_SRAM),
+    .AWVALID_AXI_SRAM(AWVALID_AXI_SRAM),
+    .AWREADY_AXI_SRAM(AWREADY_AXI_SRAM),
+    .WDATA_AXI_SRAM(WDATA_AXI_SRAM),
+    .WSTRB_AXI_SRAM(WSTRB_AXI_SRAM),
+    .WLAST_AXI_SRAM(WLAST_AXI_SRAM),
+    .WVALID_AXI_SRAM(WVALID_AXI_SRAM),
+    .WREADY_AXI_SRAM(WREADY_AXI_SRAM),
+    .BID_AXI_SRAM(BID_AXI_SRAM),
+    .BRESP_AXI_SRAM(BRESP_AXI_SRAM),
+    .BVALID_AXI_SRAM(BVALID_AXI_SRAM),
+    .BREADY_AXI_SRAM(BREADY_AXI_SRAM),
+    .ARID_AXI_SRAM(ARID_AXI_SRAM),
+    .ARADDR_AXI_SRAM(ARADDR_AXI_SRAM),
+    .ARLEN_AXI_SRAM(ARLEN_AXI_SRAM),
+    .ARSIZE_AXI_SRAM(ARSIZE_AXI_SRAM),
+    .ARBURST_AXI_SRAM(ARBURST_AXI_SRAM),
+    .ARLOCK_AXI_SRAM(ARLOCK_AXI_SRAM),
+    .ARCACHE_AXI_SRAM(ARCACHE_AXI_SRAM),
+    .ARPROT_AXI_SRAM(ARPROT_AXI_SRAM),
+    .ARVALID_AXI_SRAM(ARVALID_AXI_SRAM),
+    .ARREADY_AXI_SRAM(ARREADY_AXI_SRAM),
+    .RID_AXI_SRAM(RID_AXI_SRAM),
+    .RDATA_AXI_SRAM(RDATA_AXI_SRAM),
+    .RRESP_AXI_SRAM(RRESP_AXI_SRAM),
+    .RLAST_AXI_SRAM(RLAST_AXI_SRAM),
+    .RVALID_AXI_SRAM(RVALID_AXI_SRAM),
+    .RREADY_AXI_SRAM(RREADY_AXI_SRAM),
+
+    .PADDR_APB_PVT(PADDR_APB_PVT),
+    .PWDATA_APB_PVT(PWDATA_APB_PVT),
+    .PWRITE_APB_PVT(PWRITE_APB_PVT),
+    .PPROT_APB_PVT(PPROT_APB_PVT),
+    .PSTRB_APB_PVT(PSTRB_APB_PVT),
+    .PENABLE_APB_PVT(PENABLE_APB_PVT),
+    .PSELx_APB_PVT(PSELx_APB_PVT),
+    .PRDATA_APB_PVT(PRDATA_APB_PVT),
+    .PSLVERR_APB_PVT(PSLVERR_APB_PVT),
+    .PREADY_APB_PVT(PREADY_APB_PVT),
+
+    .HADDR_AHB_ADP(HADDR_AHB_ADP),
+    .HTRANS_AHB_ADP(HTRANS_AHB_ADP),
+    .HWRITE_AHB_ADP(HWRITE_AHB_ADP),
+    .HSIZE_AHB_ADP(HSIZE_AHB_ADP),
+    .HBURST_AHB_ADP(HBURST_AHB_ADP),
+    .HPROT_AHB_ADP(HPROT_AHB_ADP),
+    .HWDATA_AHB_ADP(HWDATA_AHB_ADP),
+    .HSELx_AHB_ADP(HSELx_AHB_ADP),
+    .HRDATA_AHB_ADP(HRDATA_AHB_ADP),
+    .HREADY_AHB_ADP(HREADY_AHB_ADP),
+    .HREADYOUT_AHB_ADP(HREADYOUT_AHB_ADP),
+    .HRESP_AHB_ADP(HRESP_AHB_ADP),
+
+    .AWID_AXI_CHIPLET_IN(AWID_AXI_CHIPLET_IN),
+    .AWADDR_AXI_CHIPLET_IN(AWADDR_AXI_CHIPLET_IN),
+    .AWLEN_AXI_CHIPLET_IN(AWLEN_AXI_CHIPLET_IN),
+    .AWSIZE_AXI_CHIPLET_IN(AWSIZE_AXI_CHIPLET_IN),
+    .AWBURST_AXI_CHIPLET_IN(AWBURST_AXI_CHIPLET_IN),
+    .AWLOCK_AXI_CHIPLET_IN(AWLOCK_AXI_CHIPLET_IN),
+    .AWCACHE_AXI_CHIPLET_IN(AWCACHE_AXI_CHIPLET_IN),
+    .AWPROT_AXI_CHIPLET_IN(AWPROT_AXI_CHIPLET_IN),
+    .AWVALID_AXI_CHIPLET_IN(AWVALID_AXI_CHIPLET_IN),
+    .AWREADY_AXI_CHIPLET_IN(AWREADY_AXI_CHIPLET_IN),
+    .WDATA_AXI_CHIPLET_IN(WDATA_AXI_CHIPLET_IN),
+    .WSTRB_AXI_CHIPLET_IN(WSTRB_AXI_CHIPLET_IN),
+    .WLAST_AXI_CHIPLET_IN(WLAST_AXI_CHIPLET_IN),
+    .WVALID_AXI_CHIPLET_IN(WVALID_AXI_CHIPLET_IN),
+    .WREADY_AXI_CHIPLET_IN(WREADY_AXI_CHIPLET_IN),
+    .BID_AXI_CHIPLET_IN(BID_AXI_CHIPLET_IN),
+    .BRESP_AXI_CHIPLET_IN(BRESP_AXI_CHIPLET_IN),
+    .BVALID_AXI_CHIPLET_IN(BVALID_AXI_CHIPLET_IN),
+    .BREADY_AXI_CHIPLET_IN(BREADY_AXI_CHIPLET_IN),
+    .ARID_AXI_CHIPLET_IN(ARID_AXI_CHIPLET_IN),
+    .ARADDR_AXI_CHIPLET_IN(ARADDR_AXI_CHIPLET_IN),
+    .ARLEN_AXI_CHIPLET_IN(ARLEN_AXI_CHIPLET_IN),
+    .ARSIZE_AXI_CHIPLET_IN(ARSIZE_AXI_CHIPLET_IN),
+    .ARBURST_AXI_CHIPLET_IN(ARBURST_AXI_CHIPLET_IN),
+    .ARLOCK_AXI_CHIPLET_IN(ARLOCK_AXI_CHIPLET_IN),
+    .ARCACHE_AXI_CHIPLET_IN(ARCACHE_AXI_CHIPLET_IN),
+    .ARPROT_AXI_CHIPLET_IN(ARPROT_AXI_CHIPLET_IN),
+    .ARVALID_AXI_CHIPLET_IN(ARVALID_AXI_CHIPLET_IN),
+    .ARREADY_AXI_CHIPLET_IN(ARREADY_AXI_CHIPLET_IN),
+    .RID_AXI_CHIPLET_IN(RID_AXI_CHIPLET_IN),
+    .RDATA_AXI_CHIPLET_IN(RDATA_AXI_CHIPLET_IN),
+    .RRESP_AXI_CHIPLET_IN(RRESP_AXI_CHIPLET_IN),
+    .RLAST_AXI_CHIPLET_IN(RLAST_AXI_CHIPLET_IN),
+    .RVALID_AXI_CHIPLET_IN(RVALID_AXI_CHIPLET_IN),
+    .RREADY_AXI_CHIPLET_IN(RREADY_AXI_CHIPLET_IN), 
+
+    .clk0clk(SYS_CLK),
+    .clk0clken(1'b1),
+    .clk0resetn(aRESETn)
+);
+
+sram_chiplet_apb_subsystem u_sram_chiplet_apb_subsystem(
+
+);
+
+SRAM_wrapper u_SRAM_wrapper(
+    .ACLK(SYS_CLK),
+    .ARESETn(aRESETn),
+
+    .AWVALID(AWVALID_AXI_SRAM),
+    .AWREADY(AWREADY_AXI_SRAM),
+    .AWID(AWID_AXI_SRAM),
+    .AWADDR(AWADDR_AXI_SRAM),
+    .AWLEN(AWLEN_AXI_SRAM),
+    .AWSIZE(AWSIZE_AXI_SRAM),
+    .AWBURST(AWBURST_AXI_SRAM),
+    .AWLOCK(AWLOCK_AXI_SRAM),
+    .AWPROT(AWPROT_AXI_SRAM),
+    .AWQOS(),
+    .WVALID(WVALID_AXI_SRAM),
+    .WREADY(WREADY_AXI_SRAM),
+    .WDATA(WDATA_AXI_SRAM),
+    .WSTRB(WSTRB_AXI_SRAM),
+    .WLAST(WLAST_AXI_SRAM),
+    .BVALID(BVALID_AXI_SRAM),
+    .BREADY(BREADY_AXI_SRAM),
+    .BID(BID_AXI_SRAM),
+    .BRESP(BRESP_AXI_SRAM),
+    .ARVALID(ARVALID_AXI_SRAM),
+    .ARREADY(ARREADY_AXI_SRAM),
+    .ARID(ARID_AXI_SRAM),
+    .ARADDR(ARADDR_AXI_SRAM),
+    .ARLEN(ARLEN_AXI_SRAM),
+    .ARSIZE(ARSIZE_AXI_SRAM),
+    .ARBURST(ARBURST_AXI_SRAM),
+    .ARLOCK(ARLOCK_AXI_SRAM),
+    .ARPROT(ARPROT_AXI_SRAM),
+    .ARQOS(),
+    .RVALID(RVALID_AXI_SRAM),
+    .RREADY(RREADY_AXI_SRAM),
+    .RID(RID_AXI_SRAM),
+    .RDATA(RDATA_AXI_SRAM),
+    .RRESP(RRESP_AXI_SRAM),
+    .RLAST(RLAST_AXI_SRAM),
+    .AWAKEUP(1'b1),
+
+    .WPOISON(1'b0),
+    .RPOISON(),
+
+    .clk_qreqn(1'b1),
+    .clk_qacceptn(),
+    .clk_qdeny(),
+    .clk_qactive(),
+
+    .pwr_qreqn(1'b1),
+    .pwr_qacceptn(),
+    .pwr_qdeny(),
+    .pwr_qactive(),
+
+    .ext_gt_qreqn(1'b1),
+    .ext_gt_qacceptn(),
+    .cfg_gate_resp(1'b0)
+);
+
+endmodule
diff --git a/socdebug_tech b/socdebug_tech
new file mode 160000
index 0000000000000000000000000000000000000000..7572912a3cde67880b0579db6f2e970ebaf2002d
--- /dev/null
+++ b/socdebug_tech
@@ -0,0 +1 @@
+Subproject commit 7572912a3cde67880b0579db6f2e970ebaf2002d
diff --git a/socrates/BP301_SRAM/config/SRAM_ctrl.yaml b/socrates/BP301_SRAM/config/SRAM_ctrl.yaml
index ec3ef9fb85d9f7000461193298c47c97cd4537ad..2f6d055d00f3315893135d8584820584a4750ce7 100644
--- a/socrates/BP301_SRAM/config/SRAM_ctrl.yaml
+++ b/socrates/BP301_SRAM/config/SRAM_ctrl.yaml
@@ -63,7 +63,7 @@ DATA_WIDTH: 32
 # ID_WIDTH: AXI5 ID width for all channels
 #     Valid values:
 #         2-32
-ID_WIDTH: 4
+ID_WIDTH: 5
 
 
 #
diff --git a/socrates/nic400_sram_chiplet/nic400_sram_chiplet.xml b/socrates/nic400_sram_chiplet/nic400_sram_chiplet.xml
index fe98640e57ed7b538eec921298d96e9935c05945..62145b3902d61cce8e61faa2825dae3fd7ef864a 100644
--- a/socrates/nic400_sram_chiplet/nic400_sram_chiplet.xml
+++ b/socrates/nic400_sram_chiplet/nic400_sram_chiplet.xml
@@ -15,7 +15,7 @@
       <WUSERWidth>0</WUSERWidth>
       <BUSERWidth>0</BUSERWidth>
       <RUSERWidth>0</RUSERWidth>
-      <GlobalIDWidth>1</GlobalIDWidth>
+      <GlobalIDWidth>5</GlobalIDWidth>
       <HierarchicalClockGating>false</HierarchicalClockGating>
       <ClockControllerImplementation>asynchronous</ClockControllerImplementation>
       <RSBCentralRing>false</RSBCentralRing>
@@ -66,11 +66,11 @@
         <AXI4SlaveProtocol>
           <AddressWidth>32</AddressWidth>
           <DataWidth>32</DataWidth>
-          <VIDWidth>0</VIDWidth>
+          <VIDWidth>4</VIDWidth>
           <MultiRegion>false</MultiRegion>
           <TrustZoneSlave>non_secure</TrustZoneSlave>
-          <ReadAcceptance>16</ReadAcceptance>
-          <WriteAcceptance>16</WriteAcceptance>
+          <ReadAcceptance>8</ReadAcceptance>
+          <WriteAcceptance>8</WriteAcceptance>
           <QoSTypeAXI>fixed</QoSTypeAXI>
           <QoSValue>0</QoSValue>
           <TransactionRateRegulation>false</TransactionRateRegulation>
@@ -92,9 +92,9 @@
           <IDWidth>0</IDWidth>
           <MultiRegion>false</MultiRegion>
           <TrustZoneMaster>non_secure</TrustZoneMaster>
-          <ReadIssuing>1</ReadIssuing>
-          <WriteIssuing>1</WriteIssuing>
-          <TotalIssuing>1</TotalIssuing>
+          <ReadIssuing>8</ReadIssuing>
+          <WriteIssuing>8</WriteIssuing>
+          <TotalIssuing>8</TotalIssuing>
           <MultiPorted>false</MultiPorted>
           <IDWidthReduction>true</IDWidthReduction>
           <OutputSignals>false</OutputSignals>
@@ -211,7 +211,7 @@
         &lt;hcg_en&gt;false&lt;/hcg_en&gt;
         &lt;license_status&gt;unlicensed_nic&lt;/license_status&gt;
         &lt;periph_id3 def=&quot;true&quot;&gt;0&lt;/periph_id3&gt;
-        &lt;pl_id_width&gt;1&lt;/pl_id_width&gt;
+        &lt;pl_id_width&gt;5&lt;/pl_id_width&gt;
         &lt;qos_status&gt;false&lt;/qos_status&gt;
         &lt;rsb_arch_central_ring&gt;false&lt;/rsb_arch_central_ring&gt;
         &lt;ruser_width&gt;0&lt;/ruser_width&gt;
@@ -371,7 +371,7 @@
         &lt;token_prerequest def=&quot;true&quot;&gt;false&lt;/token_prerequest&gt;
         &lt;token_prerequest_bridge def=&quot;true&quot;&gt;false&lt;/token_prerequest_bridge&gt;
         &lt;trustzone&gt;nsec&lt;/trustzone&gt;
-        &lt;vid_width&gt;0&lt;/vid_width&gt;
+        &lt;vid_width&gt;4&lt;/vid_width&gt;
         &lt;vn_external&gt;none&lt;/vn_external&gt;
         &lt;vn_external_bridge&gt;none&lt;/vn_external_bridge&gt;
         &lt;x&gt;0&lt;/x&gt;
@@ -971,9 +971,9 @@
         &lt;dest&gt;AXI_CHIPLET_IN&lt;/dest&gt;
         &lt;dest_port&gt;AXI_CHIPLET_IN_s&lt;/dest_port&gt;
         &lt;lock&gt;false&lt;/lock&gt;
-        &lt;out_reads&gt;16&lt;/out_reads&gt;
-        &lt;out_trans&gt;32&lt;/out_trans&gt;
-        &lt;out_writes&gt;16&lt;/out_writes&gt;
+        &lt;out_reads&gt;8&lt;/out_reads&gt;
+        &lt;out_trans&gt;16&lt;/out_trans&gt;
+        &lt;out_writes&gt;8&lt;/out_writes&gt;
         &lt;protocol&gt;axi4&lt;/protocol&gt;
         &lt;ruser&gt;false&lt;/ruser&gt;
         &lt;src&gt;external&lt;/src&gt;
@@ -1003,9 +1003,9 @@
         &lt;dest&gt;external&lt;/dest&gt;
         &lt;dest_port&gt;AXI_SRAM&lt;/dest_port&gt;
         &lt;lock&gt;false&lt;/lock&gt;
-        &lt;out_reads&gt;1&lt;/out_reads&gt;
-        &lt;out_trans&gt;1&lt;/out_trans&gt;
-        &lt;out_writes&gt;1&lt;/out_writes&gt;
+        &lt;out_reads&gt;8&lt;/out_reads&gt;
+        &lt;out_trans&gt;8&lt;/out_trans&gt;
+        &lt;out_writes&gt;8&lt;/out_writes&gt;
         &lt;protocol&gt;axi4&lt;/protocol&gt;
         &lt;ruser&gt;false&lt;/ruser&gt;
         &lt;src&gt;AXI_SRAM&lt;/src&gt;
@@ -1032,9 +1032,9 @@
         &lt;dest&gt;bm0&lt;/dest&gt;
         &lt;dest_port&gt;axi_s_0&lt;/dest_port&gt;
         &lt;lock&gt;false&lt;/lock&gt;
-        &lt;out_reads def=&quot;true&quot;&gt;16&lt;/out_reads&gt;
-        &lt;out_trans&gt;32&lt;/out_trans&gt;
-        &lt;out_writes def=&quot;true&quot;&gt;16&lt;/out_writes&gt;
+        &lt;out_reads def=&quot;true&quot;&gt;8&lt;/out_reads&gt;
+        &lt;out_trans&gt;16&lt;/out_trans&gt;
+        &lt;out_writes def=&quot;true&quot;&gt;8&lt;/out_writes&gt;
         &lt;protocol&gt;axi4&lt;/protocol&gt;
         &lt;src&gt;AXI_CHIPLET_IN&lt;/src&gt;
         &lt;src_port&gt;AXI_CHIPLET_IN_m&lt;/src_port&gt;
@@ -1054,9 +1054,9 @@
         &lt;dest&gt;AXI_SRAM&lt;/dest&gt;
         &lt;dest_port&gt;AXI_SRAM_s&lt;/dest_port&gt;
         &lt;lock&gt;false&lt;/lock&gt;
-        &lt;out_reads&gt;1&lt;/out_reads&gt;
-        &lt;out_trans&gt;1&lt;/out_trans&gt;
-        &lt;out_writes&gt;1&lt;/out_writes&gt;
+        &lt;out_reads&gt;8&lt;/out_reads&gt;
+        &lt;out_trans&gt;8&lt;/out_trans&gt;
+        &lt;out_writes&gt;8&lt;/out_writes&gt;
         &lt;protocol&gt;axi4&lt;/protocol&gt;
         &lt;src&gt;bm0&lt;/src&gt;
         &lt;src_port&gt;axi_m_1&lt;/src_port&gt;
@@ -1066,8 +1066,8 @@
         &lt;dest_port&gt;axi_s_1&lt;/dest_port&gt;
         &lt;lock&gt;false&lt;/lock&gt;
         &lt;out_reads def=&quot;true&quot;&gt;1&lt;/out_reads&gt;
-        &lt;out_trans&gt;3&lt;/out_trans&gt;
-        &lt;out_writes def=&quot;true&quot;&gt;2&lt;/out_writes&gt;
+        &lt;out_trans&gt;5&lt;/out_trans&gt;
+        &lt;out_writes def=&quot;true&quot;&gt;4&lt;/out_writes&gt;
         &lt;protocol&gt;axi4&lt;/protocol&gt;
         &lt;src&gt;AHB_ADP&lt;/src&gt;
         &lt;src_port&gt;AHB_ADP_m&lt;/src_port&gt;
@@ -1087,19 +1087,19 @@
         &lt;link&gt;
             &lt;slave_if&gt;
                 &lt;name&gt;AXI_CHIPLET_IN&lt;/name&gt;
-                &lt;master_if&gt;AXI_SRAM&lt;/master_if&gt;
-                &lt;master_if&gt;apb_group0&lt;/master_if&gt;
                 &lt;master_if&gt;APB_PVT&lt;parent&gt;apb_group0&lt;/parent&gt;
                 &lt;/master_if&gt;
+                &lt;master_if&gt;apb_group0&lt;/master_if&gt;
+                &lt;master_if&gt;AXI_SRAM&lt;/master_if&gt;
             &lt;/slave_if&gt;
         &lt;/link&gt;
         &lt;link&gt;
             &lt;slave_if&gt;
                 &lt;name&gt;AHB_ADP&lt;/name&gt;
-                &lt;master_if&gt;AXI_SRAM&lt;/master_if&gt;
-                &lt;master_if&gt;apb_group0&lt;/master_if&gt;
                 &lt;master_if&gt;APB_PVT&lt;parent&gt;apb_group0&lt;/parent&gt;
                 &lt;/master_if&gt;
+                &lt;master_if&gt;apb_group0&lt;/master_if&gt;
+                &lt;master_if&gt;AXI_SRAM&lt;/master_if&gt;
             &lt;/slave_if&gt;
         &lt;/link&gt;
     &lt;/architecture&gt;
diff --git a/socrates/nic400_tb/nic400_tb.xml b/socrates/nic400_tb/nic400_tb.xml
index e5ed83f8b9f70e1d785c26052daca3c1018b88be..6142c38fa060e0388a8333335f3af302de15bd74 100644
--- a/socrates/nic400_tb/nic400_tb.xml
+++ b/socrates/nic400_tb/nic400_tb.xml
@@ -15,7 +15,7 @@
       <WUSERWidth>0</WUSERWidth>
       <BUSERWidth>0</BUSERWidth>
       <RUSERWidth>0</RUSERWidth>
-      <GlobalIDWidth>0</GlobalIDWidth>
+      <GlobalIDWidth>4</GlobalIDWidth>
       <HierarchicalClockGating>false</HierarchicalClockGating>
       <ClockControllerImplementation>asynchronous</ClockControllerImplementation>
       <RSBCentralRing>false</RSBCentralRing>
@@ -51,13 +51,558 @@
       <ExternalGroups/>
       <APBGroups/>
     </Groups>
-    <Interfaces/>
+    <Interfaces>
+      <SlaveInterface>
+        <Name>AXI_COCOTB</Name>
+        <AXI4SlaveProtocol>
+          <AddressWidth>32</AddressWidth>
+          <DataWidth>32</DataWidth>
+          <VIDWidth>4</VIDWidth>
+          <MultiRegion>false</MultiRegion>
+          <TrustZoneSlave>non_secure</TrustZoneSlave>
+          <ReadAcceptance>8</ReadAcceptance>
+          <WriteAcceptance>8</WriteAcceptance>
+          <QoSTypeAXI>fixed</QoSTypeAXI>
+          <QoSValue>0</QoSValue>
+          <TransactionRateRegulation>false</TransactionRateRegulation>
+          <OutstandingTransactionRegulation>false</OutstandingTransactionRegulation>
+          <LatencyPeriodRegulation>false</LatencyPeriodRegulation>
+          <VNExternal>false</VNExternal>
+        </AXI4SlaveProtocol>
+        <GeographicDomainRef>gd0</GeographicDomainRef>
+        <ClockRef>clk0</ClockRef>
+        <MultiPorted>false</MultiPorted>
+        <CyclicDependencyAvoidanceScheme>single_slave</CyclicDependencyAvoidanceScheme>
+        <LowLatency>false</LowLatency>
+      </SlaveInterface>
+      <MasterInterface>
+        <Name>AXI_CHIPLET_OUT</Name>
+        <AXI4MasterProtocol>
+          <AddressWidth>32</AddressWidth>
+          <DataWidth>32</DataWidth>
+          <IDWidth>0</IDWidth>
+          <MultiRegion>false</MultiRegion>
+          <TrustZoneMaster>non_secure</TrustZoneMaster>
+          <ReadIssuing>8</ReadIssuing>
+          <WriteIssuing>8</WriteIssuing>
+          <TotalIssuing>8</TotalIssuing>
+          <MultiPorted>false</MultiPorted>
+          <IDWidthReduction>true</IDWidthReduction>
+          <OutputSignals>false</OutputSignals>
+          <VNExternal>false</VNExternal>
+        </AXI4MasterProtocol>
+        <GeographicDomainRef>gd0</GeographicDomainRef>
+        <ClockRef>clk0</ClockRef>
+      </MasterInterface>
+    </Interfaces>
     <MemoryMaps>
+      <MemoryMap>
+        <Name>mm0</Name>
+        <MemoryMapSource>
+          <InterfaceRef>AXI_COCOTB</InterfaceRef>
+        </MemoryMapSource>
+        <MappedBlock>
+          <InterfaceRef>AXI_CHIPLET_OUT</InterfaceRef>
+          <Offset>0</Offset>
+          <Range>2097152</Range>
+          <Visibility>true</Visibility>
+          <Region>0</Region>
+        </MappedBlock>
+      </MemoryMap>
     </MemoryMaps>
-    <Paths/>
+    <Paths>
+      <Path>
+        <Source>
+          <InterfaceRef>AXI_COCOTB</InterfaceRef>
+        </Source>
+        <Targets>
+          <Target>
+            <InterfaceRef>AXI_CHIPLET_OUT</InterfaceRef>
+          </Target>
+        </Targets>
+      </Path>
+    </Paths>
     <VirtualNetworks/>
   </Specification>
-  <Architecture/>
+  <Architecture>
+    <NICConfigFile>&lt;periph&gt;
+    &lt;product_version_info major_group=&quot;bu&quot; major_revision=&quot;1&quot; major_version=&quot;00&quot; minor_code=&quot;50000&quot; minor_revision=&quot;2&quot; minor_version=&quot;0&quot; part_quality=&quot;rel&quot; product_code=&quot;nic400&quot; /&gt;
+    &lt;validator_version_info major_revision=&quot;22&quot; minor_revision=&quot;1&quot; /&gt;
+    &lt;global&gt;
+        &lt;address0x0 def=&quot;true&quot;&gt;bottom&lt;/address0x0&gt;
+        &lt;aruser_width&gt;0&lt;/aruser_width&gt;
+        &lt;awuser_width&gt;0&lt;/awuser_width&gt;
+        &lt;buser_width&gt;0&lt;/buser_width&gt;
+        &lt;cc_type&gt;async&lt;/cc_type&gt;
+        &lt;default_protocol&gt;axi4&lt;/default_protocol&gt;
+        &lt;dpe_glb_enable def=&quot;true&quot;&gt;false&lt;/dpe_glb_enable&gt;
+        &lt;dpe_status&gt;false&lt;/dpe_status&gt;
+        &lt;dpe_width def=&quot;true&quot;&gt;5&lt;/dpe_width&gt;
+        &lt;gen_caps&gt;true&lt;/gen_caps&gt;
+        &lt;hcg_en&gt;false&lt;/hcg_en&gt;
+        &lt;license_status&gt;unlicensed_nic&lt;/license_status&gt;
+        &lt;periph_id3 def=&quot;true&quot;&gt;0&lt;/periph_id3&gt;
+        &lt;pl_id_width&gt;4&lt;/pl_id_width&gt;
+        &lt;qos_status&gt;false&lt;/qos_status&gt;
+        &lt;rsb_arch_central_ring&gt;false&lt;/rsb_arch_central_ring&gt;
+        &lt;ruser_width&gt;0&lt;/ruser_width&gt;
+        &lt;sas_visible def=&quot;true&quot;&gt;false&lt;/sas_visible&gt;
+        &lt;start_iid&gt;0&lt;/start_iid&gt;
+        &lt;taxonomy&gt;masterslave&lt;/taxonomy&gt;
+        &lt;thin_links_status def=&quot;true&quot;&gt;false&lt;/thin_links_status&gt;
+        &lt;uppercase_ext_sig&gt;true&lt;/uppercase_ext_sig&gt;
+        &lt;virtual_networks /&gt;
+        &lt;virtual_networks_status&gt;false&lt;/virtual_networks_status&gt;
+        &lt;wuser_width&gt;0&lt;/wuser_width&gt;
+    &lt;/global&gt;
+    &lt;clocks&gt;
+        &lt;domain freq=&quot;100&quot;&gt;clk0&lt;/domain&gt;
+    &lt;/clocks&gt;
+    &lt;asib&gt;
+        &lt;address_ranges&gt;
+            &lt;name&gt;mm0&lt;/name&gt;
+            &lt;range&gt;
+                &lt;addr_max&gt;0x1FFFFF&lt;/addr_max&gt;
+                &lt;addr_min&gt;0x0&lt;/addr_min&gt;
+                &lt;remap&gt;
+                    &lt;bit&gt;default&lt;/bit&gt;
+                    &lt;present&gt;true&lt;/present&gt;
+                    &lt;region&gt;0&lt;/region&gt;
+                    &lt;target&gt;AXI_CHIPLET_OUT&lt;/target&gt;
+                &lt;/remap&gt;
+            &lt;/range&gt;
+        &lt;/address_ranges&gt;
+        &lt;apb_config&gt;false&lt;/apb_config&gt;
+        &lt;apb_slave_no def=&quot;true&quot;&gt;2&lt;/apb_slave_no&gt;
+        &lt;cds&gt;singleslave&lt;/cds&gt;
+        &lt;clock_boundary&gt;none&lt;/clock_boundary&gt;
+        &lt;clock_domain_name_master_if&gt;clk0&lt;/clock_domain_name_master_if&gt;
+        &lt;clock_domain_name_slave_if&gt;clk0&lt;/clock_domain_name_slave_if&gt;
+        &lt;master_if_data_width&gt;32&lt;/master_if_data_width&gt;
+        &lt;multi_ported&gt;false&lt;/multi_ported&gt;
+        &lt;multi_region&gt;false&lt;/multi_region&gt;
+        &lt;name&gt;AXI_COCOTB&lt;/name&gt;
+        &lt;protocol&gt;axi4&lt;/protocol&gt;
+        &lt;qos_config&gt;
+            &lt;hard&gt;disable&lt;/hard&gt;
+            &lt;lqv&gt;disable&lt;/lqv&gt;
+            &lt;pot&gt;disable&lt;/pot&gt;
+        &lt;/qos_config&gt;
+        &lt;qv&gt;
+            &lt;type&gt;fixed&lt;/type&gt;
+            &lt;value&gt;0&lt;/value&gt;
+        &lt;/qv&gt;
+        &lt;reg&gt;
+            &lt;impl&gt;present&lt;/impl&gt;
+            &lt;location&gt;slave_port&lt;/location&gt;
+            &lt;name&gt;aw&lt;/name&gt;
+            &lt;type&gt;rev&lt;/type&gt;
+        &lt;/reg&gt;
+        &lt;reg&gt;
+            &lt;impl&gt;present&lt;/impl&gt;
+            &lt;location&gt;slave_port&lt;/location&gt;
+            &lt;name&gt;w&lt;/name&gt;
+            &lt;type&gt;rev&lt;/type&gt;
+        &lt;/reg&gt;
+        &lt;reg&gt;
+            &lt;impl&gt;present&lt;/impl&gt;
+            &lt;location&gt;slave_port&lt;/location&gt;
+            &lt;name&gt;ar&lt;/name&gt;
+            &lt;type&gt;rev&lt;/type&gt;
+        &lt;/reg&gt;
+        &lt;reg&gt;
+            &lt;depth def=&quot;true&quot;&gt;2&lt;/depth&gt;
+            &lt;impl def=&quot;true&quot;&gt;absent&lt;/impl&gt;
+            &lt;location&gt;boundary&lt;/location&gt;
+            &lt;name&gt;aw&lt;/name&gt;
+            &lt;type&gt;fifo&lt;/type&gt;
+        &lt;/reg&gt;
+        &lt;reg&gt;
+            &lt;depth def=&quot;true&quot;&gt;2&lt;/depth&gt;
+            &lt;impl def=&quot;true&quot;&gt;absent&lt;/impl&gt;
+            &lt;location&gt;boundary&lt;/location&gt;
+            &lt;name&gt;ar&lt;/name&gt;
+            &lt;type&gt;fifo&lt;/type&gt;
+        &lt;/reg&gt;
+        &lt;reg&gt;
+            &lt;depth def=&quot;true&quot;&gt;2&lt;/depth&gt;
+            &lt;impl def=&quot;true&quot;&gt;absent&lt;/impl&gt;
+            &lt;location&gt;boundary&lt;/location&gt;
+            &lt;name&gt;r&lt;/name&gt;
+            &lt;type&gt;fifo&lt;/type&gt;
+        &lt;/reg&gt;
+        &lt;reg&gt;
+            &lt;depth def=&quot;true&quot;&gt;2&lt;/depth&gt;
+            &lt;impl def=&quot;true&quot;&gt;absent&lt;/impl&gt;
+            &lt;location&gt;boundary&lt;/location&gt;
+            &lt;name&gt;w&lt;/name&gt;
+            &lt;type&gt;fifo&lt;/type&gt;
+        &lt;/reg&gt;
+        &lt;reg&gt;
+            &lt;depth def=&quot;true&quot;&gt;2&lt;/depth&gt;
+            &lt;impl def=&quot;true&quot;&gt;absent&lt;/impl&gt;
+            &lt;location&gt;boundary&lt;/location&gt;
+            &lt;name&gt;b&lt;/name&gt;
+            &lt;type&gt;fifo&lt;/type&gt;
+        &lt;/reg&gt;
+        &lt;reg&gt;
+            &lt;impl def=&quot;true&quot;&gt;absent&lt;/impl&gt;
+            &lt;location&gt;master_port&lt;/location&gt;
+            &lt;name&gt;aw&lt;/name&gt;
+            &lt;type def=&quot;true&quot;&gt;full&lt;/type&gt;
+        &lt;/reg&gt;
+        &lt;reg&gt;
+            &lt;impl def=&quot;true&quot;&gt;absent&lt;/impl&gt;
+            &lt;location&gt;master_port&lt;/location&gt;
+            &lt;name&gt;ar&lt;/name&gt;
+            &lt;type def=&quot;true&quot;&gt;full&lt;/type&gt;
+        &lt;/reg&gt;
+        &lt;reg&gt;
+            &lt;impl def=&quot;true&quot;&gt;absent&lt;/impl&gt;
+            &lt;location&gt;master_port&lt;/location&gt;
+            &lt;name&gt;r&lt;/name&gt;
+            &lt;type def=&quot;true&quot;&gt;full&lt;/type&gt;
+        &lt;/reg&gt;
+        &lt;reg&gt;
+            &lt;impl def=&quot;true&quot;&gt;absent&lt;/impl&gt;
+            &lt;location&gt;master_port&lt;/location&gt;
+            &lt;name&gt;w&lt;/name&gt;
+            &lt;type def=&quot;true&quot;&gt;full&lt;/type&gt;
+        &lt;/reg&gt;
+        &lt;reg&gt;
+            &lt;impl def=&quot;true&quot;&gt;absent&lt;/impl&gt;
+            &lt;location&gt;master_port&lt;/location&gt;
+            &lt;name&gt;b&lt;/name&gt;
+            &lt;type def=&quot;true&quot;&gt;full&lt;/type&gt;
+        &lt;/reg&gt;
+        &lt;reg&gt;
+            &lt;impl def=&quot;true&quot;&gt;absent&lt;/impl&gt;
+            &lt;location&gt;slave_port&lt;/location&gt;
+            &lt;name&gt;r&lt;/name&gt;
+            &lt;type def=&quot;true&quot;&gt;full&lt;/type&gt;
+        &lt;/reg&gt;
+        &lt;reg&gt;
+            &lt;impl def=&quot;true&quot;&gt;absent&lt;/impl&gt;
+            &lt;location&gt;slave_port&lt;/location&gt;
+            &lt;name&gt;b&lt;/name&gt;
+            &lt;type def=&quot;true&quot;&gt;full&lt;/type&gt;
+        &lt;/reg&gt;
+        &lt;slave_if_addr_width&gt;32&lt;/slave_if_addr_width&gt;
+        &lt;slave_if_data_width&gt;32&lt;/slave_if_data_width&gt;
+        &lt;token_prerequest def=&quot;true&quot;&gt;false&lt;/token_prerequest&gt;
+        &lt;token_prerequest_bridge def=&quot;true&quot;&gt;false&lt;/token_prerequest_bridge&gt;
+        &lt;trustzone&gt;nsec&lt;/trustzone&gt;
+        &lt;vid_width&gt;4&lt;/vid_width&gt;
+        &lt;vn_external&gt;none&lt;/vn_external&gt;
+        &lt;vn_external_bridge&gt;none&lt;/vn_external_bridge&gt;
+        &lt;x&gt;0&lt;/x&gt;
+        &lt;y&gt;20&lt;/y&gt;
+        &lt;master_if_port_name&gt;AXI_COCOTB_m&lt;/master_if_port_name&gt;
+        &lt;slave_if_port_name&gt;AXI_COCOTB_s&lt;/slave_if_port_name&gt;
+    &lt;/asib&gt;
+    &lt;amib&gt;
+        &lt;apb_config&gt;false&lt;/apb_config&gt;
+        &lt;apb_slave_no&gt;65&lt;/apb_slave_no&gt;
+        &lt;clock_boundary&gt;none&lt;/clock_boundary&gt;
+        &lt;clock_domain_name_master_if&gt;clk0&lt;/clock_domain_name_master_if&gt;
+        &lt;clock_domain_name_slave_if&gt;clk0&lt;/clock_domain_name_slave_if&gt;
+        &lt;compress_id&gt;true&lt;/compress_id&gt;
+        &lt;dest_type&gt;peripheral&lt;/dest_type&gt;
+        &lt;master_if_addr_width&gt;32&lt;/master_if_addr_width&gt;
+        &lt;master_if_data_width&gt;32&lt;/master_if_data_width&gt;
+        &lt;multi_ported&gt;false&lt;/multi_ported&gt;
+        &lt;multi_region&gt;false&lt;/multi_region&gt;
+        &lt;name&gt;AXI_CHIPLET_OUT&lt;/name&gt;
+        &lt;protocol&gt;axi4&lt;/protocol&gt;
+        &lt;qv_out&gt;false&lt;/qv_out&gt;
+        &lt;reg&gt;
+            &lt;impl&gt;present&lt;/impl&gt;
+            &lt;location&gt;master_port&lt;/location&gt;
+            &lt;name&gt;w&lt;/name&gt;
+            &lt;type&gt;rev&lt;/type&gt;
+        &lt;/reg&gt;
+        &lt;reg&gt;
+            &lt;impl&gt;present&lt;/impl&gt;
+            &lt;location&gt;master_port&lt;/location&gt;
+            &lt;name&gt;b&lt;/name&gt;
+            &lt;type&gt;rev&lt;/type&gt;
+        &lt;/reg&gt;
+        &lt;reg&gt;
+            &lt;impl&gt;present&lt;/impl&gt;
+            &lt;location&gt;master_port&lt;/location&gt;
+            &lt;name&gt;r&lt;/name&gt;
+            &lt;type&gt;rev&lt;/type&gt;
+        &lt;/reg&gt;
+        &lt;reg&gt;
+            &lt;impl def=&quot;true&quot;&gt;absent&lt;/impl&gt;
+            &lt;location&gt;slave_port&lt;/location&gt;
+            &lt;name&gt;aw&lt;/name&gt;
+            &lt;type def=&quot;true&quot;&gt;full&lt;/type&gt;
+        &lt;/reg&gt;
+        &lt;reg&gt;
+            &lt;depth def=&quot;true&quot;&gt;2&lt;/depth&gt;
+            &lt;impl def=&quot;true&quot;&gt;absent&lt;/impl&gt;
+            &lt;location&gt;boundary&lt;/location&gt;
+            &lt;name&gt;aw&lt;/name&gt;
+            &lt;type&gt;fifo&lt;/type&gt;
+        &lt;/reg&gt;
+        &lt;reg&gt;
+            &lt;impl def=&quot;true&quot;&gt;absent&lt;/impl&gt;
+            &lt;location&gt;master_port&lt;/location&gt;
+            &lt;name&gt;aw&lt;/name&gt;
+            &lt;type def=&quot;true&quot;&gt;full&lt;/type&gt;
+        &lt;/reg&gt;
+        &lt;reg&gt;
+            &lt;impl def=&quot;true&quot;&gt;absent&lt;/impl&gt;
+            &lt;location&gt;slave_port&lt;/location&gt;
+            &lt;name&gt;ar&lt;/name&gt;
+            &lt;type def=&quot;true&quot;&gt;full&lt;/type&gt;
+        &lt;/reg&gt;
+        &lt;reg&gt;
+            &lt;depth def=&quot;true&quot;&gt;2&lt;/depth&gt;
+            &lt;impl def=&quot;true&quot;&gt;absent&lt;/impl&gt;
+            &lt;location&gt;boundary&lt;/location&gt;
+            &lt;name&gt;ar&lt;/name&gt;
+            &lt;type&gt;fifo&lt;/type&gt;
+        &lt;/reg&gt;
+        &lt;reg&gt;
+            &lt;impl def=&quot;true&quot;&gt;absent&lt;/impl&gt;
+            &lt;location&gt;master_port&lt;/location&gt;
+            &lt;name&gt;ar&lt;/name&gt;
+            &lt;type def=&quot;true&quot;&gt;full&lt;/type&gt;
+        &lt;/reg&gt;
+        &lt;reg&gt;
+            &lt;impl def=&quot;true&quot;&gt;absent&lt;/impl&gt;
+            &lt;location&gt;slave_port&lt;/location&gt;
+            &lt;name&gt;r&lt;/name&gt;
+            &lt;type def=&quot;true&quot;&gt;full&lt;/type&gt;
+        &lt;/reg&gt;
+        &lt;reg&gt;
+            &lt;depth def=&quot;true&quot;&gt;2&lt;/depth&gt;
+            &lt;impl def=&quot;true&quot;&gt;absent&lt;/impl&gt;
+            &lt;location&gt;boundary&lt;/location&gt;
+            &lt;name&gt;r&lt;/name&gt;
+            &lt;type&gt;fifo&lt;/type&gt;
+        &lt;/reg&gt;
+        &lt;reg&gt;
+            &lt;impl def=&quot;true&quot;&gt;absent&lt;/impl&gt;
+            &lt;location&gt;slave_port&lt;/location&gt;
+            &lt;name&gt;w&lt;/name&gt;
+            &lt;type def=&quot;true&quot;&gt;full&lt;/type&gt;
+        &lt;/reg&gt;
+        &lt;reg&gt;
+            &lt;depth def=&quot;true&quot;&gt;2&lt;/depth&gt;
+            &lt;impl def=&quot;true&quot;&gt;absent&lt;/impl&gt;
+            &lt;location&gt;boundary&lt;/location&gt;
+            &lt;name&gt;w&lt;/name&gt;
+            &lt;type&gt;fifo&lt;/type&gt;
+        &lt;/reg&gt;
+        &lt;reg&gt;
+            &lt;impl def=&quot;true&quot;&gt;absent&lt;/impl&gt;
+            &lt;location&gt;slave_port&lt;/location&gt;
+            &lt;name&gt;b&lt;/name&gt;
+            &lt;type def=&quot;true&quot;&gt;full&lt;/type&gt;
+        &lt;/reg&gt;
+        &lt;reg&gt;
+            &lt;depth def=&quot;true&quot;&gt;2&lt;/depth&gt;
+            &lt;impl def=&quot;true&quot;&gt;absent&lt;/impl&gt;
+            &lt;location&gt;boundary&lt;/location&gt;
+            &lt;name&gt;b&lt;/name&gt;
+            &lt;type&gt;fifo&lt;/type&gt;
+        &lt;/reg&gt;
+        &lt;slave_if_data_width&gt;32&lt;/slave_if_data_width&gt;
+        &lt;token_prerequest def=&quot;true&quot;&gt;false&lt;/token_prerequest&gt;
+        &lt;token_prerequest_bridge def=&quot;true&quot;&gt;false&lt;/token_prerequest_bridge&gt;
+        &lt;trustzone&gt;nsec&lt;/trustzone&gt;
+        &lt;vn_external&gt;none&lt;/vn_external&gt;
+        &lt;vn_external_bridge&gt;none&lt;/vn_external_bridge&gt;
+        &lt;x&gt;0&lt;/x&gt;
+        &lt;y&gt;20&lt;/y&gt;
+        &lt;master_if_port_name&gt;AXI_CHIPLET_OUT_m&lt;/master_if_port_name&gt;
+        &lt;slave_if_port_name&gt;AXI_CHIPLET_OUT_s&lt;/slave_if_port_name&gt;
+    &lt;/amib&gt;
+    &lt;inter&gt;
+        &lt;clock_domain&gt;clk0&lt;/clock_domain&gt;
+        &lt;data_width&gt;32&lt;/data_width&gt;
+        &lt;expanded&gt;false&lt;/expanded&gt;
+        &lt;height&gt;20&lt;/height&gt;
+        &lt;impl&gt;mlayer&lt;/impl&gt;
+        &lt;master_if&gt;
+            &lt;name&gt;axi_m_0&lt;/name&gt;
+            &lt;post_arb_reg&gt;absent&lt;/post_arb_reg&gt;
+            &lt;x&gt;0&lt;/x&gt;
+            &lt;y&gt;63&lt;/y&gt;
+        &lt;/master_if&gt;
+        &lt;master_if&gt;
+            &lt;name&gt;axi_m_1&lt;/name&gt;
+            &lt;post_arb_reg&gt;absent&lt;/post_arb_reg&gt;
+            &lt;x&gt;0&lt;/x&gt;
+            &lt;y&gt;83&lt;/y&gt;
+        &lt;/master_if&gt;
+        &lt;name&gt;bm0&lt;/name&gt;
+        &lt;protocol&gt;axi4&lt;/protocol&gt;
+        &lt;slave_if&gt;
+            &lt;name&gt;axi_s_0&lt;/name&gt;
+            &lt;x&gt;0&lt;/x&gt;
+            &lt;y&gt;63&lt;/y&gt;
+        &lt;/slave_if&gt;
+        &lt;sparse&gt;
+            &lt;cds&gt;singleslave&lt;/cds&gt;
+            &lt;sas def=&quot;true&quot;&gt;false&lt;/sas&gt;
+            &lt;slave_if_port&gt;axi_s_0&lt;/slave_if_port&gt;
+            &lt;master_if_port&gt;
+                &lt;name&gt;axi_m_0&lt;/name&gt;
+                &lt;reg&gt;
+                    &lt;impl def=&quot;true&quot;&gt;absent&lt;/impl&gt;
+                    &lt;name&gt;aw&lt;/name&gt;
+                    &lt;type def=&quot;true&quot;&gt;full&lt;/type&gt;
+                &lt;/reg&gt;
+                &lt;reg&gt;
+                    &lt;impl def=&quot;true&quot;&gt;absent&lt;/impl&gt;
+                    &lt;name&gt;ar&lt;/name&gt;
+                    &lt;type def=&quot;true&quot;&gt;full&lt;/type&gt;
+                &lt;/reg&gt;
+                &lt;reg&gt;
+                    &lt;impl def=&quot;true&quot;&gt;absent&lt;/impl&gt;
+                    &lt;name&gt;r&lt;/name&gt;
+                    &lt;type def=&quot;true&quot;&gt;full&lt;/type&gt;
+                &lt;/reg&gt;
+                &lt;reg&gt;
+                    &lt;impl def=&quot;true&quot;&gt;absent&lt;/impl&gt;
+                    &lt;name&gt;w&lt;/name&gt;
+                    &lt;type def=&quot;true&quot;&gt;full&lt;/type&gt;
+                &lt;/reg&gt;
+                &lt;reg&gt;
+                    &lt;impl def=&quot;true&quot;&gt;absent&lt;/impl&gt;
+                    &lt;name&gt;b&lt;/name&gt;
+                    &lt;type def=&quot;true&quot;&gt;full&lt;/type&gt;
+                &lt;/reg&gt;
+            &lt;/master_if_port&gt;
+            &lt;master_if_port&gt;
+                &lt;name&gt;axi_m_1&lt;/name&gt;
+                &lt;reg&gt;
+                    &lt;impl def=&quot;true&quot;&gt;absent&lt;/impl&gt;
+                    &lt;name&gt;aw&lt;/name&gt;
+                    &lt;type def=&quot;true&quot;&gt;full&lt;/type&gt;
+                &lt;/reg&gt;
+                &lt;reg&gt;
+                    &lt;impl def=&quot;true&quot;&gt;absent&lt;/impl&gt;
+                    &lt;name&gt;ar&lt;/name&gt;
+                    &lt;type def=&quot;true&quot;&gt;full&lt;/type&gt;
+                &lt;/reg&gt;
+                &lt;reg&gt;
+                    &lt;impl def=&quot;true&quot;&gt;absent&lt;/impl&gt;
+                    &lt;name&gt;r&lt;/name&gt;
+                    &lt;type def=&quot;true&quot;&gt;full&lt;/type&gt;
+                &lt;/reg&gt;
+                &lt;reg&gt;
+                    &lt;impl def=&quot;true&quot;&gt;absent&lt;/impl&gt;
+                    &lt;name&gt;w&lt;/name&gt;
+                    &lt;type def=&quot;true&quot;&gt;full&lt;/type&gt;
+                &lt;/reg&gt;
+                &lt;reg&gt;
+                    &lt;impl def=&quot;true&quot;&gt;absent&lt;/impl&gt;
+                    &lt;name&gt;b&lt;/name&gt;
+                    &lt;type def=&quot;true&quot;&gt;full&lt;/type&gt;
+                &lt;/reg&gt;
+            &lt;/master_if_port&gt;
+        &lt;/sparse&gt;
+        &lt;type&gt;busmatrix&lt;/type&gt;
+        &lt;width&gt;0&lt;/width&gt;
+        &lt;x&gt;500&lt;/x&gt;
+        &lt;y&gt;45&lt;/y&gt;
+        &lt;master_if_port_name&gt;axi_m_0,axi_m_1&lt;/master_if_port_name&gt;
+        &lt;slave_if_port_name&gt;axi_s_0&lt;/slave_if_port_name&gt;
+    &lt;/inter&gt;
+    &lt;inter&gt;
+        &lt;name&gt;ds_1&lt;/name&gt;
+        &lt;slave_if&gt;
+            &lt;name&gt;axi_s_0&lt;/name&gt;
+            &lt;x&gt;0&lt;/x&gt;
+            &lt;y&gt;0&lt;/y&gt;
+        &lt;/slave_if&gt;
+        &lt;type&gt;default_slave&lt;/type&gt;
+        &lt;x&gt;500&lt;/x&gt;
+        &lt;y&gt;500&lt;/y&gt;
+        &lt;master_if_port_name /&gt;
+        &lt;slave_if_port_name&gt;axi_s_0&lt;/slave_if_port_name&gt;
+    &lt;/inter&gt;
+    &lt;connect&gt;
+        &lt;aruser&gt;false&lt;/aruser&gt;
+        &lt;awuser&gt;false&lt;/awuser&gt;
+        &lt;buser&gt;false&lt;/buser&gt;
+        &lt;dest&gt;AXI_COCOTB&lt;/dest&gt;
+        &lt;dest_port&gt;AXI_COCOTB_s&lt;/dest_port&gt;
+        &lt;lock&gt;false&lt;/lock&gt;
+        &lt;out_reads&gt;8&lt;/out_reads&gt;
+        &lt;out_trans&gt;16&lt;/out_trans&gt;
+        &lt;out_writes&gt;8&lt;/out_writes&gt;
+        &lt;protocol&gt;axi4&lt;/protocol&gt;
+        &lt;ruser&gt;false&lt;/ruser&gt;
+        &lt;src&gt;external&lt;/src&gt;
+        &lt;src_port&gt;AXI_COCOTB&lt;/src_port&gt;
+        &lt;wuser&gt;false&lt;/wuser&gt;
+    &lt;/connect&gt;
+    &lt;connect&gt;
+        &lt;aruser&gt;false&lt;/aruser&gt;
+        &lt;awuser&gt;false&lt;/awuser&gt;
+        &lt;buser&gt;false&lt;/buser&gt;
+        &lt;dest&gt;external&lt;/dest&gt;
+        &lt;dest_port&gt;AXI_CHIPLET_OUT&lt;/dest_port&gt;
+        &lt;lock&gt;false&lt;/lock&gt;
+        &lt;out_reads&gt;8&lt;/out_reads&gt;
+        &lt;out_trans&gt;8&lt;/out_trans&gt;
+        &lt;out_writes&gt;8&lt;/out_writes&gt;
+        &lt;protocol&gt;axi4&lt;/protocol&gt;
+        &lt;ruser&gt;false&lt;/ruser&gt;
+        &lt;src&gt;AXI_CHIPLET_OUT&lt;/src&gt;
+        &lt;src_port&gt;AXI_CHIPLET_OUT_m&lt;/src_port&gt;
+        &lt;wuser&gt;false&lt;/wuser&gt;
+    &lt;/connect&gt;
+    &lt;connect&gt;
+        &lt;dest&gt;bm0&lt;/dest&gt;
+        &lt;dest_port&gt;axi_s_0&lt;/dest_port&gt;
+        &lt;lock&gt;false&lt;/lock&gt;
+        &lt;out_reads def=&quot;true&quot;&gt;8&lt;/out_reads&gt;
+        &lt;out_trans&gt;16&lt;/out_trans&gt;
+        &lt;out_writes def=&quot;true&quot;&gt;8&lt;/out_writes&gt;
+        &lt;protocol&gt;axi4&lt;/protocol&gt;
+        &lt;src&gt;AXI_COCOTB&lt;/src&gt;
+        &lt;src_port&gt;AXI_COCOTB_m&lt;/src_port&gt;
+    &lt;/connect&gt;
+    &lt;connect&gt;
+        &lt;dest&gt;AXI_CHIPLET_OUT&lt;/dest&gt;
+        &lt;dest_port&gt;AXI_CHIPLET_OUT_s&lt;/dest_port&gt;
+        &lt;lock&gt;false&lt;/lock&gt;
+        &lt;out_reads&gt;8&lt;/out_reads&gt;
+        &lt;out_trans&gt;8&lt;/out_trans&gt;
+        &lt;out_writes&gt;8&lt;/out_writes&gt;
+        &lt;protocol&gt;axi4&lt;/protocol&gt;
+        &lt;src&gt;bm0&lt;/src&gt;
+        &lt;src_port&gt;axi_m_0&lt;/src_port&gt;
+    &lt;/connect&gt;
+    &lt;connect&gt;
+        &lt;dest&gt;ds_1&lt;/dest&gt;
+        &lt;dest_port&gt;axi_s_0&lt;/dest_port&gt;
+        &lt;lock&gt;false&lt;/lock&gt;
+        &lt;out_reads&gt;1&lt;/out_reads&gt;
+        &lt;out_trans&gt;2&lt;/out_trans&gt;
+        &lt;out_writes&gt;1&lt;/out_writes&gt;
+        &lt;protocol&gt;axi4&lt;/protocol&gt;
+        &lt;src&gt;bm0&lt;/src&gt;
+        &lt;src_port&gt;axi_m_1&lt;/src_port&gt;
+    &lt;/connect&gt;
+    &lt;architecture&gt;
+        &lt;link&gt;
+            &lt;slave_if&gt;
+                &lt;name&gt;AXI_COCOTB&lt;/name&gt;
+                &lt;master_if&gt;AXI_CHIPLET_OUT&lt;/master_if&gt;
+            &lt;/slave_if&gt;
+        &lt;/link&gt;
+    &lt;/architecture&gt;
+&lt;/periph&gt;
+</NICConfigFile>
+  </Architecture>
   <Deliverables>
     <IPXACT/>
     <RTL/>
diff --git a/socrates/nic400_tlx_sram_chiplet/nic400_tlx_sram_chiplet.xml b/socrates/nic400_tlx_sram_chiplet/nic400_tlx_sram_chiplet.xml
index 281f5543a27913af8ca9dc3cdee38fe75d505afe..e394faacf4434179f5ddd3d6675df88b75b54120 100644
--- a/socrates/nic400_tlx_sram_chiplet/nic400_tlx_sram_chiplet.xml
+++ b/socrates/nic400_tlx_sram_chiplet/nic400_tlx_sram_chiplet.xml
@@ -26,13 +26,13 @@
       <MasterTotalIssuing>16</MasterTotalIssuing>
       <MultiRegion>false</MultiRegion>
       <LockSupport>false</LockSupport>
-      <SLAVE_PROTOCOL>AXI</SLAVE_PROTOCOL>
-      <MASTER_PROTOCOL>AXI</MASTER_PROTOCOL>
+      <SLAVE_PROTOCOL>AXI4</SLAVE_PROTOCOL>
+      <MASTER_PROTOCOL>AXI4</MASTER_PROTOCOL>
       <EarlyWriteResponse>true</EarlyWriteResponse>
       <AllowBrokenBurst>false</AllowBrokenBurst>
       <SLAVE_CLOCK>clk_s</SLAVE_CLOCK>
       <MASTER_CLOCK>clk_m</MASTER_CLOCK>
-      <FW_USER_DEFINED_WIDTH>8</FW_USER_DEFINED_WIDTH>
+      <FW_USER_DEFINED_WIDTH>24</FW_USER_DEFINED_WIDTH>
       <FW_PACKING_STRATEGY>widest_div_4</FW_PACKING_STRATEGY>
       <FW_TLX_TIMING_CLOSURE>false</FW_TLX_TIMING_CLOSURE>
       <REV_PACKING_STRATEGY>widest_div_4</REV_PACKING_STRATEGY>
@@ -107,11 +107,11 @@
       <SLAVE_PREALLOC_4>false</SLAVE_PREALLOC_4>
       <FW_PHYSICAL_LINK>16</FW_PHYSICAL_LINK>
       <REV_PHYSICAL_LINK>16</REV_PHYSICAL_LINK>
-      <FW_AXI_SIGNAL>145</FW_AXI_SIGNAL>
+      <FW_AXI_SIGNAL>151</FW_AXI_SIGNAL>
       <REV_AXI_SIGNAL>45</REV_AXI_SIGNAL>
-      <FW_BANDWIDTH_PERCENTAGE>17</FW_BANDWIDTH_PERCENTAGE>
-      <FW_UTILIZATION_PERCENTAGE>86</FW_UTILIZATION_PERCENTAGE>
-      <FW_REDUCTION_PERCENTAGE>91</FW_REDUCTION_PERCENTAGE>
+      <FW_BANDWIDTH_PERCENTAGE>20</FW_BANDWIDTH_PERCENTAGE>
+      <FW_UTILIZATION_PERCENTAGE>92</FW_UTILIZATION_PERCENTAGE>
+      <FW_REDUCTION_PERCENTAGE>90</FW_REDUCTION_PERCENTAGE>
       <REV_BANDWIDTH_PERCENTAGE>24</REV_BANDWIDTH_PERCENTAGE>
       <REV_UTILIZATION_PERCENTAGE>98</REV_UTILIZATION_PERCENTAGE>
       <REV_REDUCTION_PERCENTAGE>78</REV_REDUCTION_PERCENTAGE>
@@ -157,7 +157,7 @@
     <Interfaces>
       <SlaveInterface>
         <Name>M1_s</Name>
-        <AXISlaveProtocol>
+        <AXI4SlaveProtocol>
           <AddressWidth>32</AddressWidth>
           <DataWidth>32</DataWidth>
           <ARUSEREnabled>false</ARUSEREnabled>
@@ -165,12 +165,12 @@
           <RUSEREnabled>false</RUSEREnabled>
           <WUSEREnabled>false</WUSEREnabled>
           <BUSEREnabled>false</BUSEREnabled>
-        </AXISlaveProtocol>
+        </AXI4SlaveProtocol>
         <ClockRef>clk_s</ClockRef>
       </SlaveInterface>
       <MasterInterface>
         <Name>M1_m</Name>
-        <AXIMasterProtocol>
+        <AXI4MasterProtocol>
           <AddressWidth>32</AddressWidth>
           <DataWidth>32</DataWidth>
           <ARUSEREnabled>false</ARUSEREnabled>
@@ -178,7 +178,7 @@
           <RUSEREnabled>false</RUSEREnabled>
           <WUSEREnabled>false</WUSEREnabled>
           <BUSEREnabled>false</BUSEREnabled>
-        </AXIMasterProtocol>
+        </AXI4MasterProtocol>
         <ClockRef>clk_m</ClockRef>
       </MasterInterface>
     </Interfaces>
@@ -238,7 +238,7 @@
          &lt;power_domain_crossing&gt;false&lt;/power_domain_crossing&gt;
          &lt;fwd_tlx&gt;
             &lt;pl_clock_ratio&gt;1&lt;/pl_clock_ratio&gt;
-            &lt;dll_link_user_def_width&gt;8&lt;/dll_link_user_def_width&gt;
+            &lt;dll_link_user_def_width&gt;24&lt;/dll_link_user_def_width&gt;
             &lt;pl_reg_stages&gt;0&lt;/pl_reg_stages&gt;
             &lt;dll_link_width_option&gt;widest_div_4&lt;/dll_link_width_option&gt;
          &lt;/fwd_tlx&gt;
@@ -307,7 +307,7 @@
       &lt;master_if_addr_width&gt;32&lt;/master_if_addr_width&gt;
       &lt;clock_domain_name_slave_if&gt;clk_s&lt;/clock_domain_name_slave_if&gt;
       &lt;clock_domain_name_master_if&gt;clk_m&lt;/clock_domain_name_master_if&gt;
-      &lt;protocol&gt;axi&lt;/protocol&gt;
+      &lt;protocol&gt;axi4&lt;/protocol&gt;
       &lt;dest_type&gt;peripheral&lt;/dest_type&gt;
       &lt;name&gt;M1_m&lt;/name&gt;
       &lt;vn_external_bridge&gt;none&lt;/vn_external_bridge&gt;
@@ -384,7 +384,7 @@
       &lt;out_trans&gt;16&lt;/out_trans&gt;
       &lt;dest&gt;external&lt;/dest&gt;
       &lt;src_port&gt;M1_m_m&lt;/src_port&gt;
-      &lt;protocol&gt;axi&lt;/protocol&gt;
+      &lt;protocol&gt;axi4&lt;/protocol&gt;
       &lt;buser&gt;false&lt;/buser&gt;
       &lt;out_reads&gt;16&lt;/out_reads&gt;
       &lt;lock&gt;false&lt;/lock&gt;
@@ -400,7 +400,7 @@
       &lt;out_trans&gt;32&lt;/out_trans&gt;
       &lt;dest&gt;M1_m&lt;/dest&gt;
       &lt;src_port&gt;M1_m_s&lt;/src_port&gt;
-      &lt;protocol&gt;axi&lt;/protocol&gt;
+      &lt;protocol&gt;axi4&lt;/protocol&gt;
       &lt;buser&gt;false&lt;/buser&gt;
       &lt;out_reads&gt;16&lt;/out_reads&gt;
       &lt;lock&gt;false&lt;/lock&gt;
diff --git a/verif/cocotb/makefile b/verif/cocotb/makefile
new file mode 100644
index 0000000000000000000000000000000000000000..00ee7c3e5018472de0170f2c6e913560272f61f2
--- /dev/null
+++ b/verif/cocotb/makefile
@@ -0,0 +1,68 @@
+# Copyright (c) 2020 Alex Forencich
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+# THE SOFTWARE.
+
+TOPLEVEL_LANG = verilog
+
+SIM ?= questa
+WAVES ?= 0
+GUI ?= 0
+
+COCOTB_HDL_TIMEUNIT = 1ns
+COCOTB_HDL_TIMEPRECISION = 1ns
+
+DUT      = sram_chiplet_cocotb
+TOPLEVEL = sram_chiplet_cocotb
+MODULE   = sram_chiplet_tests
+
+VERILOG_SOURCES += ./sram_chiplet_cocotb.v
+
+
+ifeq ($(SIM), icarus)
+	PLUSARGS += -fst
+
+	COMPILE_ARGS += $(foreach v,$(filter PARAM_%,$(.VARIABLES)),-P $(TOPLEVEL).$(subst PARAM_,,$(v))=$($(v)))
+
+	ifeq ($(WAVES), 1)
+		VERILOG_SOURCES += iverilog_dump.v
+		COMPILE_ARGS += -s iverilog_dump
+	endif
+else ifeq ($(SIM), verilator)
+	COMPILE_ARGS += -Wno-SELRANGE -Wno-WIDTH -Wno-CASEINCOMPLETE
+
+	COMPILE_ARGS += $(foreach v,$(filter PARAM_%,$(.VARIABLES)),-G$(subst PARAM_,,$(v))=$($(v)))
+
+	ifeq ($(WAVES), 1)
+		COMPILE_ARGS += --trace-fst
+	endif
+endif
+include $(SOCLABS_SRAM_CHIPLET_DIR)/flist/sram_chiplet_cocotb.flist
+include $(shell cocotb-config --makefiles)/Makefile.sim
+
+iverilog_dump.v:
+	echo 'module iverilog_dump();' > $@
+	echo 'initial begin' >> $@
+	echo '    $$dumpfile("$(TOPLEVEL).fst");' >> $@
+	echo '    $$dumpvars(0, $(TOPLEVEL));' >> $@
+	echo 'end' >> $@
+	echo 'endmodule' >> $@
+
+clean::
+	@rm -rf iverilog_dump.v
+	@rm -rf dump.fst $(TOPLEVEL).fst
diff --git a/verif/cocotb/sram_chiplet_cocotb.v b/verif/cocotb/sram_chiplet_cocotb.v
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..c07106c9ffc8d3a6a6fdef3c84ab9f5b5e7c1eb1 100644
--- a/verif/cocotb/sram_chiplet_cocotb.v
+++ b/verif/cocotb/sram_chiplet_cocotb.v
@@ -0,0 +1,299 @@
+`timescale 1ns/1ps
+
+module sram_chiplet_cocotb(
+    input  wire         clk_in,
+    input  wire         aresetn,
+
+    input  wire [3:0]   cocotb_awid,
+    input  wire [31:0]  cocotb_awaddr,
+    input  wire [7:0]   cocotb_awlen,
+    input  wire [2:0]   cocotb_awsize,
+    input  wire [1:0]   cocotb_awburst,
+    input  wire         cocotb_awlock,
+    input  wire [3:0]   cocotb_awcache,
+    input  wire [2:0]   cocotb_awprot,
+    input  wire         cocotb_awvalid,
+    output wire         cocotb_awready,
+    input  wire [31:0]  cocotb_wdata,
+    input  wire [3:0]   cocotb_wstrb,
+    input  wire         cocotb_wlast,
+    input  wire         cocotb_wvalid,
+    output wire         cocotb_wready,
+    output wire [3:0]   cocotb_bid,
+    output wire [1:0]   cocotb_bresp,
+    output wire         cocotb_bvalid,
+    input  wire         cocotb_bready,
+    input  wire [3:0]   cocotb_arid,
+    input  wire [31:0]  cocotb_araddr,
+    input  wire [7:0]   cocotb_arlen,
+    input  wire [2:0]   cocotb_arsize,
+    input  wire [1:0]   cocotb_arburst,
+    input  wire         cocotb_arlock,
+    input  wire [3:0]   cocotb_arcache,
+    input  wire [2:0]   cocotb_arprot,
+    input  wire         cocotb_arvalid,
+    output wire         cocotb_arready,
+    output wire [3:0]   cocotb_rid,
+    output wire [31:0]  cocotb_rdata,
+    output wire [1:0]   cocotb_rresp,
+    output wire         cocotb_rlast,
+    output wire         cocotb_rvalid,
+    input  wire         cocotb_rready
+
+);
+
+
+wire DL_REV_CLK;
+wire         tvalid_pl_rev_m1_m_tlx_m_stream;
+wire         tready_pl_rev_m1_m_tlx_m_stream;
+wire [15:0]  tdata_pl_rev_m1_m_tlx_m_stream;
+wire         tvalid_pl_rev_m1_m_tlx_m_flow;
+wire         tready_pl_rev_m1_m_tlx_m_flow;
+wire [2:0]   tdata_pl_rev_m1_m_tlx_m_flow;
+wire         tvalid_m1_m_tlx_pl_fwd_to_dl_fwd_flow;
+wire         tready_m1_m_tlx_pl_fwd_to_dl_fwd_flow;
+wire [1:0]   tdata_m1_m_tlx_pl_fwd_to_dl_fwd_flow;
+wire         tvalid_m1_m_tlx_pl_fwd_to_dl_fwd_data;
+wire         tready_m1_m_tlx_pl_fwd_to_dl_fwd_data;
+wire [15:0]  tdata_m1_m_tlx_pl_fwd_to_dl_fwd_data;
+
+
+wire [3:0]  AWID_AXI_CHIPLET_OUT;
+wire [31:0] AWADDR_AXI_CHIPLET_OUT;
+wire [7:0]  AWLEN_AXI_CHIPLET_OUT;
+wire [2:0]  AWSIZE_AXI_CHIPLET_OUT;
+wire [1:0]  AWBURST_AXI_CHIPLET_OUT;
+wire        AWLOCK_AXI_CHIPLET_OUT;
+wire [3:0]  AWCACHE_AXI_CHIPLET_OUT;
+wire [2:0]  AWPROT_AXI_CHIPLET_OUT;
+wire        AWVALID_AXI_CHIPLET_OUT;
+wire        AWREADY_AXI_CHIPLET_OUT;
+wire [31:0] WDATA_AXI_CHIPLET_OUT;
+wire [3:0]  WSTRB_AXI_CHIPLET_OUT;
+wire        WLAST_AXI_CHIPLET_OUT;
+wire        WVALID_AXI_CHIPLET_OUT;
+wire        WREADY_AXI_CHIPLET_OUT;
+wire [3:0]  BID_AXI_CHIPLET_OUT;
+wire [1:0]  BRESP_AXI_CHIPLET_OUT;
+wire        BVALID_AXI_CHIPLET_OUT;
+wire        BREADY_AXI_CHIPLET_OUT;
+wire [3:0]  ARID_AXI_CHIPLET_OUT;
+wire [31:0] ARADDR_AXI_CHIPLET_OUT;
+wire [7:0]  ARLEN_AXI_CHIPLET_OUT;
+wire [2:0]  ARSIZE_AXI_CHIPLET_OUT;
+wire [1:0]  ARBURST_AXI_CHIPLET_OUT;
+wire        ARLOCK_AXI_CHIPLET_OUT;
+wire [3:0]  ARCACHE_AXI_CHIPLET_OUT;
+wire [2:0]  ARPROT_AXI_CHIPLET_OUT;
+wire        ARVALID_AXI_CHIPLET_OUT;
+wire        ARREADY_AXI_CHIPLET_OUT;
+wire [3:0]  RID_AXI_CHIPLET_OUT;
+wire [31:0] RDATA_AXI_CHIPLET_OUT;
+wire [1:0]  RRESP_AXI_CHIPLET_OUT;
+wire        RLAST_AXI_CHIPLET_OUT;
+wire        RVALID_AXI_CHIPLET_OUT;
+wire        RREADY_AXI_CHIPLET_OUT;
+
+wire        tvalid_m1_m_tlx_fwd_ib_axi_stream;
+wire        tready_m1_m_tlx_fwd_ib_axi_stream;
+wire [15:0] tdata_m1_m_tlx_fwd_ib_axi_stream;
+
+wire        tvalid_m1_m_tlx_fwd_ib_flow;
+wire        tready_m1_m_tlx_fwd_ib_flow;
+wire [1:0]  tdata_m1_m_tlx_fwd_ib_flow;
+nic400_tb u_nic400_tb(
+    .AWID_AXI_CHIPLET_OUT(AWID_AXI_CHIPLET_OUT),
+    .AWADDR_AXI_CHIPLET_OUT(AWADDR_AXI_CHIPLET_OUT),
+    .AWLEN_AXI_CHIPLET_OUT(AWLEN_AXI_CHIPLET_OUT),
+    .AWSIZE_AXI_CHIPLET_OUT(AWSIZE_AXI_CHIPLET_OUT),
+    .AWBURST_AXI_CHIPLET_OUT(AWBURST_AXI_CHIPLET_OUT),
+    .AWLOCK_AXI_CHIPLET_OUT(AWLOCK_AXI_CHIPLET_OUT),
+    .AWCACHE_AXI_CHIPLET_OUT(AWCACHE_AXI_CHIPLET_OUT),
+    .AWPROT_AXI_CHIPLET_OUT(AWPROT_AXI_CHIPLET_OUT),
+    .AWVALID_AXI_CHIPLET_OUT(AWVALID_AXI_CHIPLET_OUT),
+    .AWREADY_AXI_CHIPLET_OUT(AWREADY_AXI_CHIPLET_OUT),
+    .WDATA_AXI_CHIPLET_OUT(WDATA_AXI_CHIPLET_OUT),
+    .WSTRB_AXI_CHIPLET_OUT(WSTRB_AXI_CHIPLET_OUT),
+    .WLAST_AXI_CHIPLET_OUT(WLAST_AXI_CHIPLET_OUT),
+    .WVALID_AXI_CHIPLET_OUT(WVALID_AXI_CHIPLET_OUT),
+    .WREADY_AXI_CHIPLET_OUT(WREADY_AXI_CHIPLET_OUT),
+    .BID_AXI_CHIPLET_OUT(BID_AXI_CHIPLET_OUT),
+    .BRESP_AXI_CHIPLET_OUT(BRESP_AXI_CHIPLET_OUT),
+    .BVALID_AXI_CHIPLET_OUT(BVALID_AXI_CHIPLET_OUT),
+    .BREADY_AXI_CHIPLET_OUT(BREADY_AXI_CHIPLET_OUT),
+    .ARID_AXI_CHIPLET_OUT(ARID_AXI_CHIPLET_OUT),
+    .ARADDR_AXI_CHIPLET_OUT(ARADDR_AXI_CHIPLET_OUT),
+    .ARLEN_AXI_CHIPLET_OUT(ARLEN_AXI_CHIPLET_OUT),
+    .ARSIZE_AXI_CHIPLET_OUT(ARSIZE_AXI_CHIPLET_OUT),
+    .ARBURST_AXI_CHIPLET_OUT(ARBURST_AXI_CHIPLET_OUT),
+    .ARLOCK_AXI_CHIPLET_OUT(ARLOCK_AXI_CHIPLET_OUT),
+    .ARCACHE_AXI_CHIPLET_OUT(ARCACHE_AXI_CHIPLET_OUT),
+    .ARPROT_AXI_CHIPLET_OUT(ARPROT_AXI_CHIPLET_OUT),
+    .ARVALID_AXI_CHIPLET_OUT(ARVALID_AXI_CHIPLET_OUT),
+    .ARREADY_AXI_CHIPLET_OUT(ARREADY_AXI_CHIPLET_OUT),
+    .RID_AXI_CHIPLET_OUT(RID_AXI_CHIPLET_OUT),
+    .RDATA_AXI_CHIPLET_OUT(RDATA_AXI_CHIPLET_OUT),
+    .RRESP_AXI_CHIPLET_OUT(RRESP_AXI_CHIPLET_OUT),
+    .RLAST_AXI_CHIPLET_OUT(RLAST_AXI_CHIPLET_OUT),
+    .RVALID_AXI_CHIPLET_OUT(RVALID_AXI_CHIPLET_OUT),
+    .RREADY_AXI_CHIPLET_OUT(RREADY_AXI_CHIPLET_OUT),
+
+    .AWID_AXI_COCOTB(cocotb_awid),
+    .AWADDR_AXI_COCOTB(cocotb_awaddr),
+    .AWLEN_AXI_COCOTB(cocotb_awlen),
+    .AWSIZE_AXI_COCOTB(cocotb_awsize),
+    .AWBURST_AXI_COCOTB(cocotb_awburst),
+    .AWLOCK_AXI_COCOTB(cocotb_awlock),
+    .AWCACHE_AXI_COCOTB(cocotb_awcache),
+    .AWPROT_AXI_COCOTB(cocotb_awprot),
+    .AWVALID_AXI_COCOTB(cocotb_awvalid),
+    .AWREADY_AXI_COCOTB(cocotb_awready),
+    .WDATA_AXI_COCOTB(cocotb_wdata),
+    .WSTRB_AXI_COCOTB(cocotb_wstrb),
+    .WLAST_AXI_COCOTB(cocotb_wlast),
+    .WVALID_AXI_COCOTB(cocotb_wvalid),
+    .WREADY_AXI_COCOTB(cocotb_wready),
+    .BID_AXI_COCOTB(cocotb_bid),
+    .BRESP_AXI_COCOTB(cocotb_bresp),
+    .BVALID_AXI_COCOTB(cocotb_bvalid),
+    .BREADY_AXI_COCOTB(cocotb_bready),
+    .ARID_AXI_COCOTB(cocotb_arid),
+    .ARADDR_AXI_COCOTB(cocotb_araddr),
+    .ARLEN_AXI_COCOTB(cocotb_arlen),
+    .ARSIZE_AXI_COCOTB(cocotb_arsize),
+    .ARBURST_AXI_COCOTB(cocotb_arburst),
+    .ARLOCK_AXI_COCOTB(cocotb_arlock),
+    .ARCACHE_AXI_COCOTB(cocotb_arcache),
+    .ARPROT_AXI_COCOTB(cocotb_arprot),
+    .ARVALID_AXI_COCOTB(cocotb_arvalid),
+    .ARREADY_AXI_COCOTB(cocotb_arready),
+    .RID_AXI_COCOTB(cocotb_rid),
+    .RDATA_AXI_COCOTB(cocotb_rdata),
+    .RRESP_AXI_COCOTB(cocotb_rresp),
+    .RLAST_AXI_COCOTB(cocotb_rlast),
+    .RVALID_AXI_COCOTB(cocotb_rvalid),
+    .RREADY_AXI_COCOTB(cocotb_rready),
+
+    .clk0clk(clk_in),
+    .clk0resetn(aresetn)
+);
+
+
+nic400_slave_pwr_M1_m_tlx_tlx_sram_chiplet u_slave_pwd_M1_m_tlx(
+    .awid_m1_m_s(AWID_AXI_CHIPLET_OUT),
+    .awaddr_m1_m_s(AWADDR_AXI_CHIPLET_OUT),
+    .awlen_m1_m_s(AWLEN_AXI_CHIPLET_OUT),
+    .awsize_m1_m_s(AWSIZE_AXI_CHIPLET_OUT),
+    .awburst_m1_m_s(AWBURST_AXI_CHIPLET_OUT),
+    .awlock_m1_m_s(AWLOCK_AXI_CHIPLET_OUT),
+    .awcache_m1_m_s(AWCACHE_AXI_CHIPLET_OUT),
+    .awprot_m1_m_s(AWPROT_AXI_CHIPLET_OUT),
+    .awvalid_m1_m_s(AWVALID_AXI_CHIPLET_OUT),
+    .awready_m1_m_s(AWREADY_AXI_CHIPLET_OUT),
+    .wdata_m1_m_s(WDATA_AXI_CHIPLET_OUT),
+    .wstrb_m1_m_s(WSTRB_AXI_CHIPLET_OUT),
+    .wlast_m1_m_s(WLAST_AXI_CHIPLET_OUT),
+    .wvalid_m1_m_s(WVALID_AXI_CHIPLET_OUT),
+    .wready_m1_m_s(WREADY_AXI_CHIPLET_OUT),
+    .bid_m1_m_s(BID_AXI_CHIPLET_OUT),
+    .bresp_m1_m_s(BRESP_AXI_CHIPLET_OUT),
+    .bvalid_m1_m_s(BVALID_AXI_CHIPLET_OUT),
+    .bready_m1_m_s(BREADY_AXI_CHIPLET_OUT),
+    .arid_m1_m_s(ARID_AXI_CHIPLET_OUT),
+    .araddr_m1_m_s(ARADDR_AXI_CHIPLET_OUT),
+    .arlen_m1_m_s(ARLEN_AXI_CHIPLET_OUT),
+    .arsize_m1_m_s(ARSIZE_AXI_CHIPLET_OUT),
+    .arburst_m1_m_s(ARBURST_AXI_CHIPLET_OUT),
+    .arlock_m1_m_s(ARLOCK_AXI_CHIPLET_OUT),
+    .arcache_m1_m_s(ARCACHE_AXI_CHIPLET_OUT),
+    .arprot_m1_m_s(ARPROT_AXI_CHIPLET_OUT),
+    .arvalid_m1_m_s(ARVALID_AXI_CHIPLET_OUT),
+    .arready_m1_m_s(ARREADY_AXI_CHIPLET_OUT),
+    .rid_m1_m_s(RID_AXI_CHIPLET_OUT),
+    .rdata_m1_m_s(RDATA_AXI_CHIPLET_OUT),
+    .rresp_m1_m_s(RRESP_AXI_CHIPLET_OUT),
+    .rlast_m1_m_s(RLAST_AXI_CHIPLET_OUT),
+    .rvalid_m1_m_s(RVALID_AXI_CHIPLET_OUT),
+    .rready_m1_m_s(RREADY_AXI_CHIPLET_OUT),
+
+    // Axi Stream master (tdata out) data stream
+    .tvalid_m1_m_tlx_fwd_ib_axi_stream(tvalid_m1_m_tlx_fwd_ib_axi_stream),
+    .tready_m1_m_tlx_fwd_ib_axi_stream(tready_m1_m_tlx_fwd_ib_axi_stream),
+    .tdata_m1_m_tlx_fwd_ib_axi_stream(tdata_m1_m_tlx_fwd_ib_axi_stream),
+
+    // Axi Stream master (tdata out) data flow
+    .tvalid_m1_m_tlx_fwd_ib_flow(tvalid_m1_m_tlx_fwd_ib_flow),
+    .tready_m1_m_tlx_fwd_ib_flow(tready_m1_m_tlx_fwd_ib_flow),
+    .tdata_m1_m_tlx_fwd_ib_flow(tdata_m1_m_tlx_fwd_ib_flow),
+
+    // Axi Stream slave (tdata in) rev flow from SRAM chiplet PL
+    .tvalid_m1_m_tlx_pl_rev_to_dl_rev_flow(tvalid_pl_rev_m1_m_tlx_m_flow),
+    .tready_m1_m_tlx_pl_rev_to_dl_rev_flow(tready_pl_rev_m1_m_tlx_m_flow),
+    .tdata_m1_m_tlx_pl_rev_to_dl_rev_flow(tdata_pl_rev_m1_m_tlx_m_flow),
+
+    // Axi stream slave (tdata in) rev data from SRAM chiplet PL
+    .tvalid_m1_m_tlx_pl_rev_to_dl_rev_data(tvalid_pl_rev_m1_m_tlx_m_stream),
+    .tready_m1_m_tlx_pl_rev_to_dl_rev_data(tready_pl_rev_m1_m_tlx_m_stream),
+    .tdata_m1_m_tlx_pl_rev_to_dl_rev_data(tdata_pl_rev_m1_m_tlx_m_stream),
+
+    .clk_sclk(clk_in),
+    .clk_sresetn(aresetn),
+    .dl_rev_M1_m_tlxclk(clk_in),
+    .dl_rev_M1_m_tlxresetn(aresetn)
+);
+
+nic400_cd_pl_fwd_M1_m_tlx_tlx_sram_chiplet u_pl_fwd_M1_m_tlx_m(
+    // axi sream master (tdata out)
+    .tvalid_pl_fwd_m1_m_tlx_m_stream(tvalid_m1_m_tlx_pl_fwd_to_dl_fwd_data),
+    .tready_pl_fwd_m1_m_tlx_m_stream(tready_m1_m_tlx_pl_fwd_to_dl_fwd_data),
+    .tdata_pl_fwd_m1_m_tlx_m_stream(tdata_m1_m_tlx_pl_fwd_to_dl_fwd_data),
+
+    // axi stream slave (tdata in)
+    .tvalid_pl_fwd_m1_m_tlx_s_stream(tvalid_m1_m_tlx_fwd_ib_axi_stream),
+    .tready_pl_fwd_m1_m_tlx_s_stream(tready_m1_m_tlx_fwd_ib_axi_stream),
+    .tdata_pl_fwd_m1_m_tlx_s_stream(tdata_m1_m_tlx_fwd_ib_axi_stream),
+
+    // axi stream master (tdata out)
+    .tvalid_pl_fwd_m1_m_tlx_m_flow(tvalid_m1_m_tlx_pl_fwd_to_dl_fwd_flow),
+    .tready_pl_fwd_m1_m_tlx_m_flow(tready_m1_m_tlx_pl_fwd_to_dl_fwd_flow),
+    .tdata_pl_fwd_m1_m_tlx_m_flow(tdata_m1_m_tlx_pl_fwd_to_dl_fwd_flow),
+
+    // axi stream slave (tdata in)
+    .tvalid_pl_fwd_m1_m_tlx_s_flow(tvalid_m1_m_tlx_fwd_ib_flow),
+    .tready_pl_fwd_m1_m_tlx_s_flow(tready_m1_m_tlx_fwd_ib_flow),
+    .tdata_pl_fwd_m1_m_tlx_s_flow(tdata_m1_m_tlx_fwd_ib_flow),
+
+    .pl_fwd_M1_m_tlxclk(clk_in),
+    .pl_fwd_M1_m_tlxresetn(aresetn)
+);
+
+top_sram_chiplet u_top_sram_chiplet(
+    .SYS_CLK(clk_in),
+    .DL_FWD_CLK(clk_in),
+    .DL_REV_CLK(DL_REV_CLK),
+
+    .aRESETn(aresetn),
+    .DL_FWD_RESETn(aresetn),
+
+    // Axi stream master (tdata out) from PL
+    .tvalid_pl_rev_m1_m_tlx_m_stream(tvalid_pl_rev_m1_m_tlx_m_stream),
+    .tready_pl_rev_m1_m_tlx_m_stream(tready_pl_rev_m1_m_tlx_m_stream),
+    .tdata_pl_rev_m1_m_tlx_m_stream(tdata_pl_rev_m1_m_tlx_m_stream),
+    
+    // Axi Stream master (tdata out) from PL
+    .tvalid_pl_rev_m1_m_tlx_m_flow(tvalid_pl_rev_m1_m_tlx_m_flow),
+    .tready_pl_rev_m1_m_tlx_m_flow(tready_pl_rev_m1_m_tlx_m_flow),
+    .tdata_pl_rev_m1_m_tlx_m_flow(tdata_pl_rev_m1_m_tlx_m_flow),
+    
+    // Axi Stream Slave (tdata in) to DL
+    .tvalid_m1_m_tlx_pl_fwd_to_dl_fwd_flow(tvalid_m1_m_tlx_pl_fwd_to_dl_fwd_flow),
+    .tready_m1_m_tlx_pl_fwd_to_dl_fwd_flow(tready_m1_m_tlx_pl_fwd_to_dl_fwd_flow),
+    .tdata_m1_m_tlx_pl_fwd_to_dl_fwd_flow(tdata_m1_m_tlx_pl_fwd_to_dl_fwd_flow),
+    
+    // Axi Stream slave (tdata in) to DL
+    .tvalid_m1_m_tlx_pl_fwd_to_dl_fwd_data(tvalid_m1_m_tlx_pl_fwd_to_dl_fwd_data),
+    .tready_m1_m_tlx_pl_fwd_to_dl_fwd_data(tready_m1_m_tlx_pl_fwd_to_dl_fwd_data),
+    .tdata_m1_m_tlx_pl_fwd_to_dl_fwd_data(tdata_m1_m_tlx_pl_fwd_to_dl_fwd_data)
+);
+
+endmodule
\ No newline at end of file
diff --git a/verif/cocotb/sram_chiplet_tests.py b/verif/cocotb/sram_chiplet_tests.py
new file mode 100644
index 0000000000000000000000000000000000000000..ddeadc2546e20e7096c956d722a43da8291e8370
--- /dev/null
+++ b/verif/cocotb/sram_chiplet_tests.py
@@ -0,0 +1,76 @@
+#-----------------------------------------------------------------------------
+# SRAM Chiplet cocoTB script
+# A joint work commissioned on behalf of SoC Labs, under Arm Academic Access license.
+#
+# Contributors
+#
+# Daniel Newbrook (d.newbrook@soton.ac.uk)
+# 
+# Copyright � 2021-4, SoC Labs (www.soclabs.org)
+#-----------------------------------------------------------------------------
+# CocoTB Testcases:
+#   SRAM_test_write
+#   SRAM_test_write_words
+
+import itertools
+import logging
+import os
+from numpy import random
+import numpy as np
+
+import cocotb
+from cocotb.clock import Clock
+from cocotb.triggers import RisingEdge, Timer, ClockCycles
+from cocotb.regression import TestFactory
+
+from cocotbext.axi import AxiBus, AxiMaster, AxiRam, AxiBurstType, AxiSlave
+
+class TB:
+    def __init__(self,dut):
+        self.dut = dut
+
+        self.log = logging.getLogger("cocotb.tb")
+        self.log.setLevel(logging.DEBUG)
+
+        cocotb.start_soon(Clock(dut.clk_in, 1, units="ns").start())
+        self.axi_master = AxiMaster(AxiBus.from_prefix(dut,"cocotb"), dut.clk_in, dut.aresetn, reset_active_level=False)
+    def set_idle_generator(self, generator=None):
+        if generator:
+            self.axi_master.write_if.aw_channel.set_pause_generator(generator())
+            self.axi_master.write_if.w_channel.set_pause_generator(generator())
+            self.axi_master.read_if.ar_channel.set_pause_generator(generator())
+            self.axi_ram.write_if.b_channel.set_pause_generator(generator())
+            self.axi_ram.read_if.r_channel.set_pause_generator(generator())
+    def set_backpressure_generator(self, generator=None):
+        if generator:
+            self.axi_master.write_if.b_channel.set_pause_generator(generator())
+            self.axi_master.read_if.r_channel.set_pause_generator(generator())
+            self.axi_ram.write_if.aw_channel.set_pause_generator(generator())
+            self.axi_ram.write_if.w_channel.set_pause_generator(generator())
+            self.axi_ram.read_if.ar_channel.set_pause_generator(generator())
+    async def cycle_reset(self):
+        self.dut.aresetn.setimmediatevalue(0)
+        await RisingEdge(self.dut.clk_in)
+        await RisingEdge(self.dut.clk_in)
+        await RisingEdge(self.dut.clk_in)
+        await RisingEdge(self.dut.clk_in)
+        self.dut.aresetn.value = 1
+        await RisingEdge(self.dut.clk_in)
+    async def delay(self, cycle):
+        for i in range(cycle):
+            await RisingEdge(self.dut.clk_in)
+
+@cocotb.test()
+async def SRAM_TEST(dut,idle_inserter=None, backpressure_inserter=None, size=None):
+    tb = TB(dut)
+    byte_lanes = tb.axi_master.write_if.byte_lanes
+    max_burst_size = tb.axi_master.write_if.max_burst_size
+    
+    if size is None:
+        size = max_burst_size
+        
+    await tb.cycle_reset()
+    tb.set_idle_generator(idle_inserter)
+    tb.set_backpressure_generator(backpressure_inserter)
+    data = bytearray([0]*2048)
+    await tb.axi_master.write(0x00000000, data)