| // Copyright lowRISC contributors. |
| // Licensed under the Apache License, Version 2.0, see LICENSE for details. |
| // SPDX-License-Identifier: Apache-2.0 |
| // |
| // Register Package auto-generated by `reggen` containing data structure |
| |
| package aes_reg_pkg; |
| |
| // Register to internal design logic |
| typedef struct packed { |
| |
| struct packed { |
| logic [31:0] q; // [534:503] |
| logic qe; // [502] |
| } key0; |
| struct packed { |
| logic [31:0] q; // [501:470] |
| logic qe; // [469] |
| } key1; |
| struct packed { |
| logic [31:0] q; // [468:437] |
| logic qe; // [436] |
| } key2; |
| struct packed { |
| logic [31:0] q; // [435:404] |
| logic qe; // [403] |
| } key3; |
| struct packed { |
| logic [31:0] q; // [402:371] |
| logic qe; // [370] |
| } key4; |
| struct packed { |
| logic [31:0] q; // [369:338] |
| logic qe; // [337] |
| } key5; |
| struct packed { |
| logic [31:0] q; // [336:305] |
| logic qe; // [304] |
| } key6; |
| struct packed { |
| logic [31:0] q; // [303:272] |
| logic qe; // [271] |
| } key7; |
| struct packed { |
| logic [31:0] q; // [270:239] |
| logic qe; // [238] |
| } data_in0; |
| struct packed { |
| logic [31:0] q; // [237:206] |
| logic qe; // [205] |
| } data_in1; |
| struct packed { |
| logic [31:0] q; // [204:173] |
| logic qe; // [172] |
| } data_in2; |
| struct packed { |
| logic [31:0] q; // [171:140] |
| logic qe; // [139] |
| } data_in3; |
| struct packed { |
| logic [31:0] q; // [138:107] |
| logic re; // [106] |
| } data_out0; |
| struct packed { |
| logic [31:0] q; // [105:74] |
| logic re; // [73] |
| } data_out1; |
| struct packed { |
| logic [31:0] q; // [72:41] |
| logic re; // [40] |
| } data_out2; |
| struct packed { |
| logic [31:0] q; // [39:8] |
| logic re; // [7] |
| } data_out3; |
| struct packed { |
| struct packed { |
| logic q; // [6] |
| } mode; |
| struct packed { |
| logic [2:0] q; // [5:3] |
| } key_len; |
| struct packed { |
| logic q; // [2] |
| } manual_start_trigger; |
| struct packed { |
| logic q; // [1] |
| } force_data_overwrite; |
| } ctrl; |
| struct packed { |
| logic [0:0] q; // [0:0] |
| } trigger; |
| } aes_reg2hw_t; |
| |
| // Internal design logic to register |
| typedef struct packed { |
| |
| struct packed { |
| logic [31:0] d; // [137:106] |
| } data_out0; |
| struct packed { |
| logic [31:0] d; // [105:74] |
| } data_out1; |
| struct packed { |
| logic [31:0] d; // [73:42] |
| } data_out2; |
| struct packed { |
| logic [31:0] d; // [41:10] |
| } data_out3; |
| struct packed { |
| logic [0:0] d; // [9:9] |
| logic de; // [8] |
| } trigger; |
| struct packed { |
| struct packed { |
| logic d; // [7] |
| logic de; // [6] |
| } idle; |
| struct packed { |
| logic d; // [5] |
| logic de; // [4] |
| } stall; |
| struct packed { |
| logic d; // [3] |
| logic de; // [2] |
| } output_valid; |
| struct packed { |
| logic d; // [1] |
| logic de; // [0] |
| } input_ready; |
| } status; |
| } aes_hw2reg_t; |
| |
| // Register Address |
| parameter AES_KEY0_OFFSET = 7'h 0; |
| parameter AES_KEY1_OFFSET = 7'h 4; |
| parameter AES_KEY2_OFFSET = 7'h 8; |
| parameter AES_KEY3_OFFSET = 7'h c; |
| parameter AES_KEY4_OFFSET = 7'h 10; |
| parameter AES_KEY5_OFFSET = 7'h 14; |
| parameter AES_KEY6_OFFSET = 7'h 18; |
| parameter AES_KEY7_OFFSET = 7'h 1c; |
| parameter AES_DATA_IN0_OFFSET = 7'h 20; |
| parameter AES_DATA_IN1_OFFSET = 7'h 24; |
| parameter AES_DATA_IN2_OFFSET = 7'h 28; |
| parameter AES_DATA_IN3_OFFSET = 7'h 2c; |
| parameter AES_DATA_OUT0_OFFSET = 7'h 30; |
| parameter AES_DATA_OUT1_OFFSET = 7'h 34; |
| parameter AES_DATA_OUT2_OFFSET = 7'h 38; |
| parameter AES_DATA_OUT3_OFFSET = 7'h 3c; |
| parameter AES_CTRL_OFFSET = 7'h 40; |
| parameter AES_TRIGGER_OFFSET = 7'h 44; |
| parameter AES_STATUS_OFFSET = 7'h 48; |
| |
| |
| endpackage |