diff --git a/hw/top_matcha/data/clocks_nexus.xdc b/hw/top_matcha/data/clocks_nexus.xdc
index 7035428..74cbd85 100644
--- a/hw/top_matcha/data/clocks_nexus.xdc
+++ b/hw/top_matcha/data/clocks_nexus.xdc
@@ -5,6 +5,12 @@
 ## Clock Signal
 create_clock -add -name sys_clk_pin -period 10.00 -waveform {0 5} [get_ports IO_CLK]
 
+## Rename MMCM outputs for less bug-prone parsing.
+## Some auto-derived clocks can have names that include brackets.
+create_generated_clock -name clk_main [get_pin clkgen/pll/CLKOUT0]
+create_generated_clock -name clk_usb_48 [get_pin clkgen/pll/CLKOUT1]
+create_generated_clock -name clk_aon [get_pin clkgen/pll/CLKOUT4]
+
 ## Clock Domain Crossings
 set clks_10_unbuf [get_clocks -of_objects [get_pin clkgen/pll/CLKOUT0]]
 set clks_48_unbuf [get_clocks -of_objects [get_pin clkgen/pll/CLKOUT1]]
@@ -20,8 +26,10 @@
 
 #Recommended Div4 clock constraints from Xilinx
 #TODO uncomment below line and integrate u_div4 in path to make constraint more generic
-#set u_div4 top_*/u_clkmgr_aon/u_no_scan_io_div4_div
-create_generated_clock -name clkDiv4 -divide_by 4 -source [get_pins top_matcha/u_clkmgr_aon/u_no_scan_io_div4_div/gen_div.clk_int_reg/C] [get_pins top_matcha/u_clkmgr_aon/u_no_scan_io_div4_div/gen_div.clk_int_reg/Q]
+set u_div4 top_*/u_clkmgr_aon/u_no_scan_io_div4_div
+create_generated_clock -name clkDiv4 -divide_by 4 -source [get_pins ${u_div4}/gen_div.clk_int_reg/C] [get_pins ${u_div4}/gen_div.clk_int_reg/Q]
+
+#
 
 # the step-down mux is implemented with a LUT right now and the mux switches on the falling edge.
 # therefore, Vivado propagates both clock edges down the clock network.
@@ -39,45 +47,39 @@
 create_clock -add -name rv_jtag_tck -period 200.00 -waveform {0 5} [get_pin top_*/u_pinmux_aon/u_pinmux_strap_sampling/u_pinmux_jtag_buf_rv/prim_clock_buf_tck/gen_xilinx.u_impl_xilinx/gen_fpga_buf.gen_bufg.bufg_i/O]
 
 ## SPI clocks
+set spi_dev_data [get_ports {SPI_DEV_D0 SPI_DEV_D1 SPI_DEV_D2 SPI_DEV_D3}]
 create_clock -add -name clk_spi  -period 100.00 -waveform {0 50} [get_ports SPI_DEV_CLK]
 create_clock -add -name clk_cs  -period 1000.00 -waveform {0 50} [get_ports SPI_DEV_CS_L]
-set_input_delay -clock clk_spi 5 [get_ports SPI_DEV_D0]
-set_input_delay -clock clk_spi 5 [get_ports SPI_DEV_D1]
-set_input_delay -clock clk_spi 5 [get_ports SPI_DEV_D2]
-set_input_delay -clock clk_spi 5 [get_ports SPI_DEV_D3]
-set_input_delay -clock clk_spi 5 [get_ports SPI_DEV_CS_L]
-set_output_delay -clock clk_spi 5 [get_ports SPI_DEV_D0] -add_delay
-set_output_delay -clock clk_spi 5 [get_ports SPI_DEV_D1] -add_delay
-set_output_delay -clock clk_spi 5 [get_ports SPI_DEV_D2] -add_delay
-set_output_delay -clock clk_spi 5 [get_ports SPI_DEV_D3] -add_delay
+set_input_delay -clock clk_spi 5 ${spi_dev_data} -add_delay
+set_output_delay -clock clk_spi 5 ${spi_dev_data} -add_delay
+# set_input_delay -clock clk_spi -clock_fall -min ${spi_dev_in_delay_min} ${spi_dev_data} -add_delay
+# set_input_delay -clock clk_spi -clock_fall -max ${spi_dev_in_delay_max} ${spi_dev_data} -add_delay
 
 ## Camera Clock
 #8-bit, QVGA 60FPS @ 6MHz > setting to 10M to keep numbers round
 #create_clock -add -name clk_cam_pclk  -period 100.00 -waveform {0 50} [get_ports ISP_DVP_PCLK]
 
 ##SPI Host IO Delay
