This is an old revision of the document!


Basys3 XADC Demo


Features Used

Not Used Used
16 User Switches X
16 User LEDs X
5 User Push Buttons X
4-digit 7-Segment Display X
4 Pmod Connectors X
XADC Analog Input X
12-bit VGA Output X
USB-UART Bridge X
Serial Flash for Application Data X
USB HID Host With Mouse X
USB HID Host With Keyboard X

Description

This simple XADC Demo project demonstrates a simple usage of the Basys3's XADC port capability. The behavior is as follows:

  • The 16 User LEDs increment from right to left as the voltage difference on the selected XADC pins gets larger.
  • The two seven segment displays show the voltage difference on the AD6, AD7, AD14, AD15 pins in volts.
  • sw0 and sw1 select which channel to read from

How to Build and Program

You will need…

1. Vivado installed on your computer
2. Basys3 board from digilent
3. Wires and a voltage to measure

1. Download the Project

Download the project zip file here. basys3xadc.zip Once you have downloaded the project, unzip it in the location of your choosing.

2. Load the Vivado Project

In your now unzipped project, open the file basys3XADC.xpr. This should open your project in Vivado.

3. Synthesize, Implement and Generate Bitstream

To complete this step all that you need to do is click Generate Bitstream on the left hand menu towards the bottom. Vivado will run through both Run Synthesis and Run Implementation before it generates the bitstream automatically. If you want, you can click each step by itself in the order of Run Synthesis, Run Implementation and then Generate Bitstream.

4. Connect and Program the Basys3

Once you have generated your bit file, Click on the hardware manager and connect to your board by choosing the local server option.

After your board is connected, just click program to load the XADC demo onto your Basys3.

Running the Basys3 XADC Demo

This portion will help you run the demo and observe all its features.

1. Applying a voltage to the XADC port

For this demo, the AD6, 7, 14 and 15 pins are used on the JXADC header. We hooked up a signal generator to our pins. All of the other pins were grounded to avoid coupling.

2. Seven Segment Display and LEDs

The 7-Segment display shows the current voltage across the selected xadc pins. The LEDs turn on from right to left as the input voltage increases.

3. Selecting a channel

To display a different channel on the display and LEDs, change sw0 and sw1 to the desired channel.