How to add a Microblaze to a WILDSTAR4 VHDL project
The procedure to insert a Microblaze softcore processor into a VHDL design for Annapolis Micro Systems Inc. (AMS) WILDSTAR4 board is outlined below.
This guide assumes you are using the Xilinx 10.1 build tools along with the, Cygwin, command line build procedure created by AMS.
Please see the article on How to build a WILDSTAR4 VHDL project if you need information on the basic, WILDSTAR4 build procedure.
Please see the article on How to add a Microblaze to a non-ISE, command line workflow, VHDL project if you need information on how to add a Microblaze to a generic VHDL project.
1.) Create Microblaze Project in EDK
a.) Ensure you append ", BUFFER_TYPE=NONE" to all ports in the .mhs file
b.) Run Hardware -> Generate Netlist to create .NGC files in the implementation folder
c.) Modify the system.bmm file located in the implementation folder
i.) Find out what you called/will call your microblaze instantiation in the PE VHDL (say "microblaze_inst")
ii.) Prepend "microblaze_inst/" to all ramb16 paths in system.bmm
d.) Build your microblaze application
i.) Right click your software application and select "Build Project"
ii.) This generates your executable.elf file.
2.) Instantiate the Microblaze in the appropriate PE's VHDL
3.) Modify "makefile" in the synthesis/<pe>/xst folder
a.) Modify line 37 to point to a local copy of the "wildstar4_xst.mk" instead of the original (yes, modify below the do not modify below this line line)
b.) Add a variable pointing to the BMM file, something like "MICROBLAZE_BMM = ../../../../edk/implementation/system.bmm" right below line 11
4.) Modify line 38 of the new "wildstar4_xst.mk"
a.) Append "-sd ../../../../edk/implementation" (or whatever path points to your microblaze NGC files) to the ngdbuild call
b.) Append "-bm ${MICROBLAZE_BMM}" to the ngdbuild call
5.) Build the WS4 project
a.) Navigate to the appropriate PE build folder (in cygwin)
b.) Run "make new"
c.) Run "make xst"
e.) Run "make"
6.) Update the .bit file with the processor data
a.) Navigate to the PE build folder
b.) Run "data2mem -bm ../../../../edk/implementation/system_bd.bmm -bd ../../../../edk/main_app/executable.elf -bt ace2_cpe0.bit -o b ace2_cpe0_download.bit"
c.) Run "promgen -p hex -w -o ace2_cpe0.dum -u 0 ace2_cpe0_download.bit"
d.) Run "/cygdrive/c/annapolis/wildstar4/bin/peutil.exe ace2_cpe0.hex ace2_cpe0.x86 -s"
7.) Move the .x86 to the host/<fpga type> folder and run the software like normal