06-04-2014 10:42 AM
I'm working with EDK 12.4 and virtex5 ML 507 board.
I have connected a Picoblaze to Microblaze within EDK using the feature in EDK called IP wizard.
This wizard allows me to import Picoblaze as a coprocessor in EDK and attach it to my embedded processor (MicroBlaze ) through the PLB Bus.
My goal is to compile and execute a c program to Picoblaze in EDK using data2mem tool.
So, I want to know if I can use the data2mem tool which use the BMM file info to map the elf into my Picoblaze BRAM's?
I found a link that uses a data2mem for Picoblaze: http://ohm.bu.edu/~pbohn/Bio_Delay_Generator/ref_designs/test_designs/KCPSM3/DATA2MEM_assistance/DATA2MEM_how_to_use_it_with_PicoBlaze.txt
Can you advise me please?
Any help will be greatly appreciated.
06-04-2014 11:26 PM
data2mem is a generic tool to deploy data into RAM/ROM sections of the bitstream without need of reimplementing the design.
So it can be used to place some object code into the PicoBlaze program memory.
(Please don't ask for the syntax, that's an ever changing epic text adventure)
But there's another problem.
Do you have a C-Compiler for the Picoblaze? I doubt it.
There are discussions in other threads about it and some people actually have created small tools with very limited capabilities.
The most practical approach up to now is not to waste time on this issue and use the assembler (KCPSM3.exe probably in your case).
It is able to create .coe files that can be used to initialize the program memory of the PicoBlaze.
Have a nice synthesis
06-06-2014 02:20 AM
Thanks a lot for your reply.
My application is written in C language. I don't have a good knowledge of Assembly language. So, it's hard for me to write and transform manually my c application (which is not simple) directly to assembly code for picoblaze using kcpsm3.exe . That's why I have searched for a c compiler,.
I have used Picoblaze C Compiler (PBCC) from from http://www.fit.vutbr.cz/~meduna/work/doku.php.en?id=projects:vlam:pbcc:pbcc to convert c code to assembly code (.psm) , But I have faced many problems with this compiler due to its limits .
Can you help me please.
06-09-2014 01:40 AM
If you don't want to convert your program into PicoBlaze assembler instruction but stay in standard C environment, I would suggest that you take a look at MicroBlaze_MCS instead.
It's larger but you will get a standard C environment with compiler, debugger, libraries, ....
It's a free standalone MicroBlaze system with a fixed configuration.
You can find more about MicroBlaze at http://www.xilinx.com/tools/microblaze.htm
06-09-2014 07:36 AM
Thanks for your help.
I want to know whether it's possible to connect MicroBlaze_MCS as a coprocessor (through PLB Bus) to Microblaze in EDK?
Thanks in advance.
06-09-2014 11:56 PM
Yes, it is possible.
There are a number of different ways to do this, which one to select depends a lot what kind of peripheral you want to implement.
One of the easiest way is to share a BRAM on DLMB.
Add one more BRAM where one port is connected to one MIcroBlaze and the other is connected to the other MicroBlaze.
They can now communicate and share data in the BRAM.
You can do the same thing with sharing a PLB BRAM.
06-13-2014 06:57 AM
I am trying to incorporate a microblaze into my design which contains peripherals communicating via AXI and the data is transferred in the form of AXI stream. Since I need my microblaze in between two of these peripherals and be able to process the data and transfer it to the next peripheral , I decided to add an MB processor IP in XPS and selected AXI for both peripheral and stream interface. But XPS fails to recognise this and does not show any AXI interfaces on MB. I am using Xilinx 13.4 and MB of version 8.0. Any idea why this problem occurs? Is there a better way to implement this? I also wanted to know if there are any other references other than the MB guide on the commands to program the AXI interfaces on MB in C/C++.