aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-10-21Refactored general worker modulePavel V. Shatov (Meister)
Added modular subtraction micro-operation
2019-10-03Added more micro-operations, entire Montgomery exponentiation ladder works now.Pavel V. Shatov (Meister)
2019-10-03Added more micro-operations, also added "general worker" module. The worker ↵Pavel V. Shatov (Meister)
is basically a block memory data mover, but it can also do some supporting operations required for the Garner's formula part of the exponentiation.
2019-10-03Expanded micro-operation parameters (added dedicated control bit to force ↵Pavel V. Shatov (Meister)
the B input of the modular multiplier to 1, this is necessary to bring numbers out of Montgomery domain).
2019-10-03Reworked storage architecture (moved I/O memory to a separate module, since ↵Pavel V. Shatov (Meister)
there's only one instance of input/output values, while storage manager has dual storage space for P and Q multipliers). Started working on microcoded layer, added input operation and modular multiplication.
2019-10-03Redesigned storage modules, added top-level module, added I/O storage space.Pavel V. Shatov (Meister)
2019-10-01Redesigned core architecture, unified bank structure. All storage blocks nowPavel V. Shatov (Meister)
have eight 4kbit entries and occupy one 36K BRAM tile.
2019-10-01Major rewrite (different core hierarchy, buses, wrappers, etc).Pavel V. Shatov (Meister)
2019-10-01Implemented the final stage of the Montgomery modular multiplication, i.e.Pavel V. Shatov (Meister)
addition of AB and M then reduction by right-shift.
2019-10-01Further work on the Montgomery modular multiplier. Added the thirdPavel V. Shatov (Meister)
"rectangular" stage of the multiplication process, i.e. computation of how many copies of the modulus N to add to the intermediate product AB to zeroize the lower half: M = Q * N.
2019-10-01Further work on the Montgomery modular multiplier. Can now to the "triangular"Pavel V. Shatov (Meister)
part of multiplication, i.e. compute the "magic" reduction coefficient Q = LSB(AB) * N_COEFF.
2019-10-01Started working on the pipelined Montgomery modular multiplier. Currently canPavel V. Shatov (Meister)
do the "square" part of the multiplication, i.e. compute the twice larger intermediate product AB = A * B.
2019-10-01Moved to "modexpng_fpga_model" repo, this one was meant for Verilog.Pavel V. Shatov (Meister)
2019-08-19* More cleanup (got rid of .wide. and .narrow.)Pavel V. Shatov (Meister)
* Working microcode for non-CRT exponentiation (i.e. when only d is known)
2019-08-19* MASSIVE CLEANUPPavel V. Shatov (Meister)
* All the data buses are now either 16 or 18 bits wide for consistency * More consistent naming of micro-operations * More debugging options (can specify which ladder iteration to dump)
2019-08-19* Added more micro-operationsPavel V. Shatov (Meister)
* Working microcode for CRT exponentiation * Further refactoring
2019-08-19* Started conversion of the model to use micro-operationsPavel V. Shatov (Meister)
* Added initial operand bank structure (working "wide"/"narrow" pairs plus input & output banks). The core has four pairs of working banks (X.X and X.Y for Montgomery ladder with modulus P, Y.X and Y.Y for modulus Q)
2019-08-19* Added more debugging options:Pavel V. Shatov (Meister)
- intentionally trigger internal overflow handler - dump MAC inputs - dump intermediate numbers during the reduction phase * Bus widths changes * Some cosmetic changes
2019-04-04Intermediate version to fix recombinaton overflow bug.Pavel V. Shatov (Meister)
2019-04-04Fixed 4096-bit test vector generation.Pavel V. Shatov (Meister)
2019-04-02Removed some boilerplate code, all the three multiplication flavours are nowPavel V. Shatov (Meister)
working consistently. Still need to rework recombination routines.
2019-04-02Cosmetic fixes.Pavel V. Shatov (Meister)
2019-04-02Same changes for "triangle" multiplication phase as for the "square" onePavel V. Shatov (Meister)
(debugging output, simpler MAC clearing and index rotation logic).
2019-04-02Rewrote "square" recombination to match how it works in hardware.Pavel V. Shatov (Meister)
2019-03-30 * more debugging outputPavel V. Shatov (Meister)
* more precise modelling of DSP slice
2019-03-24Simplified index calculation and accumulator clearing logic.Pavel V. Shatov (Meister)
Better debug printout of accumulators.
2019-03-23Added optional output of intermediate quantities for debugging.Pavel V. Shatov (Meister)
Reworked index rotation code for better readability.
2019-03-23Mutate blinding tuple.Pavel V. Shatov (Meister)
2019-03-23Added blinding into math model.Pavel V. Shatov (Meister)
2019-03-23ModExpNG ("Next Generation") math model.Pavel V. Shatov (Meister)
2019-03-23Updated readme file.Pavel V. Shatov (Meister)
2019-03-23Added blinding support to test vector generation scripts.Pavel V. Shatov (Meister)
2019-03-23Instructions on how to use the vector generation scripts.Pavel V. Shatov (Meister)
2019-03-23Don't track the test vector itself.Pavel V. Shatov (Meister)
2019-03-23Randomized test vector generation scripts for ModExpNG.Pavel V. Shatov (Meister)