2 microblazes, 1 opb, 2 BRAMs

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.

Reply to
pasacco
Loading thread data ...

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

Reply to
Göran Bilski

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

Reply to
pasacco

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

Reply to
Göran Bilski

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

Reply to
pasacco

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

Reply to
Göran Bilski

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.