-set_input_delay -clock [get_clocks -of_objects [get_pin clkgen/pll/CLKOUT0]] 5 [get_ports SPI_HOST_D0]
-set_input_delay -clock [get_clocks -of_objects [get_pin clkgen/pll/CLKOUT0]] 5 [get_ports SPI_HOST_D1]
-set_input_delay -clock [get_clocks -of_objects [get_pin clkgen/pll/CLKOUT0]] 5 [get_ports SPI_HOST_D2]
-set_input_delay -clock [get_clocks -of_objects [get_pin clkgen/pll/CLKOUT0]] 5 [get_ports SPI_HOST_D3]
-set_input_delay -clock [get_clocks -of_objects [get_pin clkgen/pll/CLKOUT0]] 5 [get_ports SPI_HOST_CLK]
-set_input_delay -clock [get_clocks -of_objects [get_pin clkgen/pll/CLKOUT0]] 5 [get_ports SPI_HOST_CS_L]
-set_output_delay -clock [get_clocks -of_objects [get_pin clkgen/pll/CLKOUT0]] 5 [get_ports SPI_HOST_D0]
-set_output_delay -clock [get_clocks -of_objects [get_pin clkgen/pll/CLKOUT0]] 5 [get_ports SPI_HOST_D1]
-set_output_delay -clock [get_clocks -of_objects [get_pin clkgen/pll/CLKOUT0]] 5 [get_ports SPI_HOST_D2]
-set_output_delay -clock [get_clocks -of_objects [get_pin clkgen/pll/CLKOUT0]] 5 [get_ports SPI_HOST_D3]
-set_output_delay -clock [get_clocks -of_objects [get_pin clkgen/pll/CLKOUT0]] 5 [get_ports SPI_HOST_CS_L]
+## SPI Passthrough constraints
+create_generated_clock -name clk_spi_pt -divide_by 1 -source [get_ports SPI_DEV_CLK] [get_ports SPI_HOST_CLK]
+set spi_pt_data [get_ports {SPI_HOST_D0 SPI_HOST_D1 SPI_HOST_D2 SPI_HOST_D3}]
+set_input_delay  -clock clk_spi_pt -clock_fall 7 ${spi_pt_data} -add_delay
+
+set_output_delay -clock clk_spi_pt 7 ${spi_pt_data} -add_delay
+set_output_delay -clock clk_spi_pt 7 [get_ports SPI_HOST_CS_L] -add_delay
+
 
 
 ## GPIO IO Delay
-set_input_delay -clock clkDiv4 5 [get_ports IOA*]
-set_input_delay -clock clkDiv4 5 [get_ports IOB*]
-set_input_delay -clock clkDiv4 5 [get_ports IOC*]
-set_input_delay -clock clkDiv4 5 [get_ports IOR*]
-set_output_delay -clock clkDiv4 5 [get_ports IOA*]
-set_output_delay -clock clkDiv4 5 [get_ports IOB*]
-set_output_delay -clock clkDiv4 5 [get_ports IOC*]
-set_output_delay -clock clkDiv4 5 [get_ports IOR*]
+set ioa_muxed_ports [get_ports IOA*]
+set iob_muxed_ports [get_ports IOB*]
+set ioc_muxed_ports [get_ports IOC*]
+set ioc_muxed_ports [get_ports IOD*]
+set ior_muxed_ports [get_ports -filter {NAME != IOR8 && NAME != IOR9} IOR*]
+set all_muxed_ports "${ioa_muxed_ports} ${iob_muxed_ports} ${ioc_muxed_ports} ${ior_muxed_ports}"
+
+set_input_delay -clock clkDiv4 5 [get_ports ${all_muxed_ports}]
+set_output_delay -clock clkDiv4 5 [get_ports ${all_muxed_ports}]
 
 create_generated_clock -name clk_i2s_rx -divide_by 22 -source [get_pin ${u_pll}/CLKOUT1] [get_pins top_matcha/u_i2s0/i2s_core/bufg_rx_audio_clk/gen_xilinx.u_impl_xilinx/gen_fpga_buf.gen_bufg.bufg_i/O]
 create_generated_clock -name clk_i2s_tx -divide_by 22 -source [get_pin ${u_pll}/CLKOUT1] [get_pins top_matcha/u_i2s0/i2s_core/bufg_tx_audio_clk/gen_xilinx.u_impl_xilinx/gen_fpga_buf.gen_bufg.bufg_i/O]
