aes_core: Latch e_done signal
diff --git a/verilog/rtl/user_proj_aes/aes_core.v b/verilog/rtl/user_proj_aes/aes_core.v index 3562109..4863c73 100644 --- a/verilog/rtl/user_proj_aes/aes_core.v +++ b/verilog/rtl/user_proj_aes/aes_core.v
@@ -116,6 +116,7 @@ reg e_ld; reg e_ld_i; wire e_done; + reg e_done_p; reg [127:0] e_key; reg [127:0] e_text; @@ -141,8 +142,14 @@ e_key_i <= e_key; end - if (e_done == 1) e_text_o_p <= e_text_o; - if (e_rst == 0) e_text_o_p <= 128'h00000000000000000000000000000000; + if (e_done == 1) begin + e_text_o_p <= e_text_o; + e_done_p <= 1; + end + if (e_rst == 0) begin + e_text_o_p <= 128'h00000000000000000000000000000000; + e_done_p <= 0; + end end always @(posedge clk) begin @@ -201,11 +208,10 @@ e_ld <= wbs_dat_i[1]; end else begin - rdata <= {{29{1'b0}}, e_done, e_ld, e_rst}; + rdata <= {{29{1'b0}}, e_done_p, e_ld, e_rst}; end wbs_ack_o <= 1'b1; end - end endmodule