diff options
Diffstat (limited to 'src/rtl/chacha.v')
-rw-r--r-- | src/rtl/chacha.v | 128 |
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" //---------------------------------------------------------------- |