@@ -108,4 +110,16 @@
 create_generated_clock -name clk_spi_in  -divide_by 1 -source [get_ports SPI_DEV_CLK] [get_pins top_*/u_spi_device/u_clk_spi_in_buf/gen_xilinx.u_impl_xilinx/gen_fpga_buf.gen_bufr.bufr_i/O]
 create_generated_clock -name clk_spi_out -divide_by 1 -source [get_ports SPI_DEV_CLK] [get_pins top_*/u_spi_device/u_clk_spi_out_buf/gen_xilinx.u_impl_xilinx/gen_fpga_buf.gen_bufr.bufr_i/O] -invert
 
-set_clock_groups -group ${clks_10_unbuf} -group ${clks_48_unbuf} -group ${clks_aon_unbuf} -group clk_io_div2 -group clkDiv4 -group lc_jtag_tck -group rv_jtag_tck -group {clk_spi clk_spi_in clk_spi_out} -group clk_cs -group sys_clk_pin -group clk_i2s_rx  -group clk_i2s_tx -asynchronous
+set_clock_groups -asynchronous \
+    -group ${clks_10_unbuf} \
+    -group ${clks_48_unbuf} \
+    -group ${clks_aon_unbuf} \
+    -group clk_io_div2 \
+    -group clkDiv4 \
+    -group lc_jtag_tck \
+    -group rv_jtag_tck \
+    -group {clk_spi clk_spi_in clk_spi_out clk_spi_pt} \
+    -group clk_cs \
+    -group sys_clk_pin \
+    -group clk_i2s_rx  \
+    -group clk_i2s_tx
diff --git a/hw/top_matcha/data/pins_nexus.xdc b/hw/top_matcha/data/pins_nexus.xdc
index 748e430..8a7083a 100644
--- a/hw/top_matcha/data/pins_nexus.xdc
+++ b/hw/top_matcha/data/pins_nexus.xdc
@@ -87,14 +87,14 @@
 set_property -dict { PACKAGE_PIN C15 IOSTANDARD LVCMOS18 PULLTYPE PULLUP } [ get_ports { IOC12 }]; #RSTB (FLASH1_RSTB)
 
 ## Nexus PMOD3 connect to interace Connector (J263, 3.3V through level shifter), Bank62 LVCMOS18
-#set_property -dict { PACKAGE_PIN AU40  IOSTANDARD LVCMOS18 } [get_ports { IOC2 }]; #PMOD3_1_FPGA
-#set_property -dict { PACKAGE_PIN AV40  IOSTANDARD LVCMOS18 } [get_ports { IOC3 }]; #PMOD3_2_FPGA USED FOR UART to match nexus
-#set_property -dict { PACKAGE_PIN AW40  IOSTANDARD LVCMOS18 } [get_ports { IOC4 }]; #PMOD3_3_FPGA USED FOR UART to match nexus
-set_property -dict { PACKAGE_PIN AY39  IOSTANDARD LVCMOS18 } [get_ports { IOA0 }]; #PMOD3_4_FPGA	IOA0 moved for IOC8 TAP0
-set_property -dict { PACKAGE_PIN AU39  IOSTANDARD LVCMOS18 } [get_ports { IOC6 }]; #PMOD3_7_FPGA
-set_property -dict { PACKAGE_PIN AV39  IOSTANDARD LVCMOS18 } [get_ports { IOC7 }]; #PMOD3_8_FPGA
-set_property -dict { PACKAGE_PIN AW37  IOSTANDARD LVCMOS18 } [get_ports { IOA1 }]; #PMOD3_9_FPGA  IOA1 moved for IOC5 TAP1
-set_property -dict { PACKAGE_PIN AW38  IOSTANDARD LVCMOS18 } [get_ports { IOC9 }]; #PMOD3_10_FPGA
+set_property -dict { PACKAGE_PIN AU40  IOSTANDARD LVCMOS18 } [get_ports { IOD0 }]; #PMOD3_1_FPGA
+set_property -dict { PACKAGE_PIN AV40  IOSTANDARD LVCMOS18 } [get_ports { IOD1 }]; #PMOD3_2_FPGA
+set_property -dict { PACKAGE_PIN AW40  IOSTANDARD LVCMOS18 } [get_ports { IOD2 }]; #PMOD3_3_FPGA
+set_property -dict { PACKAGE_PIN AY39  IOSTANDARD LVCMOS18 } [get_ports { IOD3 }]; #PMOD3_4_FPGA
+set_property -dict { PACKAGE_PIN AU39  IOSTANDARD LVCMOS18 } [get_ports { IOD4 }]; #PMOD3_7_FPGA
+set_property -dict { PACKAGE_PIN AV39  IOSTANDARD LVCMOS18 } [get_ports { IOD5 }]; #PMOD3_8_FPGA
+# set_property -dict { PACKAGE_PIN AW37  IOSTANDARD LVCMOS18 } [get_ports { IOA1 }]; #PMOD3_9_FPGA
+# set_property -dict { PACKAGE_PIN AW38  IOSTANDARD LVCMOS18 } [get_ports { IOC9 }]; #PMOD3_10_FPGA
 
 
 ## Parallel Camera Nexus SMC J14 pins for HPS
