From 0e274a81858ab403bf27abfe8e86f67c0d680d78 Mon Sep 17 00:00:00 2001
From: dam1n19 <dam1n19@soton.ac.uk>
Date: Wed, 12 Apr 2023 16:52:23 +0100
Subject: [PATCH] SOC1-163: Moved Stimgen file to project repo added request
 ctrl register module to wrapper repo

---
 accelerator-wrapper                           |   2 +-
 ...ream.flist => secworks_sha25_stream.flist} |   0
 flist/wrapper.flist                           |   1 -
 flist/wrapper_ip.flist                        |   3 +
 flow/stimgen.py                               | 214 +++++++
 simulate/socsim/wrapper_secworks_sha256.sh    |   1 +
 system/stimulus/adp_hash_stim.cmd             | 520 ++++++++---------
 wrapper/src/wrapper_secworks_sha256.sv        |  91 ++-
 wrapper/stimulus/ahb_input_hash_stim.fri      | 521 ++++++++---------
 wrapper/stimulus/ahb_input_hash_stim.m2d      | 527 +++++++++---------
 wrapper/verif/tb_wrapper_secworks_sha256.sv   |   2 +-
 11 files changed, 1072 insertions(+), 810 deletions(-)
 rename flist/{secwork_sha25_stream.flist => secworks_sha25_stream.flist} (100%)
 create mode 100755 flow/stimgen.py

diff --git a/accelerator-wrapper b/accelerator-wrapper
index 7a5fe70..e93c1e9 160000
--- a/accelerator-wrapper
+++ b/accelerator-wrapper
@@ -1 +1 @@
-Subproject commit 7a5fe7024c3d2be951242c81f15aa743fca5faa8
+Subproject commit e93c1e93794237c72d62bdf71985cf89ca091e2d
diff --git a/flist/secwork_sha25_stream.flist b/flist/secworks_sha25_stream.flist
similarity index 100%
rename from flist/secwork_sha25_stream.flist
rename to flist/secworks_sha25_stream.flist
diff --git a/flist/wrapper.flist b/flist/wrapper.flist
index 7aa139a..3724f23 100644
--- a/flist/wrapper.flist
+++ b/flist/wrapper.flist
@@ -20,4 +20,3 @@
 +incdir+$(PROJECT_DIR)/wrapper/src/
 
 $(PROJECT_DIR)/wrapper/src/wrapper_secworks_sha256.sv
-$(PROJECT_DIR)/wrapper/src/wrapper_digest_filter.sv
diff --git a/flist/wrapper_ip.flist b/flist/wrapper_ip.flist
index 046c08f..373f79d 100644
--- a/flist/wrapper_ip.flist
+++ b/flist/wrapper_ip.flist
@@ -28,3 +28,6 @@ $(WRAPPER_TECH_DIR)/hdl/src/wrapper_ahb_reg_interface.sv
 // $(WRAPPER_TECH_DIR)/hdl/src/wrapper_ahb_vr_interface.sv
 $(WRAPPER_TECH_DIR)/hdl/src/wrapper_packet_construct.sv
 $(WRAPPER_TECH_DIR)/hdl/src/wrapper_packet_deconstruct.sv
+$(WRAPPER_TECH_DIR)/hdl/src/wrapper_req_ctrl_reg.sv
+$(WRAPPER_TECH_DIR)/hdl/src/wrapper_dmac_req.sv
+$(WRAPPER_TECH_DIR)/hdl/src/wrapper_valid_filter.sv
diff --git a/flow/stimgen.py b/flow/stimgen.py
new file mode 100755
index 0000000..1039895
--- /dev/null
+++ b/flow/stimgen.py
@@ -0,0 +1,214 @@
+#!/usr/bin/env python
+
+import csv, os, tabulate
+from enum import Enum
+
+soclabs_header = """;#-----------------------------------------------------------------------------
+;# SoC Labs Basic Hashing Accelerator Wrapper Input Stimulus File
+;# 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)
+;#-----------------------------------------------------------------------------"""
+
+class TransactionType(Enum):
+    """ Enumerated Types for Transaction Types for ASCII Debug """
+    READ  = 1
+    WRITE = 2
+    def __str__(self):
+        if (self == TransactionType.READ):
+            return "R"
+        elif (self == TransactionType.WRITE):
+            return "W"
+
+class TransactionSize(Enum):
+    """ Enumerated Types for Transaction Types for ASCII Debug """
+    WORD     = 1
+    HALFWORD = 2
+    def __str__(self):
+        if (self == TransactionSize.WORD):
+            return "word"
+        elif (self == TransactionSize.HALFWORD):
+            return "halfword"
+
+class InputBlockStruct:
+    def __init__(self):
+        self.word_list = []
+    
+    def word_append(self, word):
+        self.word_list.append(word)
+
+class InputPacketStruct:
+    def __init__(self):
+        self.block_list = []
+    
+    def block_append(self, block):
+        self.block_list.append(block)
+
+class WordStruct:
+    def __init__(self, data, addr, trans, packet_num = 0, block_num = 0, size = TransactionSize.WORD):
+        self.data = data
+        self.addr = addr
+        self.trans = trans
+        self.packet_num = packet_num
+        self.block_num = block_num
+        self.size = size
+
+def adp_output(out_file, word_list):
+    """ 
+    This function takes a list of 32 bit words and addresses and formats 
+    the data into .cmd format for the ADP module
+    testbench
+    """
+    
+    data = []
+    for word in word_list:
+        if (word.data > 0):
+            data.append(["a", "{0:#0{1}x}".format(word.addr,10)])
+            data.append([str(word.trans).lower(), "{0:#0{1}x}".format(word.data,10)])
+    
+    table_str = tabulate.tabulate(data, tablefmt="plain")
+
+    with open(out_file, "w", encoding="UTF8", newline='') as f:
+        f.write("A\n")
+        f.write(table_str)
+        f.write("\n  A")
+        f.write("\nX")
+        f.write("\n!")
+
+def fri_output(out_file, word_list):
+    """ 
+    This function takes a list of 32 bit words and addresses and formats 
+    the data into .fri format to be fed into fml2conv.pl script to stimulate
+    testbench
+    """
+    
+    # Column Names
+    col_names = ["Transaction", "Address", "Data", "Size"]
+
+    data = []
+    for word in word_list:
+        if (word.data > 0):
+            data.append([str(word.trans), "{0:#0{1}x}".format(word.addr,10), "{0:#0{1}x}".format(word.data,10), str(word.size)])
+    
+    table_str = tabulate.tabulate(data, headers=col_names, tablefmt="plain")
+
+    with open(out_file, "w", encoding="UTF8", newline='') as f:
+        f.write(soclabs_header + "\n;")
+        f.write(table_str)
+        f.write("\nQ") # Add End of Simulation Flag
+
+def stimulus_generation(stim_file, ref_file, input_start_address, input_size, output_start_address, output_size, gen_fri=True):
+    """ 
+    This function takes 32 bit input stimulus file from accelerator model,
+    calculates write addresses for each word and generates a .fri file which
+    can be used to stimulate an AHB testbench
+    """
+    fri_file = os.environ["PROJECT_DIR"] + "/wrapper/stimulus/" + "ahb_input_hash_stim.fri"
+
+    if gen_fri:
+        # Calculate End Address
+        input_end_address = input_start_address + input_size - 0x4
+        # print(f"End Address is {hex(end_address)}")
+
+        # Open Files
+        with open(stim_file, "r") as stim:
+            csvreader = csv.reader(stim, delimiter=",")
+            stim_list = list(csvreader)
+
+        with open(ref_file, "r") as ref:
+            csvreader = csv.reader(ref, delimiter=",")
+            ref_list = list(csvreader)
+
+        # Initialise Packet Lists
+        write_packet_list = []
+        read_packet_list  = []
+
+        # Initialise Temporary Structures
+        temppacketstruct = InputPacketStruct()
+        tempblockstruct = InputBlockStruct()
+
+        # Put Write Data into Structs
+        for i in stim_list:
+            tempblockstruct.word_append(int(i[0],16))
+            # If Last Word in Block, Append to Packet and Reset Temporary block structure
+            if (int(i[1])):
+                temppacketstruct.block_append(tempblockstruct)
+                tempblockstruct = InputBlockStruct()
+                # If Last Block in Packet , Append Packet to Packet List and Reset Temp Packet
+                if (int(i[2])):
+                    write_packet_list.append(temppacketstruct)
+                    temppacketstruct = InputPacketStruct()
+
+        # Put Read Data into Structs
+        for i in ref_list:
+            tempblockstruct.word_append(int(i[0],16))
+            # If Last Word in Block, Append to Packet and Reset Temporary block structure
+            if (int(i[1])):
+                temppacketstruct.block_append(tempblockstruct)
+                tempblockstruct = InputBlockStruct()
+                # If Last Block in Packet , Append Packet to Packet List and Reset Temp Packet
+                if (int(i[2])):
+                    read_packet_list.append(temppacketstruct)
+                    temppacketstruct = InputPacketStruct()
+            
+        
+        # List of Ouptut Transactions
+        output_word_list = []
+
+        # Generate Address for Packet
+        for packet_num, write_packet in enumerate(write_packet_list):
+            # Calculate Number of Blocks in First Packet
+            num_blocks = len(write_packet.block_list)
+            # Each Write Block Can Contain 16 32-bit Words (512 bits) (0x4 * 16 = 0x40)
+            # - Work Out Required Size = (0x40 * NumBlocks)
+            # - Work Out Beginning Address = (end_address + 0x4) - Size
+            req_write_size = 0x40 * num_blocks
+            start_write_addr = input_start_address + input_size - req_write_size
+            # Each Read Block Contains 8 32-bit Words (256 bits) (0x4 * 8 = 0x20)
+            req_read_size  = 0x20
+            start_read_addr  = output_start_address + output_size - req_read_size
+            # print(f"Packet: {int(packet_num)} | Start Address: {hex(start_write_addr)}")
+            write_addr = start_write_addr
+            read_addr  = start_read_addr
+            # Write out Packet containing multiple 512 bit Blocks to Input Port
+            for block_num, block in enumerate(write_packet.block_list):
+                for word in block.word_list:
+                    word_data = WordStruct(word, write_addr, TransactionType.WRITE, packet_num, block_num)
+                    output_word_list.append(word_data)
+                    # Increment Address
+                    write_addr += 0x4
+            # Set Read Packet
+            read_packet = read_packet_list[packet_num]
+            # Read Back 256 Bit Packet from Output Port
+            for block_num, block in enumerate(read_packet.block_list):
+                for word in block.word_list:
+                    word_data = WordStruct(word, read_addr, TransactionType.READ, packet_num, 0)
+                    output_word_list.append(word_data)
+                    # Increment Address
+                    read_addr += 0x4
+
+
+        # Generate ADP Command File with Write Transactions
+        adp_file = os.environ["PROJECT_DIR"] + "/system/stimulus/" + "adp_hash_stim.cmd"
+        adp_output(adp_file, output_word_list)
+
+        # Generate FRI File with Write Transactions
+        fri_output(fri_file, output_word_list)
+
+    # Call fm2conv.pl script
+    m2d_file = os.environ["PROJECT_DIR"] + "/wrapper/stimulus/" + "ahb_input_hash_stim.m2d"
+    os.system(f"fm2conv.pl -busWidth=32 -infile={fri_file} -outfile={m2d_file}")
+
+
+if __name__ == "__main__":
+    accelerator_input_address =  0x6001_0000
+    accelerator_input_size =     0x0000_0400
+    accelerator_output_address = 0x6001_0400
+    accelerator_output_size =    0x0000_0400
+    stim_file = os.environ["PROJECT_DIR"] + "/wrapper/stimulus/" + "input_block_32bit_stim.csv"
+    ref_file = os.environ["PROJECT_DIR"] + "/wrapper/stimulus/" + "output_hash_32bit_ref.csv"
+    stimulus_generation(stim_file, ref_file, accelerator_input_address, accelerator_input_size, accelerator_output_address, accelerator_output_size, gen_fri=False)
\ No newline at end of file
diff --git a/simulate/socsim/wrapper_secworks_sha256.sh b/simulate/socsim/wrapper_secworks_sha256.sh
index a36666d..4f7780a 100755
--- a/simulate/socsim/wrapper_secworks_sha256.sh
+++ b/simulate/socsim/wrapper_secworks_sha256.sh
@@ -27,6 +27,7 @@ xrun \
     -f $PROJECT_DIR/flist/primatives.flist \
     -f $PROJECT_DIR/flist/wrapper_ip.flist \
     -f $PROJECT_DIR/flist/ahb_ip.flist \
