diff --git a/README.md b/README.md
index 1d723ec762a79686650528e9d79277681f3d2c84..b991a828aabd9c12444de13b6c9a8fadbf039d66 100644
--- a/README.md
+++ b/README.md
@@ -1,9 +1,3 @@
 # SoC Labs Accelerator Wrapper
 
-Tests
-This sample project shows how a project in GitLab looks for demonstration purposes. It contains issues, merge requests and Markdown files in many branches,
-named and filled with lorem ipsum.
-
-You can look around to get an idea how to structure your project and, when done, you can safely delete this project.
-
-[Learn more about creating GitLab projects.](https://docs.gitlab.com/ee/gitlab-basics/create-project.html)
+This Repo Contains Accelerator Wrapper IP which should be used at the top-level repository to stitch your accelerator together with.
diff --git a/flist/ahb_ip.flist b/flist/ahb_ip.flist
deleted file mode 100644
index 693b870c766dd2cbdac382f038435ee216a7bef9..0000000000000000000000000000000000000000
--- a/flist/ahb_ip.flist
+++ /dev/null
@@ -1,28 +0,0 @@
-//-----------------------------------------------------------------------------
-// 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/flist/accelerator_wrapper.flist b/flist/wrapper_ip.flist
similarity index 83%
rename from flist/accelerator_wrapper.flist
rename to flist/wrapper_ip.flist
index 13231946466cb221a62ea30fddc0a9f6632b1c00..94c2907d7c62fe3dd3ff0c2d8cb68932ce8d87e3 100644
--- a/flist/accelerator_wrapper.flist
+++ b/flist/wrapper_ip.flist
@@ -9,7 +9,7 @@
 // Copyright � 2021-3, SoC Labs (www.soclabs.org)
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
-// Abstract : Verilog Command File for Accelerator Wrapper example
+// Abstract : Verilog Command File for Accelerator Wrapper IP
 //-----------------------------------------------------------------------------
 
 // ============= Verilog library extensions ===========
@@ -20,7 +20,6 @@
 +incdir+$(ACC_WRAPPER_DIR)/hdl/src/
 
 $(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_ahb_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/hdl/.DS_Store b/hdl/.DS_Store
index 7b2e008b137c260776ee8d5c120f761ad9efbe4e..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6 100644
Binary files a/hdl/.DS_Store and b/hdl/.DS_Store differ
diff --git a/hdl/src/wrapper_ahb_to_vr_interface.sv b/hdl/src/wrapper_ahb_vr_interface.sv
similarity index 99%
rename from hdl/src/wrapper_ahb_to_vr_interface.sv
rename to hdl/src/wrapper_ahb_vr_interface.sv
index 71e2f6e875e425007f25bef9a4508515fd0fd8be..00595d37518f3c97f2a681d1472bea6591fa4abd 100644
--- a/hdl/src/wrapper_ahb_to_vr_interface.sv
+++ b/hdl/src/wrapper_ahb_vr_interface.sv
@@ -35,7 +35,7 @@
 // Abstract : AHB-lite example slave interface module. Transfer AHB-Lite BUS protocol to
 //            simple register read write protocol
 //-----------------------------------------------------------------------------
-module wrapper_ahb_to_vr_interface #(
+module wrapper_ahb_vr_interface #(
   //parameter for address width
   parameter   ADDRWIDTH=12)
  (
diff --git a/hdl/src/wrapper_sha256_hashing_stream.sv b/hdl/src/wrapper_sha256_hashing_stream.sv
deleted file mode 100644
index 81ff2a9d27536140b1e3a1160c0cbee344b42c9d..0000000000000000000000000000000000000000
--- a/hdl/src/wrapper_sha256_hashing_stream.sv
+++ /dev/null
@@ -1,235 +0,0 @@
-//-----------------------------------------------------------------------------
-// SoC Labs Basic Accelerator Wrapper for Hashing Stream
-// A joint work commissioned on behalf of SoC Labs; under Arm Academic Access license.
-//
-// Contributors
-//
-// David Mapstone (d.a.mapstone@soton.ac.uk)
-//
-// Copyright 2023; SoC Labs (www.soclabs.org)
-//-----------------------------------------------------------------------------
-//-----------------------------------------------------------------------------
-// The confidential and proprietary information contained in this file may
-// only be used by a person authorised under and to the extent permitted
-// by a subsisting licensing agreement from Arm Limited or its affiliates.
-//
-//            (C) COPYRIGHT 2010-2011 Arm Limited or its affiliates.
-//                ALL RIGHTS RESERVED
-//
-// This entire notice must be reproduced on all copies of this file
-// and copies of this file may only be made by a person if such person is
-// permitted to do so under the terms of a subsisting license agreement
-// from Arm Limited or its affiliates.
-//
-//      SVN Information
-//
-//      Checked In          : $Date: 2017-10-10 15:55:38 +0100 (Tue, 10 Oct 2017) $
-//
-//      Revision            : $Revision: 371321 $
-//
-//      Release Information : Cortex-M System Design Kit-r1p1-00rel0
-//
-//-----------------------------------------------------------------------------
-//-----------------------------------------------------------------------------
-// Abstract : AHB-lite example slave, support 4 32-bit register read and write,
-//            each register can be accessed by byte, half word or word.
-//            The example slave always output ready and OKAY response to the master
-//-----------------------------------------------------------------------------
-
-module wrapper_sha256_hashing_stream #(
-  parameter ADDRWIDTH=12
-  ) (
-    input  logic                  HCLK,       // Clock
-    input  logic                  HRESETn,    // Reset
-
-  // AHB connection to Initiator
-    input  logic                  HSELS,
-    input  logic  [ADDRWIDTH-1:0] HADDRS,
-    input  logic  [1:0]           HTRANSS,
-    input  logic  [2:0]           HSIZES,
-    input  logic                  HWRITES,
-    input  logic                  HREADYS,
-    input  logic  [31:0]          HWDATAS,
-
-    output logic                  HREADYOUTS,
-    output logic                  HRESPS,
-    output logic  [31:0]          HRDATAS
-  );
-  
-  // ----------------------------------------
-  // Internal wires declarations
-
-  // Register module interface signals
-  logic  [ADDRWIDTH-1:0]  in_buf_addr;
-  logic                   in_buf_read_en;
-  logic                   in_buf_write_en;
-  logic  [3:0]            in_buf_byte_strobe;
-  logic  [31:0]           in_buf_wdata;
-  logic  [31:0]           in_buf_rdata;
-
-  // Input Port Wire Declarations
-  logic [ADDRWIDTH-2:0] input_addr;
-  logic                 input_read_en;
-  logic                 input_write_en;
-  logic [3:0]           input_byte_strobe;
-  logic [31:0]          input_wdata;
-  logic [31:0]          input_rdata;
-  logic                 input_wready;
-  logic                 input_rready;
-
-  // Output Port Wire Declarations    
-  logic [ADDRWIDTH-2:0] output_addr;       
-  logic                 output_read_en;    
-  logic                 output_write_en;   
-  logic [3:0]           output_byte_strobe;
-  logic [31:0]          output_wdata;      
-  logic [31:0]          output_rdata;      
-  logic                 output_wready;     
-  logic                 output_rready;     
-
-  // Internal Wiring
-  // Input Packet Wires
-  logic [511:0] in_packet;    
-  logic         in_packet_last; 
-  logic         in_packet_valid;
-  logic         in_packet_ready;
-
-  // Output Packet Wires
-  logic [255:0] out_packet;    
-  logic         out_packet_last; 
-  logic         out_packet_valid;
-  logic         out_packet_ready;
-
-  // Configuration Tie Off
-  logic [63:0] cfg_size;
-  logic [1:0]  cfg_scheme;
-  logic cfg_last;
-  logic cfg_valid;
-  logic cfg_ready;
-
-  assign cfg_size   = 64'd512;
-  assign cfg_scheme = 2'd0;
-  assign cfg_last   = 1'b1;
-  assign cfg_valid  = 1'b1;
-
-  //-----------------------------------------------------------
-  // Module logic start
-  //----------------------------------------------------------
-
-  // Interface block to convert AHB transfers to Register transfers to engine input/output channels
-  // engine Input/Output Channels
-  wrapper_ahb_to_vr_interface #(
-    ADDRWIDTH
-   ) u_wrapper_ahb_interface (
-    .hclk         (HCLK),
-    .hresetn      (HRESETn),
-
-    // Input slave port: 32 bit data bus interface
-    .hsels        (HSELS),
-    .haddrs       (HADDRS),
-    .htranss      (HTRANSS),
-    .hsizes       (HSIZES),
-    .hwrites      (HWRITES),
-    .hreadys      (HREADYS),
-    .hwdatas      (HWDATAS),
-
-    .hreadyouts   (HREADYOUTS),
-    .hresps       (HRESPS),
-    .hrdatas      (HRDATAS),
-
-    // Register interface - Accelerator Engine Input
-    .input_addr        (input_addr),
-    .input_read_en     (input_read_en),
-    .input_write_en    (input_write_en),
-    .input_byte_strobe (input_byte_strobe),
-    .input_wdata       (input_wdata),
-    .input_rdata       (input_rdata),
-    .input_wready      (input_wready),
-    .input_rready      (input_rready),
-
-    // Register interface - Accelerator Engine Output
-    .output_addr        (output_addr),
-    .output_read_en     (output_read_en),
-    .output_write_en    (output_write_en),
-    .output_byte_strobe (output_byte_strobe),
-    .output_wdata       (output_wdata),
-    .output_rdata       (output_rdata),
-    .output_wready      (output_wready),
-    .output_rready      (output_rready)
-  );
-
-  wrapper_packet_construct #(
-    (ADDRWIDTH - 1),  // Only half address map allocated to this device
-    512               // Packet Width
-  ) u_wrapper_packet_construct (
-    .hclk         (HCLK),
-    .hresetn      (HRESETn),
-
-    // Register interface
-    .addr        (input_addr),
-    .read_en     (input_read_en),
-    .write_en    (input_write_en),
-    .byte_strobe (input_byte_strobe),
-    .wdata       (input_wdata),
-    .rdata       (input_rdata),
-    .wready      (input_wready),
-    .rready      (input_rready),
-
-    // Valid/Ready Interface
-    .packet_data       (in_packet),
-    .packet_data_last  (in_packet_last),
-    .packet_data_valid (in_packet_valid),
-    .packet_data_ready (in_packet_ready)
-  );
-
-  sha256_hashing_stream u_sha256_hashing_stream (
-        .clk            (HCLK),
-        .nrst           (HRESETn),
-        .en             (1'b1),
-        .sync_rst       (1'b0),
-
-        // Data in Channel
-        .data_in        (in_packet),
-        .data_in_valid  (in_packet_valid),
-        .data_in_ready  (in_packet_ready),
-        .data_in_last   (in_packet_last),
-
-        // Config In Channel
-        .cfg_size       (cfg_size),
-        .cfg_scheme     (cfg_scheme),
-        .cfg_last       (cfg_last),
-        .cfg_valid      (cfg_valid),
-        .cfg_ready      (cfg_ready),
-
-        // Data Out Channel
-        .data_out       (out_packet),
-        .data_out_last  (out_packet_last),
-        .data_out_valid (out_packet_valid),
-        .data_out_ready (out_packet_ready)
-    );
-
-  wrapper_packet_deconstruct #(
-    (ADDRWIDTH - 1),  // Only half address map allocated to this device
-    256               // Ouptut Packet WIdth
-  ) u_wrapper_packet_deconstruct (
-    .hclk         (HCLK),
-    .hresetn      (HRESETn),
-
-    // Register interface
-    .addr        (output_addr),
-    .read_en     (output_read_en),
-    .write_en    (output_write_en),
-    .byte_strobe (output_byte_strobe),
-    .wdata       (output_wdata),
-    .rdata       (output_rdata),
-    .wready      (output_wready),
-    .rready      (output_rready),
-
-    // Valid/Ready Interface
-    .packet_data       (out_packet),
-    .packet_data_last  (out_packet_last),
-    .packet_data_valid (out_packet_valid),
-    .packet_data_ready (out_packet_ready)
-  );
-
-endmodule
\ No newline at end of file
diff --git a/hdl/src/wrapper_vr_loopback.sv b/hdl/src/wrapper_vr_loopback.sv
deleted file mode 100644
index 49bf64eef7919e4c95ada1d386e95fa0cf73e208..0000000000000000000000000000000000000000
--- a/hdl/src/wrapper_vr_loopback.sv
+++ /dev/null
@@ -1,251 +0,0 @@
-//-----------------------------------------------------------------------------
-// SoC Labs Basic Wrapper Source
-// - Valid-Ready Loopback example connecting packet constructor to deconstructor
-// A joint work commissioned on behalf of SoC Labs; under Arm Academic Access license.
-//
-// Contributors
-//
-// David Mapstone (d.a.mapstone@soton.ac.uk)
-//
-// Copyright 2023; SoC Labs (www.soclabs.org)
-//-----------------------------------------------------------------------------
-//-----------------------------------------------------------------------------
-// The confidential and proprietary information contained in this file may
-// only be used by a person authorised under and to the extent permitted
-// by a subsisting licensing agreement from Arm Limited or its affiliates.
-//
-//            (C) COPYRIGHT 2010-2011 Arm Limited or its affiliates.
-//                ALL RIGHTS RESERVED
-//
-// This entire notice must be reproduced on all copies of this file
-// and copies of this file may only be made by a person if such person is
-// permitted to do so under the terms of a subsisting license agreement
-// from Arm Limited or its affiliates.
-//
-//      SVN Information
-//
-//      Checked In          : $Date: 2017-10-10 15:55:38 +0100 (Tue, 10 Oct 2017) $
-//
-//      Revision            : $Revision: 371321 $
-//
-//      Release Information : Cortex-M System Design Kit-r1p1-00rel0
-//
-//-----------------------------------------------------------------------------
-//-----------------------------------------------------------------------------
-// Abstract : AHB-lite example slave, support 4 32-bit register read and write,
-//            each register can be accessed by byte, half word or word.
-//            The example slave always output ready and OKAY response to the master
-//-----------------------------------------------------------------------------
-`timescale 1ns/1ns
-`include "wrapper_packet_construct.sv"
-`include "wrapper_packet_deconstruct.sv"
-`include "wrapper_ahb_interface.sv"
-
-module wrapper_vr_loopback #(
-    parameter    ADDRWIDTH=12 // Peripheral Address Width
-  )(
-    input  logic                  HCLK,       // Clock
-    input  logic                  HRESETn,    // Reset
-
-  // AHB connection to Initiator
-    input  logic                  HSELS,
-    input  logic  [ADDRWIDTH-1:0] HADDRS,
-    input  logic  [1:0]           HTRANSS,
-    input  logic  [2:0]           HSIZES,
-    input  logic                  HWRITES,
-    input  logic                  HREADYS,
-    input  logic  [31:0]          HWDATAS,
-
-    output logic                  HREADYOUTS,
-    output logic                  HRESPS,
-    output logic  [31:0]          HRDATAS
-  );
-
-
-  // ----------------------------------------
-  // Internal wires declarations
-
-  // Register module interface signals
-  logic  [ADDRWIDTH-1:0]  in_buf_addr;
-  logic                   in_buf_read_en;
-  logic                   in_buf_write_en;
-  logic  [3:0]            in_buf_byte_strobe;
-  logic  [31:0]           in_buf_wdata;
-  logic  [31:0]           in_buf_rdata;
-
-  // Input Port Wire Declarations
-  logic [ADDRWIDTH-2:0] input_addr;
-  logic                 input_read_en;
-  logic                 input_write_en;
-  logic [3:0]           input_byte_strobe;
-  logic [31:0]          input_wdata;
-  logic [31:0]          input_rdata;
-  logic                 input_wready;
-  logic                 input_rready;
-
-  // Output Port Wire Declarations    
-  logic [ADDRWIDTH-2:0] output_addr;       
-  logic                 output_read_en;    
-  logic                 output_write_en;   
-  logic [3:0]           output_byte_strobe;
-  logic [31:0]          output_wdata;      
-  logic [31:0]          output_rdata;      
-  logic                 output_wready;     
-  logic                 output_rready;     
-
-  // Internal Wiring
-  logic [511:0] packet;    
-  logic         packet_last; 
-  logic         packet_valid;
-  logic         packet_ready;
-
-  //-----------------------------------------------------------
-  // Module logic start
-  //----------------------------------------------------------
-
-  // Interface block to convert AHB transfers to Register transfers to engine input/output channels
-  // engine Input/Output Channels
-  wrapper_ahb_to_vr_interface #(
-    ADDRWIDTH
-   ) u_wrapper_ahb_interface (
-    .hclk         (HCLK),
-    .hresetn      (HRESETn),
-
-    // Input slave port: 32 bit data bus interface
-    .hsels        (HSELS),
-    .haddrs       (HADDRS),
-    .htranss      (HTRANSS),
-    .hsizes       (HSIZES),
-    .hwrites      (HWRITES),
-    .hreadys      (HREADYS),
-    .hwdatas      (HWDATAS),
-
-    .hreadyouts   (HREADYOUTS),
-    .hresps       (HRESPS),
-    .hrdatas      (HRDATAS),
-
-    // Register interface - Accelerator Engine Input
-    .input_addr        (input_addr),
-    .input_read_en     (input_read_en),
-    .input_write_en    (input_write_en),
-    .input_byte_strobe (input_byte_strobe),
-    .input_wdata       (input_wdata),
-    .input_rdata       (input_rdata),
-    .input_wready      (input_wready),
-    .input_rready      (input_rready),
-
-    // Register interface - Accelerator Engine Output
-    .output_addr        (output_addr),
-    .output_read_en     (output_read_en),
-    .output_write_en    (output_write_en),
-    .output_byte_strobe (output_byte_strobe),
-    .output_wdata       (output_wdata),
-    .output_rdata       (output_rdata),
-    .output_wready      (output_wready),
-    .output_rready      (output_rready)
-  );
-
-  wrapper_packet_construct #(
-    (ADDRWIDTH - 1),  // Only half address map allocated to this device
-    512               // Packet Width
-  ) u_wrapper_packet_construct (
-    .hclk         (HCLK),
-    .hresetn      (HRESETn),
-
-    // Register interface
-    .addr        (input_addr),
-    .read_en     (input_read_en),
-    .write_en    (input_write_en),
-    .byte_strobe (input_byte_strobe),
-    .wdata       (input_wdata),
-    .rdata       (input_rdata),
-    .wready      (input_wready),
-    .rready      (input_rready),
-
-    // Valid/Ready Interface
-    .packet_data       (packet),
-    .packet_data_last  (packet_last),
-    .packet_data_valid (packet_valid),
-    .packet_data_ready (packet_ready)
-  );
-
-  wrapper_packet_deconstruct #(
-    (ADDRWIDTH - 1),  // Only half address map allocated to this device
-    512               // Ouptut Packet WIdth
-  ) u_wrapper_packet_deconstruct (
-    .hclk         (HCLK),
-    .hresetn      (HRESETn),
-
-    // Register interface
-    .addr        (output_addr),
-    .read_en     (output_read_en),
-    .write_en    (output_write_en),
-    .byte_strobe (output_byte_strobe),
-    .wdata       (output_wdata),
-    .rdata       (output_rdata),
-    .wready      (output_wready),
-    .rready      (output_rready),
-
-    // Valid/Ready Interface
-    .packet_data       (packet),
-    .packet_data_last  (packet_last),
-    .packet_data_valid (packet_valid),
-    .packet_data_ready (packet_ready)
-  );
-
-  //-----------------------------------------------------------
-  //Module logic end
-  //----------------------------------------------------------
-
-`ifdef ARM_AHB_ASSERT_ON
-
- `include "std_ovl_defines.h"
-  // ------------------------------------------------------------
-  // Assertions
-  // ------------------------------------------------------------
-
-  logic     ovl_trans_req = HREADYS & HSELS & HTRANSS[1];
-
-   // Check the reg_write_en signal generated
-   assert_next
-    #(`OVL_ERROR, 1,1,0,
-      `OVL_ASSERT,
-      "Error! register write signal was not generated! "
-      )
-    u_ovl_ahb_eg_slave_reg_write
-    (.clk         ( HCLK ),
-     .reset_n     (HRESETn),
-     .start_event ((ovl_trans_req & HWRITES)),
-     .test_expr   (reg_write_en == 1'b1)
-     );
-
-
-  // Check the reg_read_en signal generated
-  assert_next
-    #(`OVL_ERROR, 1,1,0,
-      `OVL_ASSERT,
-      "Error! register read signal was not generated! "
-      )
-    u_ovl_ahb_eg_slave_reg_read
-    (.clk         ( HCLK ),
-     .reset_n     (HRESETn),
-     .start_event ((ovl_trans_req & (~HWRITES))),
-     .test_expr   (reg_read_en == 1'b1)
-     );
-
-
-
-  // Check register read and write operation won't assert at the same cycle
-    assert_never
-     #(`OVL_ERROR,
-       `OVL_ASSERT,
-       "Error! register read and write active at the same cycle!")
-    u_ovl_ahb_eg_slave_rd_wr_illegal
-     (.clk(HCLK),
-      .reset_n(HRESETn),
-      .test_expr((reg_write_en & reg_read_en))
-      );
-
-`endif
-
-endmodule
\ No newline at end of file
diff --git a/hdl/verif/.DS_Store b/hdl/verif/.DS_Store
deleted file mode 100644
index 5008ddfcf53c02e82d7eee2e57c38e5672ef89f6..0000000000000000000000000000000000000000
Binary files a/hdl/verif/.DS_Store and /dev/null differ
diff --git a/hdl/verif/cmsdk/cmsdk_ahb_default_slave.v b/hdl/verif/cmsdk/cmsdk_ahb_default_slave.v
deleted file mode 100644
index 39b45ac94d7b8f416131fdcd924aa20e96dfc0c9..0000000000000000000000000000000000000000
--- a/hdl/verif/cmsdk/cmsdk_ahb_default_slave.v
+++ /dev/null
@@ -1,141 +0,0 @@
-//-----------------------------------------------------------------------------
-// The confidential and proprietary information contained in this file may
-// only be used by a person authorised under and to the extent permitted
-// by a subsisting licensing agreement from Arm Limited or its affiliates.
-//
-//            (C) COPYRIGHT 2010-2011 Arm Limited or its affiliates.
-//                ALL RIGHTS RESERVED
-//
-// This entire notice must be reproduced on all copies of this file
-// and copies of this file may only be made by a person if such person is
-// permitted to do so under the terms of a subsisting license agreement
-// from Arm Limited or its affiliates.
-//
-//      SVN Information
-//
-//      Checked In          : $Date: 2017-10-10 15:55:38 +0100 (Tue, 10 Oct 2017) $
-//
-//      Revision            : $Revision: 371321 $
-//
-//      Release Information : Cortex-M System Design Kit-r1p1-00rel0
-//
-//-----------------------------------------------------------------------------
-//-----------------------------------------------------------------------------
-// Abstract : AHB-Lite Default Slave
-//-----------------------------------------------------------------------------
-//
-// Returns an error response when selected for a transfer
-//
-
-module cmsdk_ahb_default_slave (
-  // Inputs
- input  wire       HCLK,      // Clock
- input  wire       HRESETn,   // Reset
- input  wire       HSEL,      // Slave select
- input  wire [1:0] HTRANS,    // Transfer type
- input  wire       HREADY,    // System ready
-
-  // Outputs
- output wire       HREADYOUT, // Slave ready
- output wire       HRESP);    // Slave response
-
-//
-// Start of main code
-//
-
-// Internal signals
-wire         trans_req;  // Transfer Request
-reg    [1:0] resp_state; // Current FSM state for two-cycle error response
-wire   [1:0] next_state; // Next FSM state
-
-// Transfer address phase completes
-assign trans_req = HSEL & HTRANS[1] & HREADY;
-
-// Generate next state for the FSM.
-// Bit 0 is connected to HREADYOUT and bit 1 is connected to HRESP,
-// so the state encodings are:
-//   01 - Idle
-//   10 - 1st cycle of error response
-//   11 - 2nd cycle of error response
-assign next_state = { trans_req | (~resp_state[0]),
-                      ~trans_req };
-
-// Registering FSM state
-always @(posedge HCLK or negedge HRESETn)
-  if (~HRESETn)
-    resp_state <= 2'b01; // ensure HREADYOUT is HIGH at reset
-  else
-    resp_state <= next_state;
-
-// Connect to output
-assign HREADYOUT = resp_state[0];
-assign HRESP     = resp_state[1];
-
-`ifdef ARM_AHB_ASSERT_ON
-
-   // ------------------------------------------------------------
-   // Assertions
-   // ------------------------------------------------------------
-  `include "std_ovl_defines.h"
-  reg        ovl_last_hreadyout;
-  reg        ovl_last_hsel;
-  reg  [1:0] ovl_last_htrans;
-  reg        ovl_last_hready;
-
-  always @(posedge HCLK or negedge HRESETn)
-  begin
-  if (~HRESETn)
-    begin
-    ovl_last_hreadyout <= 1'b1;
-    ovl_last_hsel      <= 1'b0;
-    ovl_last_htrans    <= 2'b00;
-    ovl_last_hready    <= 1'b1;
-    end
-  else
-    begin
-    ovl_last_hreadyout <= HREADYOUT;
-    ovl_last_hsel      <= HSEL;
-    ovl_last_htrans    <= HTRANS;
-    ovl_last_hready    <= HREADY;
-    end
-  end
-
-   assert_implication
-     #(`OVL_ERROR,`OVL_ASSERT,
-       "If HREADYOUT is 0, HRESP must be high")
-   u_ovl_error_response_check_1
-     (.clk(HCLK), .reset_n(HRESETn),
-      .antecedent_expr(~HREADYOUT),
-      .consequent_expr(HRESP)
-      );
-
-   assert_implication
-     #(`OVL_ERROR,`OVL_ASSERT,
-       "If in last cycle HREADYOUT is 0, this cycle both HRESP and HREADYOUT")
-   u_ovl_error_response_check_2
-     (.clk(HCLK), .reset_n(HRESETn),
-      .antecedent_expr(~ovl_last_hreadyout),
-      .consequent_expr(HRESP & HREADYOUT)
-      );
-
-   assert_implication
-     #(`OVL_ERROR,`OVL_ASSERT,
-       "If device is not selected, or if transfer is idle/busy, response must be OKAY")
-   u_ovl_error_fault_check_1
-     (.clk(HCLK), .reset_n(HRESETn),
-      .antecedent_expr(~(ovl_last_hsel & ovl_last_htrans[1]) & ovl_last_hready),
-      .consequent_expr((~HRESP) & HREADYOUT)
-      );
-
-   assert_implication
-     #(`OVL_ERROR,`OVL_ASSERT,
-       "If device is selected, and if transfer is nseq/seq, response must be ERROR")
-   u_ovl_error_fault_check_2
-     (.clk(HCLK), .reset_n(HRESETn),
-      .antecedent_expr(ovl_last_hsel & ovl_last_htrans[1] & ovl_last_hready),
-      .consequent_expr(HRESP & (~HREADYOUT))
-      );
-
-`endif
-
-endmodule
diff --git a/hdl/verif/cmsdk/cmsdk_ahb_fileread_funnel.v b/hdl/verif/cmsdk/cmsdk_ahb_fileread_funnel.v
deleted file mode 100644
index 35bc30f7f29f202bc5ce3e0a47c73273808b7040..0000000000000000000000000000000000000000
--- a/hdl/verif/cmsdk/cmsdk_ahb_fileread_funnel.v
+++ /dev/null
@@ -1,90 +0,0 @@
-//-----------------------------------------------------------------------------
-// The confidential and proprietary information contained in this file may
-// only be used by a person authorised under and to the extent permitted
-// by a subsisting licensing agreement from Arm Limited or its affiliates.
-//
-//            (C) COPYRIGHT 2010-2011,2017 Arm Limited or its affiliates.
-//                ALL RIGHTS RESERVED
-//
-// This entire notice must be reproduced on all copies of this file
-// and copies of this file may only be made by a person if such person is
-// permitted to do so under the terms of a subsisting license agreement
-// from Arm Limited or its affiliates.
-//
-//      SVN Information
-//
-//      Checked In          : $Date: 2017-10-10 15:55:38 +0100 (Tue, 10 Oct 2017) $
-//
-//      Revision            : $Revision: 371321 $
-//
-//      Release Information : Cortex-M System Design Kit-r1p1-00rel0
-//
-//-----------------------------------------------------------------------------
-//-----------------------------------------------------------------------------
-// Abstract : Convert 64-bit bus from ahb_fileread_core to 32-bit
-//-----------------------------------------------------------------------------
-//  ----------------------------------------------------------------------------
-//  Purpose             : A data bus multiplexor, used to connect a 32 bit slave
-//                        to a 64 bit bus.
-//                        Supports transfers up to 32 bit in size.
-//  --========================================================================--
-
-module cmsdk_ahb_fileread_funnel (
- // Clock and Reset
- input  wire        HCLK,
- input  wire        HRESETn,
- // Interface to AHB
- input  wire        HADDR2S,
- input  wire [63:0] HWDATAS,
- input  wire        HREADYS,
- output wire [63:0] HRDATAS,
- // Interface to slave
- output reg  [31:0] HWDATAM,
- input  wire [31:0] HRDATAM);
-
-// -----------------------------------------------------------------------------
-// Signal Declarations
-// -----------------------------------------------------------------------------
-
-reg        haddr2s_reg;       // Delayed version of address bit2
-
-// =============================================================================
-// Beginning of main verilog code
-// =============================================================================
-
-//------------------------------------------------------------------------------
-// Generate Delayed version of HADDR2S
-//------------------------------------------------------------------------------
-always@(posedge HCLK or negedge HRESETn)
-  begin : p_haddr2s_reg
-    if (HRESETn == 1'b0)
-      haddr2s_reg <= 1'b0;
-    else
-      begin
-        if (HREADYS == 1'b1)
-        haddr2s_reg <= HADDR2S;
-      end
-  end // block: p_haddr2s_reg
-
-// -----------------------------------------------------------------------------
-// Write Data MUX
-// -----------------------------------------------------------------------------
-// Note: To support Big-Endian systems the polarity of the HWDATAM MUX should be
-// reversed.
-
-always@(haddr2s_reg or HWDATAS)
-  begin : p_write_mux
-    if (haddr2s_reg == 1'b0)
-      HWDATAM = HWDATAS[31:0];
-    else
-      HWDATAM = HWDATAS[63:32];
-  end // block: p_write_mux
-
-// -----------------------------------------------------------------------------
-// Read Data bus
-// -----------------------------------------------------------------------------
-  assign HRDATAS = {HRDATAM,HRDATAM};
-
-
-endmodule
-// --================================= End ===================================--
diff --git a/hdl/verif/cmsdk/cmsdk_ahb_fileread_master32.v b/hdl/verif/cmsdk/cmsdk_ahb_fileread_master32.v
deleted file mode 100644
index b3fbecaba20d10d309d7e27b9b95fe87a4b7d513..0000000000000000000000000000000000000000
--- a/hdl/verif/cmsdk/cmsdk_ahb_fileread_master32.v
+++ /dev/null
@@ -1,134 +0,0 @@
-//-----------------------------------------------------------------------------
-// The confidential and proprietary information contained in this file may
-// only be used by a person authorised under and to the extent permitted
-// by a subsisting licensing agreement from Arm Limited or its affiliates.
-//
-//            (C) COPYRIGHT 2010-2011,2017 Arm Limited or its affiliates.
-//                ALL RIGHTS RESERVED
-//
-// This entire notice must be reproduced on all copies of this file
-// and copies of this file may only be made by a person if such person is
-// permitted to do so under the terms of a subsisting license agreement
-// from Arm Limited or its affiliates.
-//
-//      SVN Information
-//
-//      Checked In          : $Date: 2017-10-10 15:55:38 +0100 (Tue, 10 Oct 2017) $
-//
-//      Revision            : $Revision: 371321 $
-//
-//      Release Information : Cortex-M System Design Kit-r1p1-00rel0
-//
-//-----------------------------------------------------------------------------
-//-----------------------------------------------------------------------------
-// Abstract : 32-bit AHB File Reader Bus Master
-//-----------------------------------------------------------------------------
-// ----------------------------------------------------------------------------
-//  Purpose             : This entity ties together the sub blocks that
-//                        form the 32-bit File Reader Bus Master, namely an
-//                        AHB-Lite File Reader Core and a bus funnel .
-// --========================================================================--
-//  Note
-//                        This top level file converts AHB Lite extension
-//                        signals in ARM1136 to sideband signals used in
-//                        Cortex-M3/M4
-// --========================================================================--
-
-module cmsdk_ahb_fileread_master32  #(
-
-  parameter  InputFileName = "filestim.m2d",  // stimulus data file name
-  parameter  MessageTag    = "FileReader:",   // tag on each FileReader message
-  parameter  StimArraySize = 5000)            // stimulus data array size:
-                                              //  should be large enough to hold
-                                              //  entire stimulus data file
- (
-  // system ports
-  input  wire         HCLK,          //  system clock
-  input  wire         HRESETn,       //  system reset
-
-  // AHB ports
-  input  wire         HREADY,        //  slave ready signal
-  input  wire         HRESP,         //  slave response bus
-  input  wire [31:0]  HRDATA,        //  data, slave to master
-  input  wire         EXRESP,        //  Exclusive response (tie low if not used)
-
-  output wire [1:0]   HTRANS,        //  transfer type
-  output wire [2:0]   HBURST,        //  burst type
-  output wire [3:0]   HPROT,         //  transfer protection
-  output wire         EXREQ,         //  Exclusive access request
-  output wire [1:0]   MEMATTR,       //  Memory attribute
-  output wire [2:0]   HSIZE,         //  transfer size
-  output wire         HWRITE,        //  transfer direction
-  output wire         HMASTLOCK,     //  transfer is locked
-  output wire [31:0]  HADDR,         //  transfer address
-  output wire [31:0]  HWDATA,        //  data, master to slave
-
-  output wire [31:0]  LINENUM);      //  line number in stimulus file
-
-  // Internal AHB-Lite Bus Signals
-  wire   [2:0]   hresp_core;    //  slave response
-  wire   [63:0]  hrdata_core;   //  data from slave to master
-  wire   [31:0]  haddr_core;    //  transfer address
-  wire   [63:0]  hwdata_core;   //  data from master to slave
-  wire   [5:0]   hprot_core;    //  transfer protection
-
-//------------------------------------------------------------------------------
-// structural
-//------------------------------------------------------------------------------
-
-// Instance of AHB-Lite File Reader connected to internal AHB-Lite system
-  cmsdk_ahb_filereadcore
-    #(.input_filename(InputFileName),
-      .message_tag(MessageTag),
-      .stim_array_size(StimArraySize))
-    u_ahb_filereadcore (
-
-    .HCLK           (HCLK),
-    .HRESETn        (HRESETn),
-
-    .HREADY         (HREADY),
-    .HRESP          (hresp_core),
-    .HRDATA         (hrdata_core),
-
-    .HTRANS         (HTRANS),
-    .HBURST         (HBURST),
-    .HPROT          (hprot_core),
-    .HSIZE          (HSIZE),
-    .HWRITE         (HWRITE),
-    .HMASTLOCK      (HMASTLOCK),
-    .HADDR          (haddr_core),
-    .HWDATA         (hwdata_core),
-    .HUNALIGN       (),
-    .HBSTRB         (),
-    .LINENUM        (LINENUM)
-    );
-
-  // Instance of a Funnel to translate the 64-bit AHB-Lite data bus to 32-bit.
-  cmsdk_ahb_fileread_funnel u_ahb_fileread_funnel (
-
-    .HCLK           (HCLK),
-    .HRESETn        (HRESETn),
-
-    // 64-bit interface to AHB
-    .HREADYS        (HREADY),
-    .HADDR2S        (haddr_core[2]),
-    .HWDATAS        (hwdata_core),
-    .HRDATAS        (hrdata_core),
-
-    // 32-bit interface to slave
-    .HWDATAM        (HWDATA),
-    .HRDATAM        (HRDATA)
-    );
-
-
-  // Convert internal versions of port signals
-  assign HADDR          = haddr_core;     // Drive port with internal signal
-  assign HPROT          = hprot_core[3:0];
-  assign EXREQ          = hprot_core[5];
-  assign MEMATTR        = {1'b0, hprot_core[4]};
-
-  assign hresp_core     = {EXRESP, 1'b0,HRESP};  // Drive unused bit of hresp_core
-
-endmodule
-
-// --================================ End ==================================--
diff --git a/hdl/verif/cmsdk/cmsdk_ahb_filereadcore.v b/hdl/verif/cmsdk/cmsdk_ahb_filereadcore.v
deleted file mode 100644
index 91855da1a4554891d2b62eab0bb1c39d4c3359a5..0000000000000000000000000000000000000000
--- a/hdl/verif/cmsdk/cmsdk_ahb_filereadcore.v
+++ /dev/null
@@ -1,1488 +0,0 @@
-//-----------------------------------------------------------------------------
-// The confidential and proprietary information contained in this file may
-// only be used by a person authorised under and to the extent permitted
-// by a subsisting licensing agreement from Arm Limited or its affiliates.
-//
-//            (C) COPYRIGHT 2010-2011,2017 Arm Limited or its affiliates.
-//                ALL RIGHTS RESERVED
-//
-// This entire notice must be reproduced on all copies of this file
-// and copies of this file may only be made by a person if such person is
-// permitted to do so under the terms of a subsisting license agreement
-// from Arm Limited or its affiliates.
-//
-//      SVN Information
-//
-//      Checked In          : $Date: 2017-10-10 15:55:38 +0100 (Tue, 10 Oct 2017) $
-//
-//      Revision            : $Revision: 371321 $
-//
-//      Release Information : Cortex-M System Design Kit-r1p1-00rel0
-//
-//-----------------------------------------------------------------------------
-//-----------------------------------------------------------------------------
-// Abstract : Core module for AHB Lite File Reader Bus Master
-//-----------------------------------------------------------------------------
-//  ---------------------------------------------------------------------------
-//  Purpose             : The AHB-Lite file reader bus master reads in a file
-//                        and decodes it into AHB-Lite (with ARM11 extensions)
-//                        bus transfers.
-//  --=======================================================================--
-
-module cmsdk_ahb_filereadcore #(
-  // Parameters
-  parameter  input_filename  = "filestim.m2d",   // stimulus data file name
-  parameter  message_tag     = "FileReader:",    // tag on each FileReader message
-  parameter  stim_array_size = 5000) // array size, should be large enough to hold
-                                     //  entire stimulus data file
- (
-  input  wire         HCLK,      // system clock
-  input  wire         HRESETn,   // system reset
-
-  input  wire         HREADY,    // slave ready signal
-  input  wire [2:0]   HRESP,     // slave response (tie HRESP[2] low for non-ARM11)
-  input  wire [63:0]  HRDATA,    // data from slave to master
-  output wire [1:0]   HTRANS,    // transfer type
-  output wire [2:0]   HBURST,    // burst type
-  output wire [5:0]   HPROT,     // protection (HPROT[5:4] unconnected for non-ARM11)
-  output wire [2:0]   HSIZE,     // transfer size
-  output wire         HWRITE,    // transfer direction
-  output wire         HMASTLOCK, // transfer is a locked transfer
-  output wire [31:0]  HADDR,     // transfer address
-  output wire [63:0]  HWDATA,    // data from master to slave
-  output wire         HUNALIGN,  // transfer is unaligned (unconnected for non-ARM11)
-  output wire [7:0]   HBSTRB,    // byte lane strobes (unconnected for non-ARM11)
-
-  output wire [31:0]  LINENUM);  // Line number in stimulus file
-
-  //----------------------------------------------------------------------------
-  // Constant declarations
-  //----------------------------------------------------------------------------
-
-  `define ARM_FRBM_UNDEF8        8'hx
-  `define ARM_FRBM_LOW32         {32{1'b0}}
-
-  // Sign-on banner
-  `define ARM_FRBM_SIGN_ON_MSG1  " ************************************************"
-  `define ARM_FRBM_SIGN_ON_MSG2  " **** ARM AMBA Design Kit File Reader Master"
-  `define ARM_FRBM_SIGN_ON_MSG3  " **** (C) ARM Limited 2000-2002"
-  `define ARM_FRBM_SIGN_ON_MSG4  " ************************************************"
-
-  // Information message
-  `define ARM_FRBM_OPENFILE_MSG  "%d %s Reading stimulus file %s"
-
-  // Error messages
-  `define ARM_FRBM_SLAVE_ERR_MSG1 "%d %s #ERROR# Expected Okay response was not received from Slave."
-  `define ARM_FRBM_SLAVE_ERR_MSG2 "%d %s #ERROR# Expected Error response was not received from Slave."
-  `define ARM_FRBM_SLAVE_XFAIL_MSG1 "%d %s #ERROR# Slave responded with an unexpected XFAIL."
-  `define ARM_FRBM_SLAVE_XFAIL_MSG2 "%d %s #ERROR# Expected XFAIL response was not received from Slave."
-  `define ARM_FRBM_DATA_ERR_MSG "%d %s #ERROR# Data received did not match expectation."
-  `define ARM_FRBM_POLL_ERR_MSG "%d %s #ERROR# Poll command timed out after %d repeats."
-  `define ARM_FRBM_CMD_MSG "%d %s #ERROR# Unknown command value in file."
-
-
-  `define ARM_FRBM_ADDRESS_MSG     " Address       = %h"
-  `define ARM_FRBM_ACTUAL_DATA     " Actual data   = %h"
-  `define ARM_FRBM_EXPECTED_DATA   " Expected data = %h"
-  `define ARM_FRBM_DATA_MASK       " Mask          = %h"
-  `define ARM_FRBM_LINE_NUM        " Stimulus Line: %d"
-
-  // Inent messages because of the length of the time variable
-  `define ARM_FRBM_INDENT          "                     "
-
-  // End of Simulation Summary messages
-  `define ARM_FRBM_QUIT_MSG        "Simulation Quit requested."
-  `define ARM_FRBM_END_MSG         "Stimulus completed."
-
-  `define ARM_FRBM_SUMMARY_HEADER  " ******* SIMULATION SUMMARY *******"
-  `define ARM_FRBM_SUMMARY_FOOTER  " **********************************"
-  `define ARM_FRBM_SUMMARY_DATA    " ** Data Mismatches     :%d"
-  `define ARM_FRBM_SUMMARY_POLL    " ** Poll timeouts       :%d"
-  `define ARM_FRBM_SUMMARY_SLAVE   " ** Response Mismatches :%d"
-
-
-  // HTRANS signal encoding
-  `define ARM_FRBM_TRN_IDLE      2'b00   // Idle transfer
-  `define ARM_FRBM_TRN_BUSY      2'b01   // Busy transfer
-  `define ARM_FRBM_TRN_NONSEQ    2'b10   // Non-sequential
-  `define ARM_FRBM_TRN_SEQ       2'b11   // Sequential
-
-  // HSIZE signal encoding
-  `define ARM_FRBM_SZ_BYTE       3'b000  //  8-bit access
-  `define ARM_FRBM_SZ_HALF       3'b001  // 16-bit access
-  `define ARM_FRBM_SZ_WORD       3'b010  // 32-bit access
-  `define ARM_FRBM_SZ_DWORD      3'b011  // 64-bit access
-
-  // HBURST signal encoding
-  `define ARM_FRBM_BUR_SINGLE    3'b000  // Single
-  `define ARM_FRBM_BUR_INCR      3'b001  // Incrementing
-  `define ARM_FRBM_BUR_WRAP4     3'b010  // 4-beat wrap
-  `define ARM_FRBM_BUR_INCR4     3'b011  // 4-beat incr
-  `define ARM_FRBM_BUR_WRAP8     3'b100  // 8-beat wrap
-  `define ARM_FRBM_BUR_INCR8     3'b101  // 8-beat incr
-  `define ARM_FRBM_BUR_WRAP16    3'b110  // 16-beat wrap
-  `define ARM_FRBM_BUR_INCR16    3'b111  // 16-beat incr
-
-  // HRESP signal encoding
-  `define ARM_FRBM_RSP_OKAY      3'b000  // Okay response
-  `define ARM_FRBM_RSP_ERROR     3'b001  // Error response
-  `define ARM_FRBM_RSP_RETRY     3'b010  // Retry response
-  `define ARM_FRBM_RSP_SPLIT     3'b011  // Split response
-  `define ARM_FRBM_RSP_XFAIL     3'b100  // XFail response
-
-  // Wrap boundary limits
-  `define ARM_FRBM_NOBOUND       3'b000
-  `define ARM_FRBM_BOUND4        3'b001
-  `define ARM_FRBM_BOUND8        3'b010
-  `define ARM_FRBM_BOUND16       3'b011
-  `define ARM_FRBM_BOUND32       3'b100
-  `define ARM_FRBM_BOUND64       3'b101
-  `define ARM_FRBM_BOUND128      3'b110
-
-  // Commands
-  `define ARM_FRBM_CMD_WRITE     8'b00000000
-  `define ARM_FRBM_CMD_READ      8'b00010000
-  `define ARM_FRBM_CMD_SEQ       8'b00100000
-  `define ARM_FRBM_CMD_BUSY      8'b00110000
-  `define ARM_FRBM_CMD_IDLE      8'b01000000
-  `define ARM_FRBM_CMD_POLL      8'b01010000
-  `define ARM_FRBM_CMD_LOOP      8'b01100000
-  `define ARM_FRBM_CMD_COMM      8'b01110000
-  `define ARM_FRBM_CMD_QUIT      8'b10000000
-
-  // Poll command states
-  `define ARM_FRBM_ST_NO_POLL    2'b00
-  `define ARM_FRBM_ST_POLL_READ  2'b01
-  `define ARM_FRBM_ST_POLL_TEST  2'b10
-
-  // Error responses
-  `define ARM_FRBM_ERR_OKAY      2'b00
-  `define ARM_FRBM_ERR_CONT      2'b01
-  `define ARM_FRBM_ERR_CANC      2'b10
-  `define ARM_FRBM_ERR_XFAIL     2'b11
-
-//---------------------------------------------------------------------------
-// Signal declarations
-//---------------------------------------------------------------------------
-
-  // File read control
-  wire        rd_next;
-
-  // Signals from file data
-  reg  [7:0]  vec_cmd; // command
-  reg  [31:0] vec_addr;
-  reg  [63:0] vec_data;
-  reg  [63:0] vec_data_mask;
-  reg  [2:0]  vec_burst;
-  reg  [2:0]  vec_size;
-  reg         vec_lock;
-  reg  [5:0]  vec_prot;
-  reg         vec_dir;
-  reg  [1:0]  err_resp;
-  reg         wait_rdy;
-  reg  [7:0]  vec_bstrb;
-  reg         unalign;
-  reg         use_bstrb_flag;
-
-  // Registered signals
-  reg  [7:0]  cmd_reg;
-  reg  [63:0] data_reg;
-  reg  [63:0] mask_reg;
-  reg  [2:0]  size_reg;
-  reg  [1:0]  err_resp_reg;
-
-  // Address calculation signals
-  wire        non_zero;
-  reg  [3:0]  add_value;
-  reg  [2:0]  align_mask;
-  reg  [2:0]  boundary;
-  wire [31:0] incr_addr;
-  reg  [31:0] wrapped_addr;
-  wire [31:0] aligned_addr;
-  wire [2:0]  aligned_addr_l;
-
-  // Error signal
-  wire        data_err;
-
-  // Internal signals
-  wire [31:0] i_haddr;
-  wire [63:0] i_hwdata;
-  reg  [1:0]  i_htrans;
-  wire        i_hwrite;
-  reg  [7:0]  i_hbstrb;
-
-  // Registered internal signals
-  reg  [31:0] haddr_reg;
-  reg  [63:0] hwdata_reg;
-  reg  [1:0]  htrans_reg;
-  reg         hwrite_reg;
-
-  // Poll command state machine
-  reg  [1:0]  next_poll_state;
-  reg  [1:0]  poll_state;
-
-  // Compared read data
-  wire [63:0] mask;
-  wire [63:0] bstrb_mask;
-  reg  [63:0] data_compare;
-
-  // Poll timeout signals
-  reg  [31:0] timeout;                                 // timeout value for poll
-  reg  [31:0] timeout_reg;                            // registered timeout value
-  reg  [31:0] poll_count;                                         // poll counter
-  reg  [31:0] next_poll_count;                                  // next poll count
-
-//------------------------------------------------------------------------------
-// START OF BEHAVIOURAL CODE
-//------------------------------------------------------------------------------
-
-  // Stimulus reading signals
-  reg  [31:0] file_array [0:stim_array_size];                 // stimulus file data
-  reg  [31:0] file_array_tmp;                    // current value in stimulus file
-  integer     array_ptr;                          // pointer to stimulus file data
-
-  integer     stim_line_num;                 // input stimulus line number counter
-  integer     stim_line_reg;       // stim line counter registered into data phase
-
-  // Stimulus end signals
-  reg         stim_end;                     // signals end of input stimulus file
-  reg         stim_end_data;                 // stim_end registered into data phase
-  reg         stim_end_data_reg;                          // registered stim_end_data
-
-  reg         skip_seq;             // signals to skip end of sequence upon Error
-
-  reg         banner_done;           // true if sign-on banner has been displayed
-
-  // Error counters for end of simulation summary
-  integer     data_err_cnt;                                    // read data errors
-  integer     slave_resp_cnt;                  // unexpected slave ERROR responses
-  integer     poll_err_cnt;                                       // Poll timeouts
-
-  reg  [7:0]  comm_words_hex [0:79];                              // comment array
-  reg  [4:0]  comm_word_num;                 // number of words in comment command
-
-
-//------------------------------------------------------------------------------
-// Print Comment command string to simulation window
-//------------------------------------------------------------------------------
-// The fileconv script converts the comment into ASCII hex values this
-//  task prints the string from the comm_words_hex array.
-
-  task tsk_simulation_comment;                           // no input or return values
-     integer c_index;                                           // character index
-    begin
-     $write   ("%d %s ", $time, message_tag);
-
-      // loop through the characters in the array and print
-      for (c_index = 0; c_index < (comm_word_num*4); c_index = c_index + 1)
-
-        // do not print ASCII NULL character
-        if (comm_words_hex[c_index] !== 8'b00000000)
-
-          // print each character
-          $write("%s", comm_words_hex[c_index]);
-
-      // end the line
-      $display("");
-    end
-  endtask
-
-//----------------------------------------------------------------------------
-// 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
-
-
-//------------------------------------------------------------------------------
-// Sign-on banner
-//------------------------------------------------------------------------------
-// Writes a message to the simulation environment on exit from reset.
-  always @ (posedge HCLK or negedge HRESETn)
-    begin : p_banner_bhav
-      if (HRESETn !== 1'b1)
-       banner_done <= 1'b0;
-      else
-        if (banner_done !== 1'b1)
-          begin
-            banner_done <= 1'b1;
-            $display ("%d %s", $time, message_tag);
-            $write   (`ARM_FRBM_INDENT);
-            $display (`ARM_FRBM_SIGN_ON_MSG1);
-            $write   (`ARM_FRBM_INDENT);
-            $display (`ARM_FRBM_SIGN_ON_MSG2);
-            $write   (`ARM_FRBM_INDENT);
-            $display (`ARM_FRBM_SIGN_ON_MSG3);
-            $write   (`ARM_FRBM_INDENT);
-            $display (`ARM_FRBM_SIGN_ON_MSG4);
-          end
-    end
-//------------------------------------------------------------------------------
-// Report errors to simulation environment
-//------------------------------------------------------------------------------
-// This process responds to error signals with an acknowledge signal and
-//  reports the error to the simulation environment
-
-  always @ (posedge HCLK or negedge HRESETn)
-    begin : p_report_errors_bhav
-      if (HRESETn !== 1'b1)
-        begin
-          data_err_cnt = 0;
-          slave_resp_cnt = 0;
-          poll_err_cnt = 0;
-        end
-      else
-        if ((HREADY === 1'b1) && (skip_seq !== 1'b1))            // transfer complete
-
-          // report an unexpected XFAIL response from slave
-          // (XFAIL response checking has higher priority than ERROR reponse)
-          if  ((HRESP === `ARM_FRBM_RSP_XFAIL) && (err_resp_reg !== `ARM_FRBM_ERR_XFAIL))
-            begin
-              $display (`ARM_FRBM_SLAVE_XFAIL_MSG1, $time, message_tag);
-              $write   (`ARM_FRBM_INDENT);
-              $display (`ARM_FRBM_LINE_NUM, stim_line_reg);
-              $write   (`ARM_FRBM_INDENT);
-              $display (`ARM_FRBM_ADDRESS_MSG, haddr_reg);
-              slave_resp_cnt = slave_resp_cnt + 1;  // increment slave error counter
-            end
-
-          // report expected XFAIL response missing from slave
-          else if ((HRESP !== `ARM_FRBM_RSP_XFAIL) && (err_resp_reg === `ARM_FRBM_ERR_XFAIL))
-            begin
-              $display (`ARM_FRBM_SLAVE_XFAIL_MSG2, $time, message_tag);
-              $write   (`ARM_FRBM_INDENT);
-              $display (`ARM_FRBM_LINE_NUM, stim_line_reg);
-              $write   (`ARM_FRBM_INDENT);
-              $display (`ARM_FRBM_ADDRESS_MSG, haddr_reg);
-              slave_resp_cnt = slave_resp_cnt + 1;  // increment slave error counter
-            end
-
-          // report an unexpected error response from slave
-          else if ((HRESP !== `ARM_FRBM_RSP_OKAY) && (err_resp_reg === `ARM_FRBM_ERR_OKAY))
-            begin
-              $display (`ARM_FRBM_SLAVE_ERR_MSG1, $time, message_tag);
-              $write   (`ARM_FRBM_INDENT);
-              $display (`ARM_FRBM_LINE_NUM, stim_line_reg);
-              $write   (`ARM_FRBM_INDENT);
-              $display (`ARM_FRBM_ADDRESS_MSG, haddr_reg);
-              slave_resp_cnt = slave_resp_cnt + 1;  // increment slave error counter
-            end
-
-          // report expected error response missing from slave
-          else if ((HRESP !== `ARM_FRBM_RSP_ERROR) &&
-                   ((err_resp_reg === `ARM_FRBM_ERR_CONT) || (err_resp_reg === `ARM_FRBM_ERR_CANC)))
-            begin
-              $display (`ARM_FRBM_SLAVE_ERR_MSG2, $time, message_tag);
-              $write   (`ARM_FRBM_INDENT);
-              $display (`ARM_FRBM_LINE_NUM, stim_line_reg);
-              $write   (`ARM_FRBM_INDENT);
-              $display (`ARM_FRBM_ADDRESS_MSG, haddr_reg);
-              slave_resp_cnt = slave_resp_cnt + 1;  // increment slave error counter
-            end
-
-          // report poll timeout error
-          else if ( (data_err === 1'b1) &&  (poll_count === 32'h00000001))
-            begin
-              $display (`ARM_FRBM_POLL_ERR_MSG, $time, message_tag, timeout_reg);
-              $write   (`ARM_FRBM_INDENT);
-              $display (`ARM_FRBM_LINE_NUM, stim_line_reg);
-              $write   (`ARM_FRBM_INDENT);
-              $display (`ARM_FRBM_ADDRESS_MSG, haddr_reg);
-
-
-              if (size_reg === `ARM_FRBM_SZ_DWORD)                      // 64 bit transfer
-                begin
-                  $write   (`ARM_FRBM_INDENT);
-                  $display (`ARM_FRBM_ACTUAL_DATA, HRDATA[63:0]);
-                  $write   (`ARM_FRBM_INDENT);
-                  $display (`ARM_FRBM_EXPECTED_DATA, data_reg[63:0]);
-                  $write   (`ARM_FRBM_INDENT);
-                  $display (`ARM_FRBM_DATA_MASK, mask_reg[63:0]);
-                end
-              else if (haddr_reg[2] === 1'b1)        // less than 64 bit transfer
-                begin                                       // display high word
-                  $write   (`ARM_FRBM_INDENT);
-                  $display (`ARM_FRBM_ACTUAL_DATA, HRDATA[63:32]);
-                  $write   (`ARM_FRBM_INDENT);
-                  $display (`ARM_FRBM_EXPECTED_DATA, data_reg[63:32]);
-                  $write   (`ARM_FRBM_INDENT);
-                  $display (`ARM_FRBM_DATA_MASK, mask_reg[63:32]);
-                end
-              else                                           // display low word
-                begin
-                  $write   (`ARM_FRBM_INDENT);
-                  $display (`ARM_FRBM_ACTUAL_DATA, HRDATA[31:0]);
-                  $write   (`ARM_FRBM_INDENT);
-                  $display (`ARM_FRBM_EXPECTED_DATA, data_reg[31:0]);
-                  $write   (`ARM_FRBM_INDENT);
-                  $display (`ARM_FRBM_DATA_MASK, mask_reg[31:0]);
-                end
-
-              poll_err_cnt = poll_err_cnt + 1;       // increment poll error counter
-            end // if (data_err === 1'b1 && poll_count === 32'h00000001)
-
-          // report data error
-          else if ((data_err === 1'b1) && (poll_state === `ARM_FRBM_ST_NO_POLL))
-            begin
-              $display (`ARM_FRBM_DATA_ERR_MSG, $time, message_tag);
-              $write   (`ARM_FRBM_INDENT);
-              $display (`ARM_FRBM_LINE_NUM, stim_line_reg);
-              $write   (`ARM_FRBM_INDENT);
-              $display (`ARM_FRBM_ADDRESS_MSG, haddr_reg);
-
-
-              if (size_reg === `ARM_FRBM_SZ_DWORD)                      // 64 bit transfer
-                begin
-                  $write   (`ARM_FRBM_INDENT);
-                  $display (`ARM_FRBM_ACTUAL_DATA, HRDATA[63:0]);
-                  $write   (`ARM_FRBM_INDENT);
-                  $display (`ARM_FRBM_EXPECTED_DATA, data_reg[63:0]);
-                  $write   (`ARM_FRBM_INDENT);
-                  $display (`ARM_FRBM_DATA_MASK, mask_reg[63:0]);
-                end
-              else if (haddr_reg[2] === 1'b1)        // less than 64 bit transfer
-                begin                                       // display high word
-                  $write   (`ARM_FRBM_INDENT);
-                  $display (`ARM_FRBM_ACTUAL_DATA, HRDATA[63:32]);
-                  $write   (`ARM_FRBM_INDENT);
-                  $display (`ARM_FRBM_EXPECTED_DATA, data_reg[63:32]);
-                  $write   (`ARM_FRBM_INDENT);
-                  $display (`ARM_FRBM_DATA_MASK, mask_reg[63:32]);
-                end
-              else                                           // display low word
-                begin
-                  $write   (`ARM_FRBM_INDENT);
-                  $display (`ARM_FRBM_ACTUAL_DATA, HRDATA[31:0]);
-                  $write   (`ARM_FRBM_INDENT);
-                  $display (`ARM_FRBM_EXPECTED_DATA, data_reg[31:0]);
-                  $write   (`ARM_FRBM_INDENT);
-                  $display (`ARM_FRBM_DATA_MASK, mask_reg[31:0]);
-                end
-
-              data_err_cnt = data_err_cnt + 1;       // increment data error counter
-            end // if (data_err === 1'b1 && poll_state === `ARM_FRBM_ST_NO_POLL)
-    end // block: p_report_errors_bhav
-
-//------------------------------------------------------------------------------
-// Read Command
-//------------------------------------------------------------------------------
-// Reads next command from the array, if the previous one has completed,
-// indicated by rd_next. If a looped command is being executed, then the
-// command is not updated, if no more commands are available in the stimulus,
-// default signal values are used.
-// Control information that must be preserved is registered by this procedure.
-
-  always @ (posedge HCLK or negedge HRESETn)
-    begin : p_cmd_read_bhav
-
-    reg         use_bstrb_tmp;   // flag indicates that Bstrb should be read
-                               //  from stimulus file
-    integer     stim_line_tmp;   // temporary stimulus line counter
-    reg [31:0]  loop_number;    // count looping commands
-    integer     i;             // loop counter
-
-      if (HRESETn !== 1'b1)
-        begin
-          // signal reset values
-          vec_cmd           <= `ARM_FRBM_CMD_IDLE;
-          vec_addr          <= {32{1'b0}};
-          vec_data          <= {64{1'b0}};
-          vec_data_mask     <= {64{1'b1}};
-          vec_size          <= `ARM_FRBM_SZ_BYTE;
-          vec_burst         <= `ARM_FRBM_BUR_SINGLE;
-          vec_prot          <= 6'b000000;
-          vec_dir           <= 1'b0;
-          vec_lock          <= 1'b0;
-          wait_rdy       <= 1'b0;
-          vec_bstrb         <= 8'b00000000;
-          use_bstrb_flag  <= 1'b1;
-          unalign       <= 1'b0;
-
-          err_resp       <= 2'b00;
-          skip_seq       <= 1'b0;
-          stim_end       <= 1'b0;
-
-          loop_number     = {32{1'b0}};
-          timeout         <= {32{1'b0}};
-          stim_line_num   <= 0;
-          stim_line_tmp    = 0;
-
-          array_ptr         = 1'b0;            // Go to beginning of command array
-          file_array_tmp    = {32{1'b0}};
-        end // if (HRESETn !== 1'b1)
-      else  // HCLK rising edge
-        begin
-
-          skip_seq <= 1'b0; // sequence skip complete
-
-          // copy signal values into variables
-          stim_line_tmp = stim_line_num;
-          use_bstrb_tmp = use_bstrb_flag;
-
-          if (rd_next === 1'b1) // ready for next command
-            begin
-
-              // If ErrCanc is set, an error received and no new burst
-              //  starting, skip the remaining SEQ, BUSY and Comment commands
-              //  in this burst.
-              if ((HRESP === `ARM_FRBM_RSP_ERROR) &&
-                  (HREADY === 1'b1) &&
-                  (err_resp_reg === `ARM_FRBM_ERR_CANC) &&
-                  ((vec_cmd === `ARM_FRBM_CMD_SEQ) || (vec_cmd === `ARM_FRBM_CMD_BUSY)))
-                begin
-
-                  skip_seq <= 1'b1;     // signals that sequence is being skipped
-
-                  // cancel current looping command
-                  loop_number = {32{1'b0}};
-
-                  file_array_tmp = file_array [array_ptr];
-
-                  // skip all commands in the current burst
-                  while ((file_array_tmp [31:24] === `ARM_FRBM_CMD_SEQ)  ||
-                         (file_array_tmp [31:24] === `ARM_FRBM_CMD_BUSY) ||
-                         (file_array_tmp [31:24] === `ARM_FRBM_CMD_LOOP) ||
-                         (file_array_tmp [31:24] === `ARM_FRBM_CMD_COMM))
-                    begin
-
-                      // increment stimulus line counter
-                      stim_line_tmp = stim_line_tmp + file_array_tmp [5:0];
-
-                      if (file_array_tmp [31:24] === `ARM_FRBM_CMD_SEQ)         // skip SEQ
-                        if (file_array_tmp [6] === 1'b1)
-                          // skip Bstrb field if present
-                          array_ptr = array_ptr + 6;
-                        else
-                          array_ptr = array_ptr + 5;
-
-                      else if (file_array_tmp [31:24] === `ARM_FRBM_CMD_BUSY)  // skip BUSY
-                        if (file_array_tmp [6] === 1'b1)
-                          // skip Bstrb field if present
-                          array_ptr = array_ptr + 2;
-                        else
-                          array_ptr = array_ptr + 1;
-
-                      else if (file_array_tmp [31:24] === `ARM_FRBM_CMD_LOOP)  // skip LOOP
-                        array_ptr = array_ptr + 2;
-
-                      else
-                        begin                            // skip Comment command
-                          array_ptr = array_ptr + 1;
-                          file_array_tmp = file_array [array_ptr];
-                          array_ptr = array_ptr + file_array_tmp [4:0];
-                          array_ptr = array_ptr + 1;
-                        end
-
-                      // Read a fresh word from the stimulus array
-                      file_array_tmp = file_array [array_ptr];
-
-                    end // while loop
-                end // if (HRESP...
-
-              // Read a fresh word from the stimulus array
-              file_array_tmp = file_array [array_ptr];
-
-              // Comment command prints a string to the simulation window in
-              //  zero simulation time.
-              while ((file_array_tmp [31:24] === `ARM_FRBM_CMD_COMM) &&        // comment cmd
-                     (loop_number === `ARM_FRBM_LOW32))       // current command not looping
-                begin
-
-                  // increment stimulus line counter
-                  stim_line_tmp = stim_line_tmp + file_array_tmp [5:0];
-
-                  array_ptr = array_ptr + 1;
-
-                  // get number of words
-                  file_array_tmp = file_array [array_ptr];
-                  comm_word_num  = file_array_tmp [4:0];
-
-                  array_ptr = array_ptr + 1;
-                  file_array_tmp = file_array [array_ptr];
-
-                  // read in lines occupied by comment data
-                  for (i = 0; i < comm_word_num; i = i + 1)
-                    begin
-                      // store each character individually
-                      comm_words_hex[((i * 4) + 0)] = file_array_tmp [31:24];
-                      comm_words_hex[((i * 4) + 1)] = file_array_tmp [23:16];
-                      comm_words_hex[((i * 4) + 2)] = file_array_tmp [15:8];
-                      comm_words_hex[((i * 4) + 3)] = file_array_tmp [7:0];
-
-                      array_ptr = array_ptr + 1;
-                      file_array_tmp = file_array [array_ptr];
-                    end
-
-                  // call task to display the comment
-                  tsk_simulation_comment;
-
-                end // while loop
-
-                if (loop_number !== `ARM_FRBM_LOW32)
-                  // A command is currently looping
-                  loop_number = (loop_number - 1'b1);
-
-
-                else
-
-                  begin
-
-                    file_array_tmp = file_array [array_ptr];
-
-                    case (file_array_tmp [31:24])
-
-                      `ARM_FRBM_CMD_WRITE : begin
-                        // Get each write command field
-                        vec_cmd           <= file_array_tmp [31:24];
-                        vec_size          <= file_array_tmp [23:21];
-                        vec_burst         <= file_array_tmp [20:18];
-                        vec_prot          <= file_array_tmp [17:12];
-                        vec_lock          <= file_array_tmp [11];
-                        err_resp       <= file_array_tmp [9:8];
-                        unalign       <= file_array_tmp [7];
-                        use_bstrb_tmp    = file_array_tmp [6];
-                        stim_line_tmp    = stim_line_tmp + file_array_tmp [5:0];
-                        array_ptr        = array_ptr + 1;
-                        vec_addr          <= file_array [array_ptr];
-                        array_ptr        = array_ptr + 1;
-                        vec_data [63:32]  <= file_array [array_ptr];
-                        array_ptr        = array_ptr + 1;
-                        vec_data [31:0]   <= file_array [array_ptr];
-                        array_ptr        = array_ptr + 1;
-                        // Bstrb field is present if use_bstrb_tmp is set
-                        if (use_bstrb_tmp === 1'b1) begin
-                          file_array_tmp    = file_array [array_ptr];
-                          vec_bstrb          <= file_array_tmp [7:0];
-                          array_ptr         = array_ptr + 1;
-                        end
-
-                      end // case: `ARM_FRBM_CMD_WRITE
-
-                      `ARM_FRBM_CMD_READ : begin
-                        vec_cmd           <= file_array_tmp [31:24];
-                        vec_size          <= file_array_tmp [23:21];
-                        vec_burst         <= file_array_tmp [20:18];
-                        vec_prot          <= file_array_tmp [17:12];
-                        vec_lock          <= file_array_tmp [11];
-                        err_resp       <= file_array_tmp [9:8];
-                        unalign       <= file_array_tmp [7];
-                        use_bstrb_tmp    = file_array_tmp [6];
-                        stim_line_tmp    = stim_line_tmp + file_array_tmp [5:0];
-                        array_ptr        = array_ptr + 1;
-                        vec_addr          <= file_array [array_ptr];
-                        array_ptr        = array_ptr + 1;
-                        vec_data [63:32]  <= file_array [array_ptr];
-                        array_ptr        = (array_ptr + 1);
-                        vec_data [31:0]   <= file_array [array_ptr];
-                        array_ptr        = (array_ptr + 1);
-                        vec_data_mask [63:32] <= file_array [array_ptr];
-                        array_ptr        = (array_ptr + 1);
-                        vec_data_mask [31:0]  <= file_array [array_ptr];
-                        array_ptr        = (array_ptr + 1);
-                        // Bstrb field is present if use_bstrb_tmp is set
-                        if (use_bstrb_tmp === 1'b1) begin
-                          file_array_tmp  = file_array [array_ptr];
-                          vec_bstrb        <= file_array_tmp [7:0];
-                          array_ptr       = (array_ptr + 1);
-                        end
-                      end // case: `ARM_FRBM_CMD_READ
-
-                      `ARM_FRBM_CMD_SEQ : begin
-                        // Get each sequential command field
-                        vec_cmd     <= file_array_tmp [31:24];
-                        err_resp <= file_array_tmp [9:8];
-                        use_bstrb_tmp = file_array_tmp [6];
-                        stim_line_tmp = stim_line_tmp + file_array_tmp [5:0];
-                        array_ptr  = array_ptr + 1;
-                        vec_data [63:32] <= file_array [array_ptr];
-                        array_ptr  = array_ptr + 1;
-                        vec_data [31:0]  <= file_array [array_ptr];
-                        array_ptr  = array_ptr + 1;
-                        vec_data_mask [63:32] <= file_array [array_ptr];
-                        array_ptr  = array_ptr + 1;
-                        vec_data_mask [31:0]  <= file_array [array_ptr];
-                        array_ptr  = array_ptr + 1;
-                        // Bstrb field is present if use_bstrb_tmp is set
-                        if (use_bstrb_tmp === 1'b1) begin
-                          file_array_tmp  = file_array [array_ptr];
-                          vec_bstrb        <= file_array_tmp [7:0];
-                          array_ptr       = array_ptr + 1;
-                        end
-                      end // case: `ARM_FRBM_CMD_SEQ
-
-                      `ARM_FRBM_CMD_BUSY : begin
-                        // Set busy command field
-                        vec_cmd     <= file_array_tmp [31:24];
-                        wait_rdy <= file_array_tmp [8];
-                        use_bstrb_tmp = file_array_tmp [6];
-                        stim_line_tmp = stim_line_tmp + file_array_tmp [5:0];
-                        err_resp <= `ARM_FRBM_ERR_OKAY;
-                        array_ptr  = array_ptr + 1;
-                        // Bstrb field is present if use_bstrb_tmp is set
-                        if (use_bstrb_tmp === 1'b1) begin
-                          file_array_tmp  = file_array [array_ptr];
-                          vec_bstrb        <= file_array_tmp [7:0];
-                          array_ptr       = (array_ptr + 1);
-                        end
-                      end // case: `ARM_FRBM_CMD_BUSY
-
-                      `ARM_FRBM_CMD_IDLE : begin
-                        // Get each idle command field
-                        vec_cmd     <= file_array_tmp [31:24];
-                        vec_size    <= file_array_tmp [23:21];
-                        vec_burst   <= file_array_tmp [20:18];
-                        vec_prot    <= file_array_tmp [17:12];
-                        vec_lock    <= file_array_tmp [11];
-                        vec_dir     <= file_array_tmp [10];
-                        wait_rdy <= file_array_tmp [8];
-                        unalign <= file_array_tmp [7];
-                        use_bstrb_tmp = file_array_tmp [6];
-                        err_resp <= `ARM_FRBM_ERR_OKAY;
-                        stim_line_tmp = stim_line_tmp + file_array_tmp [5:0];
-                        array_ptr  = array_ptr + 1;
-                        vec_addr    <= file_array [array_ptr];
-                        array_ptr  = array_ptr + 1;
-                        // Bstrb field is present if use_bstrb_tmp is set
-                        if (use_bstrb_tmp === 1'b1) begin
-                          file_array_tmp  = file_array [array_ptr];
-                          vec_bstrb        <= file_array_tmp  [7:0];
-                          array_ptr       = array_ptr + 1;
-                        end
-                      end // case: `ARM_FRBM_CMD_IDLE
-
-                      `ARM_FRBM_CMD_POLL : begin
-                        // Get each poll command field
-                        vec_cmd     <= file_array_tmp [31:24];
-                        vec_size    <= file_array_tmp [23:21];
-                        vec_burst   <= file_array_tmp [20:18];
-                        vec_prot    <= file_array_tmp [17:12];
-                        unalign <= file_array_tmp [7];
-                        use_bstrb_tmp = file_array_tmp [6];
-                        stim_line_tmp = stim_line_tmp + file_array_tmp [5:0];
-                        vec_lock    <= 1'b0 ;
-                        err_resp <= `ARM_FRBM_ERR_OKAY;// Poll doesn't support ERROR field
-                        array_ptr  = array_ptr + 1;
-                        file_array_tmp  = file_array [array_ptr];
-                        timeout <= file_array_tmp [31:0];    // Poll timeout value
-                        array_ptr  = array_ptr + 1;
-                        vec_addr    <= file_array [array_ptr];
-                        array_ptr  = array_ptr + 1;
-                        vec_data [63:32] <= file_array [array_ptr];
-                        array_ptr  = array_ptr + 1;
-                        vec_data [31:0]  <= file_array [array_ptr];
-                        array_ptr  = array_ptr + 1;
-                        vec_data_mask [63:32] <= file_array [array_ptr];
-                        array_ptr  = array_ptr + 1;
-                        vec_data_mask [31:0]  <= file_array [array_ptr];
-                        array_ptr  = array_ptr + 1;
-                        // Bstrb field is present if use_bstrb_tmp is set
-                        if (use_bstrb_tmp === 1'b1) begin
-                          file_array_tmp  = file_array [array_ptr];
-                          vec_bstrb        <= file_array_tmp [7:0];
-                          array_ptr       = (array_ptr + 1);
-                        end
-                      end // case: `ARM_FRBM_CMD_POLL
-
-                      `ARM_FRBM_CMD_LOOP : begin
-                        // Loops are counted from n to 0 so the loop number is
-                        //  reduced by 1.
-                        stim_line_tmp = stim_line_tmp + file_array_tmp [5:0];
-                        array_ptr  = array_ptr + 1;
-                        file_array_tmp   = file_array [array_ptr];
-                        loop_number = (file_array_tmp [31:0] - 1'b1);
-                        array_ptr  = array_ptr + 1;
-                      end // case: `ARM_FRBM_CMD_LOOP
-
-                      `ARM_FRBM_CMD_QUIT : begin
-                        // Exit simulation and print error summary
-                        vec_cmd         <= file_array_tmp [31:24];
-                        vec_addr        <= {32{1'b0}};
-                        vec_data        <= {64{1'b0}};
-                        vec_data_mask    <= {64{1'b1}};
-                        vec_size        <= `ARM_FRBM_SZ_BYTE;
-                        vec_burst       <= `ARM_FRBM_BUR_SINGLE;
-                        vec_prot        <= 6'b000000;
-                        vec_dir         <= 1'b0;
-                        vec_lock        <= 1'b0;
-                        wait_rdy     <= 1'b0;
-                        vec_bstrb       <= 8'b00000000;
-                        unalign     <= 1'b0;
-                        err_resp     <= `ARM_FRBM_ERR_OKAY;
-                        use_bstrb_tmp = 1;
-                        stim_line_tmp = stim_line_tmp + file_array_tmp [5:0];
-                      end
-
-                      `ARM_FRBM_UNDEF8 : begin
-                        // Set defaults as file stimulus exhausted
-                        vec_cmd         <= `ARM_FRBM_CMD_IDLE;
-                        vec_addr        <= {32{1'b0}};
-                        vec_data        <= {64{1'b0}};
-                        vec_data_mask    <= {64{1'b1}};
-                        vec_size        <= `ARM_FRBM_SZ_BYTE;
-                        vec_burst       <= `ARM_FRBM_BUR_SINGLE;
-                        vec_prot        <= 6'b000000;
-                        vec_dir         <= 1'b0;
-                        vec_lock        <= 1'b0;
-                        wait_rdy     <= 1'b0;
-                        vec_bstrb       <= 8'b00000000;
-                        unalign     <= 1'b0;
-                        use_bstrb_tmp = 1;
-                        err_resp     <= `ARM_FRBM_ERR_OKAY;
-                        stim_end     <= 1'b1;         // set end of stimulus flag
-                      end
-
-                      default : begin
-                        $display (`ARM_FRBM_CMD_MSG, $time, message_tag);
-                        $stop; // stop the simulation
-                      end
-
-                    endcase // case(file_array_tmp [2:0])
-
-                    stim_line_num <= stim_line_tmp;  // update stimulus line counter
-
-                  end // else: !if(loop_number !== 32'h00000000)
-
-            use_bstrb_flag <= use_bstrb_tmp;                // update Use Bstrb Flag
-
-            end // rd_next = '1'
-        end // else: if (HRESETn !== 1'b1)
-    end // always begin
-
-//------------------------------------------------------------------------------
-// Quit simulation if found Q command in stimulus file
-//------------------------------------------------------------------------------
-
-  always @ (posedge HCLK)
-    begin : p_simulation_end
-      if  ( (cmd_reg === `ARM_FRBM_CMD_QUIT) ||
-            ((stim_end_data === 1'b1) && (stim_end_data_reg === 1'b0))
-          )
-        begin
-          // stimulus just exhausted
-          $display ("");
-          $write   ("%d %s ", $time, message_tag);
-
-          if  (cmd_reg === `ARM_FRBM_CMD_QUIT)
-              // simulation ended by Quit command
-              $display (`ARM_FRBM_QUIT_MSG);
-          else
-              // simulation ended by completion of stimulus
-              $display (`ARM_FRBM_END_MSG);
-
-          // write summary info
-          $display ("");
-          $display (`ARM_FRBM_SUMMARY_HEADER);
-          $display (`ARM_FRBM_SUMMARY_DATA, data_err_cnt);
-          $display (`ARM_FRBM_SUMMARY_SLAVE, slave_resp_cnt);
-          $display (`ARM_FRBM_SUMMARY_POLL, poll_err_cnt);
-          $display (`ARM_FRBM_SUMMARY_FOOTER);
-          $display ("");
-
-          // if simulation ended by Quit command then halt simulation
-          if  ( cmd_reg ===`ARM_FRBM_CMD_QUIT )
-            begin
-              $display (" Simulation Ended.");
-              $finish;
-            end
-        end // if begin
-    end  // always begin
-
-//---------------------------------------------------------------------------
-// END OF BEHAVIOURAL CODE
-//---------------------------------------------------------------------------
-
-//---------------------------------------------------------------------------
-// Register Current Command
-//---------------------------------------------------------------------------
-// The current command is registered when a new command is read from the file
-
-  always @ (posedge HCLK or negedge HRESETn)
-    begin : p_reg_file_seq
-      if (HRESETn !== 1'b1)
-        begin
-          cmd_reg       <= 8'b00000000;
-          data_reg      <= {64{1'b0}};
-          mask_reg      <= {64{1'b0}};
-          size_reg      <= 3'b000;
-          err_resp_reg   <= 2'b00;
-          stim_end_data  <= 1'b0;
-          stim_line_reg  <= 0;
-          timeout_reg   <= {32{1'b0}};
-        end // if (HRESETn !== 1'b1)
-      else
-        if (HREADY === 1'b1)
-          begin
-            cmd_reg      <= vec_cmd;
-            data_reg     <= vec_data;
-            mask_reg     <= mask;
-            size_reg     <= vec_size;
-            err_resp_reg  <= err_resp;
-            stim_end_data <= stim_end;
-            stim_line_reg <= stim_line_num;
-            timeout_reg  <= timeout;
-          end // if (HREADY === 1'b1)
-    end // block: p_reg_file_seq
-
-
-//---------------------------------------------------------------------------
-// Register Stimulus End Flag
-//---------------------------------------------------------------------------
-// Stimulus End Flag is registered so that the summary information is only
-//  displayed once.
-
-  always @ (posedge HCLK or negedge HRESETn)
-    begin : p_stim_end_reg
-      if  (HRESETn !== 1'b1)
-        stim_end_data_reg <= 1'b0;
-      else
-        stim_end_data_reg <= stim_end_data;
-    end
-
-//---------------------------------------------------------------------------
-// Register Output values
-//---------------------------------------------------------------------------
-// The output address, write signal and transfer type are registered when
-//  HREADY is asserted.
-
-  always @ (posedge HCLK or negedge HRESETn)
-    begin : p_reg_outputs_seq
-      if  (HRESETn !== 1'b1)
-        begin
-          haddr_reg  <= {32{1'b0}};
-          htrans_reg <= {2{1'b0}};
-          hwrite_reg <= 1'b0;
-        end
-      else
-        if (HREADY === 1'b1)
-          begin
-            htrans_reg <= i_htrans;
-            haddr_reg  <= i_haddr;
-            hwrite_reg <= i_hwrite;
-          end // if (HREADY)
-    end // block: p_reg_outputs_seq
-
-
-//------------------------------------------------------------------------------
-// Mask used for rounding down address before incrementing
-//------------------------------------------------------------------------------
-  always @ (vec_size)
-    begin : p_align_mask_comb
-      case (vec_size )
-        `ARM_FRBM_SZ_BYTE  : align_mask = 3'b111;
-        `ARM_FRBM_SZ_HALF  : align_mask = 3'b110;
-        `ARM_FRBM_SZ_WORD  : align_mask = 3'b100;
-        `ARM_FRBM_SZ_DWORD : align_mask = 3'b000;
-        default   : align_mask = 3'b111;
-      endcase
-  end
-
-
-//------------------------------------------------------------------------------
-// Calculate aligned address
-//------------------------------------------------------------------------------
-//  Base of incremented address is calculated by rounding down initial address
-//  to boundary of transfer (container) size.
-
-  assign aligned_addr_l   = (haddr_reg [2:0] & align_mask);
-  assign aligned_addr    = {haddr_reg [31:3], aligned_addr_l};
-
-
-//---------------------------------------------------------------------------
-// Determine add_value and calculate address
-//---------------------------------------------------------------------------
-
-// The value to be added to the address is based on the current command, the
-//  previous command and the width of the data.
-//
-// The address should be incremented when:
-//   HTRANS is sequential or busy and previous vec_cmd is sequential or read
-//   or write (NONSEQ).
-
-  assign non_zero = (((vec_cmd === `ARM_FRBM_CMD_SEQ)  && (cmd_reg === `ARM_FRBM_CMD_SEQ))   ||
-                    ((vec_cmd === `ARM_FRBM_CMD_SEQ)  && (cmd_reg === `ARM_FRBM_CMD_WRITE)) ||
-                    ((vec_cmd === `ARM_FRBM_CMD_SEQ)  && (cmd_reg === `ARM_FRBM_CMD_READ))  ||
-                    ((vec_cmd === `ARM_FRBM_CMD_BUSY) && (cmd_reg === `ARM_FRBM_CMD_SEQ))   ||
-                    ((vec_cmd === `ARM_FRBM_CMD_BUSY) && (cmd_reg === `ARM_FRBM_CMD_WRITE)) ||
-                    ((vec_cmd === `ARM_FRBM_CMD_BUSY) && (cmd_reg === `ARM_FRBM_CMD_READ))) ? 1'b1
-                   : 1'b0;
-
-  always @ (vec_size or non_zero)
-    begin : p_calc_add_value_comb
-      if (non_zero === 1'b1)
-        begin
-          case (vec_size)
-            `ARM_FRBM_SZ_BYTE : add_value = 4'b0001;
-            `ARM_FRBM_SZ_HALF : add_value = 4'b0010;
-            `ARM_FRBM_SZ_WORD : add_value = 4'b0100;
-            `ARM_FRBM_SZ_DWORD: add_value = 4'b1000;
-            default  : add_value = 4'b0000;
-          endcase // case(vec_size)
-        end // if non_zero
-      else
-        add_value = 4'b0000;
-    end // block: p_calc_add_value_comb
-
-//---------------------------------------------------------------------------
-// Calculate new address value
-//---------------------------------------------------------------------------
-// A 10-bit incrementer is not used, so that bursts >1k bytes may be tested
-
-  // Pad AddValue to 32 bits
-  assign  incr_addr = aligned_addr + { {28{1'b0}}, add_value };
-
-//---------------------------------------------------------------------------
-// Trap wrapping burst boundaries
-//---------------------------------------------------------------------------
-
-// When the burst is a wrapping burst the calculated address must not cross
-//  the boundary (size(bytes) x beats in burst).
-// The boundary value is set based on the Burst and Size values
-
-  always @ (vec_size or vec_burst)
-    begin : p_boundary_value_comb
-      case (vec_size)
-
-        `ARM_FRBM_SZ_BYTE :
-          case (vec_burst)
-            `ARM_FRBM_BUR_WRAP4  : boundary = `ARM_FRBM_BOUND4;
-            `ARM_FRBM_BUR_WRAP8  : boundary = `ARM_FRBM_BOUND8;
-            `ARM_FRBM_BUR_WRAP16 : boundary = `ARM_FRBM_BOUND16;
-            `ARM_FRBM_BUR_SINGLE,
-            `ARM_FRBM_BUR_INCR,
-            `ARM_FRBM_BUR_INCR4,
-            `ARM_FRBM_BUR_INCR8,
-            `ARM_FRBM_BUR_INCR16 : boundary = `ARM_FRBM_NOBOUND;
-            default     : boundary = `ARM_FRBM_NOBOUND;
-          endcase // case (vec_burst)
-
-        `ARM_FRBM_SZ_HALF :
-          case (vec_burst)
-            `ARM_FRBM_BUR_WRAP4  : boundary = `ARM_FRBM_BOUND8;
-            `ARM_FRBM_BUR_WRAP8  : boundary = `ARM_FRBM_BOUND16;
-            `ARM_FRBM_BUR_WRAP16 : boundary = `ARM_FRBM_BOUND32;
-            `ARM_FRBM_BUR_SINGLE,
-            `ARM_FRBM_BUR_INCR,
-            `ARM_FRBM_BUR_INCR4,
-            `ARM_FRBM_BUR_INCR8,
-            `ARM_FRBM_BUR_INCR16 : boundary = `ARM_FRBM_NOBOUND;
-            default     : boundary = `ARM_FRBM_NOBOUND;
-          endcase // case (vec_burst)
-
-        `ARM_FRBM_SZ_WORD :
-          case (vec_burst)
-            `ARM_FRBM_BUR_WRAP4  : boundary = `ARM_FRBM_BOUND16;
-            `ARM_FRBM_BUR_WRAP8  : boundary = `ARM_FRBM_BOUND32;
-            `ARM_FRBM_BUR_WRAP16 : boundary = `ARM_FRBM_BOUND64;
-            `ARM_FRBM_BUR_SINGLE,
-            `ARM_FRBM_BUR_INCR,
-            `ARM_FRBM_BUR_INCR4,
-            `ARM_FRBM_BUR_INCR8,
-            `ARM_FRBM_BUR_INCR16 : boundary = `ARM_FRBM_NOBOUND;
-            default     : boundary = `ARM_FRBM_NOBOUND;
-          endcase // case (vec_burst)
-
-        `ARM_FRBM_SZ_DWORD :
-          case (vec_burst)
-            `ARM_FRBM_BUR_WRAP4  : boundary = `ARM_FRBM_BOUND32;
-            `ARM_FRBM_BUR_WRAP8  : boundary = `ARM_FRBM_BOUND64;
-            `ARM_FRBM_BUR_WRAP16 : boundary = `ARM_FRBM_BOUND128;
-            `ARM_FRBM_BUR_SINGLE,
-            `ARM_FRBM_BUR_INCR,
-            `ARM_FRBM_BUR_INCR4,
-            `ARM_FRBM_BUR_INCR8,
-            `ARM_FRBM_BUR_INCR16 : boundary = `ARM_FRBM_NOBOUND;
-            default     : boundary = `ARM_FRBM_NOBOUND;
-          endcase // case (vec_burst)
-
-        default         : boundary = `ARM_FRBM_NOBOUND;
-      endcase // case (vec_size)
-    end // block: p_boundary_value_comb
-
-// The calculated address is checked to see if it has crossed the boundary.
-//  If it has the result address is wrapped, otherwise it is equal to the
-//  calculated address.
-
- always @ (boundary or incr_addr or aligned_addr)
-   begin : p_wrapped_addr_comb
-
-      case (boundary)
-
-        `ARM_FRBM_NOBOUND :
-            wrapped_addr = incr_addr;
-
-        `ARM_FRBM_BOUND4  :
-          if  (incr_addr [1:0] === 2'b00)
-            begin
-              wrapped_addr [31:2] = aligned_addr [31:2];
-              wrapped_addr [1:0] = 2'b00;
-            end // if (incr_addr [1:0] === 2'b00)
-          else
-            wrapped_addr = incr_addr;
-
-        `ARM_FRBM_BOUND8 :
-          if  (incr_addr [2:0] === 3'b000)
-            begin
-              wrapped_addr [31:3] = aligned_addr [31:3];
-              wrapped_addr [2:0] = 3'b000;
-            end // if (incr_addr [2:0] === 3'b000)
-          else
-            wrapped_addr = incr_addr;
-
-        `ARM_FRBM_BOUND16 :
-          if  (incr_addr [3:0] === 4'b0000)
-            begin
-              wrapped_addr [31:4] = aligned_addr [31:4];
-              wrapped_addr [3:0] = 4'b0000;
-            end // if (incr_addr [3:0] === 4'b0000)
-          else
-            wrapped_addr = incr_addr;
-
-        `ARM_FRBM_BOUND32 :
-          if  (incr_addr [4:0] === 5'b00000)
-            begin
-              wrapped_addr [31:5] = aligned_addr [31:5];
-              wrapped_addr [4:0] = 5'b00000;
-            end // if (incr_addr [4:0] === 5'b00000)
-          else
-            wrapped_addr = incr_addr;
-
-        `ARM_FRBM_BOUND64 :
-          if  (incr_addr [5:0] === 6'b000000)
-            begin
-              wrapped_addr [31:6] = aligned_addr [31:6];
-              wrapped_addr [5:0] = 6'b000000;
-            end // if (incr_addr [5:0] === 6'b000000)
-          else
-            wrapped_addr = incr_addr;
-
-        `ARM_FRBM_BOUND128 :
-          if  (incr_addr [6:0] === 7'b0000000)
-            begin
-              wrapped_addr [31:7] = aligned_addr [31:7];
-              wrapped_addr [6:0] = 7'b0000000;
-            end // if (incr_addr [6:0] === 7'b000000)
-          else
-            wrapped_addr = incr_addr;
-
-        default :
-          wrapped_addr  = {32{1'b0}};
-
-      endcase // case(boundary)
-
-    end // block: p_wrapped_addr_comb
-
-//---------------------------------------------------------------------------
-// Address Output
-//---------------------------------------------------------------------------
-// Address is calculated when there is a busy or sequential command otherwise
-//  the value from the input file is used. The registered address is used for
-//  poll commands.
-
-  assign i_haddr  = ((vec_cmd ===`ARM_FRBM_CMD_SEQ) || (vec_cmd ===`ARM_FRBM_CMD_BUSY)) ? wrapped_addr
-                   : vec_addr;
-
-  assign  HADDR  = i_haddr;
-
-//---------------------------------------------------------------------------
-// Next Line File Read Control
-//---------------------------------------------------------------------------
-// If the FileReader is not attempting a transfer that will result in data
-//  transfer, the master can continue to read commands from the file when HREADY
-//  is low. The exception is when the command being executed is a poll command.
-
-  assign rd_next = (next_poll_state ===`ARM_FRBM_ST_NO_POLL) &&
-                    ( (HREADY === 1'b1) ||
-                      ( (wait_rdy === 1'b0) &&
-                        ((vec_cmd ===`ARM_FRBM_CMD_BUSY ) || (vec_cmd ===`ARM_FRBM_CMD_IDLE ))
-                      )
-                    ) ? 1'b1
-
-                  : 1'b0;
-
-//---------------------------------------------------------------------------
-// Transfer Type Control
-//---------------------------------------------------------------------------
-// Transfer type output, when executing a poll command HTRANS can only be
-//  set to NONSEQ or IDLE, depending on the poll state.
-// HTRANS over-ridden to IDLE when cancelling a burst due to error response.
-// For the other commands HTRANS is set to NONSEQ for read and write commands,
-//  SEQ for sequential and BUSY for busy commands.
-
-  always @ (vec_cmd or err_resp_reg or HRESP or HREADY or next_poll_state)
-    begin : p_htrans_control_comb
-      if  (vec_cmd === `ARM_FRBM_CMD_POLL)
-        begin
-          if (next_poll_state === `ARM_FRBM_ST_POLL_TEST)
-            i_htrans = `ARM_FRBM_TRN_NONSEQ;
-          else
-            i_htrans = `ARM_FRBM_TRN_IDLE;
-        end
-      else if ((HRESP === `ARM_FRBM_RSP_ERROR) &&              // ERROR response received
-               (err_resp_reg === `ARM_FRBM_ERR_CANC) &&          // ERROR response expected
-               (HREADY === 1'b1) &&               // 2nd cycle of ERROR response
-               ((vec_cmd === `ARM_FRBM_CMD_SEQ) || (vec_cmd === `ARM_FRBM_CMD_BUSY)))        // burst transfer
-        i_htrans = `ARM_FRBM_TRN_IDLE;                          // cancel pending transfer
-      else
-        case (vec_cmd)
-          `ARM_FRBM_CMD_WRITE : i_htrans = `ARM_FRBM_TRN_NONSEQ;
-          `ARM_FRBM_CMD_READ  : i_htrans = `ARM_FRBM_TRN_NONSEQ;
-          `ARM_FRBM_CMD_SEQ   : i_htrans = `ARM_FRBM_TRN_SEQ;
-          `ARM_FRBM_CMD_BUSY  : i_htrans = `ARM_FRBM_TRN_BUSY;
-          `ARM_FRBM_CMD_IDLE  : i_htrans = `ARM_FRBM_TRN_IDLE;
-          `ARM_FRBM_CMD_QUIT  : i_htrans = `ARM_FRBM_TRN_IDLE;
-          default    : i_htrans = `ARM_FRBM_TRN_IDLE;
-        endcase // case (vec_cmd)
-    end // block: p_htrans_control_comb
-
-  assign  HTRANS = i_htrans;
-
-//---------------------------------------------------------------------------
-// Direction Control
-//---------------------------------------------------------------------------
-// HWRITE is only asserted for a write command or the idle command, when dir
-// set. HWRITE retains its value until the end of the burst.
-
-  assign i_hwrite = ((vec_cmd === `ARM_FRBM_CMD_BUSY) ||
-                    (vec_cmd === `ARM_FRBM_CMD_SEQ)) ? hwrite_reg
-
-                   : ((vec_cmd === `ARM_FRBM_CMD_WRITE) ||
-                      ((vec_cmd === `ARM_FRBM_CMD_IDLE) && (vec_dir === 1'b1))) ? 1'b1
-
-                   : 1'b0;
-
-  assign  HWRITE = i_hwrite;
-
-//------------------------------------------------------------------------------
-// Other Transfer Control Information
-//------------------------------------------------------------------------------
-
-  assign HMASTLOCK  = vec_lock;
-  assign HSIZE      = vec_size;
-  assign HBURST     = vec_burst;
-  assign HPROT      = vec_prot;
-  assign HUNALIGN   = unalign;
-
-  assign LINENUM    = stim_line_num;
-
-//------------------------------------------------------------------------------
-// Byte Lane Strobes
-//------------------------------------------------------------------------------
-// HSTRB is calculated when Bstrb is not specified in the stimulus, otherwise
-//  the value from the input file is used. The registered version is used for
-//  poll commands.
-//
-// Assumes 64-bit data bus, and that use_bstrb_flag signal is asserted for all
-//  unaligned transfers.
-
-  always @ (i_haddr[2:0] or vec_size or use_bstrb_flag or vec_bstrb)
-    begin : p_bstrb_comb
-      // If Bstrb is specified in the stimulus file, byte lane strobes are used
-      //  directly from the stimulus file.
-      if  (use_bstrb_flag === 1'b1)
-       i_hbstrb  = vec_bstrb;
-      else
-        begin
-// If use_bstrb_flag is not specified in the stimulus file, byte lane strobes
-//  are calculated. Aligned transfers only are supported.
-        case (vec_size)
-          `ARM_FRBM_SZ_BYTE : begin
-            case (i_haddr [2:0])
-              3'b000  : i_hbstrb = 8'b00000001;
-              3'b001  : i_hbstrb = 8'b00000010;
-              3'b010  : i_hbstrb = 8'b00000100;
-              3'b011  : i_hbstrb = 8'b00001000;
-              3'b100  : i_hbstrb = 8'b00010000;
-              3'b101  : i_hbstrb = 8'b00100000;
-              3'b110  : i_hbstrb = 8'b01000000;
-              3'b111  : i_hbstrb = 8'b10000000;
-              default : i_hbstrb = 8'b00000000;                // Invalid address
-            endcase
-          end
-
-          `ARM_FRBM_SZ_HALF : begin
-            case (i_haddr [2:0])
-              3'b000  : i_hbstrb = 8'b00000011;
-              3'b010  : i_hbstrb = 8'b00001100;
-              3'b100  : i_hbstrb = 8'b00110000;
-              3'b110  : i_hbstrb = 8'b11000000;
-              default : i_hbstrb = 8'b00000000;      // Invalid/unaligned address
-            endcase
-          end
-
-          `ARM_FRBM_SZ_WORD : begin
-            case (i_haddr [2:0])
-              3'b000  : i_hbstrb = 8'b00001111;
-              3'b100  : i_hbstrb = 8'b11110000;
-              default : i_hbstrb = 8'b00000000;      // Invalid/unaligned address
-            endcase
-          end
-
-
-          `ARM_FRBM_SZ_DWORD : begin
-              case (i_haddr [2:0])
-              3'b000  : i_hbstrb = 8'b11111111;
-              default : i_hbstrb = 8'b00000000;      // Invalid/unaligned address
-            endcase
-          end
-
-          default     : i_hbstrb  = 8'b00000000;    // Invalid size (> bus width)
-       endcase
-      end
-    end
-//------------------------------------------------------------------------------
-// HSTRB Output
-//------------------------------------------------------------------------------
-
-  assign HBSTRB = i_hbstrb;
-
-
-//------------------------------------------------------------------------------
-// Byte Lane Strobe data mask
-//------------------------------------------------------------------------------
-// Calculate 64-bit mask, based on iHSTRB
-// Note: This assumes little-endian mode.
-
-  assign bstrb_mask [7:0]    = i_hbstrb [0] ? 8'b11111111 : 8'b00000000;
-  assign bstrb_mask [15:8]   = i_hbstrb [1] ? 8'b11111111 : 8'b00000000;
-  assign bstrb_mask [23:16]  = i_hbstrb [2] ? 8'b11111111 : 8'b00000000;
-  assign bstrb_mask [31:24]  = i_hbstrb [3] ? 8'b11111111 : 8'b00000000;
-  assign bstrb_mask [39:32]  = i_hbstrb [4] ? 8'b11111111 : 8'b00000000;
-  assign bstrb_mask [47:40]  = i_hbstrb [5] ? 8'b11111111 : 8'b00000000;
-  assign bstrb_mask [55:48]  = i_hbstrb [6] ? 8'b11111111 : 8'b00000000;
-  assign bstrb_mask [63:56]  = i_hbstrb [7] ? 8'b11111111 : 8'b00000000;
-
-//------------------------------------------------------------------------------
-// Resultant mask - taking into account Bstrb values
-//------------------------------------------------------------------------------
-// Assumes 64-bit data bus, and that use_bstrb_flag signal will be asserted
-//  for all unaligned transfers.
-
-  assign mask = (use_bstrb_flag === 1'b1) ? (vec_data_mask & bstrb_mask) : vec_data_mask;
-
-//---------------------------------------------------------------------------
-// Data Control and Compare
-//---------------------------------------------------------------------------
-// When the transfer type from the previous address cycle was TRN_NONSEQ or
-//  TRN_SEQ then either the read or write data bus will be active in the
-//  next cycle.
-// write data is recorded in the address cycle
-
-  assign i_hwdata = (
-                    (i_hwrite === 1'b1) &&
-                    (HREADY === 1'b1) &&
-                    ((i_htrans === `ARM_FRBM_TRN_NONSEQ) ||
-                     (i_htrans === `ARM_FRBM_TRN_SEQ))
-                   ) ? vec_data
-                   : {64{1'b0}};
-
-  // The write data is registered when HREADY is asserted
-  always @ (posedge HCLK or negedge HRESETn)
-    begin : p_reg_wdata_seq
-      if (HRESETn !== 1'b1)
-        hwdata_reg <= {64{1'b0}};
-      else if (HREADY === 1'b1)
-        hwdata_reg <= i_hwdata;
-    end // block: p_reg_wdata_seq
-
-  // The registered value is output on the AHB-Lite interface
-  assign  HWDATA = hwdata_reg;
-
-  // Read data is recorded in the cycle after the address and compared with
-  //  the expected data value after applying the mask.
-  // Note that the data is checked only if an OKAY response is received.
-     always @ (data_reg or HRESP or HRDATA or mask_reg or htrans_reg or hwrite_reg)
-    begin : p_data_compare_comb
-      if  ((hwrite_reg === 1'b0) && (HRESP === `ARM_FRBM_RSP_OKAY) &&
-           ((htrans_reg ===`ARM_FRBM_TRN_NONSEQ) || (htrans_reg ===`ARM_FRBM_TRN_SEQ)))
-        data_compare = ((data_reg & mask_reg) ^ (HRDATA & mask_reg));
-      else
-        data_compare = {64{1'b0}};
-    end // block: p_data_compare_comb
-
-  // If data_compare is non-zero, flag an error.
-  assign data_err = (data_compare !== {64{1'b0}}) ? 1'b1
-                     : 1'b0;
-
-//------------------------------------------------------------------------------
-// Poll State Machine
-//------------------------------------------------------------------------------
-// The poll command requires two AHB transfers: a read followed by an idle to
-//  get the data from the read transfer. This command will continue until the
-//  data read matches the expected data or the poll timeout count is reached.
-// The state machine is used to control the read and idle transfers and the
-//  completion of the poll command.
-
-  always @ (poll_state or vec_cmd or data_err or poll_count or timeout)
-    begin : p_poll_state_comb
-      case (poll_state)
-
-        `ARM_FRBM_ST_NO_POLL : begin
-          if (vec_cmd === `ARM_FRBM_CMD_POLL) // if poll command, read transfer in this cycle
-            begin
-              next_poll_state = `ARM_FRBM_ST_POLL_TEST;          // test data in next cycle
-              next_poll_count = timeout;   // load poll counter with timeout value
-            end
-          else                                                // no poll command
-            begin
-              next_poll_state = `ARM_FRBM_ST_NO_POLL;
-              next_poll_count = poll_count;
-            end
-        end // case: `ARM_FRBM_ST_NO_POLL
-
-        `ARM_FRBM_ST_POLL_TEST : begin                     // data phase of poll transfer
-          if ((data_err === 1'b0) ||        // data matched and non-ERROR response
-              (poll_count === 32'h00000001))                      // poll timed out
-            begin
-              next_poll_state = `ARM_FRBM_ST_NO_POLL;
-              next_poll_count = 32'b00000000;
-            end
-          else
-            begin                     // data not matched and poll not timed out
-              next_poll_state = `ARM_FRBM_ST_POLL_READ;                       // poll again
-              if (poll_count !== 32'b00000000)
-                next_poll_count = poll_count - 1'b1;   // decrement timeout counter
-              else
-                next_poll_count = poll_count;
-            end
-        end // case: `ARM_FRBM_ST_POLL_TEST
-
-        `ARM_FRBM_ST_POLL_READ :                        // address phase of poll transfer
-          begin
-            next_poll_state = `ARM_FRBM_ST_POLL_TEST; // next state always to test the data
-            next_poll_count = poll_count;
-          end
-
-        default:                                     // illegal state transition
-          begin
-            next_poll_state = `ARM_FRBM_ST_NO_POLL;
-            next_poll_count = poll_count;
-          end
-
-      endcase // case(poll_state)
-    end // block: p_poll_state_comb
-
-  // Poll state and count registers
-  always @ (posedge HCLK or negedge HRESETn)
-    begin : p_poll_state_seq
-      if  (HRESETn !== 1'b1)
-        begin
-          poll_state <= `ARM_FRBM_ST_NO_POLL;
-          poll_count <= 32'b00000000;
-        end
-      else
-        if (HREADY === 1'b1)              // updated on each transfer completion
-          begin
-            poll_state <= next_poll_state;
-            poll_count <= next_poll_count;
-          end
-    end // block: p_poll_state_seq
-
-endmodule // FileReadCore
-
-// --================================ End ==================================--
diff --git a/hdl/verif/cmsdk/cmsdk_ahb_ram_beh.v b/hdl/verif/cmsdk/cmsdk_ahb_ram_beh.v
deleted file mode 100644
index 7ca65fc1c175a1b2f2c6fff4c5045f585c2de7e7..0000000000000000000000000000000000000000
--- a/hdl/verif/cmsdk/cmsdk_ahb_ram_beh.v
+++ /dev/null
@@ -1,209 +0,0 @@
-//-----------------------------------------------------------------------------
-// The confidential and proprietary information contained in this file may
-// only be used by a person authorised under and to the extent permitted
-// by a subsisting licensing agreement from Arm Limited or its affiliates.
-//
-//            (C) COPYRIGHT 2010-2013 Arm Limited or its affiliates.
-//                ALL RIGHTS RESERVED
-//
-// This entire notice must be reproduced on all copies of this file
-// and copies of this file may only be made by a person if such person is
-// permitted to do so under the terms of a subsisting license agreement
-// from Arm Limited or its affiliates.
-//
-//      SVN Information
-//
-//      Checked In          : $Date: 2017-10-10 15:55:38 +0100 (Tue, 10 Oct 2017) $
-//
-//      Revision            : $Revision: 371321 $
-//
-//      Release Information : Cortex-M System Design Kit-r1p1-00rel0
-//
-//-----------------------------------------------------------------------------
-//-----------------------------------------------------------------------------
-// Abstract : Simple AHB RAM behavioral model
-//-----------------------------------------------------------------------------
-module cmsdk_ahb_ram_beh #(
-  parameter AW       = 16,// Address width
-  parameter filename = "",
-  parameter WS_N     = 0, // First access wait state
-  parameter WS_S     = 0) // Subsequent access wait state
- (
-  input  wire          HCLK,    // Clock
-  input  wire          HRESETn, // Reset
-  input  wire          HSEL,    // Device select
-  input  wire [AW-1:0] HADDR,   // Address
-  input  wire [1:0]    HTRANS,  // Transfer control
-  input  wire [2:0]    HSIZE,   // Transfer size
-  input  wire          HWRITE,  // Write control
-  input  wire [31:0]   HWDATA,  // Write data
-  input  wire          HREADY,  // Transfer phase done
-  output wire          HREADYOUT, // Device ready
-  output wire [31:0]   HRDATA,  // Read data output
-  output wire          HRESP);   // Device response (always OKAY)
-
-  // Internal signals
-  reg    [7:0]  ram_data[0:((1<<AW)-1)]; // 64k byte of RAM data
-  wire          read_valid;     // Address phase read valid
-  wire          write_valid;    // Address phase write valid
-  reg           read_enable;    // Data phase read enable
-  reg           write_enable;   // Data phase write enable
-  reg    [3:0]  reg_byte_lane;  // Data phase byte lane
-  reg    [3:0]  next_byte_lane; // Next state of reg_byte_lane
-
-  reg    [7:0]  rdata_out_0;    // Read Data Output byte#0
-  reg    [7:0]  rdata_out_1;    // Read Data Output byte#1
-  reg    [7:0]  rdata_out_2;    // Read Data Output byte#2
-  reg    [7:0]  rdata_out_3;    // Read Data Output byte#3
-  reg [AW-1:0]  word_addr;      // Word aligned address
-  wire [AW-1:0] nxt_word_addr;  // Word aligned address
-  integer       i;              // Loop counter
-
-  // Wait state control
-  wire  [31:0]  nxt_waitstate_cnt;
-  reg   [31:0]  reg_waitstate_cnt;
-  wire          sequential_access;
-
-  // Start of main code
-  // Initialize ROM
-  initial
-    begin
-    for (i=0;i<(1<<AW);i=i+1)
-      begin
-      ram_data[i] = 8'h00; //Initialize all data to 0
-      end
-      if (filename != "")
-        begin
-        $readmemh(filename, ram_data); // Then read in program code
-        end
-    end
-
-  // Generate read control (address phase)
-  assign read_valid  = HSEL & HREADY & HTRANS[1] & (~HWRITE);
-  // Generate write control (address phase)
-  assign write_valid = HSEL & HREADY & HTRANS[1] & HWRITE;
-
-  // Read enable for each byte (address phase)
-  always @(read_valid or write_valid or HADDR or HSIZE)
-  begin
-  if (read_valid | write_valid)
-    begin
-    case (HSIZE)
-      0 : // Byte
-        begin
-        case (HADDR[1:0])
-          0: next_byte_lane = 4'b0001; // Byte 0
-          1: next_byte_lane = 4'b0010; // Byte 1
-          2: next_byte_lane = 4'b0100; // Byte 2
-          3: next_byte_lane = 4'b1000; // Byte 3
-          default:next_byte_lane = 4'b0000; // Address not valid
-        endcase
-        end
-      1 : // Halfword
-        begin
-        if (HADDR[1])
-          next_byte_lane = 4'b1100; // Upper halfword
-        else
-          next_byte_lane = 4'b0011; // Lower halfword
-        end
-      default : // Word
-        next_byte_lane = 4'b1111; // Whole word
-    endcase
-    end
-  else
-    next_byte_lane = 4'b0000; // Not reading
-  end
-
-  // Registering control signals to data phase
-  always @(posedge HCLK or negedge HRESETn)
-  begin
-    if (~HRESETn)
-      begin
-      reg_byte_lane <= 4'b0000;
-      read_enable   <= 1'b0;
-      write_enable  <= 1'b0;
-      word_addr     <= {AW{1'b0}};
-      end
-    else if (HREADY)
-      begin
-      reg_byte_lane <= next_byte_lane;
-      read_enable   <= read_valid;
-      write_enable  <= write_valid;
-      word_addr     <= nxt_word_addr;
-      end
-  end
-
-  assign nxt_word_addr = {HADDR[AW-1:2], 2'b00};
-
-  // Read operation
-  always @(read_enable or reg_byte_lane or word_addr)
-    if ((read_enable & reg_byte_lane[0]))
-      rdata_out_0 = ram_data[word_addr  ];
-    else
-      rdata_out_0 = 8'h00;
-
-  always @(read_enable or reg_byte_lane or word_addr)
-    if ((read_enable & reg_byte_lane[1]))
-      rdata_out_1 = ram_data[word_addr+1];
-    else
-      rdata_out_1 = 8'h00;
-
-  always @(read_enable or reg_byte_lane or word_addr)
-    if ((read_enable & reg_byte_lane[2]))
-      rdata_out_2 = ram_data[word_addr+2];
-    else
-      rdata_out_2 = 8'h00;
-
-  always @(read_enable or reg_byte_lane or word_addr)
-    if ((read_enable & reg_byte_lane[3]))
-      rdata_out_3 = ram_data[word_addr+3];
-    else
-      rdata_out_3 = 8'h00;
-
-  // Registered write
-  always @(posedge HCLK)
-  begin
-    if (write_enable &  reg_byte_lane[0])
-      begin
-      ram_data[word_addr  ] = HWDATA[ 7: 0];
-      end
-    if (write_enable &  reg_byte_lane[1])
-      begin
-      ram_data[word_addr+1] = HWDATA[15: 8];
-      end
-    if (write_enable &  reg_byte_lane[2])
-      begin
-      ram_data[word_addr+2] = HWDATA[23:16];
-      end
-    if (write_enable &  reg_byte_lane[3])
-      begin
-      ram_data[word_addr+3] = HWDATA[31:24];
-      end
-  end
-
-  // Wait state control
-    //  Wait state generate treat access as sequential if
-    //  HTRANS = 2'b11, or access address is in the same word,
-    //  or if the access is in the next word
-  assign sequential_access = (HTRANS==2'b11) |
-                            (HADDR[AW-1:2] == word_addr[AW-1:2]) |
-                            (HADDR[AW-1:2] == (word_addr[AW-1:2]+1));
-  assign nxt_waitstate_cnt = (read_valid|write_valid) ?
-                             ((sequential_access) ? WS_S : WS_N) :
-                             ((reg_waitstate_cnt!=0) ? (reg_waitstate_cnt - 1) : 0);
-    // Register wait state counter
-  always @(posedge HCLK or negedge HRESETn)
-  begin
-    if (~HRESETn)
-      reg_waitstate_cnt <= 0;
-    else
-      reg_waitstate_cnt <= nxt_waitstate_cnt;
-  end
-
-  // Connect to top level
-  assign HREADYOUT = (reg_waitstate_cnt==0) ? 1'b1 : 1'b0;
-  assign HRESP     = 1'b0; // Always response with OKAY
-  // Read data output
-  assign HRDATA    = {rdata_out_3, rdata_out_2, rdata_out_1,rdata_out_0};
-
-endmodule
diff --git a/hdl/verif/cmsdk/cmsdk_ahb_slave_mux.v b/hdl/verif/cmsdk/cmsdk_ahb_slave_mux.v
deleted file mode 100644
index e6821446cfdae2866f21a258c96511cfca221a50..0000000000000000000000000000000000000000
--- a/hdl/verif/cmsdk/cmsdk_ahb_slave_mux.v
+++ /dev/null
@@ -1,226 +0,0 @@
-//-----------------------------------------------------------------------------
-// The confidential and proprietary information contained in this file may
-// only be used by a person authorised under and to the extent permitted
-// by a subsisting licensing agreement from Arm Limited or its affiliates.
-//
-//            (C) COPYRIGHT 2010-2013 Arm Limited or its affiliates.
-//                ALL RIGHTS RESERVED
-//
-// This entire notice must be reproduced on all copies of this file
-// and copies of this file may only be made by a person if such person is
-// permitted to do so under the terms of a subsisting license agreement
-// from Arm Limited or its affiliates.
-//
-//      SVN Information
-//
-//      Checked In          : $Date: 2017-10-10 15:55:38 +0100 (Tue, 10 Oct 2017) $
-//
-//      Revision            : $Revision: 371321 $
-//
-//      Release Information : Cortex-M System Design Kit-r1p1-00rel0
-//
-//-----------------------------------------------------------------------------
-//-----------------------------------------------------------------------------
-// Abstract : Simple AHB slave multiplexer
-//-----------------------------------------------------------------------------
-// Each port can be disabled by parameter if not used.
-
-module cmsdk_ahb_slave_mux #(
-  // Parameters to enable/disable ports
-  // By default all ports are enabled
-  parameter PORT0_ENABLE=1,
-  parameter PORT1_ENABLE=1,
-  parameter PORT2_ENABLE=1,
-  parameter PORT3_ENABLE=1,
-  parameter PORT4_ENABLE=1,
-  parameter PORT5_ENABLE=1,
-  parameter PORT6_ENABLE=1,
-  parameter PORT7_ENABLE=1,
-  parameter PORT8_ENABLE=1,
-  parameter PORT9_ENABLE=1,
-
-  // Data Bus Width
-  parameter DW=32
- )
- (
-  input  wire          HCLK,       // Clock
-  input  wire          HRESETn,    // Reset
-  input  wire          HREADY,     // Bus ready
-  input  wire          HSEL0,      // HSEL for AHB Slave #0
-  input  wire          HREADYOUT0, // HREADY for Slave connection #0
-  input  wire          HRESP0,     // HRESP  for slave connection #0
-  input  wire [DW-1:0] HRDATA0,    // HRDATA for slave connection #0
-  input  wire          HSEL1,      // HSEL for AHB Slave #1
-  input  wire          HREADYOUT1, // HREADY for Slave connection #1
-  input  wire          HRESP1,     // HRESP  for slave connection #1
-  input  wire [DW-1:0] HRDATA1,    // HRDATA for slave connection #1
-  input  wire          HSEL2,      // HSEL for AHB Slave #2
-  input  wire          HREADYOUT2, // HREADY for Slave connection #2
-  input  wire          HRESP2,     // HRESP  for slave connection #2
-  input  wire [DW-1:0] HRDATA2,    // HRDATA for slave connection #2
-  input  wire          HSEL3,      // HSEL for AHB Slave #3
-  input  wire          HREADYOUT3, // HREADY for Slave connection #3
-  input  wire          HRESP3,     // HRESP  for slave connection #3
-  input  wire [DW-1:0] HRDATA3,    // HRDATA for slave connection #3
-  input  wire          HSEL4,      // HSEL for AHB Slave #4
-  input  wire          HREADYOUT4, // HREADY for Slave connection #4
-  input  wire          HRESP4,     // HRESP  for slave connection #4
-  input  wire [DW-1:0] HRDATA4,    // HRDATA for slave connection #4
-  input  wire          HSEL5,      // HSEL for AHB Slave #5
-  input  wire          HREADYOUT5, // HREADY for Slave connection #5
-  input  wire          HRESP5,     // HRESP  for slave connection #5
-  input  wire [DW-1:0] HRDATA5,    // HRDATA for slave connection #5
-  input  wire          HSEL6,      // HSEL for AHB Slave #6
-  input  wire          HREADYOUT6, // HREADY for Slave connection #6
-  input  wire          HRESP6,     // HRESP  for slave connection #6
-  input  wire [DW-1:0] HRDATA6,    // HRDATA for slave connection #6
-  input  wire          HSEL7,      // HSEL for AHB Slave #7
-  input  wire          HREADYOUT7, // HREADY for Slave connection #7
-  input  wire          HRESP7,     // HRESP  for slave connection #7
-  input  wire [DW-1:0] HRDATA7,    // HRDATA for slave connection #7
-  input  wire          HSEL8,      // HSEL for AHB Slave #8
-  input  wire          HREADYOUT8, // HREADY for Slave connection #8
-  input  wire          HRESP8,     // HRESP  for slave connection #8
-  input  wire [DW-1:0] HRDATA8,    // HRDATA for slave connection #8
-  input  wire          HSEL9,      // HSEL for AHB Slave #9
-  input  wire          HREADYOUT9, // HREADY for Slave connection #9
-  input  wire          HRESP9,     // HRESP  for slave connection #9
-  input  wire [DW-1:0] HRDATA9,    // HRDATA for slave connection #9
-  output wire          HREADYOUT,  // HREADY output to AHB master and AHB slaves
-  output wire          HRESP,      // HRESP to AHB master
-  output wire [DW-1:0] HRDATA      // Read data to AHB master
-  );
-
-  wire          mux_hready;   // multiplexed HREADY sigal
-  reg     [9:0] reg_hsel;     // Register selection control
-  wire    [9:0] nxt_hsel_reg; // next state for nxt_hsel_reg
-
-  assign  nxt_hsel_reg[0] = HSEL0 & (PORT0_ENABLE!=0);
-  assign  nxt_hsel_reg[1] = HSEL1 & (PORT1_ENABLE!=0);
-  assign  nxt_hsel_reg[2] = HSEL2 & (PORT2_ENABLE!=0);
-  assign  nxt_hsel_reg[3] = HSEL3 & (PORT3_ENABLE!=0);
-  assign  nxt_hsel_reg[4] = HSEL4 & (PORT4_ENABLE!=0);
-  assign  nxt_hsel_reg[5] = HSEL5 & (PORT5_ENABLE!=0);
-  assign  nxt_hsel_reg[6] = HSEL6 & (PORT6_ENABLE!=0);
-  assign  nxt_hsel_reg[7] = HSEL7 & (PORT7_ENABLE!=0);
-  assign  nxt_hsel_reg[8] = HSEL8 & (PORT8_ENABLE!=0);
-  assign  nxt_hsel_reg[9] = HSEL9 & (PORT9_ENABLE!=0);
-
-  // Registering MuxCtrl
-  always @(posedge HCLK or negedge HRESETn)
-  begin
-   if (~HRESETn)
-     reg_hsel <= {10{1'b0}};
-   else if (HREADY) // advance pipeline if HREADY is 1
-     reg_hsel <= nxt_hsel_reg;
-  end
-
-  assign mux_hready =
-           ((~reg_hsel[0]) | HREADYOUT0 | (PORT0_ENABLE==0)) &
-           ((~reg_hsel[1]) | HREADYOUT1 | (PORT1_ENABLE==0)) &
-           ((~reg_hsel[2]) | HREADYOUT2 | (PORT2_ENABLE==0)) &
-           ((~reg_hsel[3]) | HREADYOUT3 | (PORT3_ENABLE==0)) &
-           ((~reg_hsel[4]) | HREADYOUT4 | (PORT4_ENABLE==0)) &
-           ((~reg_hsel[5]) | HREADYOUT5 | (PORT5_ENABLE==0)) &
-           ((~reg_hsel[6]) | HREADYOUT6 | (PORT6_ENABLE==0)) &
-           ((~reg_hsel[7]) | HREADYOUT7 | (PORT7_ENABLE==0)) &
-           ((~reg_hsel[8]) | HREADYOUT8 | (PORT8_ENABLE==0)) &
-           ((~reg_hsel[9]) | HREADYOUT9 | (PORT9_ENABLE==0)) ;
-
-  assign HREADYOUT = mux_hready; // Connect to top level
-
-  assign HRDATA =
-           ({DW{(reg_hsel[0] & (PORT0_ENABLE!=0))}} & HRDATA0) |
-           ({DW{(reg_hsel[1] & (PORT1_ENABLE!=0))}} & HRDATA1) |
-           ({DW{(reg_hsel[2] & (PORT2_ENABLE!=0))}} & HRDATA2) |
-           ({DW{(reg_hsel[3] & (PORT3_ENABLE!=0))}} & HRDATA3) |
-           ({DW{(reg_hsel[4] & (PORT4_ENABLE!=0))}} & HRDATA4) |
-           ({DW{(reg_hsel[5] & (PORT5_ENABLE!=0))}} & HRDATA5) |
-           ({DW{(reg_hsel[6] & (PORT6_ENABLE!=0))}} & HRDATA6) |
-           ({DW{(reg_hsel[7] & (PORT7_ENABLE!=0))}} & HRDATA7) |
-           ({DW{(reg_hsel[8] & (PORT8_ENABLE!=0))}} & HRDATA8) |
-           ({DW{(reg_hsel[9] & (PORT9_ENABLE!=0))}} & HRDATA9) ;
-
-  assign HRESP =
-           (reg_hsel[0] & HRESP0 & (PORT0_ENABLE!=0)) |
-           (reg_hsel[1] & HRESP1 & (PORT1_ENABLE!=0)) |
-           (reg_hsel[2] & HRESP2 & (PORT2_ENABLE!=0)) |
-           (reg_hsel[3] & HRESP3 & (PORT3_ENABLE!=0)) |
-           (reg_hsel[4] & HRESP4 & (PORT4_ENABLE!=0)) |
-           (reg_hsel[5] & HRESP5 & (PORT5_ENABLE!=0)) |
-           (reg_hsel[6] & HRESP6 & (PORT6_ENABLE!=0)) |
-           (reg_hsel[7] & HRESP7 & (PORT7_ENABLE!=0)) |
-           (reg_hsel[8] & HRESP8 & (PORT8_ENABLE!=0)) |
-           (reg_hsel[9] & HRESP9 & (PORT9_ENABLE!=0)) ;
-
-   // ------------------------------------------------------------
-
-`ifdef ARM_AHB_ASSERT_ON
-   // ------------------------------------------------------------
-   // Assertions
-   // ------------------------------------------------------------
-`include "std_ovl_defines.h"
-
-   // When HREADYOUT is low, reg_hsel must be non-zero (Property of design)
-   assert_never
-     #(`OVL_ERROR,`OVL_ASSERT,
-       "reg_hsel must not be zero when HREADYOUT is low")
-   u_ovl_readyout_asserted_when_not_active
-     (.clk(HCLK), .reset_n(HRESETn),
-      .test_expr( (~HREADYOUT) & (reg_hsel=={10{1'b0}}))
-      );
-
-   // Properties of the inputs of the design
-
-   // HSEL should be one-hot
-   // If this OVL fires - there is an error in the design of the address decoder
-   assert_zero_one_hot
-     #(`OVL_FATAL,10,`OVL_ASSERT,
-       "Only one HSEL input can be activated.")
-   u_ovl_hsel_one_hot
-     (.clk(HCLK), .reset_n(HRESETn),
-      .test_expr({HSEL0,
-                  HSEL1,
-                  HSEL2,
-                  HSEL3,
-                  HSEL4,
-                  HSEL5,
-                  HSEL6,
-                  HSEL7,
-                  HSEL8,
-                  HSEL9}));
-
-   // When HREADYOUT is low, HREADY should be low
-   assert_never
-     #(`OVL_ERROR,`OVL_ASSERT,
-       "HREADY should be low when HREADYOUT is low")
-   u_ovl_ready_mismatch
-     (.clk(HCLK), .reset_n(HRESETn),
-      .test_expr( (~HREADYOUT) & HREADY )
-      );
-
-   // Check if a disabled port is selected
-   //  (system design error, check the verilog parameter in module instantiation)
-   assert_never
-     #(`OVL_ERROR,`OVL_ASSERT,
-       "A disabled port is selected")
-   u_ovl_disabled_port_selected
-     (.clk(HCLK), .reset_n(HRESETn),
-      .test_expr(HREADY & (
-        ((PORT0_ENABLE==0) & HSEL0) |
-        ((PORT1_ENABLE==0) & HSEL1) |
-        ((PORT2_ENABLE==0) & HSEL2) |
-        ((PORT3_ENABLE==0) & HSEL3) |
-        ((PORT4_ENABLE==0) & HSEL4) |
-        ((PORT5_ENABLE==0) & HSEL5) |
-        ((PORT6_ENABLE==0) & HSEL6) |
-        ((PORT7_ENABLE==0) & HSEL7) |
-        ((PORT8_ENABLE==0) & HSEL8) |
-        ((PORT9_ENABLE==0) & HSEL9)
-        ))
-      );
-
-`endif
-
-
-endmodule
diff --git a/hdl/verif/tb_wrapper_sha256_hashing_stream.sv b/hdl/verif/tb_wrapper_sha256_hashing_stream.sv
deleted file mode 100644
index 364d3167fa203e05bd3933596f870b42a9e0a88b..0000000000000000000000000000000000000000
--- a/hdl/verif/tb_wrapper_sha256_hashing_stream.sv
+++ /dev/null
@@ -1,254 +0,0 @@
-//-----------------------------------------------------------------------------
-// SoC Labs Basic Testbench for Top-level AHB Wrapper
-// Modified from tb_frbm_example.v
-// A joint work commissioned on behalf of SoC Labs; under Arm Academic Access license.
-//
-// Contributors
-//
-// David Mapstone (d.a.mapstone@soton.ac.uk)
-//
-// Copyright 2023; SoC Labs (www.soclabs.org)
-//-----------------------------------------------------------------------------
-//-----------------------------------------------------------------------------
-// The confidential and proprietary information contained in this file may
-// only be used by a person authorised under and to the extent permitted
-// by a subsisting licensing agreement from Arm Limited or its affiliates.
-//
-//            (C) COPYRIGHT 2010-2011,2017 Arm Limited or its affiliates.
-//                ALL RIGHTS RESERVED
-//
-// This entire notice must be reproduced on all copies of this file
-// and copies of this file may only be made by a person if such person is
-// permitted to do so under the terms of a subsisting license agreement
-// from Arm Limited or its affiliates.
-//
-//      SVN Information
-//
-//      Checked In          : $Date: 2017-10-10 15:55:38 +0100 (Tue, 10 Oct 2017) $
-//
-//      Revision            : $Revision: 371321 $
-//
-//      Release Information : Cortex-M System Design Kit-r1p1-00rel0
-//
-//-----------------------------------------------------------------------------
-//-------------------------------------------------------------------------
-//  Abstract            : Example for File Reader Bus Master
-//                         Testbench for the example AHB Lite slave.
-//=========================================================================--
-`include "wrapper_sha256_hashing_stream.sv"
-
-`timescale 1ns/1ps
-
-module tb_wrapper_sha256_hashing_stream;
-
-parameter CLK_PERIOD = 10;
-parameter ADDRWIDTH = 12;
-
-parameter InputFileName = ("../../accelerator-wrapper/simulate/stimulus/ahb_input_hash_stim.m2d");
-parameter MessageTag = "FileReader:";
-parameter StimArraySize = 10000;
-
-
-//********************************************************************************
-// Internal Wires
-//********************************************************************************
-
-// AHB Lite BUS SIGNALS
-wire             hready;
-wire             hresp;
-wire [31:0]      hrdata;
-
-wire [1:0]       htrans;
-wire [2:0]       hburst;
-wire [3:0]       hprot;
-wire [2:0]       hsize;
-wire             hwrite;
-wire             hmastlock;
-wire [31:0]      haddr;
-wire [31:0]      hwdata;
-
-// Accelerator AHB Signals
-wire             hsel0;
-wire             hreadyout0;
-wire             hresp0;
-wire [31:0]      hrdata0;
-
-// Default Slave AHB Signals
-wire             hsel1;
-wire             hreadyout1;
-wire             hresp1;
-wire [31:0]      hrdata1;
-
-reg              HCLK;
-reg              HRESETn;
-
-//********************************************************************************
-// Clock and reset generation
-//********************************************************************************
-
-initial
-  begin
-    $dumpfile("wrapper_sha256_hashing_stream.vcd");
-    $dumpvars(0, tb_wrapper_sha256_hashing_stream);
-    HRESETn = 1'b0;
-    HCLK    = 1'b0;
-    # (10*CLK_PERIOD);
-    HRESETn = 1'b1;
-  end
-
-always
-  begin
-    HCLK = #(CLK_PERIOD/2) ~HCLK;
-  end
-
-
-//********************************************************************************
-// Address decoder, need to be changed for other configuration
-//********************************************************************************
-// 0x60010000 - 0x60010FFF : HSEL #0 - Hash Accelerator
-// Other addresses         : HSEL #1 - Default slave
-
-  assign hsel0 = (haddr[31:12] == 20'h60010)? 1'b1:1'b0;
-  assign hsel1 = hsel0 ? 1'b0:1'b1;
-
-//********************************************************************************
-// File read bus master:
-// generate AHB Master signal by reading a file which store the AHB Operations
-//********************************************************************************
-
-cmsdk_ahb_fileread_master32 #(InputFileName, 
-                              MessageTag,
-                              StimArraySize
-) u_ahb_fileread_master32 (
-  .HCLK            (HCLK),
-  .HRESETn         (HRESETn),
-
-  .HREADY          (hready),
-  .HRESP           ({hresp}),  //AHB Lite response to AHB response
-  .HRDATA          (hrdata),
-  .EXRESP          (1'b0),     //  Exclusive response (tie low if not used)
-
-
-  .HTRANS          (htrans),
-  .HBURST          (hburst),
-  .HPROT           (hprot),
-  .EXREQ           (),        //  Exclusive access request (not used)
-  .MEMATTR         (),        //  Memory attribute (not used)
-  .HSIZE           (hsize),
-  .HWRITE          (hwrite),
-  .HMASTLOCK       (hmastlock),
-  .HADDR           (haddr),
-  .HWDATA          (hwdata),
-
-  .LINENUM         ()
-
-  );
-
-
-//********************************************************************************
-// Slave multiplexer module:
-//  multiplex the slave signals to master, three ports are enabled
-//********************************************************************************
-
- cmsdk_ahb_slave_mux  #(
-   1, //PORT0_ENABLE
-   1, //PORT1_ENABLE
-   1, //PORT2_ENABLE
-   0, //PORT3_ENABLE
-   0, //PORT4_ENABLE
-   0, //PORT5_ENABLE
-   0, //PORT6_ENABLE
-   0, //PORT7_ENABLE
-   0, //PORT8_ENABLE
-   0  //PORT9_ENABLE  
- ) u_ahb_slave_mux (
-  .HCLK        (HCLK),
-  .HRESETn     (HRESETn),
-  .HREADY      (hready),
-  .HSEL0       (hsel0),      // Input Port 0
-  .HREADYOUT0  (hreadyout0),
-  .HRESP0      (hresp0),
-  .HRDATA0     (hrdata0),
-  .HSEL1       (hsel1),      // Input Port 1
-  .HREADYOUT1  (hreadyout1),
-  .HRESP1      (hresp1),
-  .HRDATA1     (hrdata1),
-  .HSEL2       (1'b0),      // Input Port 2
-  .HREADYOUT2  (),
-  .HRESP2      (),
-  .HRDATA2     (),
-  .HSEL3       (1'b0),      // Input Port 3
-  .HREADYOUT3  (),
-  .HRESP3      (),
-  .HRDATA3     (),
-  .HSEL4       (1'b0),      // Input Port 4
-  .HREADYOUT4  (),
-  .HRESP4      (),
-  .HRDATA4     (),
-  .HSEL5       (1'b0),      // Input Port 5
-  .HREADYOUT5  (),
-  .HRESP5      (),
-  .HRDATA5     (),
-  .HSEL6       (1'b0),      // Input Port 6
-  .HREADYOUT6  (),
-  .HRESP6      (),
-  .HRDATA6     (),
-  .HSEL7       (1'b0),      // Input Port 7
-  .HREADYOUT7  (),
-  .HRESP7      (),
-  .HRDATA7     (),
-  .HSEL8       (1'b0),      // Input Port 8
-  .HREADYOUT8  (),
-  .HRESP8      (),
-  .HRDATA8     (),
-  .HSEL9       (1'b0),      // Input Port 9
-  .HREADYOUT9  (),
-  .HRESP9      (),
-  .HRDATA9     (),
-
-  .HREADYOUT   (hready),     // Outputs
-  .HRESP       (hresp),
-  .HRDATA      (hrdata)
-  );
-
-
-//********************************************************************************
-// Slave module 1: example AHB slave module
-//********************************************************************************
-  wrapper_sha256_hashing_stream #(ADDRWIDTH
-  ) accelerator (
-  .HCLK        (HCLK),
-  .HRESETn     (HRESETn),
-
-  //  Input slave port: 32 bit data bus interface
-  .HSELS       (hsel0),
-  .HADDRS      (haddr[ADDRWIDTH-1:0]),
-  .HTRANSS     (htrans),
-  .HSIZES      (hsize),
-  .HWRITES     (hwrite),
-  .HREADYS     (hready),
-  .HWDATAS     (hwdata),
-
-  .HREADYOUTS  (hreadyout0),
-  .HRESPS      (hresp0),
-  .HRDATAS     (hrdata0)
-
-  );
-
-
-//********************************************************************************
-// Slave module 2: AHB default slave module
-//********************************************************************************
- cmsdk_ahb_default_slave  u_ahb_default_slave(
-  .HCLK         (HCLK),
-  .HRESETn      (HRESETn),
-  .HSEL         (hsel1),
-  .HTRANS       (htrans),
-  .HREADY       (hready),
-  .HREADYOUT    (hreadyout1),
-  .HRESP        (hresp1)
-  );
-
- assign hrdata1 = {32{1'b0}}; // Default slave don't have data
-
- endmodule
\ No newline at end of file
diff --git a/hdl/verif/tb_wrapper_vr_loopback.sv b/hdl/verif/tb_wrapper_vr_loopback.sv
deleted file mode 100644
index 5e25339e114b82463f362b5f946cc606b96feeec..0000000000000000000000000000000000000000
--- a/hdl/verif/tb_wrapper_vr_loopback.sv
+++ /dev/null
@@ -1,260 +0,0 @@
-//-----------------------------------------------------------------------------
-// SoC Labs Basic Testbench for Wrapper Valid-Ready Loopback Test
-// Modified from tb_frbm_example.v
-// A joint work commissioned on behalf of SoC Labs; under Arm Academic Access license.
-//
-// Contributors
-//
-// David Mapstone (d.a.mapstone@soton.ac.uk)
-//
-// Copyright 2023; SoC Labs (www.soclabs.org)
-//-----------------------------------------------------------------------------
-//-----------------------------------------------------------------------------
-// The confidential and proprietary information contained in this file may
-// only be used by a person authorised under and to the extent permitted
-// by a subsisting licensing agreement from Arm Limited or its affiliates.
-//
-//            (C) COPYRIGHT 2010-2011,2017 Arm Limited or its affiliates.
-//                ALL RIGHTS RESERVED
-//
-// This entire notice must be reproduced on all copies of this file
-// and copies of this file may only be made by a person if such person is
-// permitted to do so under the terms of a subsisting license agreement
-// from Arm Limited or its affiliates.
-//
-//      SVN Information
-//
-//      Checked In          : $Date: 2017-10-10 15:55:38 +0100 (Tue, 10 Oct 2017) $
-//
-//      Revision            : $Revision: 371321 $
-//
-//      Release Information : Cortex-M System Design Kit-r1p1-00rel0
-//
-//-----------------------------------------------------------------------------
-//-------------------------------------------------------------------------
-//  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_vr_loopback.sv"
-
-`timescale 1ns/1ps
-
-module tb_wrapper_vr_loopback;
-
-parameter CLK_PERIOD = 10;
-parameter ADDRWIDTH = 12;
-
-// parameter InputFileName = "ahb_input_hash_stim.m2d";
-parameter InputFileName = ("../stimulus/ahb_input_hash_stim.m2d");
-parameter MessageTag = "FileReader:";
-parameter StimArraySize = 10000;
-
-
-//********************************************************************************
-// Internal Wires
-//********************************************************************************
-
-// AHB Lite BUS SIGNALS
-wire             hready;
-wire             hresp;
-wire [31:0]      hrdata;
-
-wire [1:0]       htrans;
-wire [2:0]       hburst;
-wire [3:0]       hprot;
-wire [2:0]       hsize;
-wire             hwrite;
-wire             hmastlock;
-wire [31:0]      haddr;
-wire [31:0]      hwdata;
-
-// Accelerator AHB Signals
-wire             hsel0;
-wire             hreadyout0;
-wire             hresp0;
-wire [31:0]      hrdata0;
-
-// Default Slave AHB Signals
-wire             hsel1;
-wire             hreadyout1;
-wire             hresp1;
-wire [31:0]      hrdata1;
-
-reg              HCLK;
-reg              HRESETn;
-
-//********************************************************************************
-// Clock and reset generation
-//********************************************************************************
-
-initial
-  begin
-    $dumpfile("wrapper_vr_loopback.vcd");
-    $dumpvars(0, tb_wrapper_vr_loopback);
-    HRESETn = 1'b0;
-    HCLK    = 1'b0;
-    # (10*CLK_PERIOD);
-    HRESETn = 1'b1;
-  end
-
-always
-  begin
-    HCLK = #(CLK_PERIOD/2) ~HCLK;
-  end
-
-
-//********************************************************************************
-// Address decoder, need to be changed for other configuration
-//********************************************************************************
-// 0x60010000 - 0x60010FFF : HSEL #0 - Hash Accelerator
-// Other addresses         : HSEL #1 - Default slave
-
-  assign hsel0 = (haddr[31:12] == 20'h60010)? 1'b1:1'b0;
-  assign hsel1 = hsel0 ? 1'b0:1'b1;
-
-//********************************************************************************
-// File read bus master:
-// generate AHB Master signal by reading a file which store the AHB Operations
-//********************************************************************************
-
-cmsdk_ahb_fileread_master32 #(InputFileName, 
-                              MessageTag,
-                              StimArraySize
-) u_ahb_fileread_master32 (
-  .HCLK            (HCLK),
-  .HRESETn         (HRESETn),
-
-  .HREADY          (hready),
-  .HRESP           ({hresp}),  //AHB Lite response to AHB response
-  .HRDATA          (hrdata),
-  .EXRESP          (1'b0),     //  Exclusive response (tie low if not used)
-
-
-  .HTRANS          (htrans),
-  .HBURST          (hburst),
-  .HPROT           (hprot),
-  .EXREQ           (),        //  Exclusive access request (not used)
-  .MEMATTR         (),        //  Memory attribute (not used)
-  .HSIZE           (hsize),
-  .HWRITE          (hwrite),
-  .HMASTLOCK       (hmastlock),
-  .HADDR           (haddr),
-  .HWDATA          (hwdata),
-
-  .LINENUM         ()
-
-  );
-
-
-//********************************************************************************
-// Slave multiplexer module:
-//  multiplex the slave signals to master, three ports are enabled
-//********************************************************************************
-
- cmsdk_ahb_slave_mux  #(
-   1, //PORT0_ENABLE
-   1, //PORT1_ENABLE
-   1, //PORT2_ENABLE
-   0, //PORT3_ENABLE
-   0, //PORT4_ENABLE
-   0, //PORT5_ENABLE
-   0, //PORT6_ENABLE
-   0, //PORT7_ENABLE
-   0, //PORT8_ENABLE
-   0  //PORT9_ENABLE  
- ) u_ahb_slave_mux (
-  .HCLK        (HCLK),
-  .HRESETn     (HRESETn),
-  .HREADY      (hready),
-  .HSEL0       (hsel0),      // Input Port 0
-  .HREADYOUT0  (hreadyout0),
-  .HRESP0      (hresp0),
-  .HRDATA0     (hrdata0),
-  .HSEL1       (hsel1),      // Input Port 1
-  .HREADYOUT1  (hreadyout1),
-  .HRESP1      (hresp1),
-  .HRDATA1     (hrdata1),
-  .HSEL2       (1'b0),      // Input Port 2
-  .HREADYOUT2  (),
-  .HRESP2      (),
-  .HRDATA2     (),
-  .HSEL3       (1'b0),      // Input Port 3
-  .HREADYOUT3  (),
-  .HRESP3      (),
-  .HRDATA3     (),
-  .HSEL4       (1'b0),      // Input Port 4
-  .HREADYOUT4  (),
-  .HRESP4      (),
-  .HRDATA4     (),
-  .HSEL5       (1'b0),      // Input Port 5
-  .HREADYOUT5  (),
-  .HRESP5      (),
-  .HRDATA5     (),
-  .HSEL6       (1'b0),      // Input Port 6
-  .HREADYOUT6  (),
-  .HRESP6      (),
-  .HRDATA6     (),
-  .HSEL7       (1'b0),      // Input Port 7
-  .HREADYOUT7  (),
-  .HRESP7      (),
-  .HRDATA7     (),
-  .HSEL8       (1'b0),      // Input Port 8
-  .HREADYOUT8  (),
-  .HRESP8      (),
-  .HRDATA8     (),
-  .HSEL9       (1'b0),      // Input Port 9
-  .HREADYOUT9  (),
-  .HRESP9      (),
-  .HRDATA9     (),
-
-  .HREADYOUT   (hready),     // Outputs
-  .HRESP       (hresp),
-  .HRDATA      (hrdata)
-  );
-
-
-//********************************************************************************
-// Slave module 1: example AHB slave module
-//********************************************************************************
-  wrapper_vr_loopback #(ADDRWIDTH
-  ) accelerator (
-  .HCLK        (HCLK),
-  .HRESETn     (HRESETn),
-
-  //  Input slave port: 32 bit data bus interface
-  .HSELS       (hsel0),
-  .HADDRS      (haddr[ADDRWIDTH-1:0]),
-  .HTRANSS     (htrans),
-  .HSIZES      (hsize),
-  .HWRITES     (hwrite),
-  .HREADYS     (hready),
-  .HWDATAS     (hwdata),
-
-  .HREADYOUTS  (hreadyout0),
-  .HRESPS      (hresp0),
-  .HRDATAS     (hrdata0)
-
-  );
-
-
-//********************************************************************************
-// Slave module 2: AHB default slave module
-//********************************************************************************
- cmsdk_ahb_default_slave  u_ahb_default_slave(
-  .HCLK         (HCLK),
-  .HRESETn      (HRESETn),
-  .HSEL         (hsel1),
-  .HTRANS       (htrans),
-  .HREADY       (hready),
-  .HREADYOUT    (hreadyout1),
-  .HRESP        (hresp1)
-  );
-
- assign hrdata1 = {32{1'b0}}; // Default slave don't have data
-
- endmodule
\ No newline at end of file