@@ -129,12 +129,12 @@
 set_property -dict { PACKAGE_PIN AM32  IOSTANDARD LVCMOS18 } [get_ports { IOB7 }];   #PMOD1_4_FPGA -ISP_DVP_D7
 set_property -dict { PACKAGE_PIN AN33  IOSTANDARD LVCMOS18 } [get_ports { IOB8 }];   #PMOD2_1_FPGA -ISP_DVP_PCLK
 #set_property -dict { PACKAGE_PIN AN34  IOSTANDARD LVCMOS18 } [get_ports { ISP_DVP_MCLK }]; #PMOD2_7_FPGA -ISP_DVP_MCLK
-set_property -dict { PACKAGE_PIN AM31  IOSTANDARD LVCMOS18 } [get_ports { IOA2 }]; #PMOD2_2_FPGA -ISP_DVP_VSYNC
-set_property -dict { PACKAGE_PIN AP33  IOSTANDARD LVCMOS18 } [get_ports { IOA3 }]; #PMOD2_8_FPGA -ISP_DVP_HSYNC
-set_property -dict { PACKAGE_PIN AR35  IOSTANDARD LVCMOS18 } [get_ports { IOA4 }];       #PCAM_SCL/PMOD2_9_FPGA -CAM_SCL
-set_property -dict { PACKAGE_PIN AT35  IOSTANDARD LVCMOS18 } [get_ports { IOA5 }];       #PCAM_SDA/PMOD2_3_FPGA -CAM_SDA
-set_property -dict { PACKAGE_PIN AT36  IOSTANDARD LVCMOS18 } [get_ports { IOA6 }];       #PMOD2_4_FPGA -CAM_INT
-set_property -dict { PACKAGE_PIN AT37  IOSTANDARD LVCMOS18 } [get_ports { IOA7 }];      #PMOD2_10_FPGA -CAM_TRIG
+set_property -dict { PACKAGE_PIN AM31  IOSTANDARD LVCMOS18 } [get_ports { IOA2 }];   #PMOD2_2_FPGA -ISP_DVP_VSYNC
+set_property -dict { PACKAGE_PIN AP33  IOSTANDARD LVCMOS18 } [get_ports { IOA3 }];   #PMOD2_8_FPGA -ISP_DVP_HSYNC
+set_property -dict { PACKAGE_PIN AR35  IOSTANDARD LVCMOS18 } [get_ports { IOA4 }];   #PCAM_SCL/PMOD2_9_FPGA -CAM_SCL
+set_property -dict { PACKAGE_PIN AT35  IOSTANDARD LVCMOS18 } [get_ports { IOA5 }];   #PCAM_SDA/PMOD2_3_FPGA -CAM_SDA
+set_property -dict { PACKAGE_PIN AT36  IOSTANDARD LVCMOS18 } [get_ports { IOA6 }];   #PMOD2_4_FPGA -CAM_INT
+set_property -dict { PACKAGE_PIN AT37  IOSTANDARD LVCMOS18 } [get_ports { IOA7 }];   #PMOD2_10_FPGA -CAM_TRIG
 
 
 
@@ -143,25 +143,25 @@
 set_property -dict { PACKAGE_PIN AY38 IOSTANDARD LVCMOS18 } [get_ports { IOB10 }];      #PMOD4_1_FPGA -SPI_HOST2_D0
 set_property -dict { PACKAGE_PIN BA39 IOSTANDARD LVCMOS18 } [get_ports { IOB11 }];      #PMOD4_2_FPGA -SPI_HOST2_D1
 set_property -dict { PACKAGE_PIN AW35 IOSTANDARD LVCMOS18 } [get_ports { IOB12 }];      #PMOD4_3_FPGA -SPI_HOST2_D2
