FPGARelated.com
Forums

Connecting Bram LMB Controller to Microblaze

Started by mfgunes July 24, 2007
Hello,

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

Best wishes,

Fatih Gunes
> I have a block ram in my edk design.It is connected to lmb bram > controller.I want to connect this controller to microblaze.Do i need an > another lmb bus to connect microblaze or can i connect lmb controller to > microblaze with auto-generated "dlmb " lmb bus of microblaze.If i connect > with data bus ,what should i do about instruction lmb bus.
Like that : http://home.peufeu.com/nik/fpga/XPS_1.png
> >> I have a block ram in my edk design.It is connected to lmb bram >> controller.I want to connect this controller to microblaze.Do i need
an
>> another lmb bus to connect microblaze or can i connect lmb controller
to
>> microblaze with auto-generated "dlmb " lmb bus of microblaze.If i
connect
>> with data bus ,what should i do about instruction lmb bus. > > > Like that : > http://home.peufeu.com/nik/fpga/XPS_1.png >
Thank you for your help.But i want to connect a second bram to microblaze.How can i do that?
On Tue, 24 Jul 2007 12:31:20 +0200, mfgunes <mfgunes@yahoo.com> wrote:

>> >>> I have a block ram in my edk design.It is connected to lmb bram >>> controller.I want to connect this controller to microblaze.Do i need > an >>> another lmb bus to connect microblaze or can i connect lmb controller > to >>> microblaze with auto-generated "dlmb " lmb bus of microblaze.If i > connect >>> with data bus ,what should i do about instruction lmb bus. >> >> >> Like that : >> http://home.peufeu.com/nik/fpga/XPS_1.png >> > > Thank you for your help.But i want to connect a second bram to > microblaze.How can i do that?
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.
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 on
bram to connect my user implemented logic.I want a empty port(maked
external) on bram.Can i connect bram to microblaze (with 1 lmb 
controller) using only one port?

mfgunes schrieb:
> 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 on > bram to connect my user implemented logic.I want a empty port(maked > external) on bram.Can i connect bram to microblaze (with 1 lmb > controller) using only one port?
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
> 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.
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
These are very precious information:)Thank you very much

Fatih Gunes
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&#4294967295;ran Bilski

"mfgunes" <mfgunes@yahoo.com> wrote in message 
news:AYadnT0D4es-ZjvbRVn_vw@giganews.com...
> These are very precious information:)Thank you very much > > Fatih Gunes