Basys 3 General I/O 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
Serial Flash for Application Data X
USB HID Host With Mouse X
USB HID Host With Keyboard X


Introductory level demonstration project for the Basys3.




  • Basys3 FPGA board
  • Micro-USB cable
  • Monitor with a VGA port
  • VGA cable
  • USB mouse


  • Vivado Design Suite 2016.4


Basys 3 GPIO Project Repository – ZIP Archive GIT Repo

Download and Launch the Basys 3 GPIO 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 extra hardware requirements and setup.
2) In order to fully use the demo, you will need to connect a serial terminal to your Basys 3. Plug your board into your computer with a Micro USB cable and make sure the board is turned on. Then open a serial terminal (such as TeraTerm) on your computer. In the terminal application, setup the serial port to connect to the appropriate port for your board, with a baud rate of 9600. Then return to the Github Projects Tutorial to finish programming and running the demo.

3) To use the VGA Monitor and USB Mouse features of the demo, you will need to connect both to your board. This does not need to be done before launching the demo, and more details will be provided in the next section.

Using the Basys 3 GPIO Demo

1. Switches and LEDs

All sixteen of the user switches are tied to their corresponding LED. Every time a switch is toggled, the LED directly above it will toggle with it.

2. Buttons and 7-Segment Delay

The seven segment display is counting all digits from 0 to 9 when no buttons are pressed. If BTNU is pressed, the first digit on the seven segment display is turned off. BTNL turns off the second digit, BTNR turns off the third, and BTND turns off the fourth. BTNC turns off the entire display and resets the counter.

3. VGA Monitor

To use the VGA output demo, plug in your monitor to the Basys3 VGA port. The monitor screen will have series of moving patterns as seen below.

4. USB Mouse

To see the USB mouse portion of the demo, plug a USB mouse into the J2 USB port on the Basys3 with the monitor still connected. On the screen, you should be able to see your mouse pointer and move it around.

5. UART Communication

To see the UART communication channel, open a terminal program on your computer set to 9600 baud, 8 data bits, no parity bit and 1 stop bit. On reset or BTNC, the Basys3 will print BASYS3 GPIO/UART DEMO! to the terminal. On a button press other than BTNC, the terminal will print Button press detected!