diff --git a/system/src/verilog/nanosoc_chip.v b/system/src/verilog/nanosoc_chip.v
index 213f784bd066e2cfef46f136c303fe451c2c8c4f..a1e108ad4ddc822c7d3b9d3ba7a3303d42bf8d98 100644
--- a/system/src/verilog/nanosoc_chip.v
+++ b/system/src/verilog/nanosoc_chip.v
@@ -6,7 +6,7 @@
 //
 // David Flynn (d.w.flynn@soton.ac.uk)
 //
-// Copyright � 2021-3, SoC Labs (www.soclabs.org)
+// Copyright (C) 2021-3, SoC Labs (www.soclabs.org)
 //-----------------------------------------------------------------------------
 
 //-----------------------------------------------------------------------------
@@ -847,33 +847,38 @@ localparam    CORTEX_M0 = 1;
 //----------------------------------------
 
 `ifdef NANOSOC_EXPANSION_REGION
-nanosoc_acc_wrapper #(
+
+nanosoc_exp_wrapper #(
   .AHBADDRWIDTH(29),
+  .INPACKETWIDTH(16),
+  .CFGSIZEWIDTH(32),
+  .CFGSCHEMEWIDTH(1),
+  .OUTPACKETWIDTH(16),
   .CFGNUMIRQ(4)
 ) u_nanosoc_exp_wrapper (
-  .HCLK        (HCLK),
-  .HRESETn     (HRESETn),
-
-  //  Input slave port: 32 bit data bus interface
-  .HSELS       (HSEL_exp),
-  .HADDRS      (HADDR_exp[28:0]),
-  .HTRANSS     (HTRANS_exp),
-  .HSIZES      (HSIZE_exp),
-  .HPROTS      (HPROT_exp),
-  .HWRITES     (HWRITE_exp),
-  .HREADYS     (HREADYMUX_exp),
-  .HWDATAS     (HWDATA_exp),
-
-  .HREADYOUTS  (HREADYOUT_exp),
-  .HRESPS      (HRESP_exp),
-  .HRDATAS     (HRDATA_exp),
+  .HCLK          (HCLK),
+  .HRESETn       (HRESETn),
+  //  AHB port: 32 bit data bus interface
+  .HSEL_i        (HSEL_exp),
+  .HADDR_i       (HADDR_exp[28:0]),
+  .HTRANS_i      (HTRANS_exp),
+  .HSIZE_i       (HSIZE_exp),
+  .HPROT_i       (HPROT_exp),
+  .HWRITE_i      (HWRITE_exp),
+  .HREADY_i      (HREADYMUX_exp),
+  .HWDATA_i      (HWDATA_exp),
+  .HREADYOUT_o   (HREADYOUT_exp),
+  .HRESP_o       (HRESP_exp),
+  .HRDATA_o      (HRDATA_exp),
   .exp_drq_ip_o  (exp_drq_ip),
   .exp_dlast_ip_i(1'b0),
   .exp_drq_op_o  (exp_drq_op),
   .exp_dlast_op_i(1'b0),
   .exp_irq_o     (exp_irq)
 );
+
 `else
+
  // Default slave - if no expansion region
  cmsdk_ahb_default_slave u_ahb_exp (
    .HCLK         (HCLK),
@@ -886,30 +891,6 @@ nanosoc_acc_wrapper #(
 );
  assign   HRDATA_exp = 32'heaedeaed; // Tie off Expansion Address Expansion Data
 
