Connecting Bram LMB Controller to Microblaze

Hello,

I have a block ram in my edk design.It is connected to lmb bra controller.I want to connect this controller to microblaze.Do i need a another lmb bus to connect microblaze or can i connect lmb controller t microblaze with auto-generated "dlmb " lmb bus of microblaze.If i connec with data bus ,what should i do about instruction lmb bus.

Best wishes,

Fatih Gunes

Reply to
mfgunes
Loading thread data ...

Like that :

formatting link

Reply to
PFC

an

to

connect

Thank you for your help.But i want to connect a second bram t microblaze.How can i do that?

Reply to
mfgunes

Ah, OK You can change the size of the BRAM (if you just need more space) instead of adding another one...

Microblaze has 2 LMBs (data and instruction). You cannot add more LMBs, but you can connect several cores to each since it's a bus, not a P2P link. If you want to add another block of BRAM, instantiate 2 new lmb_bram_controllers, connect them to your LMBs (data & instruction) and to the new BRAM block.

Reply to
PFC

Thank you for your fast reply.But i need a empty port on bram.If i connect all of the ports (2 of them )to lmb controllers.I cant get a empty port o bram to connect my user implemented logic.I want a empty port(make external) on bram.Can i connect bram to microblaze (with 1 lmb controller) using only one port?

Reply to
mfgunes

mfgunes schrieb:

You can connect one port of BRAM with one lmb_bram controller which in turn is attached to one of the LMB buses of your MicroBlaze. If you choose the DLMB the MicroBlaze will see additional data memory. Do not forget to assign an appropriate address range to the BRAM.

The other port of the BRAM can be connected to your custon IP.

I have an design with two MicroBlazes which communicate over such an shared BRAM. Each MicroBlaze is connected to one BRAM port over its dlmb. EDK 8.1 complains about "unusual number of BRAMs", and the Block Diagram report gets screwed up but otherwise the system works fine.

Best regards, Andreas

Reply to
Andreas Hofmann

Yes, I also did exactly this, and it works very well. The CPU can read/write data in the BRAM block via one port, and your custom core can do the same via the other port. It's very useful.

In another case, I needed DMA accesses via OPB and opb_central_dma to my BRAM block ; I also needed the CPU to access it, and a custom core needed access to it too. So I used opb_bram controller on the OPB bus connected to BRAM port A ; custom core to BRAM port B ; DMA and CPU access BRAM via OPB.

Have a nice day, Pierre

Reply to
PFC

These are very precious information:)Thank you very much

Fatih Gunes

Reply to
mfgunes

Hi,

You can actually add more lmb_bram_if_cntlr to the same lmb bus. This allows you to create more BRAMs on the same LMB bus. But it might have an impact on the maximum clock frequency since the BRAM outputs will be muxed in the LMB bus before reaching MicroBlaze.

Göran Bilski

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.