aboutsummaryrefslogtreecommitdiff
path: root/src/rtl/chacha.v
diff options
context:
space:
mode:
Diffstat (limited to 'src/rtl/chacha.v')
-rw-r--r--src/rtl/chacha.v128
1 files changed, 68 insertions, 60 deletions
diff --git a/src/rtl/chacha.v b/src/rtl/chacha.v
index 72792aa..497f51d 100644
--- a/src/rtl/chacha.v
+++ b/src/rtl/chacha.v
@@ -56,66 +56,74 @@ module chacha(
//----------------------------------------------------------------
// Internal constant and parameter definitions.
//----------------------------------------------------------------
- parameter ADDR_CTRL = 8'h00;
- parameter CTRL_INIT_BIT = 0;
- parameter CTRL_NEXT_BIT = 1;
-
- parameter ADDR_STATUS = 8'h01;
- parameter STATUS_READY_BIT = 0;
-
- parameter ADDR_KEYLEN = 8'h08;
- parameter KEYLEN_BIT = 0;
- parameter ADDR_ROUNDS = 8'h09;
- parameter ROUNDS_HIGH_BIT = 4;
- parameter ROUNDS_LOW_BIT = 0;
-
- parameter ADDR_KEY0 = 8'h10;
- parameter ADDR_KEY1 = 8'h11;
- parameter ADDR_KEY2 = 8'h12;
- parameter ADDR_KEY3 = 8'h13;
- parameter ADDR_KEY4 = 8'h14;
- parameter ADDR_KEY5 = 8'h15;
- parameter ADDR_KEY6 = 8'h16;
- parameter ADDR_KEY7 = 8'h17;
-
- parameter ADDR_IV0 = 8'h20;
- parameter ADDR_IV1 = 8'h21;
-
- parameter ADDR_DATA_IN0 = 8'h40;
- parameter ADDR_DATA_IN1 = 8'h41;
- parameter ADDR_DATA_IN2 = 8'h42;
- parameter ADDR_DATA_IN3 = 8'h43;
- parameter ADDR_DATA_IN4 = 8'h44;
- parameter ADDR_DATA_IN5 = 8'h45;
- parameter ADDR_DATA_IN6 = 8'h46;
- parameter ADDR_DATA_IN7 = 8'h47;
- parameter ADDR_DATA_IN8 = 8'h48;
- parameter ADDR_DATA_IN9 = 8'h49;
- parameter ADDR_DATA_IN10 = 8'h4a;
- parameter ADDR_DATA_IN11 = 8'h4b;
- parameter ADDR_DATA_IN12 = 8'h4c;
- parameter ADDR_DATA_IN13 = 8'h4d;
- parameter ADDR_DATA_IN14 = 8'h4e;
- parameter ADDR_DATA_IN15 = 8'h4f;
-
- parameter ADDR_DATA_OUT0 = 8'h80;
- parameter ADDR_DATA_OUT1 = 8'h81;
- parameter ADDR_DATA_OUT2 = 8'h82;
- parameter ADDR_DATA_OUT3 = 8'h83;
- parameter ADDR_DATA_OUT4 = 8'h84;
- parameter ADDR_DATA_OUT5 = 8'h85;
- parameter ADDR_DATA_OUT6 = 8'h86;
- parameter ADDR_DATA_OUT7 = 8'h87;
- parameter ADDR_DATA_OUT8 = 8'h88;
- parameter ADDR_DATA_OUT9 = 8'h89;
- parameter ADDR_DATA_OUT10 = 8'h8a;
- parameter ADDR_DATA_OUT11 = 8'h8b;
- parameter ADDR_DATA_OUT12 = 8'h8c;
- parameter ADDR_DATA_OUT13 = 8'h8d;
- parameter ADDR_DATA_OUT14 = 8'h8e;
- parameter ADDR_DATA_OUT15 = 8'h8f;
-
- parameter DEFAULT_CTR_INIT = 64'h0000000000000000;
+ localparam ADDR_NAME0 = 8'h00;
+ localparam ADDR_NAME1 = 8'h01;
+ localparam ADDR_VERSION = 8'h02;
+
+ localparam ADDR_CTRL = 8'h08;
+ localparam CTRL_INIT_BIT = 0;
+ localparam CTRL_NEXT_BIT = 1;
+
+ localparam ADDR_STATUS = 8'h09;
+ localparam STATUS_READY_BIT = 0;
+
+ localparam ADDR_KEYLEN = 8'h0a;
+ localparam KEYLEN_BIT = 0;
+ localparam ADDR_ROUNDS = 8'h0b;
+ localparam ROUNDS_HIGH_BIT = 4;
+ localparam ROUNDS_LOW_BIT = 0;
+
+ localparam ADDR_KEY0 = 8'h10;
+ localparam ADDR_KEY1 = 8'h11;
+ localparam ADDR_KEY2 = 8'h12;
+ localparam ADDR_KEY3 = 8'h13;
+ localparam ADDR_KEY4 = 8'h14;
+ localparam ADDR_KEY5 = 8'h15;
+ localparam ADDR_KEY6 = 8'h16;
+ localparam ADDR_KEY7 = 8'h17;
+
+ localparam ADDR_IV0 = 8'h20;
+ localparam ADDR_IV1 = 8'h21;
+
+ localparam ADDR_DATA_IN0 = 8'h40;
+ localparam ADDR_DATA_IN1 = 8'h41;
+ localparam ADDR_DATA_IN2 = 8'h42;
+ localparam ADDR_DATA_IN3 = 8'h43;
+ localparam ADDR_DATA_IN4 = 8'h44;
+ localparam ADDR_DATA_IN5 = 8'h45;
+ localparam ADDR_DATA_IN6 = 8'h46;
+ localparam ADDR_DATA_IN7 = 8'h47;
+ localparam ADDR_DATA_IN8 = 8'h48;
+ localparam ADDR_DATA_IN9 = 8'h49;
+ localparam ADDR_DATA_IN10 = 8'h4a;
+ localparam ADDR_DATA_IN11 = 8'h4b;
+ localparam ADDR_DATA_IN12 = 8'h4c;
+ localparam ADDR_DATA_IN13 = 8'h4d;
+ localparam ADDR_DATA_IN14 = 8'h4e;
+ localparam ADDR_DATA_IN15 = 8'h4f;
+
+ localparam ADDR_DATA_OUT0 = 8'h80;
+ localparam ADDR_DATA_OUT1 = 8'h81;
+ localparam ADDR_DATA_OUT2 = 8'h82;
+ localparam ADDR_DATA_OUT3 = 8'h83;
+ localparam ADDR_DATA_OUT4 = 8'h84;
+ localparam ADDR_DATA_OUT5 = 8'h85;
+ localparam ADDR_DATA_OUT6 = 8'h86;
+ localparam ADDR_DATA_OUT7 = 8'h87;
+ localparam ADDR_DATA_OUT8 = 8'h88;
+ localparam ADDR_DATA_OUT9 = 8'h89;
+ localparam ADDR_DATA_OUT10 = 8'h8a;
+ localparam ADDR_DATA_OUT11 = 8'h8b;
+ localparam ADDR_DATA_OUT12 = 8'h8c;
+ localparam ADDR_DATA_OUT13 = 8'h8d;
+ localparam ADDR_DATA_OUT14 = 8'h8e;
+ localparam ADDR_DATA_OUT15 = 8'h8f;
+
+ localparam DEFAULT_CTR_INIT = 64'h0000000000000000;
+
+ localparam CORE_NAME0 = 32'h63686163; // "chac"
+ localparam CORE_NAME1 = 32'h68612020; // "ha "
+ localparam CORE_VERSION = 32'h302e3830; // "0.80"
//----------------------------------------------------------------