A personal, academic, and career blog.



View My GitHub Profile

View My LinkedIn Profile

Embedded Linux on the Zybo Z7-10

TODO add introduction and motivation

This work is based on a tutorial for the Zybo (a predecessor to the Zybo Z7-10) from Instructibles.com by Commanderfranz.

Table of Contents

Required Materials

  • Digilent Zybo Z7-10 Development Board (with power brick and USB cable)
  • Xilinx Vivado Design Suite (2017.4 or later)

Setup Vivado

Download and Install Vivado

This tutorial uses the Xilinx Vivado Design Suite (version 2017.4 or later), which can be downloaded from Xilinx’s Vivado site. Vivado is commercial software, but there is a free edition called Vivado HL WebPACK Edition that will work for the purposes of this tutorial. Please download and install Vivado Design Suite 2017.4 or later, if you don’t have it already. If your edition of Vivado is something other than version 2017.4 then be sure to replace 2017.4 with your correct version (where appropriate) while following this tutorial.

Add Digilent Board Support

Digilent supplies Vivado board support files, which are files that define the interfaces on the various Digilent boards, e.g. slide switches, push buttons, LEDs, DDR Memory, Ethernet ports, etc. These board support files are necessary for Vivado to be able to work with Digilent boards, like the Digilent Zybo Z7-10 that we’ll be using. The Digilent board support files do not come installed be default in Vivado, so they must be installed manually. Digilent stores their board support files in the Digilent/vivado-boards GitHub repository.

To install the board support files, download a zip archive of the master branch of that repository and extract it to a temporary location. Among the extracted files there are two folders, old and new. old contains board support files for Vivado 2014.4 and earlier. new contains board support files for Vivado 2015.1 and later. The installation directory for Vivado (C:\Xilinx\Vivado\2017.4\ by default) contains the directory \data\boards\board_files, which is where we will place the board support files. Copy the entire contents of the \new\board_files directory from the zip archive and paste it into the board files directory (C:\Xilinx\Vivado\2017.4\data\boards\board_files by default), merging the contents of the two directories. Once these files are placed in the board support directory, Vivado is configured to work with Digilent boards.

Familiarize Yourself with Vivado

Xilinx provides UG910: Vivado Design Suite User Guide, which was released with Vivado 2017.4, that provides a comprehensive overview of the Vivado Design Suite. In addition, Digilent has a Getting Started with Vivado tutorial that provides a good overview of most of the Vivado features that will be used in this tutorial.

Download Base System

Download the Zybo Base System Design from the website and unzip it into our working directory (our working directory is named tutorial throughout this tutorial). For more information on the hardware design, please refer to Project Guide under doc folder.

Open the Base System Design

https://reference.digilentinc.com/reference/programmable-logic/start https://reference.digilentinc.com/reference/programmable-logic/zybo/start https://reference.digilentinc.com/reference/programmable-logic/zybo-z7/start https://reference.digilentinc.com/learn/programmable-logic/tutorials/zybo-z7-xadc-demo/start https://reference.digilentinc.com/learn/programmable-logic/tutorials/github-demos/start http://www.instructables.com/id/Embedded-Linux-Tutorial-Zybo/

https://hackernoon.com/heres-how-i-built-a-private-blockchain-network-and-you-can-too-62ca7db556c0 https://en.wikipedia.org/wiki/Bitcoin_network https://github.com/Digilent/linux-digilent https://github.com/Digilent/u-boot-Digilent-Dev https://en.wikipedia.org/wiki/Proof-of-work_system

https://github.com/openssl/openssl/blob/master/crypto/sha/sha256.c https://www.google.com/search?q=sha-256+C&ie=utf-8&oe=utf-8&client=firefox-b-1-ab https://www.freertos.org/FreeRTOS-Plus/index.shtml https://github.com/cjlano/freertos/blob/master/FreeRTOS/Demo/Common/Minimal/semtest.c http://www.cast-inc.com/ip-cores/encryption/sha-256/index.html https://github.com/txomon/axi-sha256/blob/master/hdl/vhdl/axi_sha256_sl.vhd https://github.com/ethereum-mining/ethminer/blob/a2f014ec545ec36963119af4cbd92b718120fa51/libethcore/EthashAux.h http://www.fpgadeveloper.com/2014/08/creating-a-custom-ip-block-in-vivado.html https://www.xilinx.com/products/intellectual-property/device-family/nav-zynq-7000.html

http://ieeexplore.ieee.org/document/7045415/ http://ieeexplore.ieee.org/abstract/document/7045415/