Table of Contents
In this lab you will familiarize yourself with digital numbers, digital systems, and applications of digital systems by experimenting with the digital FPGA development board that you will use throughout the semester.
The average time to complete this lab is 1 hour.
Learning Outcomes
- Become familiar with the lab FPGA board.
- Learn about simple logic equations, binary numbers, and applications of digital systems.
Exercise #1 - Introduction to the Basys 3 Development Board
During the course of the semester you will build various digital systems using digital logic. You will complete these using the Basys 3 development board. You will be using this board throughout the semester so it is important to familiarize yourself with the board and learn how to use it. In this exercise, you will use the Basys 3 development board to explore a variety of digital system functions.
A picture of this board is shown below – you should have purchased your own board for use in this class.
In the center of this board is an Integrated Circuit (IC) device called a Field Programmable Gate Array or FPGA (this is the square device labeled ARTIX-7). This FPGA device is the heart of the board and contains the programmable digital logic that you will use in most of your lab exercises. An FPGA device is a programmable digital circuit that can be configured to perform many different functions based on the user’s digital design. You will be creating digital circuit designs during the semester and placing these circuits onto the FPGA device. The circuit that is configured onto the FPGA is defined in a file called a bitstream. These files are created by software from the manufacturer of the FPGA. You will be creating your own circuit bitstreams throughout the semester, but not in this lab.
The following page contains a video giving an overview of this Basys 3 board: Overview of the Basys 3 Board. Watch the video.
Now, check to make sure the blue jumpers are set as shown in the Basys 3 jumpers tutorial. If they aren’t, correct them.
What is the proper jumper setting of Jumper JP2?
(You’ll have to look closely at the board to find which one is JP2.)
What is the proper jumper setting of Jumper JP1?
Now, connect the Basys 3 board to your host computer and turn on its power using the switch in the top left corner of the board. When you first turn the board on, the FPGA device will be programmed with a configuration file for a digital circuit that is saved on the board’s memory. This digital circuit implements a number of functions on the seven-segment display, switches, buttons, and VGA display. Once the FPGA has been configured (as indicated by the DONE LED), the circuit is operational. Answer the following questions about the functionality of this digital circuit:
What do you see on the seven-segment displays?
Describe, for each one, what happens when you push the various buttons (BTNC, BTNL, BTNR, BTNU, BTND)?
Exercise #2 - Digital Logic and Binary Numbers
In this next exercise, you will configure the FPGA with a different circuit. To use and experiment with this new circuit, you need to load this configuration, or bit, file onto the FPGA. You will be loading bit files on the the FPGA for every lab each week. You will be creating your own bit files in future lab assignments from the circuits you design.
In this case, download the above bitfile onto your computer using whatever mechanism your browser supports.
Follow this tutorial (top part) to program the FPGA with the new bit file using Xilinx tools.
After being programmed, the FPGA should now be acting differently in its behavior than when you first powered it on.
Seven-Segment Display
The Basys 3 board has a 4-digit seven-segment display. You will create a circuit to control this display in a future lab.
Press different buttons on the board to see what happens to this display. When none of the buttons are pressed, the display on the right-most digit is determined by the settings of the first four switches (SW3-SW0).
Determine the value of the digit for all 16 combinations of switches SW3-SW0.
SW3 | SW2 | SW1 | SW0 | Digit |
---|---|---|---|---|
0 | 0 | 0 | 0 | |
0 | 0 | 0 | 1 | |
0 | 0 | 1 | 0 | |
0 | 0 | 1 | 1 | |
0 | 1 | 0 | 0 | |
0 | 1 | 0 | 1 | |
0 | 1 | 1 | 0 | |
0 | 1 | 1 | 1 | |
1 | 0 | 0 | 0 | |
1 | 0 | 0 | 1 | |
1 | 0 | 1 | 0 | |
1 | 0 | 1 | 1 | |
1 | 1 | 0 | 0 | |
1 | 1 | 0 | 1 | |
1 | 1 | 1 | 0 | |
1 | 1 | 1 | 1 |
LEDs
Above each of the 16 switches is a small green LED (labeled LD15 to LD0). The last five LEDs from left to right (LD4 to LD0) are each outputs to boolean logic equations based on switches SW6-SW4 (from left to right).
Determine the state of each LED (on=1, off=0) for all 8 combinations of switches SW6-SW4.
SW6 | SW5 | SW4 | LD4 | LD3 | LD2 | LD1 | LD0 |
---|---|---|---|---|---|---|---|
0 | 0 | 0 | |||||
0 | 0 | 1 | |||||
0 | 1 | 0 | |||||
0 | 1 | 1 | |||||
1 | 0 | 0 | |||||
1 | 0 | 1 | |||||
1 | 1 | 0 | |||||
1 | 1 | 1 |
Final Pass-Off
Do the pass-off in person with a TA or by video:
Demonstrate the operation of your board and describe your answers to the experiments. Be sure to show: a) what happens when you flip the switches and push the buttons on the board when it is first powered up, and b) show how the new bitfile you used to program the board works and affects its operation.
Final Questions
Answer the following questions:
How many hours did you work on the lab?
Provide any suggestions for improving this lab in the future.