You are here
Laboratory 1
In laboratory 1 you will design a system-on-chip using the Xilinx development suite and targeted at the XUP development board. Your design will contain a MicroBlaze soft-processor, a serial port, and three GPIO devices. The processor will be connected to the serial port and GPIO peripherals in a shared-bus architecture. You will then program this system-on-chip, using the C programming language, to print out your name five times to the screen of a desktop computer which is connected to the XUP development board using the serial port.
In this laboratory your system-on-chip design will consist of three major components:
- A MicroBlaze soft-processor
The MicroBlaze will be the processor in your system-on-chip design. The program that you design in this laboratory will be compiled to the MicroBlaze ISA and then executed by the processor that you instantiate within your design. Compilation is done inside of the Xilinx development suite and makes use of the GCC compiler contained within.
- A serial port
The serial port in this system-on-chip design provides communication between the XUP development board and the desktop computer connected to it. In this laboratory your program will print out a message by sending characters one at a time from the XUP to the desktop computer. These characters will be received on the desktop computer and printed out to the screen.
- Three GPIO devices
The three GPIO devices in your system-on-chip design will control the LED, push button, and DIP switch peripherals contained on the XUP development board. In this laboratory these hardware peripherals will not be used by the software program, however, in future laboratories these peripherals will be used and it is beneficial to learn how to instantiate them in your system-on-chip design.
Before you begin this laboratory we suggest that you become familiar with the Xilinx development suite. Please read the Introduction to EDK, Base System Builder, and XPS Interface tutorials before you begin.
Project Assignment
- Use the base system builder to create a basic system-on-chip
- Create a software project and make it print out your name five times
- Synthesize your system-on-chip, compile your software project, and combine them into a bitstream
- Download your bitstream onto the XUP development board and execute it
This may not seem like much, but, at the end of this laboratory you will have created a system-on-chip and executed a program on top of it in a bare metal environment. This represents a very basic but fully functional embedded system.
Project Directions
The directions for completing this project can be found on the Laboratory 1 Directions page. This page contains step-by-step directions on how to build your system-on-chip design and software application. Additionally, there is a screencast of the entire project which shows how the project is completed.
It will be to your benefit to either print out the project directions or to have the project directions page open while you are doing this laboratory.
Project Questions
- What is an FPGA?
- What is a system-on-chip? Why is it different from your desktop computer system?
- What does soft-core IP mean?
- What is are MHS, MSS, and UCF files?
- What does it mean to cross-compile a program?
- Why does it take so long to build the HW portion of your system?
- How does the desktop computer program the FPGA, how does it monitor the FPGA?
