Entity: aes_key_expand
- File: aes_key_expand.sv
Diagram
Description
Copyright lowRISC contributors. Licensed under the Apache License, Version 2.0, see LICENSE for details. SPDX-License-Identifier: Apache-2.0
AES KeyExpand
Generics
Generic name | Type | Value | Description |
---|---|---|---|
AES192Enable | bit | 1 | |
Masking | bit | 0 | |
SBoxImpl | sbox_impl_e | SBoxImplLut | |
NumShares | int | Masking ? 2 : 1 | derived parameter |
Ports
Port name | Direction | Type | Description |
---|---|---|---|
clk_i | input | ||
rst_ni | input | ||
cfg_valid_i | input | ||
op_i | input | ciph_op_e | |
en_i | input | sp2v_e | |
out_req_o | output | sp2v_e | |
out_ack_i | input | sp2v_e | |
clear_i | input | ||
round_i | input | [3:0] | |
key_len_i | input | key_len_e | |
key_i | input | [7:0] | |
key_o | output | [7:0] | |
prd_i | input | [WidthPRDKey-1:0] | |
err_o | output |
Signals
Name | Type | Description |
---|---|---|
en | sp2v_e | |
en_err | logic | |
out_ack | sp2v_e | |
out_ack_err | logic | |
rcon_d | logic [7:0] | |
rcon_q | logic [7:0] | |
rcon_we | logic | |
use_rcon | logic | |
rnd | logic [3:0] | |
rnd_type | logic [3:0] | |
spec_in_128 | logic [31:0] | |
spec_in_192 | logic [31:0] | |
rot_word_in | logic [31:0] | |
rot_word_out | logic [31:0] | |
use_rot_word | logic | |
sub_word_in | logic [31:0] | |
sub_word_out | logic [31:0] | |
sub_word_out_req | logic [3:0] | |
sw_in_mask | logic [31:0] | |
sw_out_mask | logic [31:0] | |
rcon_add_in | logic [7:0] | |
rcon_add_out | logic [7:0] | |
rcon_added | logic [31:0] | |
irregular | logic [31:0] | |
regular | logic [7:0][31:0] | |
unused_cfg_valid | logic | cfg_valid_i is used for gating assertions only. |
en_raw | logic [Sp2VWidth-1:0] | //////////////////////////// Sparsely Encoded Signals // //////////////////////////// |
out_ack_raw | logic [Sp2VWidth-1:0] |
Constants
Name | Type | Value | Description |
---|---|---|---|
NumShares | int | Masking ? 2 : 1 | derived parameter |
Processes
- get_rnd_type: ( )
Type: always_comb
Description
For AES-192, there are four different types of rounds.
- rcon_usage: ( )
Type: always_comb
Description
Depending on operation, key length and round, Rcon may not be used thus must not be updated.
- rcon_update: ( )
Type: always_comb
Description
Generate Rcon
- reg_rcon: ( @(posedge clk_i or negedge rst_ni) )
Type: always_ff
Description
Rcon register
Instantiations
- u_aes_key_expand_en_buf_chk: aes_sel_buf_chk
- u_aes_key_expand_out_ack_buf_chk: aes_sel_buf_chk