-set_property -dict { PACKAGE_PIN AY35 IOSTANDARD LVCMOS18 } [get_ports { IOR11 }];       #PMOD4_4_FPGA -SPI_HOST2_D3
-set_property -dict { PACKAGE_PIN AY40 IOSTANDARD LVCMOS18 } [get_ports { IOR12 }];       #PMOD4_7_FPGA -SPI_HOST2_CLK
+set_property -dict { PACKAGE_PIN AY35 IOSTANDARD LVCMOS18 } [get_ports { IOR11 }];      #PMOD4_4_FPGA -SPI_HOST2_D3
+set_property -dict { PACKAGE_PIN AY40 IOSTANDARD LVCMOS18 } [get_ports { IOR12 }];      #PMOD4_7_FPGA -SPI_HOST2_CLK
 set_property -dict { PACKAGE_PIN BA40 IOSTANDARD LVCMOS18 } [get_ports { IOR13 }];      #PMOD4_8_FPGA -SPI_HOST2_CS_L
 #set_property -dict { PACKAGE_PIN AW36 IOSTANDARD LVCMOS18 } [get_ports { IOB7 }];      #PMOD4_9_FPGA
 #set_property -dict { PACKAGE_PIN BC40 IOSTANDARD LVCMOS18 } [get_ports { IOB8 }];      #PMOD4_10_FPGA
  
 ##OLD## J271 pins for prototyping. Bank 63 -- IOB7/8 previously for display control moved. IOD0/1 will be used for display control signals for demo.
-set_property -dict { PACKAGE_PIN AK30 IOSTANDARD LVCMOS18 } [get_ports { IOD0  }];    #EXP1x10_J271_P1
-set_property -dict { PACKAGE_PIN AJ30 IOSTANDARD LVCMOS18 } [get_ports { IOD1 }];       #EXP1x10_J271_P3
-set_property -dict { PACKAGE_PIN AH30 IOSTANDARD LVCMOS18 } [get_ports { IOD2 }];       #EXP1x10_J271_P5
-set_property -dict { PACKAGE_PIN AJ31 IOSTANDARD LVCMOS18 } [get_ports { IOD3 }];     #EXP1x10_J271_P7
-set_property -dict { PACKAGE_PIN AG31 IOSTANDARD LVCMOS18 } [get_ports { IOD4 }];       #EXP1x10_J271_P9
-set_property -dict { PACKAGE_PIN AH31 IOSTANDARD LVCMOS18 } [get_ports { IOD5 }];       #EXP1x10_J271_P11
-# set_property -dict { PACKAGE_PIN AG32 IOSTANDARD LVCMOS18 } [get_ports { xx }];  #EXP1x10_J271_P13
+# set_property -dict { PACKAGE_PIN AK30 IOSTANDARD LVCMOS18 } [get_ports { xx }];       #EXP1x10_J271_P1
+# set_property -dict { PACKAGE_PIN AJ30 IOSTANDARD LVCMOS18 } [get_ports { xx }];       #EXP1x10_J271_P3
+# set_property -dict { PACKAGE_PIN AH30 IOSTANDARD LVCMOS18 } [get_ports { xx }];       #EXP1x10_J271_P5
+# set_property -dict { PACKAGE_PIN AJ31 IOSTANDARD LVCMOS18 } [get_ports { xx }];       #EXP1x10_J271_P7
+# set_property -dict { PACKAGE_PIN AG31 IOSTANDARD LVCMOS18 } [get_ports { xx }];       #EXP1x10_J271_P9
+# set_property -dict { PACKAGE_PIN AH31 IOSTANDARD LVCMOS18 } [get_ports { xx }];       #EXP1x10_J271_P11
+# set_property -dict { PACKAGE_PIN AG32 IOSTANDARD LVCMOS18 } [get_ports { xx }];       #EXP1x10_J271_P13
 #EXP1x10_J271_P19 held by IO_UPHY_DPPULLUP
 #EXP1x10_J271_P17 unused
-# set_property -dict { PACKAGE_PIN AG33   IOSTANDARD LVCMOS18 } [get_ports { xx }];            #EXP1x10_J271_P19
+# set_property -dict { PACKAGE_PIN AG33   IOSTANDARD LVCMOS18 } [get_ports { xx }];     #EXP1x10_J271_P19
 
-###2## IO_TRIGGER, IO_CLKOUT and USB signals moved to FMC_HA pins for now. Skipping FMC_HA00_CC, FMC_HA01_CC as they are clocks
+###Unused Signals
 set_property -dict { PACKAGE_PIN BD13 IOSTANDARD LVCMOS18 } [get_ports { IO_TRIGGER }];        #FMC_HA02_P
 set_property -dict { PACKAGE_PIN BE13 IOSTANDARD LVCMOS18 } [get_ports { IO_CLKOUT }];         #FMC_HA02_N
 set_property -dict { PACKAGE_PIN BD12 IOSTANDARD LVCMOS18 } [get_ports { USB_P }];             #FMC_HA03_P
