[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