diff --git a/hdl/src/hash_compression.sv b/hdl/src/hash_compression.sv
index 4a1766924ddb7363ee7a5f459f19d4c0765c0f90..7019f46e158836999a35b573a3bca3be9ae72ddb 100644
--- a/hdl/src/hash_compression.sv
+++ b/hdl/src/hash_compression.sv
@@ -173,7 +173,7 @@ module hash_compression (
             for (int i=0; i < 64; i++) begin
                 W[i] <= 32'd0;
             end
-        end else begin
+        end else if (en == 1'b1) begin
             state           <= next_state;
             hash_iter       <= next_hash_iter;
             last_block      <= next_last_block;
@@ -198,7 +198,10 @@ module hash_compression (
             for (int i=0; i < 64; i++) begin
                 W[i] <= next_W[i];
             end
-        end    
+        end else begin
+            data_in_ready   <= 1'b0;
+            data_out_valid  <= 1'b0;
+        end
     end
     
     // State Machine Combinatorial Logic
diff --git a/hdl/src/message_build.sv b/hdl/src/message_build.sv
index 24b8575ed4c1e0c698b550d33629d895665584d8..fcc4ef9583f00992db8fd178f678716acae22bce 100644
--- a/hdl/src/message_build.sv
+++ b/hdl/src/message_build.sv
@@ -79,7 +79,7 @@ module message_build (
             data_out        <= 512'd0;
             data_word_count <= 55'd0;
             extra_word      <= 1'b0;
-        end else begin
+        end else if (en == 1'b1) begin
             state           <= next_state;
             data_in_ready   <= next_data_in_ready;
             cfg_ready       <= next_cfg_ready;
@@ -90,7 +90,10 @@ module message_build (
             data_out        <= next_data_out;
             data_word_count <= next_data_word_count;
             extra_word      <= next_extra_word;
-        end    
+        end else begin
+            data_in_ready   <= 1'b0;
+            data_out_valid  <= 1'b0;
+        end
     end
     
     always_comb begin
diff --git a/hdl/src/sha256_engine.sv b/hdl/src/sha256_engine.sv
index ec2e079ecc6375548f803940c454848d49ca0dd4..0af840790bbc29bdd98e75f4ab8449b681e56f64 100644
--- a/hdl/src/sha256_engine.sv
+++ b/hdl/src/sha256_engine.sv
@@ -99,6 +99,7 @@ module sha256_engine (
     message_build message_block_builder (
         .clk            (clk),
         .nrst           (nrst),
+        .en             (en),
         .sync_rst       (sync_rst),
         .data_in        (data_in_buffered),
         .data_in_valid  (data_in_valid_buffered),
@@ -119,6 +120,7 @@ module sha256_engine (
     hash_compression hash_calculator (
         .clk            (clk),
         .nrst           (nrst),
+        .en             (en),
         .sync_rst       (sync_rst),
         .data_in        (message_block),
         .data_in_valid  (message_block_valid),
diff --git a/hdl/verif/tb_hash_compression.sv b/hdl/verif/tb_hash_compression.sv
index c89a9ea37591b5d9c8dc05a1bb2467ee7870c7a0..52c2d4819abcde3e0f4f250bd0e7fc6199f5c256 100644
--- a/hdl/verif/tb_hash_compression.sv
+++ b/hdl/verif/tb_hash_compression.sv
@@ -15,6 +15,7 @@ module tb_hash_compression;
     
     logic clk;
     logic nrst;
+    logic en;
     logic sync_rst;
     // Data In data and Handshaking
     logic [511:0] data_in;
@@ -38,6 +39,7 @@ module tb_hash_compression;
     hash_compression uut (
                   .clk (clk),
                   .nrst(nrst),
+                  .en  (en),
                   .sync_rst(sync_rst),
                   .data_in(data_in),
                   .data_in_valid(data_in_valid),
@@ -189,6 +191,9 @@ module tb_hash_compression;
         data_out_check = data_out_queue.pop_front();      
         data_out_last_check = data_out_last_queue.pop_front();
         
+        // Enable Hash Compression
+        en = 1;
+        
         // Defaultly set Sync Reset Low
         sync_rst  = 0;
         
diff --git a/hdl/verif/tb_message_build.sv b/hdl/verif/tb_message_build.sv
index e7615509224a77eed914dd61dd1dac305ae8f504..3254c5d87b391250f5bad8ae54e8d218196e0eed 100644
--- a/hdl/verif/tb_message_build.sv
+++ b/hdl/verif/tb_message_build.sv
@@ -15,6 +15,7 @@ module tb_message_build;
     
     logic clk;
     logic nrst;
+    logic en;
     logic sync_rst;
     // Data In data and Handshaking
     logic [511:0] data_in;
@@ -38,6 +39,7 @@ module tb_message_build;
     message_build uut (
                   .clk (clk),
                   .nrst(nrst),
+                  .en  (en),
                   .sync_rst(sync_rst),
                   .data_in(data_in),
                   .data_in_valid(data_in_valid),
@@ -220,6 +222,9 @@ module tb_message_build;
         data_out_check = data_out_queue.pop_front();      
         data_out_last_check = data_out_last_queue.pop_front();
         
+        // Defaultly enable Message Builder
+        en  = 1;
+        
         // Defaultly set Sync Reset Low
         sync_rst  = 0;