From c44c8a77b56778c951fb09f94a577057573dbfa7 Mon Sep 17 00:00:00 2001 From: Paul Selkirk Date: Fri, 17 Jul 2015 10:31:26 -0400 Subject: experimental modexps6 (which requires changing the read timing on all other cores) --- sw/cryptech.h | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'sw/cryptech.h') 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 -- cgit v1.2.3