Giter Site home page Giter Site logo

zynqbtc's Introduction

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

zynqbtc's People

Contributors

stiggy87 avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.