diff --git a/flist/accelerator-wrapper_src.flist b/flist/accelerator_wrapper.flist
similarity index 68%
rename from flist/accelerator-wrapper_src.flist
rename to flist/accelerator_wrapper.flist
index 813546e6cc803006376050b4ccebee2becd345d4..13231946466cb221a62ea30fddc0a9f6632b1c00 100644
--- a/flist/accelerator-wrapper_src.flist
+++ b/flist/accelerator_wrapper.flist
@@ -16,11 +16,11 @@
 +libext+.v+.vlib
 
 // =============    Accelerator Module search path    =============
--y $(WRAP_ACC_DIR)/hdl/src/
-+incdir+$(WRAP_ACC_DIR)/hdl/src/
+-y $(ACC_WRAPPER_DIR)/hdl/src/
++incdir+$(ACC_WRAPPER_DIR)/hdl/src/
 
-$(WRAP_ACC_DIR)/hdl/src/wrapper_ahb_reg_interface.sv
-$(WRAP_ACC_DIR)/hdl/src/wrapper_ahb_to_vr_interface.sv
-$(WRAP_ACC_DIR)/hdl/src/wrapper_packet_construct.sv
-$(WRAP_ACC_DIR)/hdl/src/wrapper_packet_deconstruct.sv
-$(WRAP_ACC_DIR)/hdl/src/wrapper_sha256_hashing_stream.sv
\ No newline at end of file
+$(ACC_WRAPPER_DIR)/hdl/src/wrapper_ahb_reg_interface.sv
+$(ACC_WRAPPER_DIR)/hdl/src/wrapper_ahb_to_vr_interface.sv
+$(ACC_WRAPPER_DIR)/hdl/src/wrapper_packet_construct.sv
+$(ACC_WRAPPER_DIR)/hdl/src/wrapper_packet_deconstruct.sv
+$(ACC_WRAPPER_DIR)/hdl/src/wrapper_sha256_hashing_stream.sv
\ No newline at end of file
diff --git a/flist/ahb_ip.flist b/flist/ahb_ip.flist
new file mode 100644
index 0000000000000000000000000000000000000000..693b870c766dd2cbdac382f038435ee216a7bef9
--- /dev/null
+++ b/flist/ahb_ip.flist
@@ -0,0 +1,28 @@
+//-----------------------------------------------------------------------------
+// Accelerator Wrapper CMSDK Filelist
+// A joint work commissioned on behalf of SoC Labs, under Arm Academic Access license.
+//
+// Contributors
+//
+// David Mapstone (d.a.mapstone@soton.ac.uk)
+//
+// Copyright � 2021-3, SoC Labs (www.soclabs.org)
+//-----------------------------------------------------------------------------
+//-----------------------------------------------------------------------------
+// Abstract : Verilog Command File for Accelerator CMSDK Wrapper Components
+//-----------------------------------------------------------------------------
+
+// ============= Verilog library extensions ===========
++libext+.v+.vlib
+
+// =============    Accelerator Module search path    =============
+-y $(ACC_WRAPPER_DIR)/hdl/verif/
+-y $(ACC_WRAPPER_DIR)/hdl/verif/cmsdk
++incdir+$(ACC_WRAPPER_DIR)/hdl/verif/
++incdir+$(ACC_WRAPPER_DIR)/hdl/verif/cmsdk/
+
+$(ACC_WRAPPER_DIR)/hdl/verif/cmsdk/cmsdk_ahb_filereadcore.v
+$(ACC_WRAPPER_DIR)/hdl/verif/cmsdk/cmsdk_ahb_fileread_funnel.v
+$(ACC_WRAPPER_DIR)/hdl/verif/cmsdk/cmsdk_ahb_fileread_master32.v
+$(ACC_WRAPPER_DIR)/hdl/verif/cmsdk/cmsdk_ahb_default_slave.v
+$(ACC_WRAPPER_DIR)/hdl/verif/cmsdk/cmsdk_ahb_slave_mux.v
\ No newline at end of file
diff --git a/flow/simulators/ivlog_sim.sh b/flow/simulators/ivlog_sim.sh
deleted file mode 100755
index 48dbfcd7edc107db20b73d032a4c1e8de007f96f..0000000000000000000000000000000000000000
--- a/flow/simulators/ivlog_sim.sh
+++ /dev/null
@@ -1,16 +0,0 @@
-#-----------------------------------------------------------------------------
-# SoC Labs icarus verilog simulation script for engine testbench
-# A joint work commissioned on behalf of SoC Labs, under Arm Academic Access license.
-#
-# Contributors
-#
-# David Mapstone (d.a.mapstone@soton.ac.uk)
-#
-# Copyright  2022, SoC Labs (www.soclabs.org)
-#-----------------------------------------------------------------------------
-
-#!/usr/bin/env bash
-
-mkdir -p $SOC_TOP/simulate/sim/ 
-iverilog -c $WRAP_ACC_DIR/flist/*.flist -c $ACC_ENGINE_DIR/flist/*.flist -I $SOC_TOP/hdl/verif/ -I $SOC_TOP/hdl/verif/submodules -I $SOC_TOP/hdl/src/ -I $ACC_ENGINE_DIR/hdl/src/ -g2012 -o $SOC_TOP/simulate/sim/$1.vvp $SOC_TOP/hdl/verif/tb_$1.sv
-cd $SOC_TOP/simulate/sim/ && vvp $1.vvp $2
\ No newline at end of file
diff --git a/flow/socsim b/flow/socsim
deleted file mode 100755
index 4b2d7f1bc9db2453e218a5bc01beaee19b3248c0..0000000000000000000000000000000000000000
--- a/flow/socsim
+++ /dev/null
@@ -1,18 +0,0 @@
-#-----------------------------------------------------------------------------
-# SoC Labs socsim script to run required simulation
-# A joint work commissioned on behalf of SoC Labs, under Arm Academic Access license.
-#
-# Contributors
-#
-# David Mapstone (d.a.mapstone@soton.ac.uk)
-#
-# Copyright  2022, SoC Labs (www.soclabs.org)
-#-----------------------------------------------------------------------------
-
-#!/usr/bin/env bash
-
-DEFAULT_SIMULATOR="ivlog"
-if [[ -z "${SIMULATOR}" ]]; then 
-    SIMULATOR=$DEFAULT_SIMULATOR
-fi
-$SOC_TOP_DIR"/flow/simulators/"$SIMULATOR"_sim.sh" $@
diff --git a/hdl/src/wrapper_ahb_reg_interface.sv b/hdl/src/wrapper_ahb_reg_interface.sv
index 5f0747c718a410c016940fb0a14c5839790b82ce..4239ac64073e3b5da399765e7249dd0e1901a8fa 100644
--- a/hdl/src/wrapper_ahb_reg_interface.sv
+++ b/hdl/src/wrapper_ahb_reg_interface.sv
@@ -76,12 +76,18 @@ module wrapper_ahb_reg_interface #(
    logic                   update_read_req;    // To update the read enable register
    logic                   update_write_req;   // To update the write enable register
 
-   reg  [ADDRWIDTH-1:0]   addr_reg;     // address signal, registered
-   reg                    read_en_reg;  // read enable signal, registered
-   reg                    write_en_reg; // write enable signal, registered
+   logic  [ADDRWIDTH-1:0]   addr_reg;     // address signal, registered
+   logic                    read_en_reg;  // read enable signal, registered
+   logic                    write_en_reg; // write enable signal, registered
 
-   reg  [3:0]             byte_strobe_reg; // registered output for byte strobe
-   reg  [3:0]             byte_strobe_nxt; // next state for byte_strobe_reg
+   logic  [3:0]             byte_strobe_reg; // registered output for byte strobe
+   logic  [3:0]             byte_strobe_nxt; // next state for byte_strobe_reg
+
+   logic  [1:0]             haddrs_byte_sel; // Select which byte to enable
+   logic                    haddrs_halfword_sel; // Select which byte to enable
+
+   assign haddrs_byte_sel     = haddrs[1:0];
+   assign haddrs_halfword_sel = haddrs[1];
   //-----------------------------------------------------------
   // Module logic start
   //----------------------------------------------------------
@@ -131,11 +137,11 @@ module wrapper_ahb_reg_interface #(
   end
 
   // byte strobe signal
-   always_ff @(hsizes or haddrs)
+   always_comb
    begin
      if (hsizes == 3'b000)    //byte
        begin
-         case(haddrs[1:0])
+         case(haddrs_byte_sel)
            2'b00: byte_strobe_nxt = 4'b0001;
            2'b01: byte_strobe_nxt = 4'b0010;
            2'b10: byte_strobe_nxt = 4'b0100;
@@ -145,7 +151,7 @@ module wrapper_ahb_reg_interface #(
        end
      else if (hsizes == 3'b001) //half word
        begin
-         if(haddrs[1]==1'b1)
+         if(haddrs_halfword_sel == 1'b1)
            byte_strobe_nxt = 4'b1100;
          else
            byte_strobe_nxt = 4'b0011;
diff --git a/hdl/src/wrapper_packet_construct.sv b/hdl/src/wrapper_packet_construct.sv
index 7d2f9447701da82690e1786f2e98e9cb6e7610fa..f556605590553ce15cbd10a0b7f79ea808b19c2f 100644
--- a/hdl/src/wrapper_packet_construct.sv
+++ b/hdl/src/wrapper_packet_construct.sv
@@ -58,8 +58,8 @@ assign addr_top_bit = (addr[PACKETBYTEWIDTH-1:REGDBYTEWIDTH] * REGDWIDTH) + (REG
 
 // Check if current Register address is last word in packet
 logic packet_last_word, prev_packet_last_word;
-assign packet_last_word = &addr[PACKETBYTEWIDTH-1:REGDBYTEWIDTH];
-assign packet_last_word = &addr[PACKETBYTEWIDTH-1:REGDBYTEWIDTH];
+assign packet_last_word      = &addr         [PACKETBYTEWIDTH-1:REGDBYTEWIDTH];
+assign prev_packet_last_word = &prev_wr_addr [PACKETBYTEWIDTH-1:REGDBYTEWIDTH];
 
 // Packet Address - Address of Packet
 logic [ADDRWIDTH-1:PACKETBYTEWIDTH] packet_addr, prev_packet_addr;
diff --git a/hdl/verif/submodules/cmsdk_ahb_default_slave.v b/hdl/verif/cmsdk/cmsdk_ahb_default_slave.v
similarity index 100%
rename from hdl/verif/submodules/cmsdk_ahb_default_slave.v
rename to hdl/verif/cmsdk/cmsdk_ahb_default_slave.v
diff --git a/hdl/verif/submodules/cmsdk_ahb_fileread_funnel.v b/hdl/verif/cmsdk/cmsdk_ahb_fileread_funnel.v
similarity index 100%
rename from hdl/verif/submodules/cmsdk_ahb_fileread_funnel.v
rename to hdl/verif/cmsdk/cmsdk_ahb_fileread_funnel.v
diff --git a/hdl/verif/submodules/cmsdk_ahb_fileread_master32.v b/hdl/verif/cmsdk/cmsdk_ahb_fileread_master32.v
similarity index 100%
rename from hdl/verif/submodules/cmsdk_ahb_fileread_master32.v
rename to hdl/verif/cmsdk/cmsdk_ahb_fileread_master32.v
diff --git a/hdl/verif/submodules/cmsdk_ahb_filereadcore.v b/hdl/verif/cmsdk/cmsdk_ahb_filereadcore.v
similarity index 99%
rename from hdl/verif/submodules/cmsdk_ahb_filereadcore.v
rename to hdl/verif/cmsdk/cmsdk_ahb_filereadcore.v
index 3ea41e09babb8f0eff547077f1d7afffaec07df6..91855da1a4554891d2b62eab0bb1c39d4c3359a5 100644
--- a/hdl/verif/submodules/cmsdk_ahb_filereadcore.v
+++ b/hdl/verif/cmsdk/cmsdk_ahb_filereadcore.v
@@ -291,14 +291,12 @@ module cmsdk_ahb_filereadcore #(
 // Open Command File
 //----------------------------------------------------------------------------
 // Reads the command file into an array. This process is only executed once.
-
   initial
     begin : p_open_file_bhav
 
       // report the stimulus file name to the simulation environment
       $display (`ARM_FRBM_OPENFILE_MSG, $time, message_tag, input_filename);
       $readmemh(input_filename, file_array);
-
     end
 
 
diff --git a/hdl/verif/submodules/cmsdk_ahb_ram_beh.v b/hdl/verif/cmsdk/cmsdk_ahb_ram_beh.v
similarity index 100%
rename from hdl/verif/submodules/cmsdk_ahb_ram_beh.v
rename to hdl/verif/cmsdk/cmsdk_ahb_ram_beh.v
diff --git a/hdl/verif/submodules/cmsdk_ahb_slave_mux.v b/hdl/verif/cmsdk/cmsdk_ahb_slave_mux.v
similarity index 100%
rename from hdl/verif/submodules/cmsdk_ahb_slave_mux.v
rename to hdl/verif/cmsdk/cmsdk_ahb_slave_mux.v
diff --git a/hdl/verif/tb_wrapper_sha256_hashing_stream.sv b/hdl/verif/tb_wrapper_sha256_hashing_stream.sv
index 3730176964568e40cbb2ba509dafafc473387fe1..364d3167fa203e05bd3933596f870b42a9e0a88b 100644
--- a/hdl/verif/tb_wrapper_sha256_hashing_stream.sv
+++ b/hdl/verif/tb_wrapper_sha256_hashing_stream.sv
@@ -35,11 +35,6 @@
 //  Abstract            : Example for File Reader Bus Master
 //                         Testbench for the example AHB Lite slave.
 //=========================================================================--
-`include "cmsdk_ahb_filereadcore.v"
-`include "cmsdk_ahb_fileread_funnel.v"
-`include "cmsdk_ahb_fileread_master32.v"
-`include "cmsdk_ahb_default_slave.v"
-`include "cmsdk_ahb_slave_mux.v"
 `include "wrapper_sha256_hashing_stream.sv"
 
 `timescale 1ns/1ps
@@ -49,8 +44,7 @@ module tb_wrapper_sha256_hashing_stream;
 parameter CLK_PERIOD = 10;
 parameter ADDRWIDTH = 12;
 
-// parameter InputFileName = "ahb_input_hash_stim.m2d";
-parameter InputFileName = ("../stimulus/ahb_input_hash_stim.m2d");
+parameter InputFileName = ("../../accelerator-wrapper/simulate/stimulus/ahb_input_hash_stim.m2d");
 parameter MessageTag = "FileReader:";
 parameter StimArraySize = 10000;
 
diff --git a/simulate/socsim/wrapper_sha256_hashing_stream.sh b/simulate/socsim/wrapper_sha256_hashing_stream.sh
new file mode 100755
index 0000000000000000000000000000000000000000..008ebf22680bfc6751c8efc8be8bc0d953e05d48
--- /dev/null
+++ b/simulate/socsim/wrapper_sha256_hashing_stream.sh
@@ -0,0 +1,16 @@
+#-----------------------------------------------------------------------------
+# SoC Labs icarus verilog simulation script for engine testbench
+# A joint work commissioned on behalf of SoC Labs, under Arm Academic Access license.
+#
+# Contributors
+#
+# David Mapstone (d.a.mapstone@soton.ac.uk)
+#
+# Copyright  2022, SoC Labs (www.soclabs.org)
+#-----------------------------------------------------------------------------
+
+#!/usr/bin/env bash
+
+mkdir -p $SOC_TOP_DIR/simulate/sim/ 
+iverilog -c $ACC_WRAPPER_DIR/flist/accelerator_wrapper.flist -c $ACC_WRAPPER_DIR/flist/ahb_ip.flist -c $ACC_ENGINE_DIR/flist/*.flist -I $ACC_WRAPPER_DIR/hdl/verif/ -I $ACC_WRAPPER_DIR/hdl/verif/submodules -I $ACC_WRAPPER_DIR/hdl/src/ -I $ACC_ENGINE_DIR/hdl/src/ -g2012 -o $SOC_TOP_DIR/simulate/sim/wrapper_sha256_hashing_stream.vvp $ACC_WRAPPER_DIR/hdl/verif/tb_wrapper_sha256_hashing_stream.sv
+cd $SOC_TOP_DIR/simulate/sim/ && vvp wrapper_sha256_hashing_stream.vvp +STIMFILE=$ACC_WRAPPER_DIR/simulate/stimulus/ahb_input_hash_stim.m2d
\ No newline at end of file
diff --git a/socsim b/socsim
new file mode 160000
index 0000000000000000000000000000000000000000..27329d3afac51fbf2762428e12f2635d1137c549
--- /dev/null
+++ b/socsim
@@ -0,0 +1 @@
+Subproject commit 27329d3afac51fbf2762428e12f2635d1137c549