+    -f $PROJECT_DIR/flist/apb_ip.flist \
     -f $PROJECT_DIR/flist/wrapper.flist \
     -f $PROJECT_DIR/flist/ahb_vip.flist \
     -f $PROJECT_DIR/flist/secworks_sha25_stream.flist \
diff --git a/system/stimulus/adp_hash_stim.cmd b/system/stimulus/adp_hash_stim.cmd
index bf7c416..d65e2c1 100644
--- a/system/stimulus/adp_hash_stim.cmd
+++ b/system/stimulus/adp_hash_stim.cmd
@@ -1,523 +1,523 @@
 A
-a  0x60010780
+a  0x60010380
 w  0x94748770
-a  0x60010784
+a  0x60010384
 w  0x0e3109cc
-a  0x60010788
+a  0x60010388
 w  0xc4411b41
-a  0x6001078c
+a  0x6001038c
 w  0x5349fe99
-a  0x60010790
+a  0x60010390
 w  0xbc3bdfc1
-a  0x60010794
+a  0x60010394
 w  0xdeb5cb2a
-a  0x60010798
+a  0x60010398
 w  0xa0052ca2
-a  0x6001079c
+a  0x6001039c
 w  0x1761b000
-a  0x600107a0
+a  0x600103a0
 w  0x1b5affff
-a  0x600107a4
+a  0x600103a4
 w  0xeab53b7e
-a  0x600107a8
+a  0x600103a8
 w  0x81152f06
-a  0x600107ac
+a  0x600103ac
 w  0x7d60ab33
-a  0x600107b0
+a  0x600103b0
 w  0x1ce3c906
-a  0x600107b4
+a  0x600103b4
 w  0x707476fe
-a  0x600107b8
+a  0x600103b8
 w  0x923737f4
-a  0x600107bc
+a  0x600103bc
 w  0x695b2443
-a  0x600107c0
+a  0x600103c0
 w  0x00000200
-a  0x600107fc
+a  0x600103fc
 w  0x80000000
-a  0x60010fe0
+a  0x600107e0
 r  0xe06f1bef
-a  0x60010fe4
+a  0x600107e4
 r  0xf498916a
-a  0x60010fe8
+a  0x600107e8
 r  0x4686ebb1
-a  0x60010fec
+a  0x600107ec
 r  0x0dc803e5
-a  0x60010ff0
+a  0x600107f0
 r  0x960ea091
-a  0x60010ff4
+a  0x600107f4
 r  0xeb558be4
-a  0x60010ff8
+a  0x600107f8
 r  0xe14c46de
-a  0x60010ffc
+a  0x600107fc
 r  0xe1711626
-a  0x60010780
+a  0x60010380
 w  0xf7079da3
-a  0x60010784
+a  0x60010384
 w  0xa0c46731
-a  0x60010788
+a  0x60010388
 w  0xc51f9e09
-a  0x6001078c
+a  0x6001038c
 w  0x8d8993e6
-a  0x60010790
+a  0x60010390
 w  0xfd33039d
-a  0x60010794
+a  0x60010394
 w  0xe8675d4a
-a  0x60010798
+a  0x60010398
 w  0xc0e513a1
-a  0x6001079c
+a  0x6001039c
 w  0x858c0663
-a  0x600107a0
+a  0x600103a0
 w  0xa1fb693e
-a  0x600107a4
+a  0x600103a4
 w  0xd5ebd6d4
-a  0x600107a8
+a  0x600103a8
 w  0x26f7441f
-a  0x600107ac
+a  0x600103ac
 w  0x907554b5
-a  0x600107b0
+a  0x600103b0
 w  0x9db705fd
-a  0x600107b4
+a  0x600103b4
 w  0x47a57bf5
-a  0x600107b8
+a  0x600103b8
 w  0xfe2518c8
-a  0x600107bc
+a  0x600103bc
 w  0x4c5b82c1
-a  0x600107c0
+a  0x600103c0
 w  0x00000200
-a  0x600107fc
+a  0x600103fc
 w  0x80000000
-a  0x60010fe0
+a  0x600107e0
 r  0xd065f05e
-a  0x60010fe4
+a  0x600107e4
 r  0x1623b2c9
-a  0x60010fe8
+a  0x600107e8
 r  0x9d3c0a90
-a  0x60010fec
+a  0x600107ec
 r  0xce34de30
-a  0x60010ff0
+a  0x600107f0
 r  0x72fc05c5
-a  0x60010ff4
+a  0x600107f4
 r  0xcf65fdbb
-a  0x60010ff8
+a  0x600107f8
 r  0xef598a6e
-a  0x60010ffc
+a  0x600107fc
 r  0x58d6d30f
-a  0x60010780
+a  0x60010380
 w  0x28b3253a
-a  0x60010784
+a  0x60010384
 w  0x96dbf9e5
-a  0x60010788
+a  0x60010388
 w  0x55e5ab02
-a  0x6001078c
+a  0x6001038c
 w  0x6bbbc74a
-a  0x60010790
+a  0x60010390
 w  0xed5fbca6
-a  0x60010794
+a  0x60010394
 w  0x73ece6c4
-a  0x60010798
+a  0x60010398
 w  0x832fa959
-a  0x6001079c
+a  0x6001039c
 w  0x7a0d31bf
-a  0x600107a0
+a  0x600103a0
 w  0xaa1320aa
-a  0x600107a4
+a  0x600103a4
 w  0x9fcb8eb3
-a  0x600107a8
+a  0x600103a8
 w  0x6bf549d9
-a  0x600107ac
+a  0x600103ac
 w  0x049bd3de
-a  0x600107b0
+a  0x600103b0
 w  0xdd09fb8d
-a  0x600107b4
+a  0x600103b4
 w  0x1285908a
-a  0x600107b8
+a  0x600103b8
 w  0x3eb37ea8
-a  0x600107bc
+a  0x600103bc
 w  0x68eb3a8c
-a  0x600107c0
+a  0x600103c0
 w  0x00000200
-a  0x600107fc
+a  0x600103fc
 w  0x80000000
-a  0x60010fe0
+a  0x600107e0
 r  0xe4e3afb2
-a  0x60010fe4
+a  0x600107e4
 r  0xa3be45c9
-a  0x60010fe8
+a  0x600107e8
 r  0xb43f0fa3
-a  0x60010fec
+a  0x600107ec
 r  0x56fcb65d
-a  0x60010ff0
+a  0x600107f0
 r  0xbbf2982b
-a  0x60010ff4
+a  0x600107f4
 r  0x15cd68c7
-a  0x60010ff8
+a  0x600107f8
 r  0xcc9f9269
-a  0x60010ffc
+a  0x600107fc
 r  0xed646faf
-a  0x60010780
+a  0x60010380
 w  0xbfcceaa6
-a  0x60010784
+a  0x60010384
 w  0xa2264db5
-a  0x60010788
+a  0x60010388
 w  0x4ba05e93
-a  0x6001078c
+a  0x6001038c
 w  0xb60ac4cb
-a  0x60010790
+a  0x60010390
 w  0x9edcb672
-a  0x60010794
+a  0x60010394
 w  0x00637780
-a  0x60010798
+a  0x60010398
 w  0x860e62d9
-a  0x6001079c
+a  0x6001039c
 w  0x8a983052
-a  0x600107a0
+a  0x600103a0
 w  0x35e38f6f
-a  0x600107a4
+a  0x600103a4
 w  0xd2e8b382
-a  0x600107a8
+a  0x600103a8
 w  0x3482b173
-a  0x600107ac
+a  0x600103ac
 w  0x9d76f455
-a  0x600107b0
+a  0x600103b0
 w  0x5b623fda
-a  0x600107b4
+a  0x600103b4
 w  0xb08ab5bf
-a  0x600107b8
+a  0x600103b8
 w  0x332433a7
-a  0x600107bc
+a  0x600103bc
 w  0x17aced3b
-a  0x600107c0
+a  0x600103c0
 w  0x00000200
-a  0x600107fc
+a  0x600103fc
 w  0x80000000
-a  0x60010fe0
+a  0x600107e0
 r  0xad5d7f58
-a  0x60010fe4
+a  0x600107e4
 r  0xc619f73f
-a  0x60010fe8
+a  0x600107e8
 r  0x5a54de49
-a  0x60010fec
+a  0x600107ec
 r  0x038b0529
-a  0x60010ff0
+a  0x600107f0
 r  0x92343513
-a  0x60010ff4
+a  0x600107f4
 r  0xea3cf2a9
-a  0x60010ff8
+a  0x600107f8
 r  0x5a1b530b
-a  0x60010ffc
+a  0x600107fc
 r  0x49393b4e
-a  0x60010780
+a  0x60010380
 w  0x2319760c
-a  0x60010784
+a  0x60010384
 w  0xc25e8486
-a  0x60010788
+a  0x60010388
 w  0xe2be9c44
-a  0x6001078c
+a  0x6001038c
 w  0x28e4aeaf
-a  0x60010790
+a  0x60010390
 w  0xae725608
-a  0x60010794
+a  0x60010394
 w  0xd394d5f8
-a  0x60010798
+a  0x60010398
 w  0xf6768cc7
-a  0x6001079c
+a  0x6001039c
 w  0x7f51d709
-a  0x600107a0
+a  0x600103a0
 w  0x4c99a726
-a  0x600107a4
+a  0x600103a4
 w  0x2586fbc4
-a  0x600107a8
+a  0x600103a8
 w  0xd2f30b37
-a  0x600107ac
+a  0x600103ac
 w  0x8c71f0c5
-a  0x600107b0
+a  0x600103b0
 w  0x4acf0b2d
-a  0x600107b4
+a  0x600103b4
 w  0xd0d8e335
-a  0x600107b8
+a  0x600103b8
 w  0x88af1d5f
-a  0x600107bc
+a  0x600103bc
 w  0xe69dad36
-a  0x600107c0
+a  0x600103c0
 w  0x00000200
-a  0x600107fc
+a  0x600103fc
 w  0x80000000
-a  0x60010fe0
+a  0x600107e0
 r  0x105755f3
-a  0x60010fe4
+a  0x600107e4
 r  0x1ca8459e
