Problems with a 4-MicroBlaze Multiprocessor Architecture

Dear all

I'm a new member of this board so a big hello to everybody

I'm experiencing some problems with a multiprocessor architectur

based on the MicroBlaze

I'm using ISE 6.3 and EDK 6.3

I made 2 working multiprocessor systems with 2 CPUs

The first use only one OPB bus and both the processors are linked t

such bus

The second implementation use ONE OPB bus for each processor, for

total of 2 processors and 2 OPB bus In this version obviously each processor lives "stand-alone" with n interaction with the other (I used 2 ethernet IPs to let talk each-other...

My problems started when I tried to implement a system with

processors linked to the same OPB bus

The synthesis and P&R flow worked correctly and no errors wer

given

I then wrote 4 similar applications, one for each processor

What I found was that only the first 2 processors worked and the othe

2 seemed to be "dead"

What I thought first is that due to collisions, the last 2 processor

were never able to access to the bus So I tried to "disable" the first 2 processors ( not uploading th firmware into the blockram) to see if the other 2 were able t "scream" but nothing happened

It seams that for some strange reason, if I use more than 2 processo

on an OPB bus, I can let them working correctly....( I don't want t use the FSL for now...

Any idea

Thanks a lot

Sergi

Reply to
sergio.tota
Loading thread data ...

Hi,

If you connect four MicroBlazes to the same opb bus, I suspect that the last two MicroBlaze will get very little access to the bus.

Not uploading firmware for the first one, will not stop them from executing.

So what communication do you need between the MicroBlazes? Have you looked at using the FSL as the inter communication channel?

Göran Bilski

sergio.tota wrote:

Reply to
Göran Bilski

Dear Goran

you told me that not uploading the firmware does not mean tha

MicroBlaze doesn't "work"

Do you mean that even if with no code to execute they make access t

the OPB bus If so, why

And, there is a way to keep a MicroBlaze processor "live" withou

making it access to the OPB bus

I think that I'll use FSL, but in the next months

Cheers

Sergi

Reply to
sergio.tota

Hi Sergio,

You need to define what you mean with "live"?

MicroBlaze will start executing at 0x0 after reset. When accessing memory where there is no code, the bus usually returns with 0x0. This is add r0,r0,r0 on the MicroBlaze and it will then continue with the next address. So it will run through all memory addresses. You need to have code that loops the MicroBlaze or you can use the FSL for creating a sleep mode on MicroBlaze. If you have a FSL input to MicroBlaze where the FSL_Exists signal is low and you execute a blocking FSL read instruction, MicroBlaze will halt until that signal is '1'. This allows you to create a simple sleep mode.

Göran

sergio.tota wrote:

Reply to
Göran Bilski

Dear Goran

it is more clear now

Thank you

Sergi

Reply to
sergio.tota

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.