This repository contains common modules instantiated by other cores:
-
lowlevel contains modules for math operations (addition, subtraction, etc). Two sets of modules are provided: generic ones can be used during simulation and when porting to a different architecture, modules from artix7 should be used when building a bitstream for the Alpha board. To use the modules first `include "cryptech_primitive_switch.vh"
, then instantiate them using `CRYPTECH_PRIMITIVE_*
macro.
-
memory contains wrappers for block memories:
bram_1rw_readfirst
is single read-write port
bram_1rw_1ro_readfirst
is one read-write, one read-only port
bram_1wo_1ro_readfirst
is one write-only, one read-only port (useful for storing private keys)
-
modular contains multiprecision modular adder and subtractor
-
multiword contains multiprecision integer comparator and mover/copier
-
util has the following:
cryptech_clog2.vh
replacement for Xilinx' notorious clog2()