2 microblazes, 1 opb, 2 BRAMs

Mar 16, 2005 5 Replies

dear



I need to implement the following.


2 microblazes and 2 Data BRAMs (assumeing 1 Instruction BRAM for both ). Both of Data BRAMS range 0x0000 - 0x3fff and each belongs to each microblaze. What is important for me is to share the data memory, such that the programmer write ONE program and considers the memory as ONE global memory with 0x0000 - 7fff.

I expect that MMU (address translation) unit is necessary. I wonder if this is possible with one (shared) with 1 OPB. Problem is I have no experience on this. Is these possible? If yes, how? :) If someone gives me some hint or suggestion, it will greatly appreciated.



Hi,

I don't think you can have a shared memory with cover 0x0000 - 0x3fff and make it so that the processors sees it as 0x0000 - 0x7fff. That would double the amount of memory available.

Göran

The implementation will looks like above.

uBLAZE1 uBLAZE2 | | MMU (switch) MMU (switch) | | |---------------------OPB--------------------------| | | BRAM 1 (16kB) BRAM 2 (16kB)

The assembly programmer should see the memory as 32 KB global memory. The role of MMU will be to translate the address and decides which (one of both) memory should be accessed. It does not matter the address range of each memory. I need some help. Thankyou very much for some hint on how to realize this....

Hi,

This picture shows the connections, thanks. So you want them so see this memory differently. uBlaze1 - BRAM1 0x0000-0x3fff - BRAM2 0x4000-0x7fff

uBlaze2 - BRAM2 0x0000-0x3fff - BRAM1 0x4000-0x7fff

Is this the address map that you want?

Göran

hi

The address map will be (i think) depending on hardware implementation.

What I need to implement is

- BRAMS are shared to each uBLAZE.

physical address will (preliminarily) be BRAM1 : 0x0000 - 0x3fff, BRAM2 : 0x4000 - 0x7fff. yes, logical address will (preliminarily) be

uBlaze1 - BRAM1 0x0000-0x3fff - BRAM2 0x4000-0x7fff

uBlaze2 - BRAM2 0x0000-0x3fff - BRAM1 0x4000-0x7fff

For example, programmer writes 'ld rD, rA, 0x5000', then the MMU directs the path to BRAM2 (using the switch) and perform the load instruction. I am wondering and investigating if this is possible.......hope be possible.

regards

Hi,

You don't need a MMU for this. You should only invert address bit 17 from uBlaze2.

Although is not easy to do directly in .mhs file it's still possible.

Göran

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required