-a  0x60010fe8
+a  0x600107e8
 r  0x08ffade5
-a  0x60010fec
+a  0x600107ec
 r  0x29a2e390
-a  0x60010ff0
+a  0x600107f0
 r  0xc6905543
-a  0x60010ff4
+a  0x600107f4
 r  0x5ed0766b
-a  0x60010ff8
+a  0x600107f8
 r  0x9a63b562
-a  0x60010ffc
+a  0x600107fc
 r  0x95262422
-a  0x60010780
+a  0x60010380
 w  0x2a17c8e9
-a  0x60010784
+a  0x60010384
 w  0x63931b41
-a  0x60010788
+a  0x60010388
 w  0xd191bfc8
-a  0x6001078c
+a  0x6001038c
 w  0x40d7f3fc
-a  0x60010790
+a  0x60010390
 w  0x60754253
-a  0x60010794
+a  0x60010394
 w  0xd5f6ef4c
-a  0x60010798
+a  0x60010398
 w  0xa49ff89d
-a  0x6001079c
+a  0x6001039c
 w  0xb3f9bc39
-a  0x600107a0
+a  0x600103a0
 w  0x7ba3ec2e
-a  0x600107a4
+a  0x600103a4
 w  0xf100cac2
-a  0x600107a8
+a  0x600103a8
 w  0x552ac1d3
-a  0x600107ac
+a  0x600103ac
 w  0x657744db
-a  0x600107b0
+a  0x600103b0
 w  0xfa2402f8
-a  0x600107b4
+a  0x600103b4
 w  0x5e2ea772
-a  0x600107b8
+a  0x600103b8
 w  0x572c2bf0
-a  0x600107bc
+a  0x600103bc
 w  0x372eb887
-a  0x600107c0
+a  0x600103c0
 w  0x00000200
-a  0x600107fc
+a  0x600103fc
 w  0x80000000
-a  0x60010fe0
+a  0x600107e0
 r  0x1f335cad
-a  0x60010fe4
+a  0x600107e4
 r  0x7d8c6b58
-a  0x60010fe8
+a  0x600107e8
 r  0xcb265158
-a  0x60010fec
+a  0x600107ec
 r  0xee44b230
-a  0x60010ff0
+a  0x600107f0
 r  0x88e5f660
-a  0x60010ff4
+a  0x600107f4
 r  0x96ee3bc5
-a  0x60010ff8
+a  0x600107f8
 r  0x96cf9939
-a  0x60010ffc
+a  0x600107fc
 r  0x38849fc2
-a  0x60010780
+a  0x60010380
 w  0xac465530
-a  0x60010784
+a  0x60010384
 w  0x6e6a3d49
-a  0x60010788
+a  0x60010388
 w  0xe7f1461f
-a  0x6001078c
+a  0x6001038c
 w  0xc6f4b35f
-a  0x60010790
+a  0x60010390
 w  0xf82a46d6
-a  0x60010794
+a  0x60010394
 w  0x440244f5
-a  0x60010798
+a  0x60010398
 w  0x6bde0ef1
-a  0x6001079c
+a  0x6001039c
 w  0xb0787487
-a  0x600107a0
+a  0x600103a0
 w  0x1a96af96
-a  0x600107a4
+a  0x600103a4
 w  0xa55fef07
-a  0x600107a8
+a  0x600103a8
 w  0xea97471c
-a  0x600107ac
+a  0x600103ac
 w  0x35bad402
-a  0x600107b0
+a  0x600103b0
 w  0xb3733250
-a  0x600107b4
+a  0x600103b4
 w  0x75028929
-a  0x600107b8
+a  0x600103b8
 w  0x230c2b19
-a  0x600107bc
+a  0x600103bc
 w  0x0bfe6ea9
-a  0x600107c0
+a  0x600103c0
 w  0x00000200
-a  0x600107fc
+a  0x600103fc
 w  0x80000000
-a  0x60010fe0
+a  0x600107e0
 r  0x0b51e243
-a  0x60010fe4
+a  0x600107e4
 r  0x37b05a4b
-a  0x60010fe8
+a  0x600107e8
 r  0x02497784
-a  0x60010fec
+a  0x600107ec
 r  0xaed161d2
-a  0x60010ff0
+a  0x600107f0
 r  0x7f6590f6
-a  0x60010ff4
+a  0x600107f4
 r  0x479570fd
-a  0x60010ff8
+a  0x600107f8
 r  0xae0cb755
-a  0x60010ffc
+a  0x600107fc
 r  0xee161bc2
-a  0x60010780
+a  0x60010380
 w  0xec8225d7
-a  0x60010784
+a  0x60010384
 w  0x9193267a
-a  0x60010788
+a  0x60010388
 w  0xc3f24d94
-a  0x6001078c
+a  0x6001038c
 w  0xb295566e
-a  0x60010790
+a  0x60010390
 w  0x034a0bc0
-a  0x60010794
+a  0x60010394
 w  0x1a4d2e6b
-a  0x60010798
+a  0x60010398
 w  0xa6ed70c9
-a  0x6001079c
+a  0x6001039c
 w  0x4d573f76
-a  0x600107a0
+a  0x600103a0
 w  0x45b0e216
-a  0x600107a4
+a  0x600103a4
 w  0xdb750cbb
-a  0x600107a8
+a  0x600103a8
 w  0x4138b929
-a  0x600107ac
+a  0x600103ac
 w  0xd67d1bbd
-a  0x600107b0
+a  0x600103b0
 w  0x24fdf316
-a  0x600107b4
+a  0x600103b4
 w  0x0650c084
-a  0x600107b8
+a  0x600103b8
 w  0xf95e6e9c
-a  0x600107bc
+a  0x600103bc
 w  0x877e2642
-a  0x600107c0
+a  0x600103c0
 w  0x00000200
-a  0x600107fc
+a  0x600103fc
 w  0x80000000
-a  0x60010fe0
+a  0x600107e0
 r  0x6d572f08
-a  0x60010fe4
+a  0x600107e4
 r  0xe0c7b6dd
-a  0x60010fe8
+a  0x600107e8
 r  0x88674260
-a  0x60010fec
+a  0x600107ec
 r  0xa5ae48a8
-a  0x60010ff0
+a  0x600107f0
 r  0xa7112033
-a  0x60010ff4
+a  0x600107f4
 r  0xc555cde2
-a  0x60010ff8
+a  0x600107f8
 r  0x51c0db63
-a  0x60010ffc
+a  0x600107fc
 r  0x60f9e31b
-a  0x60010780
+a  0x60010380
 w  0x387dc590
-a  0x60010784
+a  0x60010384
 w  0x2966f6a3
-a  0x60010788
+a  0x60010388
 w  0xadd14662
-a  0x6001078c
+a  0x6001038c
 w  0x0bc2175e
-a  0x60010790
+a  0x60010390
 w  0x3d2556a0
-a  0x60010794
+a  0x60010394
 w  0x335c30a8
-a  0x60010798
+a  0x60010398
 w  0x50e7e900
-a  0x6001079c
+a  0x6001039c
 w  0xb1b72206
-a  0x600107a0
+a  0x600103a0
 w  0xc6f526b0
-a  0x600107a4
+a  0x600103a4
 w  0x15a4177f
-a  0x600107a8
+a  0x600103a8
 w  0xf0d718a4
-a  0x600107ac
+a  0x600103ac
 w  0x48879677
-a  0x600107b0
+a  0x600103b0
 w  0x8934d6c4
-a  0x600107b4
+a  0x600103b4
 w  0x50ab7c39
-a  0x600107b8
+a  0x600103b8
 w  0x3360bbd7
-a  0x600107bc
+a  0x600103bc
 w  0xefdf5963
-a  0x600107c0
+a  0x600103c0
 w  0x00000200
-a  0x600107fc
+a  0x600103fc
 w  0x80000000
-a  0x60010fe0
+a  0x600107e0
 r  0x24eb65ee
-a  0x60010fe4
+a  0x600107e4
 r  0x309707c9
-a  0x60010fe8
+a  0x600107e8
 r  0xaf5d19d2
-a  0x60010fec
+a  0x600107ec
 r  0xd4e713d3
-a  0x60010ff0
+a  0x600107f0
 r  0x5d160f7a
-a  0x60010ff4
+a  0x600107f4
 r  0x400e3734
-a  0x60010ff8
+a  0x600107f8
 r  0xb6a8cf6c
-a  0x60010ffc
+a  0x600107fc
 r  0x3a012531
-a  0x60010780
+a  0x60010380
 w  0x2a22cd0b
-a  0x60010784
+a  0x60010384
 w  0xf570eb78
-a  0x60010788
+a  0x60010388
 w  0xd3a5b873
-a  0x6001078c
+a  0x6001038c
 w  0x53d7f89b
-a  0x60010790
+a  0x60010390
 w  0xebedc242
-a  0x60010794
+a  0x60010394
 w  0x59a1ee9a
-a  0x60010798
+a  0x60010398
 w  0xcea792f4
-a  0x6001079c
+a  0x6001039c
 w  0xedf99c9c
-a  0x600107a0
+a  0x600103a0
 w  0x47ab7368
-a  0x600107a4
+a  0x600103a4
 w  0xa0eddacc
-a  0x600107a8
+a  0x600103a8
 w  0xe218002f
-a  0x600107ac
+a  0x600103ac
 w  0x1498319a
-a  0x600107b0
+a  0x600103b0
 w  0xb1f10e58
-a  0x600107b4
+a  0x600103b4
 w  0x8d03ecb0
-a  0x600107b8
+a  0x600103b8
 w  0x4408ab12
-a  0x600107bc
+a  0x600103bc
 w  0xcabcc637
-a  0x600107c0
+a  0x600103c0
 w  0x00000200
-a  0x600107fc
+a  0x600103fc
 w  0x80000000
-a  0x60010fe0
+a  0x600107e0
 r  0x5951566a
-a  0x60010fe4
+a  0x600107e4
 r  0xb8a4b430
-a  0x60010fe8
+a  0x600107e8
 r  0x9fe9980d
-a  0x60010fec
+a  0x600107ec
 r  0x80069d04
-a  0x60010ff0
+a  0x600107f0
 r  0x093d866f
-a  0x60010ff4
+a  0x600107f4
 r  0x7af5e3f6
-a  0x60010ff8
+a  0x600107f8
 r  0xcc432473
-a  0x60010ffc
+a  0x600107fc
 r  0x090f1978
   A
 X
