[kmac] gated TL state output Signed-off-by: Michael Tempelmeier <michael.tempelmeier@gi-de.com>
diff --git a/hw/ip/kmac/rtl/kmac.sv b/hw/ip/kmac/rtl/kmac.sv index 9987937..19a4b6d 100644 --- a/hw/ip/kmac/rtl/kmac.sv +++ b/hw/ip/kmac/rtl/kmac.sv
@@ -184,7 +184,7 @@ // state is de-muxed in keymgr interface logic. // the output from keymgr logic goes into staterd module to be visible to SW - logic unused_reg_state_valid; + logic reg_state_valid; logic [sha3_pkg::StateW-1:0] reg_state [Share]; // SHA3 Entropy interface @@ -990,7 +990,7 @@ .keccak_state_i (state), // to STATE TL Window - .reg_state_valid_o (unused_reg_state_valid), + .reg_state_valid_o (reg_state_valid), .reg_state_o (reg_state), // Configuration: Sideloaded Key @@ -1045,6 +1045,13 @@ .process_o (msgfifo2kmac_process) ); + logic [sha3_pkg::StateW-1:0] reg_state_tl [Share]; + always_comb begin + for (int i = 0 ; i < Share; i++) begin + reg_state_tl[i] = reg_state_valid ? reg_state[i] : 'b0; + end + end + // State (Digest) reader kmac_staterd #( .AddrW (9), // 512B @@ -1056,7 +1063,7 @@ .tl_i (tl_win_h2d[WinState]), .tl_o (tl_win_d2h[WinState]), - .state_i (reg_state), + .state_i (reg_state_tl), .endian_swap_i (reg2hw.cfg_shadowed.state_endianness.q) );