[Cryptech-Commits] [user/shatov/modexpng] branch master updated (0224778 -> 0f111bf)

git at cryptech.is git at cryptech.is
Wed Oct 23 16:21:59 UTC 2019


This is an automated email from the git hooks/post-receive script.

meisterpaul1 at yandex.ru pushed a change to branch master
in repository user/shatov/modexpng.

    from 0224778  Added more micro-operations, entire Montgomery exponentiation ladder works now.
     new 1e33032  Refactored general worker module Added modular subtraction micro-operation
     new 3213b3e  Added "MERGE_LH" micro-operation. To be able to do Garner's formula we need regular (not modular) multiplication. We're doing this by telling the modular multiplier to stop after the "square" step, which computes A*B. The problem is that the multiplier stores the lower part of the product in the internal bank L and the upper part in the internal bank H, but we need to be able to do operations on the product as a whole. MERGE_LH that combines the two halves of the product [...]
     new 3633901  Added the regular (not modular) addition operation required during the final step of the Garner's formula algorithm. Note, that the addition is "uneven" in the sense, that the first operand is full-size (as wide as the modulus), while the second one is only half the size. The adder internally banks the second input port during the second half of the addition.
     new 9eac252  Entire CRT signature algorithm works by now.
     new 72902f5  Redesigned the testbench. Core clock does not necessarily need to be twice faster than the bus clock now. It can be the same, or say four times faster.
     new 69b5d9f  Added support for non-CRT mode. Further refactoring.
     new 584393a  Further work:  - added core wrapper  - fixed module resets across entire core (all the resets are now consistently    active-low)  - continued refactoring
     new edd5efd  Reworked testbench, clk_sys and clk_core can now have any ratio, not necessarily 1:2.
     new 57d250b  Fixed all the testbenches to work with the latest RTL sources.
     new 657678a  Added simulation-only code to measure multiplier load.
     new 88f46be  Fixed port width mismatch warning.
     new d50bb60  Added readme file.
     new 0f111bf  Added demo driver code for STM32.

