All Projects → stiggy87 → Zynqbtc

stiggy87 / Zynqbtc

A Bitcoin miner for the Zynq chip utilizing the Zedboard.

Labels

Projects that are alternatives of or similar to Zynqbtc

Ophidian
Ophidian's Mirror Repository on github. https://gitlab.com/eclufsc/eda/ophidian
Stars: ✭ 32 (-56.76%)
Mutual labels:  vhdl
Vexriscv
A FPGA friendly 32 bit RISC-V CPU implementation
Stars: ✭ 1,041 (+1306.76%)
Mutual labels:  vhdl
Logi Projects
Stars: ✭ 63 (-14.86%)
Mutual labels:  vhdl
Open Source Fpga Bitcoin Miner
A completely open source implementation of a Bitcoin Miner for Altera and Xilinx FPGAs. This project hopes to promote the free and open development of FPGA based mining solutions and secure the future of the Bitcoin project as a whole. A binary release is currently available for the Terasic DE2-115 Development Board, and there are compile-able projects for numerous boards.
Stars: ✭ 989 (+1236.49%)
Mutual labels:  vhdl
Fpga Fft
A highly optimized streaming FFT core based on Bailey's 4-step large FFT algorithm
Stars: ✭ 45 (-39.19%)
Mutual labels:  vhdl
Aws Fpga
Official repository of the AWS EC2 FPGA Hardware and Software Development Kit
Stars: ✭ 1,091 (+1374.32%)
Mutual labels:  vhdl
Image Processing
Image Processing Toolbox in Verilog using Basys3 FPGA
Stars: ✭ 31 (-58.11%)
Mutual labels:  vhdl
Digital Design Lab
Stars: ✭ 74 (+0%)
Mutual labels:  vhdl
Reonv
ReonV is a modified version of the Leon3, a synthesisable VHDL model of a 32-bit processor originally compliant with the SPARC V8 architecture, now changed to RISC-V ISA.
Stars: ✭ 47 (-36.49%)
Mutual labels:  vhdl
Q27
27-Queens Puzzle: Massively Parellel Enumeration and Solution Counting
Stars: ✭ 60 (-18.92%)
Mutual labels:  vhdl
Hdmi2usb Numato Opsis Sample Code
Example code for the Numato Opsis board, the first HDMI2USB production board.
Stars: ✭ 40 (-45.95%)
Mutual labels:  vhdl
Scaffold
Donjon hardware tool for circuits security evaluation
Stars: ✭ 43 (-41.89%)
Mutual labels:  vhdl
Haddoc2
Caffe to VHDL
Stars: ✭ 57 (-22.97%)
Mutual labels:  vhdl
Flearadio
Digital FM Radio Receiver for FPGA
Stars: ✭ 36 (-51.35%)
Mutual labels:  vhdl
J1sc
A reimplementation of a tiny stack CPU
Stars: ✭ 64 (-13.51%)
Mutual labels:  vhdl
Vhdl Mode
A package for Sublime Text that aids coding in the VHDL language.
Stars: ✭ 31 (-58.11%)
Mutual labels:  vhdl
Spi Fpga
SPI master and slave for FPGA written in VHDL
Stars: ✭ 50 (-32.43%)
Mutual labels:  vhdl
Simon speck ciphers
Implementations of the Simon and Speck Block Ciphers
Stars: ✭ 74 (+0%)
Mutual labels:  vhdl
Yafc
Yet Another Forth Core...
Stars: ✭ 68 (-8.11%)
Mutual labels:  vhdl
Sublime Vhdl
VHDL Package for Sublime Text
Stars: ✭ 58 (-21.62%)
Mutual labels:  vhdl

ZynqBTC

A Bitcoin miner for the Zynq chip utilizing the Zedboard.

Goal

The main goal of this is a proof-of-concept of making the Zedboard a fully functional Bitcoin miner for the open source community.

TODO

  • Complete/Verify the SHA256 IP in HLS
  • Create the Zynq PL utilizing the SHA256 IP as well as AXI4 FIFO Stream and AXI4 Interconnect (for multiple miners)
  • Create the Arbiter in C/C++ for communication to the AXI4 Interconnect
  • Configure the ARM to run Linux on Proc 0 and Arbiter on Proc 1
  • Support the Stratum protocol (getwork will not be supported in the main branch. If getwork version is requested, a new branch will be created).
  • Benchmark!!!!

Basic Design

The basic design is to utilize the ARM dual core processor to handle communication to a pool and act as an arbiter for the miners. Utilizing AXI4 capabilities, it will be able to communicate with the programmable logic (PL) with ease.

  • Processor 0 - This is the main communication to the outside world. This processor will run Linux with Python/Perl scripts to handle datatransmission to/from pool and to/from arbiter
  • Processor 1 - This is a bare-metal program which will communicate with Processor 0 for jobs, and the PL to distribute/read in work
  • PL - Where the miners live.

Features

A fully functional Zynq Bitcoin Miner. Since not everything about it are currently defined below are specifications:

  • Full AXI4 support -- The design will utilize the AXI4 specification for communication between the ARM to the PL and the subsystems on the PL
  • Customizability -- The design will allow the end user to modify any point of the design, of course, within limitation of the WebPACK licensing for Zynq (this means some software/IP might not be available)

Key Concepts

  • Use Vivado HLS to create and generate the SHA256 algorithm in an AXI4 FIFO format in order to get the best performance while limiting memory usage
  • Limit HDL coding. (This means far fewer mistakes in the long run)
  • "Productizing" - Each part of this system should be able to stand on its own, which allows anyone to create their own Zynq miner, or modify the current one with better results.
    • SHA256 - Standalone AXI4 Spec'd IP
    • Linux - (Already standalone)
    • Arbiter - Written in C/C++ and written straight to the ARM processor using Xilinx SDK
    • Packaged goods (All the above should be workable from an SD card)

SHA256 IP

The SHA256 algorithm will be created in Vivado HLS is a High-Level Synthesis tool provided by Xilinx. The tool will then be able to output a valid IP to use within the design itself, but it does provide the HDL in case a user wants to make minor tweaks to the code (but it will be invalidated if it is regenerated).

Currently, all HLS related code is generated using the Vivado HLS 2012.4 30-day trial license provided by Xilinx.

Wiki

FAQ - https://github.com/stiggy87/ZynqBTC/wiki/FAQ

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].