From c20b0fb518a7eca5daa8276022f44b609eb40c71 Mon Sep 17 00:00:00 2001 From: dam1n19 <d.a.mapstone@soton.ac.uk> Date: Mon, 9 Jan 2023 11:51:24 +0000 Subject: [PATCH] ATO2-24: Added Enable Signals into message builder and hash compressor --- hdl/src/hash_compression.sv | 7 +++++-- hdl/src/message_build.sv | 7 +++++-- hdl/src/sha256_engine.sv | 2 ++ hdl/verif/tb_hash_compression.sv | 5 +++++ hdl/verif/tb_message_build.sv | 5 +++++ 5 files changed, 22 insertions(+), 4 deletions(-) diff --git a/hdl/src/hash_compression.sv b/hdl/src/hash_compression.sv index 4a17669..7019f46 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 24b8575..fcc4ef9 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 ec2e079..0af8407 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 c89a9ea..52c2d48 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 e761550..3254c5d 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; -- GitLab