The 13 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 README.md                                          |  162 +++
 bench/{tb_core_full.v => tb_core_full_1024.v}      |  326 +++--
 bench/tb_core_full_512.v                           |  545 ++++++++
 bench/tb_mmm_dual_x8.v                             |  102 +-
 bench/tb_square.v                                  | 1379 -------------------
 bench/tb_wrapper.v                                 |  230 ++++
 rtl/_modexpng_reductor.v                           |  252 ----
 rtl/modexpng_core_top.v                            |  937 +++++--------
 rtl/modexpng_core_top_debug.vh                     |   93 ++
 rtl/modexpng_dsp48e1.vh                            |    1 +
 rtl/modexpng_dsp_array_block.v                     |   24 +-
 rtl/modexpng_dsp_slice_primitive.vh                |    9 +
 rtl/modexpng_dsp_slice_wrapper_generic.v           |   92 ++
 ...apper.v => modexpng_dsp_slice_wrapper_xilinx.v} |   22 +-
 rtl/modexpng_general_worker.v                      | 1449 +++++++++++++-------
 rtl/modexpng_io_block.v                            |   39 +-
 rtl/modexpng_io_manager.v                          |   61 +-
 rtl/modexpng_microcode.vh                          |   74 +-
 rtl/modexpng_mmm_dual.v                            |  509 +++----
 ...odexpng_mmm_fsm.vh => modexpng_mmm_dual_fsm.vh} |   64 +-
 rtl/modexpng_parameters.vh                         |  151 +-
 rtl/modexpng_recombinator_block.v                  |   51 +-
 ...binator_cell.v => modexpng_recombinator_cell.v} |    4 +-
 rtl/modexpng_reductor.v                            |   35 +-
 rtl/modexpng_sdp_36k_x16_x32_wrapper_generic.v     |   73 +
 ...v => modexpng_sdp_36k_x16_x32_wrapper_xilinx.v} |    2 +-
 ...er.v => modexpng_sdp_36k_x18_wrapper_generic.v} |    2 +-
 rtl/modexpng_sdp_36k_x18_wrapper_xilinx.v          |    2 +-
 rtl/modexpng_sdp_36k_x32_x16_wrapper_generic.v     |   66 +
 ...v => modexpng_sdp_36k_x32_x16_wrapper_xilinx.v} |    2 +-
 rtl/modexpng_storage_block.v                       |   29 +-
 rtl/modexpng_storage_manager.v                     |   12 +-
 rtl/modexpng_storage_primitives.vh                 |   15 +
 ... => modexpng_tdp_36k_x16_x32_wrapper_generic.v} |   45 +-
 ...v => modexpng_tdp_36k_x16_x32_wrapper_xilinx.v} |    2 +-
 rtl/modexpng_uop_engine.v                          |  655 +++++++++
 rtl/modexpng_uop_rom.v                             |  197 ++-
 rtl/modexpng_wrapper.v                             |  461 +++++++
 stm32/modexpng_driver_sample.c                     |  475 +++++++
 stm32/modexpng_util.c                              |  189 +++
 stm32/modexpng_util.h                              |   30 +
 stm32/modexpng_vector_1024.h                       |  138 ++
 stm32/modexpng_vector_2048.h                       |  254 ++++
 stm32/modexpng_vector_4096.h                       |  486 +++++++
 44 files changed, 6314 insertions(+), 3432 deletions(-)
 create mode 100644 README.md
 rename bench/{tb_core_full.v => tb_core_full_1024.v} (71%)
 create mode 100644 bench/tb_core_full_512.v
 delete mode 100644 bench/tb_square.v
 create mode 100644 bench/tb_wrapper.v
 delete mode 100644 rtl/_modexpng_reductor.v
 create mode 100644 rtl/modexpng_core_top_debug.vh
 create mode 100644 rtl/modexpng_dsp_slice_primitive.vh
 create mode 100644 rtl/modexpng_dsp_slice_wrapper_generic.v
 rename rtl/{modexpng_dsp_slice_wrapper.v => modexpng_dsp_slice_wrapper_xilinx.v} (86%)
 rename rtl/{_modexpng_mmm_fsm.vh => modexpng_mmm_dual_fsm.vh} (59%)
 rename rtl/{_modexpng_recombinator_cell.v => modexpng_recombinator_cell.v} (89%)
 create mode 100644 rtl/modexpng_sdp_36k_x16_x32_wrapper_generic.v
 rename rtl/{modexpng_sdp_36k_x16_x32_wrapper.v => modexpng_sdp_36k_x16_x32_wrapper_xilinx.v} (97%)
 rename rtl/{modexpng_sdp_36k_x18_wrapper.v => modexpng_sdp_36k_x18_wrapper_generic.v} (96%)
 create mode 100644 rtl/modexpng_sdp_36k_x32_x16_wrapper_generic.v
 rename rtl/{modexpng_sdp_36k_x32_x16_wrapper.v => modexpng_sdp_36k_x32_x16_wrapper_xilinx.v} (97%)
 create mode 100644 rtl/modexpng_storage_primitives.vh
 copy rtl/{modexpng_tdp_36k_x16_x32_wrapper.v => modexpng_tdp_36k_x16_x32_wrapper_generic.v} (66%)
 rename rtl/{modexpng_tdp_36k_x16_x32_wrapper.v => modexpng_tdp_36k_x16_x32_wrapper_xilinx.v} (97%)
 create mode 100644 rtl/modexpng_uop_engine.v
 create mode 100644 rtl/modexpng_wrapper.v
 create mode 100644 stm32/modexpng_driver_sample.c
 create mode 100644 stm32/modexpng_util.c
 create mode 100644 stm32/modexpng_util.h
 create mode 100644 stm32/modexpng_vector_1024.h
 create mode 100644 stm32/modexpng_vector_2048.h
 create mode 100644 stm32/modexpng_vector_4096.h



More information about the Commits mailing list