diff --git a/wrapper/src/wrapper_secworks_sha256.sv b/wrapper/src/wrapper_secworks_sha256.sv
index b6fc0ed..70d5c7f 100644
--- a/wrapper/src/wrapper_secworks_sha256.sv
+++ b/wrapper/src/wrapper_secworks_sha256.sv
@@ -16,8 +16,8 @@ module wrapper_secworks_sha256 #(
   parameter CFGSCHEMEWIDTH=2,
   parameter OUTPACKETWIDTH=256
   ) (
-    input  logic                  HCLK,       // Clock
-    input  logic                  HRESETn,    // Reset
+    input  logic                     HCLK,       // Clock
+    input  logic                     HRESETn,    // Reset
 
     // AHB connection to Initiator
     input  logic                     HSELS,
@@ -32,8 +32,6 @@ module wrapper_secworks_sha256 #(
     output logic                     HRESPS,
     output logic  [31:0]             HRDATAS,
 
-    //TODO: Add APB Interface
-
     // Input Data Request Signal to DMAC
     output logic                  in_data_req,
 
@@ -54,7 +52,7 @@ module wrapper_secworks_sha256 #(
   localparam [AHBADDRWIDTH-1:0] OUTPORTADDR         = 'h400;
   localparam                    OUTPORTAHBADDRWIDTH = AHBADDRWIDTH - 2;
 
-  localparam OUTPACKETBYTEWIDTH  = $clog2(OUTPACKETWIDTH/8);            // Number of Bytes in Packet
+  localparam OUTPACKETBYTEWIDTH  = $clog2(OUTPACKETWIDTH/8);               // Number of Bytes in Packet
   localparam OUTPACKETSPACEWIDTH = OUTPORTAHBADDRWIDTH-OUTPACKETBYTEWIDTH; // Number of Bits to represent all Packets in Address Space
 
   // Control and Status Register Parameters
@@ -171,6 +169,9 @@ module wrapper_secworks_sha256 #(
   logic                           in_packet_valid;
   logic                           in_packet_ready;
 
+  // DMA 
+  logic in_dma_req_act;
+
   // Packet Constructor Instantiation
   wrapper_ahb_packet_constructor #(
     INPORTAHBADDRWIDTH,
@@ -199,7 +200,7 @@ module wrapper_secworks_sha256 #(
     .packet_data_ready (in_packet_ready),
 
     // Input Data Request
-    .data_req          (in_data_req)
+    .data_req          (in_dma_req_act)
   );
 
   //----------------------------------------------------------
@@ -234,7 +235,8 @@ module wrapper_secworks_sha256 #(
   // Relative Read Address for Start of Current Block  
   logic [OUTPORTAHBADDRWIDTH-1:0]    block_read_addr;
 
-
+  // DMA Request Line
+  logic out_dma_req_act;
 
   // Packet Deconstructor Instantiation
   wrapper_ahb_packet_deconstructor #(
@@ -265,10 +267,10 @@ module wrapper_secworks_sha256 #(
     .packet_data_ready  (out_hash_ready),
 
     // Input Data Request
-    .data_req          (out_data_req),
+    .data_req           (out_dma_req_act),
 
     // Read Address Interface
-   .block_read_addr           (block_read_addr)
+   .block_read_addr     (block_read_addr)
   );
 
   //----------------------------------------------------------
