aboutsummaryrefslogtreecommitdiff
path: root/src/rtl/keywrap.v
diff options
context:
space:
mode:
Diffstat (limited to 'src/rtl/keywrap.v')
-rw-r--r--src/rtl/keywrap.v55
1 files changed, 2 insertions, 53 deletions
diff --git a/src/rtl/keywrap.v b/src/rtl/keywrap.v
index b41f476..2033b23 100644
--- a/src/rtl/keywrap.v
+++ b/src/rtl/keywrap.v
@@ -48,7 +48,7 @@
//
//======================================================================
-module keywrap #(parameter ADDR_BITS = 13)
+module keywrap #(parameter ADDR_BITS = 12)
(
input wire clk,
input wire reset_n,
@@ -72,19 +72,15 @@ module keywrap #(parameter ADDR_BITS = 13)
localparam ADDR_CTRL = 8'h08;
localparam CTRL_INIT_BIT = 0;
localparam CTRL_NEXT_BIT = 1;
- localparam CTRL_ZEROISE_BIT = 2;
localparam ADDR_STATUS = 8'h09;
localparam STATUS_READY_BIT = 0;
localparam STATUS_VALID_BIT = 1;
- localparam STATUS_LOADED_BIT = 2;
localparam ADDR_CONFIG = 8'h0a;
localparam CTRL_ENCDEC_BIT = 0;
localparam CTRL_KEYLEN_BIT = 1;
- localparam ADDR_TIMEOUT = 8'h0b;
-
localparam ADDR_RLEN = 8'h0c;
localparam ADDR_A0 = 8'h0e;
localparam ADDR_A1 = 8'h0f;
@@ -106,8 +102,6 @@ module keywrap #(parameter ADDR_BITS = 13)
localparam RLEN_BITS = ADDR_BITS - 2;
localparam PAD = ADDR_BITS - 8;
- localparam DEFAULT_TIMEOUT = 32'h0400_0000;
-
//----------------------------------------------------------------
// Registers including update variables and write enable.
@@ -134,21 +128,11 @@ module keywrap #(parameter ADDR_BITS = 13)
reg [31 : 0] key_reg [0 : 7];
reg key_we;
- reg [31 : 0] timeout_reg;
- reg timeout_we;
-
- reg ping_reg;
- reg ping_new;
-
- reg zeroise_reg;
- reg zeroise_new;
-
reg [31 : 0] api_rd_delay_reg;
reg [31 : 0] api_rd_delay_new;
reg valid_reg;
reg ready_reg;
- reg loaded_reg;
//----------------------------------------------------------------
@@ -161,12 +145,10 @@ module keywrap #(parameter ADDR_BITS = 13)
wire [(MEM_BITS - 1) : 0] core_api_addr;
wire core_ready;
wire core_valid;
- wire core_loaded;
wire [255 : 0] core_key;
wire [63 : 0] core_a_init;
wire [63 : 0] core_a_result;
wire [31 : 0] core_api_rd_data;
- wire core_timeout;
//----------------------------------------------------------------
@@ -197,12 +179,6 @@ module keywrap #(parameter ADDR_BITS = 13)
.ready(core_ready),
.valid(core_valid),
- .loaded(core_loaded),
-
- .timeout_delay(timeout_reg),
- .ping(ping_reg),
- .zeroise(zeroise_reg),
- .timeout(core_timeout),
.rlen(rlen_reg),
@@ -238,23 +214,16 @@ module keywrap #(parameter ADDR_BITS = 13)
rlen_reg <= {RLEN_BITS{1'h0}};
valid_reg <= 1'h0;
ready_reg <= 1'h0;
- loaded_reg <= 1'h0;
a0_reg <= 32'h0;
a1_reg <= 32'h0;
api_rd_delay_reg <= 32'h0;
- timeout_reg <= DEFAULT_TIMEOUT;
- ping_reg <= 1'h0;
- zeroise_reg <= 1'h0;
end
else
begin
ready_reg <= core_ready;
valid_reg <= core_valid;
- loaded_reg <= core_loaded;
init_reg <= init_new;
next_reg <= next_new;
- ping_reg <= ping_new;
- zeroise_reg <= zeroise_new;
api_rd_delay_reg <= api_rd_delay_new;
if (config_we)
@@ -272,17 +241,8 @@ module keywrap #(parameter ADDR_BITS = 13)
if (a1_we)
a1_reg <= write_data;
- if (zeroise_reg || core_timeout)
- begin
- for (i = 0 ; i < 8 ; i = i + 1)
- key_reg[i] <= 32'h0;
- end
-
if (key_we)
key_reg[address[2 : 0]] <= write_data;
-
- if (timeout_we)
- timeout_reg <= write_data;
end
end // reg_update
@@ -304,9 +264,6 @@ module keywrap #(parameter ADDR_BITS = 13)
a1_we = 1'h0;
tmp_read_data = 32'h0;
tmp_error = 1'h0;
- timeout_we = 1'h0;
- ping_new = 1'h0;
- zeroise_new = 1'h0;
api_rd_delay_new = 32'h0;
// api_mux
@@ -325,15 +282,11 @@ module keywrap #(parameter ADDR_BITS = 13)
begin
init_new = write_data[CTRL_INIT_BIT];
next_new = write_data[CTRL_NEXT_BIT];
- zeroise_new = write_data[CTRL_ZEROISE_BIT];
end
if (address == {{PAD{1'h0}}, ADDR_CONFIG})
config_we = 1'h1;
- if (address == {{PAD{1'h0}}, ADDR_TIMEOUT})
- timeout_we = 1'h1;
-
if (address == {{PAD{1'h0}}, ADDR_RLEN})
rlen_we = 1'h1;
@@ -368,13 +321,9 @@ module keywrap #(parameter ADDR_BITS = 13)
if (address == {{PAD{1'h0}}, ADDR_STATUS})
begin
- api_rd_delay_new = {29'h0, loaded_reg, valid_reg, ready_reg};
- ping_new = 1'h1;
+ api_rd_delay_new = {30'h0, valid_reg, ready_reg};
end
- if (address == {{PAD{1'h0}}, ADDR_TIMEOUT})
- api_rd_delay_new = timeout_reg;
-
if (address == {{PAD{1'h0}}, ADDR_RLEN})
api_rd_delay_new = {{(32 - RLEN_BITS){1'h0}}, rlen_reg};