diff options
author | Pavel V. Shatov (Meister) <meisterpaul1@yandex.ru> | 2018-10-15 15:54:47 +0300 |
---|---|---|
committer | Pavel V. Shatov (Meister) <meisterpaul1@yandex.ru> | 2018-10-15 15:54:47 +0300 |
commit | 7cbc1fec6f39e377a8d945c3aad183b4cffeadd3 (patch) | |
tree | 97ba8901c5518701459017ead4b53a569758546f /rtl/ed25519_uop.v | |
parent | 7df34f4b491dac71b4301828bdda6a6f9d8eecd6 (diff) |
Incorporated latest microcode from the C model. Passes all the test vectors
from the RFC. Needs minor cleanup.
Diffstat (limited to 'rtl/ed25519_uop.v')
-rw-r--r-- | rtl/ed25519_uop.v | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/rtl/ed25519_uop.v b/rtl/ed25519_uop.v index 4b744c6..12b9e10 100644 --- a/rtl/ed25519_uop.v +++ b/rtl/ed25519_uop.v @@ -30,13 +30,22 @@ // //====================================================================== -localparam integer UOP_ADDR_WIDTH = 6; // 2 ^ 6 = 64 instructions +localparam integer UOP_ADDR_WIDTH = 9; // 2 ^ 9 = max 512 instructions localparam integer UOP_DATA_WIDTH = 5 + 1 + 3 * 6; // opcode + banks + 3 * operand (2 * src + dst) -localparam [UOP_ADDR_WIDTH-1:0] UOP_OFFSET_PREPARE = 6'd00; -localparam [UOP_ADDR_WIDTH-1:0] UOP_OFFSET_BEFORE_ROUND_K1 = 6'd09; -localparam [UOP_ADDR_WIDTH-1:0] UOP_OFFSET_BEFORE_ROUND_K0 = 6'd18; +localparam [UOP_ADDR_WIDTH-1:0] UOP_OFFSET_PREPARE = 9'd000; +localparam [UOP_ADDR_WIDTH-1:0] UOP_OFFSET_BEFORE_ROUND_K0 = 9'd009; +localparam [UOP_ADDR_WIDTH-1:0] UOP_OFFSET_BEFORE_ROUND_K1 = 9'd018; +localparam [UOP_ADDR_WIDTH-1:0] UOP_OFFSET_DURING_ROUND = 9'd027; +localparam [UOP_ADDR_WIDTH-1:0] UOP_OFFSET_AFTER_ROUND_K0 = 9'd062; +localparam [UOP_ADDR_WIDTH-1:0] UOP_OFFSET_AFTER_ROUND_K1 = 9'd067; +localparam [UOP_ADDR_WIDTH-1:0] UOP_OFFSET_BEFORE_INVERSION = 9'd072; +localparam [UOP_ADDR_WIDTH-1:0] UOP_OFFSET_DURING_INVERSION = 9'd075; +localparam [UOP_ADDR_WIDTH-1:0] UOP_OFFSET_AFTER_INVERSION = 9'd354; +localparam [UOP_ADDR_WIDTH-1:0] UOP_OFFSET_FINAL_REDUCTION = 9'd358; +localparam [UOP_ADDR_WIDTH-1:0] UOP_OFFSET_HANDLE_SIGN = 9'd361; +localparam [UOP_ADDR_WIDTH-1:0] UOP_OFFSET_OUTPUT = 9'd363; localparam [4:0] UOP_OPCODE_COPY = 5'b00001; localparam [4:0] UOP_OPCODE_ADD = 5'b00010; |