@@ -170,6 +170,12 @@
 set_property -dict { PACKAGE_PIN BB12 IOSTANDARD LVCMOS18 } [get_ports { IO_USB_DNPULLUP0 }];  #FMC_HA04_N
 set_property -dict { PACKAGE_PIN BC11 IOSTANDARD LVCMOS18 } [get_ports { IO_USB_DPPULLUP0 }];  #FMC_HA05_P
 set_property -dict { PACKAGE_PIN BD11 IOSTANDARD LVCMOS18 } [get_ports { IOB9 }];              #FMC_HA05_N
+#MISC from PMOD3
+set_property -dict { PACKAGE_PIN BE15  IOSTANDARD LVCMOS18 } [get_ports { IOA0 }];             #FMC_HA06_P
+set_property -dict { PACKAGE_PIN BF15  IOSTANDARD LVCMOS18 } [get_ports { IOC6 }];             #FMC_HA06_N
+set_property -dict { PACKAGE_PIN BE14  IOSTANDARD LVCMOS18 } [get_ports { IOC7 }];             #FMC_HA07_P
+set_property -dict { PACKAGE_PIN BF14  IOSTANDARD LVCMOS18 } [get_ports { IOA1 }];             #FMC_HA07_N
+set_property -dict { PACKAGE_PIN BC15  IOSTANDARD LVCMOS18 } [get_ports { IOC9 }];             #FMC_HA08_P
 
 
 ## TI TUSB1T1105AMHX USB Transceiver "usbdev" testing, Bank 64 LVCMOS18
diff --git a/hw/top_matcha/dv/chip_sim_cfg.hjson b/hw/top_matcha/dv/chip_sim_cfg.hjson
index 6b69cb8..27b8948 100644
--- a/hw/top_matcha/dv/chip_sim_cfg.hjson
+++ b/hw/top_matcha/dv/chip_sim_cfg.hjson
@@ -460,7 +460,7 @@
       uvm_test_seq: chip_sw_base_vseq
       sw_images: [
         "//sw/device/tests/smc:smc_kelvin_hello_test:6:matcha",
-        "//sw/device/tests/kelvin/testdata:kelvin_hello_world:7:matcha"]
+        "//sw/device/tests/kelvin:kelvin_hello_world:7:matcha"]
       en_run_modes: ["sw_test_mode_test_simple_sec"]
       run_opts:["+sw_test_timeout_ns=40_000_000"]
     }
@@ -579,7 +579,9 @@
     {
       name: chip_sw_smc_kelvin_checksum_test
       uvm_test_seq: chip_sw_base_vseq
-      sw_images: ["//sw/device/tests/smc:smc_kelvin_checksum_test:6:matcha"]
+      sw_images: [
+        "//sw/device/tests/smc:smc_kelvin_checksum_test:6:matcha",
+        "//sw/device/tests/kelvin:kelvin_checksum:7:matcha"]
       en_run_modes: ["sw_test_mode_test_simple_sec"]
       run_opts:["+sw_test_timeout_ns=40_000_000"]
     }
@@ -2136,6 +2138,7 @@
         "chip_sw_smc_isp_wrapper_irq_test",
         "chip_sw_smc_isp_wrapper_test",
         "chip_sw_smc_isp_wrapper_tpg_64_64_test",
+        "chip_sw_smc_kelvin_checksum_test",
         "chip_sw_smc_kelvin_hello_test",
         "chip_sw_smc_lsu_interrupt_boundary_test",
         "chip_sw_smc_lsu_page_boundary_test",
diff --git a/hw/top_matcha/ip/ml_top/rtl/ml_dmem.sv b/hw/top_matcha/ip/ml_top/rtl/ml_dmem.sv
index ac1a588..7c71d09 100644
--- a/hw/top_matcha/ip/ml_top/rtl/ml_dmem.sv
+++ b/hw/top_matcha/ip/ml_top/rtl/ml_dmem.sv
@@ -84,6 +84,7 @@
 
   // cfg_en (LSB) is unused in memory module and does not qualify volt_sel
   assign ram_cfg.ram_cfg = { 3'b0, volt_sel_i, 1'b0 };
