Here is a maintained list of our step-by-step online tutorials and examples for the Xilinx Virtex-5 FPGA based on the ML505 Evaluation Platform from Xilinx. The following tutorials guide the user through various FPGA designs that combine the Microblaze with custom user logic peripherals.
Xilinx Platform Studio (XPS) Tutorials for ML505
The following tutorials develop working embedded projects that employ the Microblaze soft processor. They are developed using EDK version 10.1 of the Xilinx Platform Studio (XPS).
Version 13.1- Convert an ML505 EDK project for the XUPV5
For some reason, the Base System Builder in EDK doesn't support the XUPV5 board so when making an EDK project for the XUPV5 we have to select the ML505 board and modify the project settings later. If you have not yet created an EDK project, you should ...
- Creating a project using the Base System Builder
What am I learning here? In this post we'll look at using the Base System Builder in EDK version 13.1. Specifically you'll learn: How to create an EDK project with the Base System Builder How to add a software application to an EDK project H...
- Aurora to Ethernet Bridge
Tutorial Overview In the last tutorial we implemented the embedded Tri-mode Ethernet MAC and tested it by looping back Ethernet packets and monitoring them with Wireshark. In this tutorial, we will again implement the EMAC but this time we will link...
- Tri-mode Ethernet MAC
Tutorial Overview The Virtex-5 Embedded Tri-mode Ethernet MAC is useful for designs requiring Ethernet connectivity. Fortunately, Xilinx has made it easy for us to start developing with the Ethernet MACs by providing several online examples and appl...
- Other Tutorials and Examples
Here are links to some useful tutorials and examples hosted on other websites, including Xilinx: Xilinx EDK Concepts, Tools, and Techniques A Hands-on Guide to Effective Embedded System Design
- Microblaze 16x2 LCD Driver
Tutorial Overview In this example, we will develop a driver for the 16x2 character LCD on the ML505/6/7 board. The LCD driver will be mostly a Microblaze design, as opposed to being an IP design. The physical interface to the LCD will be made throug...
- Timer with Interrupts
Tutorial Overview In this tutorial we will add code to a peripheral template generated by the Peripheral Wizard to create a simple timer. The peripheral will generate an interrupt when the timer expires. The Microblaze will process the interrupt thr...
- Integrating a VHDL Design into a Peripheral
Tutorial Overview This tutorial is similar to the previous one titled: Integrating a Blackbox into a Peripheral however in this case, instead of integrating an .ngc file into a peripheral, we integrate one or more VHDL files. Sometimes we have a VHD...
- Integrating a Blackbox into a Peripheral
Tutorial Overview Sometimes we have an .ngc file from CORE Generator (or some other source) that we would like to bring into EDK as a peripheral. This project is a simple example of integrating a blackbox design into a peripheral generated by the Pe...
- Create a Peripheral using the Peripheral Wizard
Tutorial Overview In this tutorial we will create a simple project that uses our own IP peripheral (instead of using the XPS General Purpose IO peripheral provided by Xilinx) to read from the DIP switches and write to the LEDs. The software applicat...
- Manually Add a Peripheral to a Project
Tutorial Overview In the previous example, we created a project using the BSB and all of the work related to the hardware design was done by the BSB. In this example, we will create the same simple project, but this time we will add the GPIO for the...
- Create a Project Using the Base System Builder
Tutorial Overview In this example, we will develop a simple FPGA project using the Base System Builder that includes three peripherals: the RS232 UART and two GPIOs. One GPIO will be used for the DIP switches and the other for the LEDs. We will then...
Tutorials and Examples
The examples on this website are provided in a tutorial form. Each tutorial guides the user through the entire process of building a working project from “scratch”. The tutorials guide the user through all steps, with explanations, screen shots and source code. Each tutorial extends or builds on the concepts developed in the previous tutorials. It is recommended that beginners follow the tutorials in sequence.
Scope and Requirements
Most of these projects involve use of the Microblaze soft processor and interfacing it with peripherals developed in VHDL. It is assumed that the reader has a basic understanding of the C programming language and VHDL. All debugging is done through one of the RS232 ports of the ML505 Evaluation Platform. It is therefore necessary that the user have a PC with an RS232 port (comport/serial port) or RS232-to-USB converter, and a copy of Hyperterminal or other terminal program. For the required Hyperterminal settings, click here.


