[Cryptech-Commits] [core/math/modexpa7] branch master updated (4612bc2 -> 2be841c)

git at cryptech.is git at cryptech.is
Wed Dec 13 19:34:51 UTC 2017


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

sra at hactrn.net pushed a change to branch master
in repository core/math/modexpa7.

    from 4612bc2  Initial commit
     add 970ae50  Start conversion to systolic architecture.
     add 46b01cb  Added generic processing elements.
     add 0b87350  Added systolic modular multiplier w/ testbench.  * works in simulator  * may have to change how internal operand buffer is pre-loaded    (shift register instead of wide mux?)  * code needs some cleanup
     add 6120612  Added Montgomery factor calculation block  * works in simulator  * passes synthesis w/o warnings  * code needs minor cleanup
     add e4b7015  Added Montgomery modulus-dependent coefficient calculation block  * work in progress
     add 52675d5  Added test vectors, use scripts from the C model to (re-)generate them.
     add 1fd8037  Finished modulus-dependent coefficient calculation module:  * fixed bug with latency compensation  * cleaned up Verilog source  * added 512-bit testbench  * works in simulator  * synthesizes without warnings
     add a69a530  Added 512-bit test vector Cleaned up Verilog a bit
     add 73fd793  Cleaned up Verilog sources
     add a62861f  Added generic/vendor-specific primitive selector for simulation.
     add caea5e3  Started porting generic multiplier to Xilinx primitives.
     add b3f9191  Fixing generic/vendor primitive switching...
     add 0da7120  Fixed generic/vendor low-level primitives switch.
     add 71b7529   * made separate file for low-level settings  * turned crazy triple multiplier array into one array with input mux
     add 72a67f0  Systolic multiplier simplified a bit:  * passes testbench tests again  * this time synthesizes fine (without major issues)
     add d887154  Started adding exponentiator module w/ testbench.
     add 344ed1b  Finished modular exponentiation module:  * works in simulator  * passes synthesis without major issues
     add 7486edd  Added pre-multiplication step. Added 512-bit testbench.
     add c3d75e5  Fixed bug in systolic multiplier (swapped indices), it only worked because the testbench set both NUM_SYSTOLIC_CYCLES = 4 and SYSTOLIC_ARRAY_LENGTH = 4. Now should work with any array power, not only 2.
     add ce4b574  Converted pe_c_out_mem two-dimensional array into a FIFO.
     add c6ea5d8  Force inference of distributed memory for the simple FIFO used to store carries.
     add 3ca2b94  Converted pe_t array into a FIFO too. No more nasty messages during synthesis. Still needs a tiny bit of cleanup.
     add b33f595  Wrote top-level module. 4096-bit core with 16-tap systolic array synthesizes just fine:  10% slices   8% block memory  33% DSPs
     add c432650  Started adding top-level wrapper.
     add bd6c4a9  Trying to fix the bug during calculation of SN in systolic multiplier.
     add e45e76b  Wide operand loader needs simplification...
     add 76e2279  Work in progress.
     add 9f77c4f  Work in progress.
     add f96ad01   * Moved systolic processing element array into a separate module.  * Finished top-level wrapper module.
     add 5c4d3b9  Added demo program that shows how to talk to the core and sign something.
     add 06dadb7   * Added readme file  * Enabled vendor-specific primitive usage for compilation
     add a44bbd3  Added 'modexpa7_' prefix to all the low-level modules in /src/rtl/pe/ to prevent clashes with low-level modules in ECDSA multipliers.
     add e480401  Work in progress.
     add d6092c8  CRT mode seems to work. Finally.
     add 3e60ece  Minor cleanup, removed unused flag register 'shreg_now_latency'.
     add 1cb1e70  Minor cleanup.
     add fc1c4fc  Added STM32 code to test CRT mode in hardware.
     add 3538f03  Exposed internal buffers for Montgomery factor F and modulus-dependent speed-up coefficient N_COEFF so that they can be retireved and stored along with the modulus. Split coreesponding buffers into "input" and "output" banks, during pre-computation F and N_COEFF are written to read-only "output" banks, during exponentiation F and N_COEFF are read from read-write "input" banks and must be supplied by user.
     add ae65d3f  Added some info to the README file.
     add 32f31c9  Merge branch 'systolic_crt' of git.cryptech.is:core/math/modexpa7 into systolic_crt
     add 058c542  Updated STM32 demo program to show how to use the precomputation block.
     add 45b348b  Cleaned up the core wrapper testbench.
     add 256d992  Added some info to the README file.
     add 30b2cc5  Merge branch 'systolic_crt' of git.cryptech.is:core/math/modexpa7 into systolic_crt
     add 2be841c  Updated the readme file.

No new revisions were added by this update.