+  assign ram_cfg.rf_cfg = 5'b0;
 
   // xbar_sram only support Byte-Mask for now. i.e 8 data bits per mask bit.
   assign xbar_wmask_b = {xbar_wmask[248], xbar_wmask[240], xbar_wmask[232], xbar_wmask[224],
diff --git a/hw/top_matcha/ip/ml_top/rtl/ml_top.sv b/hw/top_matcha/ip/ml_top/rtl/ml_top.sv
index 3900a48..43e5d2c 100644
--- a/hw/top_matcha/ip/ml_top/rtl/ml_top.sv
+++ b/hw/top_matcha/ip/ml_top/rtl/ml_top.sv
@@ -81,6 +81,16 @@
     hw2reg.error_status.d_mem_disable_access.de = 1'b0;
   end
 
+  assign hw2reg.init_end.valid.d = 1'b0;
+  assign hw2reg.init_end.valid.de = 1'b0;
+  assign hw2reg.init_end.address.d = 22'b0;
+  assign hw2reg.init_end.address.de = 22'b0;
+  assign hw2reg.init_status.init_pending.d = 1'b0;
+  assign hw2reg.init_status.init_pending.de = 1'b0;
+  assign hw2reg.init_status.init_done.d = 1'b0;
+  assign hw2reg.init_status.init_done.de = 1'b0;
+  assign core0_cid[7] = 1'b0;
+
   // ML_top Control
   ml_top_core_reg_top u_reg (
     .clk_i,
diff --git a/rules/matcha.bzl b/rules/matcha.bzl
index b3026bc..c83860c 100644
--- a/rules/matcha.bzl
+++ b/rules/matcha.bzl
@@ -635,18 +635,25 @@
       srcs: The c source files.
       **kwargs: Additional arguments forward to cc_binary.
     Emits rules:
+      bin_to_vmem            named: <name>_vmem
+        Generating the 256-bitwidth vmem output for the target.
+      256_bitwidth_vmem      named: <name>.256.vmem
+        Containing the 256-bitwidth vmem output.
       filegroup              named: <name>.bin
         Containing the binary output for the target.
       filegroup              named: <name>.elf
         Containing all elf output for the target.
+      filegroup                           named: <name>
+        Containing cc outputs and 256-bitwidth vmem target.
     """
     srcs = srcs + [
         "//sw/device/lib/testing/test_framework:kelvin_gloss.c",
         "//sw/device/lib/testing/test_framework:kelvin_start.S",
         "@lowrisc_opentitan//sw/device/lib/crt:crt.S",
     ]
+    kelvin_cc_name = "{}_cc".format(name)
     kelvin_binary_impl(
-        name = name,
+        name = kelvin_cc_name,
         srcs = srcs,
         linker_script = "//sw/device/lib/testing/test_framework:kelvin.ld",
         linker_script_includes = [
@@ -656,13 +663,49 @@
     )
 
     # Need to create the following filegroups to make the output discoverable.
+    bin_name = "{}.bin".format(name)
     native.filegroup(
-        name = "{}.bin".format(name),
-        srcs = [name],
+        name = bin_name,
+        srcs = [kelvin_cc_name],
         output_group = "bin_file",
     )
+    elf_name = "{}.elf".format(name)
     native.filegroup(
-        name = "{}.elf".format(name),
-        srcs = [name],
+        name = elf_name,
+        srcs = [kelvin_cc_name],
         output_group = "elf_file",
     )
+
+    # Generate vmem file for dv testbench
+    # Memory in ml_top has word size 256. srec_cat supports only up to 128.
+    # Build a flow to transform 32-bitwidth format into 256-bitwidth format.
+    vmem_32_name = "{}.32.vmem".format(name)
+    vmem_256_name = "{}.256.vmem".format(name)
+    bin_to_vmem(
+        name = vmem_32_name,
+        bin = bin_name,
+        word_size = 32,
+    )
+
+    cmd = """
+        $(location //util:gen_vmem_256) \
+            --input=$< \
+            --output=$@
+        """
+    vmem_name = "{}_vmem".format(name)
+    native.genrule(
+        name = vmem_name,
+        srcs = [vmem_32_name],
+        outs = [vmem_256_name],
+        cmd = cmd,
+        tools = ["@matcha//util:gen_vmem_256"],
+        **kwargs
+    )
+    native.filegroup(
+        name = name,
+        srcs = [
+            bin_name,
+            elf_name,
+            vmem_name,
+        ],
+    )
diff --git a/sw/device/tests/kelvin/testdata/BUILD b/sw/device/tests/kelvin/testdata/BUILD
deleted file mode 100644
index 9b00741..0000000
--- a/sw/device/tests/kelvin/testdata/BUILD
+++ /dev/null
@@ -1,8 +0,0 @@
-# Copyright 2023 Google contributors.
-
-package(default_visibility = ["//visibility:public"])
-
-filegroup(
-    name = "kelvin_hello_world",
-    srcs = ["kelvin_hello_world.256.vmem"],
-)
diff --git a/sw/device/tests/kelvin/testdata/kelvin_hello_world.256.vmem b/sw/device/tests/kelvin/testdata/kelvin_hello_world.256.vmem
deleted file mode 100755
index ec7f4b2..0000000
--- a/sw/device/tests/kelvin/testdata/kelvin_hello_world.256.vmem
+++ /dev/null
@@ -1,12 +0,0 @@
-/* http://srecord.sourceforge.net/ */
-@00000000 0000041300000393000003130000021394C18193000011970001011310020117
-@00000001 0000089300000813000007930000071300000693000006130000059300000493
-@00000002 00000C9300000C1300000B9300000B1300000A9300000A130000099300000913
-@00000003 200005932000051300000F9300000F1300000E9300000E1300000D9300000D13
-@00000004 FE946AE300440413000280E70004228300947A631540049315400413064000EF
-@00000005 001007B70000006F08000073000080E701408093000000970000059300000513
-@00000006 0000051326000077FED798E3FEE7AE2300170713004787930007A703001016B7
-@00000007 FEB56CE3004505130005202300029E630032F29300B562B302B5706300008067
-@00000008 0032F29300C2E2B300B562B302B57C63C00010730000806700B5146300008067
-@00000009 004505130055202300460613000622830262E26340A5833340C502B302029863
-@0000000A FFFFFFFFC00010730000806700B51463 00008067FEB568E3
diff --git a/sw/device/tests/smc/smc_kelvin_checksum_test.c b/sw/device/tests/smc/smc_kelvin_checksum_test.c
index 5b70a23..9c038a0 100644
--- a/sw/device/tests/smc/smc_kelvin_checksum_test.c
+++ b/sw/device/tests/smc/smc_kelvin_checksum_test.c
@@ -67,7 +67,7 @@
 
   while (intr_state == 0x0) {
     intr_state = mmio_region_read32(base_addr, ML_TOP_INTR_STATE_REG_OFFSET);
-    busy_spin_micros(10 * 1000);
+    busy_spin_micros(200);
   }
 
   // Received interrupts from Kelvin core, check if only FINISH asserted
diff --git a/util/BUILD b/util/BUILD
index b83b8e6..4016ec9 100644
--- a/util/BUILD
+++ b/util/BUILD
@@ -79,6 +79,13 @@
     ],
 )
 
+py_binary(
+    name = "gen_vmem_256",
+    srcs = [
+        "gen_vmem_256.py",
+    ],
+)
+
 filegroup(
     name = "topgen_tpl_files",
     srcs = glob(["topgen/**/*.tpl"]) + [
diff --git a/util/gen_vmem_256.py b/util/gen_vmem_256.py
new file mode 100644
index 0000000..d85ad5d
--- /dev/null
+++ b/util/gen_vmem_256.py
@@ -0,0 +1,73 @@
+#!/usr/bin/env python3
+# Copyright 2023 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+"""
+Generate 256-bitwidth vmem file from 32-bitwidth vmem file
+"""
+
+import argparse
+import re
+
+def main():
+  """
+  Args:
+      input:  The input 32-bitwidth vmem file name.
+      output: The output 256-bitwidth vmem file name.
+  """
+  parser = argparse.ArgumentParser(description='Generate 256-bitwidth vmem file.')
+  parser.add_argument("--input",
+                      "-i",
+                      action='store',
+                      required=True,
+                      help="Input 32-bitwidth vmem file")
+  parser.add_argument("--output",
+                      "-o",
+                      required=True,
+                      help="Output 256-bitwidth vmem file")
+  parser.add_argument("--entry_addr",
+                      default = 0x0,
+                      help="Entry address of kelvin program")
+  args = parser.parse_args()
+
+  # Open input/output files
+  infile = open(args.input, 'r')
+  outfile = open(args.output, 'w')
+
+  # Fetch each line from 32-bitwidth vmem file and dump each data line for
+  # 256-bitwidth vmem file.
+  addr_base = args.entry_addr
+  mem_data_line = ""
+  word_per_line = 8
+  for line in infile.readlines():
+    # Ignore comment
+    if re.match(r"\/\*(.)*\*\/", line):
+      continue
+    tokens = line.split()
+    m = re.match(r"@([0-9a-fA-F]{8})", tokens[0])
+    addr = int(m[1], 16)
+    for token in tokens[1:]:
+      mem_data_line = token + mem_data_line
+      addr = addr + 1
+      # Write out a mem data line when it is ready
+      if (addr % word_per_line) == 0:
+        outfile.write(f"@{addr_base:08X} {mem_data_line}\n")
+        addr_base = int((addr + args.entry_addr) / word_per_line)
+        mem_data_line = ""
+  if mem_data_line:
+    outfile.write(f"@{addr_base:08X} {mem_data_line}\n")
+  infile.close()
+  outfile.close()
+
+if __name__ == "__main__":
+  main()
