cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
makni
Adventurer
Adventurer
6,676 Views
Registered: ‎12-26-2013

Microblaze & Picoblaze in EDK

Hi everybody,

 

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.

0 Kudos
6 Replies
eilert
Teacher
Teacher
6,653 Views
Registered: ‎08-14-2007

Hi,

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

  Eilert

 

0 Kudos
makni
Adventurer
Adventurer
6,634 Views
Registered: ‎12-26-2013

Hi eilert,  

 

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.

Thanks.

 

 

0 Kudos
goran
Xilinx Employee
Xilinx Employee
6,589 Views
Registered: ‎08-06-2007

Hi,

 

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.

 

http://www.xilinx.com/products/intellectual-property/microblaze_mcs.htm

 

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

 

Göran

0 Kudos
makni
Adventurer
Adventurer
6,584 Views
Registered: ‎12-26-2013

Hi,

 

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.

 

0 Kudos
goran
Xilinx Employee
Xilinx Employee
6,570 Views
Registered: ‎08-06-2007

Hi,

 

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.

 

Göran

0 Kudos
pad007@gmail.com
Contributor
Contributor
6,537 Views
Registered: ‎06-13-2014

Hi,

    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++.

Tags (1)
0 Kudos