News
- 25-10-2008: web and blog opening
Project Overview
This project is dedicated to get a fully working SMP system on FPGA using the MicroBlaze soft-core processor and a modified version of xilkernel with SMP support.
The project page is divided in the following sections:
-
Hardware: comments and documentation about the hardware needed to build an SMP system with MicroBlaze.
-
Software: description and examples about the modifications that we have introduced in xilkernel for supporting more than one processor.
-
Demos: some downloadable demos ready to build with Xilinx Platform Studio.
-
Blog: a place to comment anything you want about the project.
-
TODO: things that should be implemented and I'm working on.
For comments, questions, suggestions, etc you can use MicroBlazeSMP Blog, or write to me at pablo.huerta@urjc.es with "MicroBlaze SMP" on the subject line.
Comments and suggestions are welcomed!
Hardware
For building an SMP system with Microblaze that can work with the modified xilkernel version we have developed, you need:
-
More than one MicroBlaze :-)
-
A shared memory region available to all the processors in the system, and mapped in the same addresses for all processors. This memory should be big enough to hold both the OS and the user application.
-
A private memory region for each processor in the system. This memory is used as stack when the OS executes some kernel functions. 1 KB is enough, but in the examples available in the "Demos" section bigger memories are used because of the restrictions of the FPGA minimun blockram size
-
A mechanism for identifying the processors. The PVR register of the MicroBlaze can be used, but in the examples a register for each processor connected through an FSL bus will be used. The identifiers of the processors should be numbered 0, 1, 2 . . .
-
A mechanism for synchronizing the processors. The opb_mutex from Xilinx can be used, but when this project started opb_mutex didn't exist so we created our own peripheral named hardware_mutex and it will be used in the examples in "Demos" section.
Software
This section will be available soon.
If you understand spanish, you can take a look at this paper where some details about the modified version of xilkernel are discussed.
Demos
- Demo for the XUP V2P board.
Download RAR file. (8 MB)
The file contains:
- Project directory with a system with 2 MicroBlazes with 256 MB of shared memory and a software application that creates several threads that send messages through the UART
- A copy of the modified xilikernel sources, on the bsp directory
For using the system you need:
- XUP V2P board
- XPS and ISE v 8.2
- USB cable for programming the board
- Serial cable and an terminal program like teraterm
- If you don't have a serial cable, you can change the stdin and stdout in software settings to debug_module and the program outputs will be shown on the XMD screen
Once the board is connected and powered on, you just have to program it and connect to the microblaze_0 using XMD.
In the XMD screen type "dow test_kernel/executable.elf" and then "run". Messages will start to arrive through the terminal.
The program is an infinite loop, so it will never end until you stop it.
Documentation about the demo, how the second processor is started and other related stuff will be available soon.
More demos for other boards, and different software applications will be available soon.
TODO
This section will be available soon.