@@ -305,12 +307,12 @@ module wrapper_secworks_sha256 #(
     .PCLKEN     (1'b1),    // APB clock enable signal
     
     .HSEL       (hsel2),      // Device select
-    .HADDR,     (HADDRS[CSRADDRWIDTH-1:0])   // Address
+    .HADDR     (HADDRS[CSRADDRWIDTH-1:0]),   // Address
     .HTRANS     (HTRANSS),    // Transfer control
     .HSIZE      (HSIZES),     // Transfer size
     .HPROT      (4'b1111),    // Protection control
     .HWRITE     (HWRITES),    // Write control
-    .HREADY,    (HREADYS)     // Transfer phase done
+    .HREADY    (HREADYS),     // Transfer phase done
     .HWDATA     (HWDATAS),    // Write data
 
     .HREADYOUT  (hreadyout2), // Device ready
@@ -361,21 +363,24 @@ module wrapper_secworks_sha256 #(
     .rdata           (csr_reg_rdata)
   );
 
-  // Example Register Block
-  cmsdk_apb3_eg_slave_reg #(
-    CSRADDRWIDTH
-  ) u_csr_block (
-    .pclk            (HCLK),
-    .presetn         (HRESETn),
-
-    // Register interface
-    .addr            (csr_reg_addr),
-    .read_en         (csr_reg_read_en),
-    .write_en        (csr_reg_write_en),
-    .wdata           (csr_reg_wdata),
-    .ecorevnum       (4'd0),
-    .rdata           (csr_reg_rdata)
-  );
+  logic ctrl_reg_write_en, ctrl_reg_read_en;
+  assign ctrl_reg_write_en = csr_reg_write_en & (csr_reg_addr < 10'h100);
+  assign ctrl_reg_read_en  = csr_reg_read_en  & (csr_reg_addr < 10'h100);
+  // // Example Register Block
+  // cmsdk_apb3_eg_slave_reg #(
+  //   CSRADDRWIDTH
+  // ) u_csr_block (
+  //   .pclk            (HCLK),
+  //   .presetn         (HRESETn),
+
+  //   // Register interface
+  //   .addr            (csr_reg_addr),
+  //   .read_en         (csr_reg_read_en),
+  //   .write_en        (csr_reg_write_en),
+  //   .wdata           (csr_reg_wdata),
+  //   .ecorevnum       (4'd0),
+  //   .rdata           (csr_reg_rdata)
+  // );
 
   //----------------------------------------------------------
   // Default AHB Target Logic
@@ -405,7 +410,39 @@ module wrapper_secworks_sha256 #(
   // Wrapper DMA Data Request Generation
   //**********************************************************
 
-  // TODO: Write up data request logic through registers
+  wrapper_req_ctrl_reg #(
+    CSRADDRWIDTH
+  ) u_wrapper_req_ctrl_reg (
+    .hclk        (HCLK),       
+    .hresetn     (HRESETn),    
+    .addr        (csr_reg_addr),
+    .read_en     (ctrl_reg_read_en),
+    .write_en    (ctrl_reg_write_en),
+    .wdata       (csr_reg_wdata),
+    .rdata       (csr_reg_rdata),
+
+    // Data Transfer Request Signaling
+    .req_act_ch0 (in_dma_req_act),
+    .req_act_ch1 (out_dma_req_act),
+    .req_act_ch2 (1'b0),
+    .req_act_ch3 (1'b0),
+    .req_act_ch4 (1'b0),
+
+    // DMA Request Output
+    .drq_ch0     (in_data_req),
+    .drq_ch1     (out_data_req),
+    .drq_ch2     (),
+    .drq_ch3     (),
+    .drq_ch4     (),
+
+    // Interrupt Request Output
+    .irq_ch0     (),
+    .irq_ch1     (),
+    .irq_ch2     (),
+    .irq_ch3     (),
+    .irq_ch4     (),
+    .irq_merged  ()
+  );
 
   //**********************************************************
   // Accelerator Engine
diff --git a/wrapper/stimulus/ahb_input_hash_stim.fri b/wrapper/stimulus/ahb_input_hash_stim.fri
index 5a70a66..a34d700 100644
--- a/wrapper/stimulus/ahb_input_hash_stim.fri
+++ b/wrapper/stimulus/ahb_input_hash_stim.fri
@@ -9,264 +9,265 @@
 ;# Copyright  2023, SoC Labs (www.soclabs.org)
 ;#-----------------------------------------------------------------------------
 ;Transaction    Address     Data        Size
-W              0x60010780  0x94748770  word
-W              0x60010784  0x0e3109cc  word
-W              0x60010788  0xc4411b41  word
-W              0x6001078c  0x5349fe99  word
-W              0x60010790  0xbc3bdfc1  word
-W              0x60010794  0xdeb5cb2a  word
-W              0x60010798  0xa0052ca2  word
-W              0x6001079c  0x1761b000  word
-W              0x600107a0  0x1b5affff  word
-W              0x600107a4  0xeab53b7e  word
-W              0x600107a8  0x81152f06  word
-W              0x600107ac  0x7d60ab33  word
-W              0x600107b0  0x1ce3c906  word
-W              0x600107b4  0x707476fe  word
-W              0x600107b8  0x923737f4  word
-W              0x600107bc  0x695b2443  word
-W              0x600107c0  0x00000200  word
-W              0x600107fc  0x80000000  word
-R              0x60010fe0  0xe06f1bef  word
-R              0x60010fe4  0xf498916a  word
-R              0x60010fe8  0x4686ebb1  word
-R              0x60010fec  0x0dc803e5  word
-R              0x60010ff0  0x960ea091  word
-R              0x60010ff4  0xeb558be4  word
-R              0x60010ff8  0xe14c46de  word
-R              0x60010ffc  0xe1711626  word
-W              0x60010780  0xf7079da3  word
-W              0x60010784  0xa0c46731  word
-W              0x60010788  0xc51f9e09  word
-W              0x6001078c  0x8d8993e6  word
-W              0x60010790  0xfd33039d  word
-W              0x60010794  0xe8675d4a  word
-W              0x60010798  0xc0e513a1  word
-W              0x6001079c  0x858c0663  word
-W              0x600107a0  0xa1fb693e  word
-W              0x600107a4  0xd5ebd6d4  word
-W              0x600107a8  0x26f7441f  word
-W              0x600107ac  0x907554b5  word
-W              0x600107b0  0x9db705fd  word
-W              0x600107b4  0x47a57bf5  word
-W              0x600107b8  0xfe2518c8  word
-W              0x600107bc  0x4c5b82c1  word
-W              0x600107c0  0x00000200  word
-W              0x600107fc  0x80000000  word
-R              0x60010fe0  0xd065f05e  word
-R              0x60010fe4  0x1623b2c9  word
-R              0x60010fe8  0x9d3c0a90  word
-R              0x60010fec  0xce34de30  word
-R              0x60010ff0  0x72fc05c5  word
-R              0x60010ff4  0xcf65fdbb  word
-R              0x60010ff8  0xef598a6e  word
-R              0x60010ffc  0x58d6d30f  word
-W              0x60010780  0x28b3253a  word
-W              0x60010784  0x96dbf9e5  word
-W              0x60010788  0x55e5ab02  word
-W              0x6001078c  0x6bbbc74a  word
-W              0x60010790  0xed5fbca6  word
-W              0x60010794  0x73ece6c4  word
-W              0x60010798  0x832fa959  word
-W              0x6001079c  0x7a0d31bf  word
-W              0x600107a0  0xaa1320aa  word
-W              0x600107a4  0x9fcb8eb3  word
-W              0x600107a8  0x6bf549d9  word
-W              0x600107ac  0x049bd3de  word
-W              0x600107b0  0xdd09fb8d  word
-W              0x600107b4  0x1285908a  word
-W              0x600107b8  0x3eb37ea8  word
-W              0x600107bc  0x68eb3a8c  word
-W              0x600107c0  0x00000200  word
-W              0x600107fc  0x80000000  word
-R              0x60010fe0  0xe4e3afb2  word
-R              0x60010fe4  0xa3be45c9  word
-R              0x60010fe8  0xb43f0fa3  word
-R              0x60010fec  0x56fcb65d  word
-R              0x60010ff0  0xbbf2982b  word
-R              0x60010ff4  0x15cd68c7  word
-R              0x60010ff8  0xcc9f9269  word
-R              0x60010ffc  0xed646faf  word
-W              0x60010780  0xbfcceaa6  word
-W              0x60010784  0xa2264db5  word
-W              0x60010788  0x4ba05e93  word
-W              0x6001078c  0xb60ac4cb  word
-W              0x60010790  0x9edcb672  word
-W              0x60010794  0x00637780  word
-W              0x60010798  0x860e62d9  word
-W              0x6001079c  0x8a983052  word
-W              0x600107a0  0x35e38f6f  word
-W              0x600107a4  0xd2e8b382  word
-W              0x600107a8  0x3482b173  word
-W              0x600107ac  0x9d76f455  word
-W              0x600107b0  0x5b623fda  word
-W              0x600107b4  0xb08ab5bf  word
-W              0x600107b8  0x332433a7  word
-W              0x600107bc  0x17aced3b  word
-W              0x600107c0  0x00000200  word
-W              0x600107fc  0x80000000  word
-R              0x60010fe0  0xad5d7f58  word
-R              0x60010fe4  0xc619f73f  word
-R              0x60010fe8  0x5a54de49  word
-R              0x60010fec  0x038b0529  word
-R              0x60010ff0  0x92343513  word
-R              0x60010ff4  0xea3cf2a9  word
-R              0x60010ff8  0x5a1b530b  word
-R              0x60010ffc  0x49393b4e  word
-W              0x60010780  0x2319760c  word
-W              0x60010784  0xc25e8486  word
-W              0x60010788  0xe2be9c44  word
-W              0x6001078c  0x28e4aeaf  word
-W              0x60010790  0xae725608  word
-W              0x60010794  0xd394d5f8  word
-W              0x60010798  0xf6768cc7  word
-W              0x6001079c  0x7f51d709  word
-W              0x600107a0  0x4c99a726  word
-W              0x600107a4  0x2586fbc4  word
-W              0x600107a8  0xd2f30b37  word
-W              0x600107ac  0x8c71f0c5  word
-W              0x600107b0  0x4acf0b2d  word
-W              0x600107b4  0xd0d8e335  word
-W              0x600107b8  0x88af1d5f  word
-W              0x600107bc  0xe69dad36  word
-W              0x600107c0  0x00000200  word
-W              0x600107fc  0x80000000  word
-R              0x60010fe0  0x105755f3  word
-R              0x60010fe4  0x1ca8459e  word
-R              0x60010fe8  0x08ffade5  word
-R              0x60010fec  0x29a2e390  word
-R              0x60010ff0  0xc6905543  word
-R              0x60010ff4  0x5ed0766b  word
-R              0x60010ff8  0x9a63b562  word
-R              0x60010ffc  0x95262422  word
-W              0x60010780  0x2a17c8e9  word
-W              0x60010784  0x63931b41  word
-W              0x60010788  0xd191bfc8  word
-W              0x6001078c  0x40d7f3fc  word
-W              0x60010790  0x60754253  word
-W              0x60010794  0xd5f6ef4c  word
-W              0x60010798  0xa49ff89d  word
-W              0x6001079c  0xb3f9bc39  word
-W              0x600107a0  0x7ba3ec2e  word
-W              0x600107a4  0xf100cac2  word
-W              0x600107a8  0x552ac1d3  word
-W              0x600107ac  0x657744db  word
-W              0x600107b0  0xfa2402f8  word
-W              0x600107b4  0x5e2ea772  word
-W              0x600107b8  0x572c2bf0  word
-W              0x600107bc  0x372eb887  word
-W              0x600107c0  0x00000200  word
-W              0x600107fc  0x80000000  word
-R              0x60010fe0  0x1f335cad  word
-R              0x60010fe4  0x7d8c6b58  word
-R              0x60010fe8  0xcb265158  word
-R              0x60010fec  0xee44b230  word
-R              0x60010ff0  0x88e5f660  word
-R              0x60010ff4  0x96ee3bc5  word
-R              0x60010ff8  0x96cf9939  word
-R              0x60010ffc  0x38849fc2  word
-W              0x60010780  0xac465530  word
-W              0x60010784  0x6e6a3d49  word
-W              0x60010788  0xe7f1461f  word
-W              0x6001078c  0xc6f4b35f  word
-W              0x60010790  0xf82a46d6  word
-W              0x60010794  0x440244f5  word
-W              0x60010798  0x6bde0ef1  word
-W              0x6001079c  0xb0787487  word
-W              0x600107a0  0x1a96af96  word
-W              0x600107a4  0xa55fef07  word
-W              0x600107a8  0xea97471c  word
-W              0x600107ac  0x35bad402  word
-W              0x600107b0  0xb3733250  word
-W              0x600107b4  0x75028929  word
-W              0x600107b8  0x230c2b19  word
-W              0x600107bc  0x0bfe6ea9  word
-W              0x600107c0  0x00000200  word
-W              0x600107fc  0x80000000  word
-R              0x60010fe0  0x0b51e243  word
-R              0x60010fe4  0x37b05a4b  word
-R              0x60010fe8  0x02497784  word
-R              0x60010fec  0xaed161d2  word
-R              0x60010ff0  0x7f6590f6  word
-R              0x60010ff4  0x479570fd  word
-R              0x60010ff8  0xae0cb755  word
-R              0x60010ffc  0xee161bc2  word
-W              0x60010780  0xec8225d7  word
-W              0x60010784  0x9193267a  word
-W              0x60010788  0xc3f24d94  word
-W              0x6001078c  0xb295566e  word
-W              0x60010790  0x034a0bc0  word
-W              0x60010794  0x1a4d2e6b  word
-W              0x60010798  0xa6ed70c9  word
-W              0x6001079c  0x4d573f76  word
-W              0x600107a0  0x45b0e216  word
-W              0x600107a4  0xdb750cbb  word
-W              0x600107a8  0x4138b929  word
-W              0x600107ac  0xd67d1bbd  word
-W              0x600107b0  0x24fdf316  word
-W              0x600107b4  0x0650c084  word
-W              0x600107b8  0xf95e6e9c  word
-W              0x600107bc  0x877e2642  word
-W              0x600107c0  0x00000200  word
-W              0x600107fc  0x80000000  word
-R              0x60010fe0  0x6d572f08  word
-R              0x60010fe4  0xe0c7b6dd  word
-R              0x60010fe8  0x88674260  word
-R              0x60010fec  0xa5ae48a8  word
-R              0x60010ff0  0xa7112033  word
-R              0x60010ff4  0xc555cde2  word
-R              0x60010ff8  0x51c0db63  word
-R              0x60010ffc  0x60f9e31b  word
-W              0x60010780  0x387dc590  word
-W              0x60010784  0x2966f6a3  word
-W              0x60010788  0xadd14662  word
-W              0x6001078c  0x0bc2175e  word
-W              0x60010790  0x3d2556a0  word
-W              0x60010794  0x335c30a8  word
-W              0x60010798  0x50e7e900  word
-W              0x6001079c  0xb1b72206  word
-W              0x600107a0  0xc6f526b0  word
-W              0x600107a4  0x15a4177f  word
-W              0x600107a8  0xf0d718a4  word
-W              0x600107ac  0x48879677  word
-W              0x600107b0  0x8934d6c4  word
-W              0x600107b4  0x50ab7c39  word
-W              0x600107b8  0x3360bbd7  word
-W              0x600107bc  0xefdf5963  word
-W              0x600107c0  0x00000200  word
-W              0x600107fc  0x80000000  word
-R              0x60010fe0  0x24eb65ee  word
-R              0x60010fe4  0x309707c9  word
-R              0x60010fe8  0xaf5d19d2  word
-R              0x60010fec  0xd4e713d3  word
-R              0x60010ff0  0x5d160f7a  word
-R              0x60010ff4  0x400e3734  word
-R              0x60010ff8  0xb6a8cf6c  word
-R              0x60010ffc  0x3a012531  word
-W              0x60010780  0x2a22cd0b  word
-W              0x60010784  0xf570eb78  word
-W              0x60010788  0xd3a5b873  word
-W              0x6001078c  0x53d7f89b  word
-W              0x60010790  0xebedc242  word
-W              0x60010794  0x59a1ee9a  word
-W              0x60010798  0xcea792f4  word
-W              0x6001079c  0xedf99c9c  word
-W              0x600107a0  0x47ab7368  word
-W              0x600107a4  0xa0eddacc  word
-W              0x600107a8  0xe218002f  word
-W              0x600107ac  0x1498319a  word
-W              0x600107b0  0xb1f10e58  word
-W              0x600107b4  0x8d03ecb0  word
-W              0x600107b8  0x4408ab12  word
-W              0x600107bc  0xcabcc637  word
-W              0x600107c0  0x00000200  word
-W              0x600107fc  0x80000000  word
-R              0x60010fe0  0x5951566a  word
-R              0x60010fe4  0xb8a4b430  word
-R              0x60010fe8  0x9fe9980d  word
-R              0x60010fec  0x80069d04  word
-R              0x60010ff0  0x093d866f  word
-R              0x60010ff4  0x7af5e3f6  word
-R              0x60010ff8  0xcc432473  word
-R              0x60010ffc  0x090f1978  word
+W              0x60010380  0x94748770  word
+W              0x60010384  0x0e3109cc  word
+W              0x60010388  0xc4411b41  word
+W              0x6001038c  0x5349fe99  word
+W              0x60010390  0xbc3bdfc1  word
+W              0x60010394  0xdeb5cb2a  word
+W              0x60010398  0xa0052ca2  word
+W              0x6001039c  0x1761b000  word
+W              0x600103a0  0x1b5affff  word
+W              0x600103a4  0xeab53b7e  word
+W              0x600103a8  0x81152f06  word
+W              0x600103ac  0x7d60ab33  word
+W              0x600103b0  0x1ce3c906  word
+W              0x600103b4  0x707476fe  word
+W              0x600103b8  0x923737f4  word
+W              0x600103bc  0x695b2443  word
+W              0x600103c0  0x00000200  word
+W              0x600103fc  0x80000000  word
+R              0x60010810  0x00000000  word
+R              0x600107e0  0xe06f1bef  word
+R              0x600107e4  0xf498916a  word
+R              0x600107e8  0x4686ebb1  word
+R              0x600107ec  0x0dc803e5  word
+R              0x600107f0  0x960ea091  word
+R              0x600107f4  0xeb558be4  word
+R              0x600107f8  0xe14c46de  word
+R              0x600107fc  0xe1711626  word
+W              0x60010380  0xf7079da3  word
+W              0x60010384  0xa0c46731  word
+W              0x60010388  0xc51f9e09  word
+W              0x6001038c  0x8d8993e6  word
+W              0x60010390  0xfd33039d  word
+W              0x60010394  0xe8675d4a  word
+W              0x60010398  0xc0e513a1  word
+W              0x6001039c  0x858c0663  word
+W              0x600103a0  0xa1fb693e  word
+W              0x600103a4  0xd5ebd6d4  word
+W              0x600103a8  0x26f7441f  word
+W              0x600103ac  0x907554b5  word
+W              0x600103b0  0x9db705fd  word
+W              0x600103b4  0x47a57bf5  word
+W              0x600103b8  0xfe2518c8  word
+W              0x600103bc  0x4c5b82c1  word
+W              0x600103c0  0x00000200  word
+W              0x600103fc  0x80000000  word
+R              0x600107e0  0xd065f05e  word
+R              0x600107e4  0x1623b2c9  word
+R              0x600107e8  0x9d3c0a90  word
+R              0x600107ec  0xce34de30  word
+R              0x600107f0  0x72fc05c5  word
+R              0x600107f4  0xcf65fdbb  word
+R              0x600107f8  0xef598a6e  word
+R              0x600107fc  0x58d6d30f  word
+W              0x60010380  0x28b3253a  word
+W              0x60010384  0x96dbf9e5  word
+W              0x60010388  0x55e5ab02  word
+W              0x6001038c  0x6bbbc74a  word
+W              0x60010390  0xed5fbca6  word
+W              0x60010394  0x73ece6c4  word
+W              0x60010398  0x832fa959  word
+W              0x6001039c  0x7a0d31bf  word
+W              0x600103a0  0xaa1320aa  word
+W              0x600103a4  0x9fcb8eb3  word
+W              0x600103a8  0x6bf549d9  word
+W              0x600103ac  0x049bd3de  word
+W              0x600103b0  0xdd09fb8d  word
+W              0x600103b4  0x1285908a  word
+W              0x600103b8  0x3eb37ea8  word
+W              0x600103bc  0x68eb3a8c  word
+W              0x600103c0  0x00000200  word
+W              0x600103fc  0x80000000  word
+R              0x600107e0  0xe4e3afb2  word
+R              0x600107e4  0xa3be45c9  word
+R              0x600107e8  0xb43f0fa3  word
+R              0x600107ec  0x56fcb65d  word
+R              0x600107f0  0xbbf2982b  word
+R              0x600107f4  0x15cd68c7  word
+R              0x600107f8  0xcc9f9269  word
+R              0x600107fc  0xed646faf  word
+W              0x60010380  0xbfcceaa6  word
+W              0x60010384  0xa2264db5  word
+W              0x60010388  0x4ba05e93  word
+W              0x6001038c  0xb60ac4cb  word
+W              0x60010390  0x9edcb672  word
+W              0x60010394  0x00637780  word
+W              0x60010398  0x860e62d9  word
+W              0x6001039c  0x8a983052  word
+W              0x600103a0  0x35e38f6f  word
+W              0x600103a4  0xd2e8b382  word
+W              0x600103a8  0x3482b173  word
+W              0x600103ac  0x9d76f455  word
+W              0x600103b0  0x5b623fda  word
+W              0x600103b4  0xb08ab5bf  word
+W              0x600103b8  0x332433a7  word
+W              0x600103bc  0x17aced3b  word
+W              0x600103c0  0x00000200  word
+W              0x600103fc  0x80000000  word
+R              0x600107e0  0xad5d7f58  word
+R              0x600107e4  0xc619f73f  word
+R              0x600107e8  0x5a54de49  word
+R              0x600107ec  0x038b0529  word
+R              0x600107f0  0x92343513  word
+R              0x600107f4  0xea3cf2a9  word
+R              0x600107f8  0x5a1b530b  word
+R              0x600107fc  0x49393b4e  word
+W              0x60010380  0x2319760c  word
+W              0x60010384  0xc25e8486  word
+W              0x60010388  0xe2be9c44  word
+W              0x6001038c  0x28e4aeaf  word
+W              0x60010390  0xae725608  word
+W              0x60010394  0xd394d5f8  word
+W              0x60010398  0xf6768cc7  word
+W              0x6001039c  0x7f51d709  word
+W              0x600103a0  0x4c99a726  word
+W              0x600103a4  0x2586fbc4  word
+W              0x600103a8  0xd2f30b37  word
+W              0x600103ac  0x8c71f0c5  word
+W              0x600103b0  0x4acf0b2d  word
+W              0x600103b4  0xd0d8e335  word
+W              0x600103b8  0x88af1d5f  word
+W              0x600103bc  0xe69dad36  word
+W              0x600103c0  0x00000200  word
+W              0x600103fc  0x80000000  word
+R              0x600107e0  0x105755f3  word
+R              0x600107e4  0x1ca8459e  word
+R              0x600107e8  0x08ffade5  word
+R              0x600107ec  0x29a2e390  word
+R              0x600107f0  0xc6905543  word
+R              0x600107f4  0x5ed0766b  word
+R              0x600107f8  0x9a63b562  word
+R              0x600107fc  0x95262422  word
+W              0x60010380  0x2a17c8e9  word
+W              0x60010384  0x63931b41  word
+W              0x60010388  0xd191bfc8  word
+W              0x6001038c  0x40d7f3fc  word
+W              0x60010390  0x60754253  word
+W              0x60010394  0xd5f6ef4c  word
+W              0x60010398  0xa49ff89d  word
+W              0x6001039c  0xb3f9bc39  word
+W              0x600103a0  0x7ba3ec2e  word
+W              0x600103a4  0xf100cac2  word
+W              0x600103a8  0x552ac1d3  word
+W              0x600103ac  0x657744db  word
+W              0x600103b0  0xfa2402f8  word
+W              0x600103b4  0x5e2ea772  word
+W              0x600103b8  0x572c2bf0  word
+W              0x600103bc  0x372eb887  word
+W              0x600103c0  0x00000200  word
+W              0x600103fc  0x80000000  word
+R              0x600107e0  0x1f335cad  word
+R              0x600107e4  0x7d8c6b58  word
+R              0x600107e8  0xcb265158  word
+R              0x600107ec  0xee44b230  word
+R              0x600107f0  0x88e5f660  word
+R              0x600107f4  0x96ee3bc5  word
+R              0x600107f8  0x96cf9939  word
+R              0x600107fc  0x38849fc2  word
+W              0x60010380  0xac465530  word
+W              0x60010384  0x6e6a3d49  word
+W              0x60010388  0xe7f1461f  word
+W              0x6001038c  0xc6f4b35f  word
+W              0x60010390  0xf82a46d6  word
+W              0x60010394  0x440244f5  word
+W              0x60010398  0x6bde0ef1  word
+W              0x6001039c  0xb0787487  word
+W              0x600103a0  0x1a96af96  word
+W              0x600103a4  0xa55fef07  word
+W              0x600103a8  0xea97471c  word
+W              0x600103ac  0x35bad402  word
+W              0x600103b0  0xb3733250  word
+W              0x600103b4  0x75028929  word
+W              0x600103b8  0x230c2b19  word
+W              0x600103bc  0x0bfe6ea9  word
+W              0x600103c0  0x00000200  word
+W              0x600103fc  0x80000000  word
+R              0x600107e0  0x0b51e243  word
+R              0x600107e4  0x37b05a4b  word
+R              0x600107e8  0x02497784  word
+R              0x600107ec  0xaed161d2  word
+R              0x600107f0  0x7f6590f6  word
+R              0x600107f4  0x479570fd  word
+R              0x600107f8  0xae0cb755  word
+R              0x600107fc  0xee161bc2  word
+W              0x60010380  0xec8225d7  word
+W              0x60010384  0x9193267a  word
+W              0x60010388  0xc3f24d94  word
+W              0x6001038c  0xb295566e  word
+W              0x60010390  0x034a0bc0  word
+W              0x60010394  0x1a4d2e6b  word
+W              0x60010398  0xa6ed70c9  word
+W              0x6001039c  0x4d573f76  word
+W              0x600103a0  0x45b0e216  word
+W              0x600103a4  0xdb750cbb  word
+W              0x600103a8  0x4138b929  word
+W              0x600103ac  0xd67d1bbd  word
+W              0x600103b0  0x24fdf316  word
+W              0x600103b4  0x0650c084  word
+W              0x600103b8  0xf95e6e9c  word
+W              0x600103bc  0x877e2642  word
+W              0x600103c0  0x00000200  word
+W              0x600103fc  0x80000000  word
+R              0x600107e0  0x6d572f08  word
+R              0x600107e4  0xe0c7b6dd  word
+R              0x600107e8  0x88674260  word
+R              0x600107ec  0xa5ae48a8  word
+R              0x600107f0  0xa7112033  word
+R              0x600107f4  0xc555cde2  word
+R              0x600107f8  0x51c0db63  word
+R              0x600107fc  0x60f9e31b  word
+W              0x60010380  0x387dc590  word
+W              0x60010384  0x2966f6a3  word
+W              0x60010388  0xadd14662  word
+W              0x6001038c  0x0bc2175e  word
+W              0x60010390  0x3d2556a0  word
+W              0x60010394  0x335c30a8  word
+W              0x60010398  0x50e7e900  word
+W              0x6001039c  0xb1b72206  word
+W              0x600103a0  0xc6f526b0  word
+W              0x600103a4  0x15a4177f  word
+W              0x600103a8  0xf0d718a4  word
+W              0x600103ac  0x48879677  word
+W              0x600103b0  0x8934d6c4  word
+W              0x600103b4  0x50ab7c39  word
+W              0x600103b8  0x3360bbd7  word
+W              0x600103bc  0xefdf5963  word
+W              0x600103c0  0x00000200  word
+W              0x600103fc  0x80000000  word
+R              0x600107e0  0x24eb65ee  word
+R              0x600107e4  0x309707c9  word
+R              0x600107e8  0xaf5d19d2  word
+R              0x600107ec  0xd4e713d3  word
+R              0x600107f0  0x5d160f7a  word
+R              0x600107f4  0x400e3734  word
+R              0x600107f8  0xb6a8cf6c  word
+R              0x600107fc  0x3a012531  word
+W              0x60010380  0x2a22cd0b  word
+W              0x60010384  0xf570eb78  word
+W              0x60010388  0xd3a5b873  word
+W              0x6001038c  0x53d7f89b  word
+W              0x60010390  0xebedc242  word
+W              0x60010394  0x59a1ee9a  word
+W              0x60010398  0xcea792f4  word
+W              0x6001039c  0xedf99c9c  word
+W              0x600103a0  0x47ab7368  word
+W              0x600103a4  0xa0eddacc  word
+W              0x600103a8  0xe218002f  word
+W              0x600103ac  0x1498319a  word
+W              0x600103b0  0xb1f10e58  word
+W              0x600103b4  0x8d03ecb0  word
+W              0x600103b8  0x4408ab12  word
+W              0x600103bc  0xcabcc637  word
+W              0x600103c0  0x00000200  word
+W              0x600103fc  0x80000000  word
+R              0x600107e0  0x5951566a  word
+R              0x600107e4  0xb8a4b430  word
+R              0x600107e8  0x9fe9980d  word
+R              0x600107ec  0x80069d04  word
+R              0x600107f0  0x093d866f  word
+R              0x600107f4  0x7af5e3f6  word
+R              0x600107f8  0xcc432473  word
+R              0x600107fc  0x090f1978  word
 Q
\ No newline at end of file
diff --git a/wrapper/stimulus/ahb_input_hash_stim.m2d b/wrapper/stimulus/ahb_input_hash_stim.m2d
index 0a4fb32..bd56970 100644
--- a/wrapper/stimulus/ahb_input_hash_stim.m2d
+++ b/wrapper/stimulus/ahb_input_hash_stim.m2d
@@ -1,1458 +1,1465 @@
 0044000c
-60010780
+60010380
 00000000
 94748770
 
 00440001
-60010784
+60010384
 0e3109cc
 00000000
 
 00440001
-60010788
+60010388
 00000000
 c4411b41
 
 00440001
-6001078c
+6001038c
 5349fe99
 00000000
 
 00440001
-60010790
+60010390
 00000000
 bc3bdfc1
 
 00440001
-60010794
+60010394
 deb5cb2a
 00000000
 
 00440001
-60010798
+60010398
 00000000
 a0052ca2
 
 00440001
-6001079c
+6001039c
 1761b000
 00000000
 
 00440001
-600107a0
+600103a0
 00000000
 1b5affff
 
 00440001
-600107a4
+600103a4
 eab53b7e
 00000000
 
 00440001
-600107a8
+600103a8
 00000000
 81152f06
 
 00440001
-600107ac
+600103ac
 7d60ab33
 00000000
 
 00440001
-600107b0
+600103b0
 00000000
 1ce3c906
 
 00440001
-600107b4
+600103b4
 707476fe
 00000000
 
 00440001
-600107b8
+600103b8
 00000000
 923737f4
 
 00440001
-600107bc
+600103bc
 695b2443
 00000000
 
 00440001
-600107c0
+600103c0
 00000000
 00000200
 
 00440001
-600107fc
+600103fc
 80000000
 00000000
 
 10440001
-60010fe0
+60010810
+00000000
+00000000
+00000000
+FFFFFFFF
+
+10440001
+600107e0
 00000000
 e06f1bef
 00000000
 FFFFFFFF
 
 10440001
-60010fe4
+600107e4
 f498916a
 00000000
 FFFFFFFF
 00000000
 
 10440001
-60010fe8
+600107e8
 00000000
 4686ebb1
 00000000
 FFFFFFFF
 
 10440001
-60010fec
+600107ec
 0dc803e5
 00000000
 FFFFFFFF
 00000000
 
 10440001
-60010ff0
+600107f0
 00000000
 960ea091
 00000000
 FFFFFFFF
 
 10440001
-60010ff4
+600107f4
 eb558be4
 00000000
 FFFFFFFF
 00000000
 
 10440001
-60010ff8
+600107f8
 00000000
 e14c46de
 00000000
 FFFFFFFF
 
 10440001
-60010ffc
+600107fc
 e1711626
 00000000
 FFFFFFFF
 00000000
 
 00440001
-60010780
+60010380
 00000000
 f7079da3
 
 00440001
-60010784
+60010384
 a0c46731
 00000000
 
 00440001
-60010788
+60010388
 00000000
 c51f9e09
 
 00440001
-6001078c
+6001038c
 8d8993e6
 00000000
 
 00440001
-60010790
+60010390
 00000000
 fd33039d
 
 00440001
-60010794
+60010394
 e8675d4a
 00000000
 
 00440001
-60010798
+60010398
 00000000
 c0e513a1
 
 00440001
-6001079c
+6001039c
 858c0663
 00000000
 
 00440001
-600107a0
+600103a0
 00000000
 a1fb693e
 
 00440001
-600107a4
+600103a4
 d5ebd6d4
 00000000
 
 00440001
-600107a8
+600103a8
 00000000
 26f7441f
 
 00440001
-600107ac
+600103ac
 907554b5
 00000000
 
 00440001
-600107b0
+600103b0
 00000000
 9db705fd
 
 00440001
-600107b4
+600103b4
 47a57bf5
 00000000
 
 00440001
-600107b8
+600103b8
 00000000
 fe2518c8
 
 00440001
-600107bc
+600103bc
 4c5b82c1
 00000000
 
 00440001
-600107c0
+600103c0
 00000000
 00000200
 
 00440001
-600107fc
+600103fc
 80000000
 00000000
 
 10440001
-60010fe0
+600107e0
 00000000
 d065f05e
 00000000
 FFFFFFFF
 
 10440001
-60010fe4
+600107e4
 1623b2c9
 00000000
 FFFFFFFF
 00000000
 
 10440001
-60010fe8
+600107e8
 00000000
 9d3c0a90
 00000000
 FFFFFFFF
 
 10440001
-60010fec
+600107ec
 ce34de30
 00000000
 FFFFFFFF
 00000000
 
 10440001
-60010ff0
+600107f0
 00000000
 72fc05c5
 00000000
 FFFFFFFF
 
 10440001
-60010ff4
+600107f4
 cf65fdbb
 00000000
 FFFFFFFF
 00000000
 
 10440001
-60010ff8
+600107f8
 00000000
 ef598a6e
 00000000
 FFFFFFFF
 
 10440001
-60010ffc
+600107fc
 58d6d30f
 00000000
 FFFFFFFF
 00000000
 
 00440001
-60010780
+60010380
 00000000
 28b3253a
 
 00440001
-60010784
+60010384
 96dbf9e5
 00000000
 
 00440001
-60010788
+60010388
 00000000
 55e5ab02
 
 00440001
-6001078c
+6001038c
 6bbbc74a
 00000000
 
 00440001
-60010790
+60010390
 00000000
 ed5fbca6
 
 00440001
-60010794
+60010394
 73ece6c4
 00000000
 
 00440001
-60010798
+60010398
 00000000
 832fa959
 
 00440001
-6001079c
+6001039c
 7a0d31bf
 00000000
 
 00440001
-600107a0
+600103a0
 00000000
 aa1320aa
 
 00440001
-600107a4
+600103a4
 9fcb8eb3
 00000000
 
 00440001
-600107a8
+600103a8
 00000000
 6bf549d9
 
 00440001
-600107ac
+600103ac
 049bd3de
 00000000
 
 00440001
-600107b0
+600103b0
 00000000
 dd09fb8d
 
 00440001
-600107b4
+600103b4
 1285908a
 00000000
 
 00440001
-600107b8
+600103b8
 00000000
 3eb37ea8
 
 00440001
-600107bc
+600103bc
 68eb3a8c
 00000000
 
 00440001
-600107c0
+600103c0
 00000000
 00000200
 
 00440001
-600107fc
+600103fc
 80000000
 00000000
 
 10440001
-60010fe0
+600107e0
 00000000
 e4e3afb2
 00000000
 FFFFFFFF
 
 10440001
-60010fe4
+600107e4
 a3be45c9
 00000000
 FFFFFFFF
 00000000
 
 10440001
-60010fe8
+600107e8
 00000000
 b43f0fa3
 00000000
 FFFFFFFF
 
 10440001
-60010fec
+600107ec
 56fcb65d
 00000000
 FFFFFFFF
 00000000
 
 10440001
-60010ff0
+600107f0
 00000000
 bbf2982b
 00000000
 FFFFFFFF
 
 10440001
-60010ff4
+600107f4
 15cd68c7
 00000000
 FFFFFFFF
 00000000
 
 10440001
-60010ff8
+600107f8
 00000000
 cc9f9269
 00000000
 FFFFFFFF
 
 10440001
-60010ffc
+600107fc
 ed646faf
 00000000
 FFFFFFFF
 00000000
 
 00440001
-60010780
+60010380
 00000000
 bfcceaa6
 
 00440001
-60010784
+60010384
 a2264db5
 00000000
 
 00440001
-60010788
+60010388
 00000000
 4ba05e93
 
 00440001
-6001078c
+6001038c
 b60ac4cb
 00000000
 
 00440001
-60010790
+60010390
 00000000
 9edcb672
 
 00440001
-60010794
+60010394
 00637780
 00000000
 
 00440001
-60010798
+60010398
 00000000
 860e62d9
 
 00440001
-6001079c
+6001039c
 8a983052
 00000000
 
 00440001
-600107a0
+600103a0
 00000000
 35e38f6f
 
 00440001
-600107a4
+600103a4
 d2e8b382
 00000000
 
 00440001
-600107a8
+600103a8
 00000000
 3482b173
 
 00440001
-600107ac
+600103ac
 9d76f455
 00000000
 
 00440001
-600107b0
+600103b0
 00000000
 5b623fda
 
 00440001
-600107b4
+600103b4
 b08ab5bf
 00000000
 
 00440001
-600107b8
+600103b8
 00000000
 332433a7
 
 00440001
-600107bc
+600103bc
 17aced3b
 00000000
 
 00440001
-600107c0
+600103c0
 00000000
 00000200
 
 00440001
-600107fc
+600103fc
 80000000
 00000000
 
 10440001
-60010fe0
+600107e0
 00000000
 ad5d7f58
 00000000
 FFFFFFFF
 
 10440001
-60010fe4
+600107e4
 c619f73f
 00000000
 FFFFFFFF
 00000000
 
 10440001
-60010fe8
+600107e8
 00000000
 5a54de49
 00000000
 FFFFFFFF
 
 10440001
-60010fec
+600107ec
 038b0529
 00000000
 FFFFFFFF
 00000000
 
 10440001
-60010ff0
+600107f0
 00000000
 92343513
 00000000
 FFFFFFFF
 
 10440001
-60010ff4
+600107f4
 ea3cf2a9
 00000000
 FFFFFFFF
 00000000
 
 10440001
-60010ff8
+600107f8
 00000000
 5a1b530b
 00000000
 FFFFFFFF
 
 10440001
-60010ffc
+600107fc
 49393b4e
 00000000
 FFFFFFFF
 00000000
 
 00440001
-60010780
+60010380
 00000000
 2319760c
 
 00440001
-60010784
+60010384
 c25e8486
 00000000
 
 00440001
-60010788
+60010388
 00000000
 e2be9c44
 
 00440001
-6001078c
+6001038c
 28e4aeaf
 00000000
 
 00440001
-60010790
+60010390
 00000000
 ae725608
 
 00440001
-60010794
+60010394
 d394d5f8
 00000000
 
 00440001
-60010798
+60010398
 00000000
 f6768cc7
 
 00440001
-6001079c
+6001039c
 7f51d709
 00000000
 
 00440001
-600107a0
+600103a0
 00000000
 4c99a726
 
 00440001
-600107a4
+600103a4
 2586fbc4
 00000000
 
 00440001
-600107a8
+600103a8
 00000000
 d2f30b37
 
 00440001
-600107ac
+600103ac
 8c71f0c5
 00000000
 
 00440001
-600107b0
+600103b0
 00000000
 4acf0b2d
 
 00440001
-600107b4
+600103b4
 d0d8e335
 00000000
 
 00440001
-600107b8
+600103b8
 00000000
 88af1d5f
 
 00440001
-600107bc
+600103bc
 e69dad36
 00000000
 
 00440001
-600107c0
+600103c0
 00000000
 00000200
 
 00440001
-600107fc
+600103fc
 80000000
 00000000
 
 10440001
-60010fe0
+600107e0
 00000000
 105755f3
 00000000
 FFFFFFFF
 
 10440001
-60010fe4
+600107e4
 1ca8459e
 00000000
 FFFFFFFF
 00000000
 
 10440001
-60010fe8
+600107e8
 00000000
 08ffade5
 00000000
 FFFFFFFF
 
 10440001
-60010fec
+600107ec
 29a2e390
 00000000
 FFFFFFFF
 00000000
 
 10440001
-60010ff0
+600107f0
 00000000
 c6905543
 00000000
 FFFFFFFF
 
 10440001
-60010ff4
+600107f4
 5ed0766b
 00000000
 FFFFFFFF
 00000000
 
 10440001
-60010ff8
+600107f8
 00000000
 9a63b562
 00000000
 FFFFFFFF
 
 10440001
-60010ffc
+600107fc
 95262422
 00000000
 FFFFFFFF
 00000000
 
 00440001
-60010780
+60010380
 00000000
 2a17c8e9
 
 00440001
-60010784
+60010384
 63931b41
 00000000
 
 00440001
-60010788
+60010388
 00000000
 d191bfc8
 
 00440001
-6001078c
+6001038c
 40d7f3fc
 00000000
 
 00440001
-60010790
+60010390
 00000000
 60754253
 
 00440001
-60010794
+60010394
 d5f6ef4c
 00000000
 
 00440001
-60010798
+60010398
 00000000
 a49ff89d
 
 00440001
-6001079c
+6001039c
 b3f9bc39
 00000000
 
 00440001
-600107a0
+600103a0
 00000000
 7ba3ec2e
 
 00440001
-600107a4
+600103a4
 f100cac2
 00000000
 
 00440001
-600107a8
+600103a8
 00000000
 552ac1d3
 
 00440001
-600107ac
+600103ac
 657744db
 00000000
 
 00440001
-600107b0
+600103b0
 00000000
 fa2402f8
 
 00440001
-600107b4
+600103b4
 5e2ea772
 00000000
 
 00440001
-600107b8
+600103b8
 00000000
 572c2bf0
 
 00440001
-600107bc
+600103bc
 372eb887
 00000000
 
 00440001
-600107c0
+600103c0
 00000000
 00000200
 
 00440001
-600107fc
+600103fc
 80000000
 00000000
 
 10440001
-60010fe0
+600107e0
 00000000
 1f335cad
 00000000
 FFFFFFFF
 
 10440001
-60010fe4
+600107e4
 7d8c6b58
 00000000
 FFFFFFFF
 00000000
 
 10440001
-60010fe8
+600107e8
 00000000
 cb265158
 00000000
 FFFFFFFF
 
 10440001
-60010fec
+600107ec
 ee44b230
 00000000
 FFFFFFFF
 00000000
 
 10440001
-60010ff0
+600107f0
 00000000
 88e5f660
 00000000
 FFFFFFFF
 
 10440001
-60010ff4
+600107f4
 96ee3bc5
 00000000
 FFFFFFFF
 00000000
 
 10440001
-60010ff8
+600107f8
 00000000
 96cf9939
 00000000
 FFFFFFFF
 
 10440001
-60010ffc
+600107fc
 38849fc2
 00000000
 FFFFFFFF
 00000000
 
 00440001
-60010780
+60010380
 00000000
 ac465530
 
 00440001
-60010784
+60010384
 6e6a3d49
 00000000
 
 00440001
-60010788
+60010388
 00000000
 e7f1461f
 
 00440001
-6001078c
+6001038c
 c6f4b35f
 00000000
 
 00440001
-60010790
+60010390
 00000000
 f82a46d6
 
 00440001
-60010794
+60010394
 440244f5
 00000000
 
 00440001
-60010798
+60010398
 00000000
 6bde0ef1
 
 00440001
-6001079c
+6001039c
 b0787487
 00000000
 
 00440001
-600107a0
+600103a0
 00000000
 1a96af96
 
 00440001
-600107a4
+600103a4
 a55fef07
 00000000
 
 00440001
-600107a8
+600103a8
 00000000
 ea97471c
 
 00440001
-600107ac
+600103ac
 35bad402
 00000000
 
 00440001
-600107b0
+600103b0
 00000000
 b3733250
 
 00440001
-600107b4
+600103b4
 75028929
 00000000
 
 00440001
-600107b8
+600103b8
 00000000
 230c2b19
 
 00440001
-600107bc
+600103bc
 0bfe6ea9
 00000000
 
 00440001
-600107c0
+600103c0
 00000000
 00000200
 
 00440001
-600107fc
+600103fc
 80000000
 00000000
 
 10440001
-60010fe0
+600107e0
 00000000
 0b51e243
 00000000
 FFFFFFFF
 
 10440001
-60010fe4
+600107e4
 37b05a4b
 00000000
 FFFFFFFF
 00000000
 
 10440001
-60010fe8
+600107e8
 00000000
 02497784
 00000000
 FFFFFFFF
 
 10440001
-60010fec
+600107ec
 aed161d2
 00000000
 FFFFFFFF
 00000000
 
 10440001
-60010ff0
+600107f0
 00000000
 7f6590f6
 00000000
 FFFFFFFF
 
 10440001
-60010ff4
+600107f4
 479570fd
 00000000
 FFFFFFFF
 00000000
 
 10440001
-60010ff8
+600107f8
 00000000
 ae0cb755
 00000000
 FFFFFFFF
 
 10440001
-60010ffc
+600107fc
 ee161bc2
 00000000
 FFFFFFFF
 00000000
 
 00440001
-60010780
+60010380
 00000000
 ec8225d7
 
 00440001
-60010784
+60010384
 9193267a
 00000000
 
 00440001
-60010788
+60010388
 00000000
 c3f24d94
 
 00440001
-6001078c
+6001038c
 b295566e
 00000000
 
 00440001
-60010790
+60010390
 00000000
 034a0bc0
 
 00440001
-60010794
+60010394
 1a4d2e6b
 00000000
 
 00440001
-60010798
+60010398
 00000000
 a6ed70c9
 
 00440001
-6001079c
+6001039c
 4d573f76
 00000000
 
 00440001
-600107a0
+600103a0
 00000000
 45b0e216
 
 00440001
-600107a4
+600103a4
 db750cbb
 00000000
 
 00440001
-600107a8
+600103a8
 00000000
 4138b929
 
 00440001
-600107ac
+600103ac
 d67d1bbd
 00000000
 
 00440001
-600107b0
+600103b0
 00000000
 24fdf316
 
 00440001
-600107b4
+600103b4
 0650c084
 00000000
 
 00440001
-600107b8
+600103b8
 00000000
 f95e6e9c
 
 00440001
-600107bc
+600103bc
 877e2642
 00000000
 
 00440001
-600107c0
+600103c0
 00000000
 00000200
 
 00440001
-600107fc
+600103fc
 80000000
 00000000
 
 10440001
-60010fe0
+600107e0
 00000000
 6d572f08
 00000000
 FFFFFFFF
 
 10440001
-60010fe4
+600107e4
 e0c7b6dd
 00000000
 FFFFFFFF
 00000000
 
 10440001
-60010fe8
+600107e8
 00000000
 88674260
 00000000
 FFFFFFFF
 
 10440001
-60010fec
+600107ec
 a5ae48a8
 00000000
 FFFFFFFF
 00000000
 
 10440001
-60010ff0
+600107f0
 00000000
 a7112033
 00000000
 FFFFFFFF
 
 10440001
-60010ff4
+600107f4
 c555cde2
 00000000
 FFFFFFFF
 00000000
 
 10440001
-60010ff8
+600107f8
 00000000
 51c0db63
 00000000
 FFFFFFFF
 
 10440001
-60010ffc
+600107fc
 60f9e31b
 00000000
 FFFFFFFF
 00000000
 
 00440001
-60010780
+60010380
 00000000
 387dc590
 
 00440001
-60010784
+60010384
 2966f6a3
 00000000
 
 00440001
-60010788
+60010388
 00000000
 add14662
 
 00440001
-6001078c
+6001038c
 0bc2175e
 00000000
 
 00440001
-60010790
+60010390
 00000000
 3d2556a0
 
 00440001
-60010794
+60010394
 335c30a8
 00000000
 
 00440001
-60010798
+60010398
 00000000
 50e7e900
 
 00440001
-6001079c
+6001039c
 b1b72206
 00000000
 
 00440001
-600107a0
+600103a0
 00000000
 c6f526b0
 
 00440001
-600107a4
+600103a4
 15a4177f
 00000000
 
 00440001
-600107a8
+600103a8
 00000000
 f0d718a4
 
 00440001
-600107ac
+600103ac
 48879677
 00000000
 
 00440001
-600107b0
+600103b0
 00000000
 8934d6c4
 
 00440001
-600107b4
+600103b4
 50ab7c39
 00000000
 
 00440001
-600107b8
+600103b8
 00000000
 3360bbd7
 
 00440001
-600107bc
+600103bc
 efdf5963
 00000000
 
 00440001
-600107c0
+600103c0
 00000000
 00000200
 
 00440001
-600107fc
+600103fc
 80000000
 00000000
 
 10440001
-60010fe0
+600107e0
 00000000
 24eb65ee
 00000000
 FFFFFFFF
 
 10440001
-60010fe4
+600107e4
 309707c9
 00000000
 FFFFFFFF
 00000000
 
 10440001
-60010fe8
+600107e8
 00000000
 af5d19d2
 00000000
 FFFFFFFF
 
 10440001
-60010fec
+600107ec
 d4e713d3
 00000000
 FFFFFFFF
 00000000
 
 10440001
-60010ff0
+600107f0
 00000000
 5d160f7a
 00000000
 FFFFFFFF
 
 10440001
-60010ff4
+600107f4
 400e3734
 00000000
 FFFFFFFF
 00000000
 
 10440001
-60010ff8
+600107f8
 00000000
 b6a8cf6c
 00000000
 FFFFFFFF
 
 10440001
-60010ffc
+600107fc
 3a012531
 00000000
 FFFFFFFF
 00000000
 
 00440001
-60010780
+60010380
 00000000
 2a22cd0b
 
 00440001
-60010784
+60010384
 f570eb78
 00000000
 
 00440001
-60010788
+60010388
 00000000
 d3a5b873
 
 00440001
-6001078c
+6001038c
 53d7f89b
 00000000
 
 00440001
-60010790
+60010390
 00000000
 ebedc242
 
 00440001
-60010794
+60010394
 59a1ee9a
 00000000
 
 00440001
-60010798
+60010398
 00000000
 cea792f4
 
 00440001
-6001079c
+6001039c
 edf99c9c
 00000000
 
 00440001
-600107a0
+600103a0
 00000000
 47ab7368
 
 00440001
-600107a4
+600103a4
 a0eddacc
 00000000
 
 00440001
-600107a8
+600103a8
 00000000
 e218002f
 
 00440001
-600107ac
+600103ac
 1498319a
 00000000
 
 00440001
-600107b0
+600103b0
 00000000
 b1f10e58
 
 00440001
-600107b4
+600103b4
 8d03ecb0
 00000000
 
 00440001
-600107b8
+600103b8
 00000000
 4408ab12
 
 00440001
-600107bc
+600103bc
 cabcc637
 00000000
 
 00440001
-600107c0
+600103c0
 00000000
 00000200
 
 00440001
-600107fc
+600103fc
 80000000
 00000000
 
 10440001
-60010fe0
+600107e0
 00000000
 5951566a
 00000000
 FFFFFFFF
 
 10440001
-60010fe4
+600107e4
 b8a4b430
 00000000
 FFFFFFFF
 00000000
 
 10440001
-60010fe8
+600107e8
 00000000
 9fe9980d
 00000000
 FFFFFFFF
 
 10440001
-60010fec
+600107ec
 80069d04
 00000000
 FFFFFFFF
 00000000
 
 10440001
-60010ff0
+600107f0
 00000000
 093d866f
 00000000
 FFFFFFFF
 
 10440001
-60010ff4
+600107f4
 7af5e3f6
 00000000
 FFFFFFFF
 00000000
 
 10440001
-60010ff8
+600107f8
 00000000
 cc432473
 00000000
 FFFFFFFF
 
 10440001
-60010ffc
+600107fc
 090f1978
 00000000
 FFFFFFFF
diff --git a/wrapper/verif/tb_wrapper_secworks_sha256.sv b/wrapper/verif/tb_wrapper_secworks_sha256.sv
index 37d7343..cbfce6e 100644
--- a/wrapper/verif/tb_wrapper_secworks_sha256.sv
+++ b/wrapper/verif/tb_wrapper_secworks_sha256.sv
@@ -46,7 +46,7 @@ module tb_wrapper_secworks_sha256;
 parameter CLK_PERIOD = 10;
 parameter ADDRWIDTH = 12;
 
-parameter InputFileName = ("/home/dam1n19/Design/secworks-sha-256-system-top/wrapper/stimulus/ahb_input_hash_stim.m2d");
+parameter InputFileName = ("/home/dam1n19/Design/secworks-sha256-project/wrapper/stimulus/ahb_input_hash_stim.m2d");
 parameter MessageTag = "FileReader:";
 parameter StimArraySize = 10000;
 
-- 
GitLab