zcash-fpga/README.md

46 lines
1.7 KiB
Markdown

# zcash-fpga
Repo for Zcash FPGA projects code and documents. Architecture document is [here]().
## apps
This contains general apps used in generating data / interfacing with the FPGA
## aws
This contains the top / project files for building on AWS (Amazon FPGA)
## bittware_xupvvh
This contains the top / project files for building on the Bittware VVH board
## ip_cores
These contain custom IP cores used by the projects in this repo.
* Hashing
- Blake2b - single pipe implementation of blake2b and a pipline-unrolled version for high performance.
- SHA256 and SHA256d
* Packages and interfaces that are shared
* Fifo implementations
* Blocks for parsing/processing streams, as well as testbench files
* Karabutsa multiplier
* Barret reduction for modulo reduction when the modulus does not allow fast reduction
* Resource arbitrators
* General purpose elliptical curve point modules
- Supports point multiplication, addition, doubling in Fp and Fp^2
## zcash_fpga
This is the top level for the Zcash FPGA. It targets both Xilinx Virtex UltraScale+ FPGA VCU118 Evaluation Kit, and Amazon EC2 F1 Instances.
It optionally contains the following top-level engines (you can optionally include in a build via parameters):
* Equihash verification engine
- Verifies the equihash solution and difficulty filters
* EC secp256k1 signature verification engine
- Uses efficient endomorphism to reduce key bit size
- Signature verification calculates multiple EC point operations in parallel, using a resource-shared single fully pipelined karabutsa multiplier and quick modulo reduction technique
* EC bls12-381 coprocessor
- Point multiplication in Fp and Fp^2
- ate Pairing