[Cryptech-Commits] [core/cipher/aes] 01/02: Removed api error port and added error bit in status register that is set when api access violations happens and cleared by writing the status register.
git at cryptech.is
git at cryptech.is
Fri Oct 2 13:45:47 UTC 2015
This is an automated email from the git hooks/post-receive script.
joachim at secworks.se pushed a commit to branch api_error_fix
in repository core/cipher/aes.
commit 28a9cddf2fa7e934ea790b0e59fcbeddf0c125bc
Author: Joachim Strömbergson <joachim at secworks.se>
Date: Fri Oct 2 15:39:34 2015 +0200
Removed api error port and added error bit in status register that is set when api access violations happens and cleared by writing the status register.
---
src/rtl/aes.v | 34 +++++++++++++++++++++++++---------
src/tb/tb_aes.v | 4 +---
2 files changed, 26 insertions(+), 12 deletions(-)
diff --git a/src/rtl/aes.v b/src/rtl/aes.v
index 98fe61a..7b422b5 100644
--- a/src/rtl/aes.v
+++ b/src/rtl/aes.v
@@ -48,8 +48,7 @@ module aes(
// Data ports.
input wire [7 : 0] address,
input wire [31 : 0] write_data,
- output wire [31 : 0] read_data,
- output wire error
+ output wire [31 : 0] read_data
);
//----------------------------------------------------------------
@@ -66,6 +65,7 @@ module aes(
localparam ADDR_STATUS = 8'h09;
localparam STATUS_READY_BIT = 0;
localparam STATUS_VALID_BIT = 1;
+ localparam STATUS_ERROR_BIT = 2;
localparam ADDR_CONFIG = 8'h0a;
localparam CTRL_ENCDEC_BIT = 0;
@@ -92,7 +92,7 @@ module aes(
localparam CORE_NAME0 = 32'h61657320; // "aes "
localparam CORE_NAME1 = 32'h20202020; // " "
- localparam CORE_VERSION = 32'h302e3830; // "0.80"
+ localparam CORE_VERSION = 32'h302e3831; // "0.81"
//----------------------------------------------------------------
@@ -108,6 +108,10 @@ module aes(
reg next_we;
reg next_set;
+ reg error_reg;
+ reg error_new;
+ reg error_we;
+
reg encdec_reg;
reg keylen_reg;
reg config_we;
@@ -147,7 +151,6 @@ module aes(
// Wires.
//----------------------------------------------------------------
reg [31 : 0] tmp_read_data;
- reg tmp_error;
wire core_encdec;
wire core_init;
@@ -164,7 +167,6 @@ module aes(
// Concurrent connectivity for ports etc.
//----------------------------------------------------------------
assign read_data = tmp_read_data;
- assign error = tmp_error;
assign core_key = {key0_reg, key1_reg, key2_reg, key3_reg,
key4_reg, key5_reg, key6_reg, key7_reg};
@@ -226,6 +228,8 @@ module aes(
encdec_reg <= 0;
keylen_reg <= 0;
+ error_reg <= 0;
+
result_reg <= 128'h00000000000000000000000000000000;
valid_reg <= 0;
ready_reg <= 0;
@@ -236,6 +240,9 @@ module aes(
valid_reg <= core_valid;
result_reg <= core_result;
+ if (error_we)
+ error_reg <= error_new;
+
if (init_we)
begin
init_reg <= init_new;
@@ -362,6 +369,8 @@ module aes(
init_set = 0;
next_set = 0;
config_we = 0;
+ error_new = 0;
+ error_we = 0;
key0_we = 0;
key1_we = 0;
key2_we = 0;
@@ -375,7 +384,6 @@ module aes(
block2_we = 0;
block3_we = 0;
tmp_read_data = 32'h00000000;
- tmp_error = 0;
if (cs)
begin
@@ -389,6 +397,12 @@ module aes(
next_set = write_data[CTRL_NEXT_BIT];
end
+ ADDR_STATUS:
+ begin
+ error_new = 0;
+ error_we = 1;
+ end
+
ADDR_CONFIG:
begin
config_we = 1;
@@ -456,7 +470,8 @@ module aes(
default:
begin
- tmp_error = 1;
+ error_new = 1;
+ error_we = 1;
end
endcase // case (address)
end // if (we)
@@ -488,7 +503,7 @@ module aes(
ADDR_STATUS:
begin
- tmp_read_data = {30'h00000000, valid_reg, ready_reg};
+ tmp_read_data = {29'h00000000, error_reg, valid_reg, ready_reg};
end
ADDR_KEY0:
@@ -573,7 +588,8 @@ module aes(
default:
begin
- tmp_error = 1;
+ error_new = 1;
+ error_we = 1;
end
endcase // case (address)
end
diff --git a/src/tb/tb_aes.v b/src/tb/tb_aes.v
index 0694250..377ed76 100644
--- a/src/tb/tb_aes.v
+++ b/src/tb/tb_aes.v
@@ -115,7 +115,6 @@ module tb_aes();
reg [7 : 0] tb_address;
reg [31 : 0] tb_write_data;
wire [31 : 0] tb_read_data;
- wire tb_error;
//----------------------------------------------------------------
@@ -128,8 +127,7 @@ module tb_aes();
.we(tb_we),
.address(tb_address),
.write_data(tb_write_data),
- .read_data(tb_read_data),
- .error(tb_error)
+ .read_data(tb_read_data)
);
More information about the Commits
mailing list