summaryrefslogtreecommitdiff
path: root/rtl/ed25519_uop.v
diff options
context:
space:
mode:
Diffstat (limited to 'rtl/ed25519_uop.v')
-rw-r--r--rtl/ed25519_uop.v17
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;