-//nanosoc_exp_wrapper #(.AHBADDRWIDTH(29)
-//) u_nanosoc_exp_wrapper (
-//  .HCLK        (HCLK),
-//  .HRESETn     (HRESETn),
-//
-//  //  Input slave port: 32 bit data bus interface
-//  .HSEL_i       (HSEL_exp),
-//  .HADDR_i      (HADDR_exp[28:0]),
-//  .HTRANS_i     (HTRANS_exp),
-//  .HSIZE_i      (HSIZE_exp),
-//  .HPROT_i      (HPROT_exp),
-//  .HWRITE_i     (HWRITE_exp),
-//  .HREADY_i     (HREADYMUX_exp),
-//  .HWDATA_i     (HWDATA_exp),
-//
-//  .HREADYOUT_o  (HREADYOUT_exp),
-//  .HRESP_o      (HRESP_exp),
-//  .HRDATA_o     (HRDATA_exp),
-//  .exp_drq_ip_o  (exp_drq_ip),
-//  .exp_dlast_ip_i(1'b0),
-//  .exp_drq_op_o  (exp_drq_op),
-//  .exp_dlast_op_i(1'b0),
-//  .exp_irq_o    (exp_irq)
-//);
 `endif
 
   assign   HRUSER_exp = 2'b00;
diff --git a/system/testcodes/aes128_tests/makefile b/system/testcodes/aes128_tests/makefile
index 1c6281f3079689cf236acc3bcd2bc9aad3ee43f0..965b6ef9ee7d004b7db2c4c65f740aa979634c60 100644
--- a/system/testcodes/aes128_tests/makefile
+++ b/system/testcodes/aes128_tests/makefile
@@ -156,7 +156,7 @@ all: all_$(TOOL_CHAIN)
 
 # ---------------------------------------------------------------------------------------
 # DS-5
-all_ds5 : $(TESTNAME).hex $(TESTNAME).lst $(TESTNAME).bin
+all_ds5 : $(TESTNAME).hex $(TESTNAME).lst
 
 $(TESTNAME).o :  $(TESTNAME).c $(DEPS_LIST)
 	armcc $(ARM_CC_OPTIONS) $(CPU_TYPE) $< -o  $@
diff --git a/system/verif/verilog/nanosoc_acc_log_to_file.v b/system/verif/verilog/nanosoc_acc_log_to_file.v
new file mode 100644
index 0000000000000000000000000000000000000000..8a03a47a5d59124247ad257c4fc7d16d91fa73d0
--- /dev/null
+++ b/system/verif/verilog/nanosoc_acc_log_to_file.v
@@ -0,0 +1,183 @@
+//-----------------------------------------------------------------------------
+// AHB transaction logger, developed for DMA integration testing
+// A joint work commissioned on behalf of SoC Labs, under Arm Academic Access license.
+//
+// Contributors
+//
+// David Flynn (d.w.flynn@soton.ac.uk)
+//
+// Copyright (C) 2023, SoC Labs (www.soclabs.org)
+//-----------------------------------------------------------------------------
+
+module nanosoc_acc_log_to_file
+  #(parameter FILENAME = "accelerator.log",
+   parameter AHBADDRWIDTH = 29,
+   parameter CFGNUMIRQ = 1,
+   parameter TIMESTAMP = 1)
+  (
+  input  wire        HCLK,        // Clock
+  input  wire        HRESETn,     // Reset
+  input  wire        HSEL_i,      // Device select
+  input  wire [AHBADDRWIDTH-1:0] HADDR_i,     // Address for byte select
+  input  wire  [1:0] HTRANS_i,    // Transfer control
+  input  wire  [2:0] HSIZE_i,     // Transfer size
+  input  wire  [3:0] HPROT_i,     // Protection control
+  input  wire        HWRITE_i,    // Write control
+  input  wire        HREADY_i,    // Transfer phase done
+  input  wire [31:0] HWDATA_i,    // Write data
+  input  wire        HREADYOUT_o, // Device ready
+  input  wire [31:0] HRDATA_o,    // Read data output
+  input  wire        HRESP_o,     // Device response
+// stream data
+  input  wire        exp_drq_ip_o,  // (to) DMAC input burst request
+  input  wire        exp_dlast_ip_i,// (from) DMAC input burst end (last transfer)
+  input  wire        exp_drq_op_o,  // (to) DMAC output dma burst request
+  input  wire        exp_dlast_op_i,// (from) DMAC output burst end (last transfer)
+  input  wire [CFGNUMIRQ-1:0] exp_irq_o
+  );
+
+
+ // AHB transction de-pipelining
+ 
+  // --------------------------------------------------------------------------
+  // Internal regs/wires
+  // --------------------------------------------------------------------------
+
+  reg          sel_r;
+  reg   [AHBADDRWIDTH-1:0] addr_r;
+  reg          wcyc_r;
+  reg          rcyc_r;
+  reg    [3:0] byte4_r;
+  reg    [3:0] dma_ctrl_state_r;
+  
+  // --------------------------------------------------------------------------
+  // AHB slave byte buffer interface, support for unaligned data transfers
+  // --------------------------------------------------------------------------
+
+  wire   [1:0] byte_addr = HADDR_i[1:0];
+  // generate next byte enable decodes for Word/Half/Byte CPU/DMA accesses
+  wire   [3:0] byte_nxt;
+  assign byte_nxt[0] = (HSIZE_i[1])|((HSIZE_i[0])&(!byte_addr[1]))|(byte_addr[1:0]==2'b00);
+  assign byte_nxt[1] = (HSIZE_i[1])|((HSIZE_i[0])&(!byte_addr[1]))|(byte_addr[1:0]==2'b01);
+  assign byte_nxt[2] = (HSIZE_i[1])|((HSIZE_i[0])&( byte_addr[1]))|(byte_addr[1:0]==2'b10);
+  assign byte_nxt[3] = (HSIZE_i[1])|((HSIZE_i[0])&( byte_addr[1]))|(byte_addr[1:0]==2'b11);
+
+  // de-pipelined registered access signals
+  always @(posedge HCLK or negedge HRESETn)
+    if (!HRESETn)
+    begin
+      addr_r   <= 16'h0000;
+      sel_r    <= 1'b0;
+      wcyc_r   <= 1'b0;
+      rcyc_r   <= 1'b0;
+      byte4_r  <= 4'b0000;
+    end else if (HREADY_i)
+    begin
+      addr_r   <= (HSEL_i & HTRANS_i[1]) ?  HADDR_i : addr_r;
+      sel_r    <= (HSEL_i & HTRANS_i[1]);
+      wcyc_r   <= (HSEL_i & HTRANS_i[1]  &  HWRITE_i);
+      rcyc_r   <= (HSEL_i & HTRANS_i[1]  & !HWRITE_i);
+      byte4_r  <= (HSEL_i & HTRANS_i[1]) ?  byte_nxt[3:0] : 4'b0000;
+    end 
+
+  wire [31:0] hdata = (wcyc_r)? HWDATA_i : HRDATA_o;
+
+ //----------------------------------------------
+ //-- File I/O
+ //----------------------------------------------
+
+   integer        fd;       // channel descriptor for cmd file input
+   integer        ch;
+
+    reg           exp_drq_ip_o_prev;
+    reg           exp_dlast_ip_i_prev;
+    reg           exp_drq_op_o_prev;
+    reg           exp_dlast_op_i_prev;
+    reg [CFGNUMIRQ-1:0] exp_irq_prev;
+
+    wire          exp_drq_ip_change;
+    wire          exp_dlast_ip_change;
+    wire          exp_drq_op_change;
+    wire          exp_dlast_op_change;
+    wire [CFGNUMIRQ-1:0] exp_irq_change;
+    wire          irq_change;
+    wire          drq_change;
+    wire          any_change;
+        
+    reg [31:0]     cyc_count;
+`define EOF -1
+
+  reg [7:0] ctrl_reg;
+  reg [2:0] dreq_reg;
+  reg [2:0] ireq_reg;
+  
+  always @(posedge HCLK or negedge HRESETn)
+    if (!HRESETn)
+    begin
+       exp_drq_ip_o_prev   <= 1'b0;
+       exp_dlast_ip_i_prev <= 1'b0;
+       exp_drq_op_o_prev   <= 1'b0;
+       exp_dlast_op_i_prev <= 1'b0;
+       exp_irq_prev        <= {CFGNUMIRQ{1'b0}};
+
+    end else if (HREADY_i)
+    begin
+       exp_drq_ip_o_prev   <= exp_drq_ip_o  ;
+       exp_dlast_ip_i_prev <= exp_dlast_ip_i;
+       exp_drq_op_o_prev   <= exp_drq_op_o  ;
+       exp_dlast_op_i_prev <= exp_dlast_op_i;
+       exp_irq_prev        <= exp_irq_o     ;
+    end 
+
+    assign exp_drq_ip_change   = (exp_drq_ip_o_prev   ^ exp_drq_ip_o  );
+    assign exp_dlast_ip_change = (exp_dlast_ip_i_prev ^ exp_dlast_ip_i);
+    assign exp_drq_op_change   = (exp_drq_op_o_prev   ^ exp_drq_op_o  );
+    assign exp_dlast_op_change = (exp_dlast_op_i_prev ^ exp_dlast_op_i);
+    assign drq_change          = exp_drq_ip_change | exp_drq_op_change
+                               | exp_dlast_ip_change | exp_dlast_op_change;
+    assign exp_irq_change      = (exp_irq_prev ^ exp_irq_o);
+    assign irq_change          = |(exp_irq_change);
+
+    assign any_change = drq_change
+                      | irq_change
+                      ;
+                         
+   initial
+     begin
+       fd= $fopen(FILENAME,"w");
+       cyc_count <= 0;
+       if (fd == 0)
+          $write("** %m : output log file failed to open **\n");
+       else begin
+         @(posedge HRESETn);
+         while (1) begin
+           @(posedge HCLK);
+           cyc_count <= cyc_count +1;
+           if (sel_r & HREADY_i) begin
+               $fwrite(fd, "ACC: A+0x%08x, %s, D=0x",  addr_r, (wcyc_r) ? "W" : "R");
+               if (byte4_r[3]) $fwrite(fd, "%02x", hdata[31:24]); else $fwrite(fd, "--");
+               if (byte4_r[2]) $fwrite(fd, "%02x", hdata[23:16]); else $fwrite(fd, "--");
+               if (byte4_r[1]) $fwrite(fd, "%02x", hdata[15: 8]); else $fwrite(fd, "--");
+               if (byte4_r[0]) $fwrite(fd, "%02x", hdata[ 7: 0]); else $fwrite(fd, "--");
+              if (TIMESTAMP) $fwrite(fd, ", CYC=%8d (@%t)\n", cyc_count, $time); else $fwrite(fd, "\n");
+           end
+           if (any_change) begin
+             $fwrite(fd, "ACC-DRQ: ");
+             if (drq_change) begin
+               $fwrite(fd, " exp_drq_ip_o=%b,",exp_drq_ip_o);
+               $fwrite(fd, " exp_dlast_ip_i=%b,",exp_dlast_ip_i);
+               $fwrite(fd, " exp_drq_op_o=%b,",exp_drq_op_o);
+               $fwrite(fd, " exp_dlast_op_i=%b",exp_dlast_op_i);
+             end
+             if (irq_change) begin
+               if (drq_change)  $fwrite(fd, ",");
+               $fwrite(fd, " ACC-IRQ=%b,",exp_irq_o);
+             end
+             if (TIMESTAMP) $fwrite(fd, ", CYC=%8d (@%t)\n",cyc_count, $time); else $fwrite(fd, "\n");
+           end
+         end
+         $fclose(fd);
+       end
+     end
+
+endmodule
diff --git a/system/verif/verilog/nanosoc_tb.v b/system/verif/verilog/nanosoc_tb.v
index 2117f354b5098cf525ae73f592d5e7dde5a826e5..8a7bc4ffcae6980e7792ae6b782680c0971516c5 100644
--- a/system/verif/verilog/nanosoc_tb.v
+++ b/system/verif/verilog/nanosoc_tb.v
@@ -594,35 +594,31 @@ nanosoc_ft1248x1_track
   );
 
  // --------------------------------------------------------------------------------
- // Tracking AES logging support
+ // Tracking Accelerator logging support
  // --------------------------------------------------------------------------------
 
- `define AES_PATH u_nanosoc_chip_pads.u_nanosoc_chip.u_nanosoc_exp_wrapper.u_exp_aes128
-
-   aes128_log_to_file #(.FILENAME("logs/aes128.log"),.TIMESTAMP(1))
-     u_aes_log_to_file (
-     .ahb_hclk        (`AES_PATH.ahb_hclk      ),
-     .ahb_hresetn     (`AES_PATH.ahb_hresetn   ),
-     .ahb_hsel        (`AES_PATH.ahb_hsel      ),
-     .ahb_haddr16     (`AES_PATH.ahb_haddr16   ),
-     .ahb_htrans      (`AES_PATH.ahb_htrans    ),
-     .ahb_hwrite      (`AES_PATH.ahb_hwrite    ),
-     .ahb_hsize       (`AES_PATH.ahb_hsize     ),
-     .ahb_hprot       (`AES_PATH.ahb_hprot     ),
-     .ahb_hwdata      (`AES_PATH.ahb_hwdata    ),
-     .ahb_hready      (`AES_PATH.ahb_hready    ),
-     .ahb_hrdata      (`AES_PATH.ahb_hrdata    ),
-     .ahb_hreadyout   (`AES_PATH.ahb_hreadyout ),
-     .ahb_hresp       (`AES_PATH.ahb_hresp     ),
-     .drq_ipdma128    (`AES_PATH.drq_ipdma128  ),
-     .dlast_ipdma128  (`AES_PATH.dlast_ipdma128),
-     .drq_opdma128    (`AES_PATH.drq_opdma128  ),
-     .dlast_opdma128  (`AES_PATH.dlast_opdma128),
-     .irq_key128      (`AES_PATH.irq_key128    ),
-     .irq_ip128       (`AES_PATH.irq_ip128     ),
-     .irq_op128       (`AES_PATH.irq_op128     ),
-     .irq_error       (`AES_PATH.irq_error     ),
-     .irq_merged      (`AES_PATH.irq_merged    )
+ `define ACC_PATH u_nanosoc_chip_pads.u_nanosoc_chip.u_nanosoc_exp_wrapper
+
+   nanosoc_acc_log_to_file #(.FILENAME("logs/acc_exp.log"),.TIMESTAMP(1))
+     u_nanosoc_acc_log_to_file (
+     .HCLK            (`ACC_PATH.HCLK          ),
+     .HRESETn         (`ACC_PATH.HRESETn       ),
+     .HSEL_i          (`ACC_PATH.HSEL_i        ),
+     .HADDR_i         (`ACC_PATH.HADDR_i       ),
+     .HTRANS_i        (`ACC_PATH.HTRANS_i      ),
+     .HWRITE_i        (`ACC_PATH.HWRITE_i      ),
+     .HSIZE_i         (`ACC_PATH.HSIZE_i       ),
+     .HPROT_i         (`ACC_PATH.HPROT_i       ),
+     .HWDATA_i        (`ACC_PATH.HWDATA_i      ),
+     .HREADY_i        (`ACC_PATH.HREADY_i      ),
+     .HRDATA_o        (`ACC_PATH.HRDATA_o      ),
+     .HREADYOUT_o     (`ACC_PATH.HREADYOUT_o   ),
+     .HRESP_o         (`ACC_PATH.HRESP_o       ),
+     .exp_drq_ip_o    (`ACC_PATH.exp_drq_ip_o  ),
+     .exp_dlast_ip_i  (`ACC_PATH.exp_dlast_ip_i),
+     .exp_drq_op_o    (`ACC_PATH.exp_drq_op_o  ),
+     .exp_dlast_op_i  (`ACC_PATH.exp_dlast_op_i),
+     .exp_irq_o       (`ACC_PATH.exp_irq_o     )
    );
 
 
diff --git a/system/work/_info b/system/work/_info
new file mode 100644
index 0000000000000000000000000000000000000000..0438877c64cf8656282cd6500f1e163238a00771
--- /dev/null
+++ b/system/work/_info
@@ -0,0 +1,10 @@
+m255
+K4
+z2
+13
+!s112 1.1
+!i10d 8192
+!i10e 25
+!i10f 100
+cModel Technology
+d/home/dwf1m12/work/soclabs_aes128/accelerator-project-secworks-aes-128/nanosoc_tech/system