Zybo Z7 XADC Demo



This simple XADC demo is a verilog project made to demonstrate usage of the Analog to Digital Converter hardware of the Zybo Z7.

  • An XADC IP core is used to read the voltage differences of each of the four vertical pairs of pins - channels - of the XADC Pmod Port.
  • The LED associated with a channel brightens as that channel's voltage increases.

Features Used

Not Used Used
4 slide switches X
5 LEDs X
2 RGB LEDs (1*) X
6 push buttons X
Micro SD card connector X
HDMI Source X
Pcam camera connector X
Audio codec w/ three 3.5mm jacks X
10/100/1000 Ethernet PHY X
1GB 1066MHz DDR3 Memory X
Serial Flash X
6 Pmod ports (5*) X
Pmod for differential analog signals X

*The -7010 variant has several differences that are shown in parenthesis above



  • Basic familiarity with Vivado
    • This experience can be found by walking through our “Getting Started with Vivado” guide


  • Zybo Z7 Zynq board
  • Micro-USB cable
  • Wires and a voltage to measure


  • Vivado Design Suite 2016.4
    • Newer/older versions can be used, but the procedure may vary slightly


Zybo Z7-10 XADC Project Repository – ZIP Archive GIT Repo

Zybo Z7-20 XADC Project Repository – ZIP Archive GIT Repo

Download and Launch the Zybo Z7 XADC Demo

1) Follow the Using Digilent Github Demo Projects Tutorial. This is an HDL design project, and as such does not support Vivado SDK, select the tutorial options appropriate for a Vivado-only design. Return to this guide when prompted to check for additional hardware requirements and setup.
2) In order to use the demo, you will need to connect a circuit to the XADC Pmod Port in order to measure a voltage. The following example shows a voltage divider that produces each voltage between 0 and 1 Volt in increments of 0.33 Volts. This circuit uses a chain of three 1KOhm resistors in series with a 4.7 KOhm and 2.2 KOhm resistor. The circuit is tied to the 3V3 and GND pins of the XADC Pmod header to provide power. Each of the 'n' pins, the lower row of the XADC port, are connected to ground.


Voltages to be measured should be in the range of 0 to 1.0 Volts.

3) Once you have connected your circuit to your Zybo Z7, return to the Github Demo Projects tutorial to finish programming your board.

Using the Zybo Z7 XADC Demo

1) Each channel will control the brightness of an LED as shown in the following table.
Channel Name LED # Pmod Pin #s
AD14 LD0 1 & 7
AD7 LD1 2 & 8
AD15 LD2 3 & 9
AD6 LD3 4 & 10
2) Changing voltages through reconfiguring the circuit while the demo is running is fine. If you built the example circuit above, feel free to move jumpers around to test out the different nodes of the voltage divider.