diff options
author | Paul Selkirk <paul@psgd.org> | 2015-07-17 10:31:26 -0400 |
---|---|---|
committer | Paul Selkirk <paul@psgd.org> | 2015-07-17 10:31:26 -0400 |
commit | c44c8a77b56778c951fb09f94a577057573dbfa7 (patch) | |
tree | 5b9eea8bbdc21772e27844eb7b30549646da6e78 /sw/cryptech.h | |
parent | 33cc55adaf9ff31473802414f9c0d6e4a553cddf (diff) |
experimental modexps6 (which requires changing the read timing on all other cores)
Diffstat (limited to 'sw/cryptech.h')
-rw-r--r-- | sw/cryptech.h | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/sw/cryptech.h b/sw/cryptech.h index 5b01bc9..aeafc1b 100644 --- a/sw/cryptech.h +++ b/sw/cryptech.h @@ -421,6 +421,37 @@ in order to map it into a 16-bit address space. #define MODEXP_NAME1 "xp " #define MODEXP_VERSION "0.51" +// Experimental ModexpS6 core. +// XXX AT THE SAME CORE PREFIX - YOU CAN'T HAVE BOTH AT THE SAME TIME +#define MODEXPS6_ADDR_BASE SEGMENT_OFFSET_MATH + (0x00 * CORE_SIZE) +#define MODEXPS6_ADDR_NAME0 MODEXPS6_ADDR_BASE + ADDR_NAME0 +#define MODEXPS6_ADDR_NAME1 MODEXPS6_ADDR_BASE + ADDR_NAME1 +#define MODEXPS6_ADDR_VERSION MODEXPS6_ADDR_BASE + ADDR_VERSION +#define MODEXPS6_ADDR_CTRL MODEXPS6_ADDR_BASE + ADDR_CTRL +#define MODEXPS6_CTRL_INIT_BIT 1 +#define MODEXPS6_CTRL_NEXT_BIT 2 +#define MODEXPS6_ADDR_STATUS MODEXPS6_ADDR_BASE + ADDR_STATUS + +/* 4096-bit operands are stored as 128 words of 32 bits */ +#define MODEXPS6_OPERAND_SIZE 4096/32 + +#define MODEXPS6_ADDR_REGISTERS MODEXPS6_ADDR_BASE + 0*MODEXPS6_OPERAND_SIZE +#define MODEXPS6_ADDR_OPERANDS MODEXPS6_ADDR_BASE + 4*MODEXPS6_OPERAND_SIZE + +#define MODEXPS6_ADDR_MODE MODEXPS6_ADDR_REGISTERS + 0x10 +#define MODEXPS6_ADDR_MODULUS_WIDTH MODEXPS6_ADDR_REGISTERS + 0x11 +#define MODEXPS6_ADDR_EXPONENT_WIDTH MODEXPS6_ADDR_REGISTERS + 0x12 + +/* addresses of block memories for operands */ +#define MODEXPS6_ADDR_MODULUS MODEXPS6_ADDR_OPERANDS + 0*MODEXPS6_OPERAND_SIZE +#define MODEXPS6_ADDR_MESSAGE MODEXPS6_ADDR_OPERANDS + 1*MODEXPS6_OPERAND_SIZE +#define MODEXPS6_ADDR_EXPONENT MODEXPS6_ADDR_OPERANDS + 2*MODEXPS6_OPERAND_SIZE +#define MODEXPS6_ADDR_RESULT MODEXPS6_ADDR_OPERANDS + 3*MODEXPS6_OPERAND_SIZE + +#define MODEXPS6_NAME0 "mode" +#define MODEXPS6_NAME1 "xps6" +#define MODEXPS6_VERSION "0.10" + //------------------------------------------------------------------ // Test case public functions |