This project became obsolete because IOTA switched to Chrysalis in 2021 and this project no longer is compatible.
There won't be an upgrade!
IOTA PoW needs a lot of computational power which makes sending transactions on smaller microcontrollers (like ARM) very slow.
This is a port of IRI's official Pearl-Diver for PoW-computation for FPGAs which speeds up the process of doing Proof-Of-Work significantly by a factor of more than 140 compared to e.g. a Raspberry Pi.
For instance, finding the nonce of a single transaction takes about 90s on a Raspi. Finding the nonce hardware accelerated by this core reduces the time to ~300ms.
The sources in the SVN contain everything for being synthesizable directly on an Altera DE1 board but the next step will be a custom PCB with Cyclon 10 which can directly plugged on top of a Raspberry Pi.
You can find the project website (with more instructions) on Project Website
Only Altera PLL and no other vendor specific core or unusual libaries needed - so it's very easy to retarget this project to different FPGAs
Here the wiring between Raspi and Altera-DE1
dcurl is a very fast Curl-Hashing-Library which not only supports graphics cards (OpenCL) but also provides highly optimized variants for SSE and AVX capable CPUs.
I did a fork of the library and added code for support of the VHDL Pearl-Diver.
The advantage is that every software working together with dcurl library can make use of the FPGA version of Curl (on Raspberry Pi – for different targets the low level control of SPI has to be replaced).
There is also a IRI variant which supports directly the dcurl-Library, so IRI can directly make use of this core
Further instructions on the Project Website
Layout, Schematic, BOM will be published openly when the custom PCB is assembled and works :)
MIT license