Summary of changes:
 README.md                                          |  133 +++
 src/rtl/dsp_multiplier_a7.v                        |  522 ---------
 src/rtl/dsp_subtractor_a7.v                        |  142 ---
 src/rtl/modexpa7_buffer_core.v                     |  218 ----
 src/rtl/modexpa7_buffer_user.v                     |  197 ----
 src/rtl/modexpa7_exponentiator.v                   |  939 ++++++++++++++++
 src/rtl/modexpa7_factor.v                          |  558 ++++++++++
 src/rtl/modexpa7_modinv32.v                        |  141 ---
 src/rtl/modexpa7_montgomery_coeff.v                |  425 -------
 src/rtl/modexpa7_montgomery_multiplier.v           |  408 -------
 src/rtl/modexpa7_n_coeff.v                         |  840 ++++++++++++++
 src/rtl/modexpa7_settings.v                        |    6 +
 src/rtl/modexpa7_simple_fifo.v                     |   75 ++
 src/rtl/modexpa7_systolic_multiplier.v             |  846 ++++++++++++++
 src/rtl/modexpa7_systolic_multiplier_array.v       |  531 +++++++++
 src/rtl/modexpa7_top.v                             | 1169 +++++++++-----------
 src/rtl/modexpa7_wrapper.v                         |  492 +++++---
 src/rtl/pe/artix7/modexpa7_adder32_artix7.v        |   97 ++
 src/rtl/pe/artix7/modexpa7_dsp48e1_wrapper.v       |  159 +++
 src/rtl/pe/artix7/modexpa7_dsp48e1_wrapper_ext.v   |  159 +++
 src/rtl/pe/artix7/modexpa7_multiplier32_artix7.v   |  171 +++
 src/rtl/pe/artix7/modexpa7_subtractor32_artix7.v   |   95 ++
 src/rtl/pe/artix7/modexpa7_systolic_pe_artix7.v    |  126 +++
 src/rtl/pe/generic/modexpa7_adder32_generic.v      |   69 ++
 src/rtl/pe/generic/modexpa7_subtractor32_generic.v |   71 ++
 .../generic/modexpa7_systolic_pe_generic.v}        |  101 +-
 .../modexpa7_adder32.v}                            |  153 ++-
 src/rtl/pe/modexpa7_primitive_switch.v             |   16 +
 .../modexpa7_subtractor32.v}                       |  153 ++-
 .../modexpa7_systolic_pe.v}                        |  152 ++-
 .../bram_1rw_1ro_readfirst.v}                      |    4 +-
 .../bram_1rw_readfirst.v}                          |   62 +-
 src/stm32/modexpa7_driver_sample.c                 |  520 +++++++++
 src/stm32/test/modexp_fpga_model_vectors.h         |   94 ++
 src/tb/modexp_fpga_model_vectors.v                 |  170 +++
 src/tb/tb_exponentiator.v                          |  716 ++++++++++++
 src/tb/tb_factor.v                                 |  416 +++++++
 src/tb/tb_modexpa7.v                               |  534 ---------
 src/tb/tb_n_coeff.v                                |  425 +++++++
 src/tb/tb_systolic_multiplier.v                    |  547 +++++++++
 src/tb/tb_wrapper.v                                |  222 ++++
 41 files changed, 9116 insertions(+), 3758 deletions(-)
 create mode 100644 README.md
 delete mode 100644 src/rtl/dsp_multiplier_a7.v
 delete mode 100644 src/rtl/dsp_subtractor_a7.v
 delete mode 100644 src/rtl/modexpa7_buffer_core.v
 delete mode 100644 src/rtl/modexpa7_buffer_user.v
 create mode 100644 src/rtl/modexpa7_exponentiator.v
 create mode 100644 src/rtl/modexpa7_factor.v
 delete mode 100644 src/rtl/modexpa7_modinv32.v
 delete mode 100644 src/rtl/modexpa7_montgomery_coeff.v
 delete mode 100644 src/rtl/modexpa7_montgomery_multiplier.v
 create mode 100644 src/rtl/modexpa7_n_coeff.v
 create mode 100644 src/rtl/modexpa7_settings.v
 create mode 100644 src/rtl/modexpa7_simple_fifo.v
 create mode 100644 src/rtl/modexpa7_systolic_multiplier.v
 create mode 100644 src/rtl/modexpa7_systolic_multiplier_array.v
 create mode 100644 src/rtl/pe/artix7/modexpa7_adder32_artix7.v
 create mode 100644 src/rtl/pe/artix7/modexpa7_dsp48e1_wrapper.v
 create mode 100644 src/rtl/pe/artix7/modexpa7_dsp48e1_wrapper_ext.v
 create mode 100644 src/rtl/pe/artix7/modexpa7_multiplier32_artix7.v
 create mode 100644 src/rtl/pe/artix7/modexpa7_subtractor32_artix7.v
 create mode 100644 src/rtl/pe/artix7/modexpa7_systolic_pe_artix7.v
 create mode 100644 src/rtl/pe/generic/modexpa7_adder32_generic.v
 create mode 100644 src/rtl/pe/generic/modexpa7_subtractor32_generic.v
 copy src/rtl/{ram_1rw_1ro_readfirst.v => pe/generic/modexpa7_systolic_pe_generic.v} (60%)
 copy src/rtl/{modexpa7_adder64_carry32.v => pe/modexpa7_adder32.v} (65%)
 create mode 100644 src/rtl/pe/modexpa7_primitive_switch.v
 copy src/rtl/{modexpa7_adder64_carry32.v => pe/modexpa7_subtractor32.v} (64%)
 copy src/rtl/{modexpa7_adder64_carry32.v => pe/modexpa7_systolic_pe.v} (64%)
 rename src/rtl/{ram_1rw_1ro_readfirst.v => util/bram_1rw_1ro_readfirst.v} (96%)
 rename src/rtl/{modexpa7_adder64_carry32.v => util/bram_1rw_readfirst.v} (68%)
 create mode 100644 src/stm32/modexpa7_driver_sample.c
 create mode 100644 src/stm32/test/modexp_fpga_model_vectors.h
 create mode 100644 src/tb/modexp_fpga_model_vectors.v
 create mode 100644 src/tb/tb_exponentiator.v
 create mode 100644 src/tb/tb_factor.v
 delete mode 100644 src/tb/tb_modexpa7.v
 create mode 100644 src/tb/tb_n_coeff.v
 create mode 100644 src/tb/tb_systolic_multiplier.v
 create mode 100644 src/tb/tb_wrapper.v



More information about the Commits mailing list