cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
hoangminhthien
Visitor
Visitor
7,407 Views
Registered: ‎08-14-2009

Join several BRAMs to create the lager memory block

Jump to solution

Hi all

I'm developing a project on ML605 board with EDK and SDK, using BRAM to store code but not enough. I have added more BRAM and total memory lager than necessary, generate bit file successfully but generate linker script not success. I want to ask you is there any way to join these BRAMs to as one lager memory block. Thanks.

0 Kudos
1 Solution

Accepted Solutions
hoangminhthien
Visitor
Visitor
9,340 Views
Registered: ‎08-14-2009

I have tried to compile with EDK successful. I also followed AR#16536, solution 3 (http://www.xilinx.com/support/answers/16536.htm), it was ok.

Thank you very much.

View solution in original post

8 Replies
tmcdowe
Xilinx Employee
Xilinx Employee
7,379 Views
Registered: ‎12-17-2007

I am going to move this over to the EDK forum for you so that they can give you some guidance.

-------------------------------------------
this space intentionally left blank
0 Kudos
golson
Scholar
Scholar
7,351 Views
Registered: ‎04-07-2008

You should be able to increase the size of the BRAM in the system assembly view.  I do this all the time there.

select the bram and click on it where it displays the size it should allow you to increase the size there.

0 Kudos
htsvn
Xilinx Employee
Xilinx Employee
7,336 Views
Registered: ‎08-02-2007

Hi,

 

1, Check the number of BRAM's available in the design.

 

2, You can either change the address range in the address tab of an existing memory instance

 

or

 

Add xps_bram_if_cntlr along with a bram block to include more memory.

 

or

 

Generate a coregen based memory block, import it into the edk design.

 

Thnx

 

 

----------------------------------------------------------------------------------------------
Kindly note- Please mark the Answer as "Accept as solution" if information provided is helpful.

Give Kudos to a post which you think is helpful and reply oriented.
----------------------------------------------------------------------------------------------
0 Kudos
hoangminhthien
Visitor
Visitor
7,335 Views
Registered: ‎08-14-2009

Hi Golson,

Thank you for your reply. Microblaze on Virtex-6 is only supported maximum 256Kb/1BRAM, my application code is 312Kb. So I added additional one BRAM 256Kb, 2 BRAMs have address range continuous, but when compile application, the following error appear:

 

ERROR:EDK:3165 - elfcheck failed!
The following sections did not fit into Processor  memory:
Section .bss (0x28300 - 0xC023B)

 

ERROR:EDK:3165 - elfcheck failed!The following sections did not fit into Processor  memory: Section .bss (0x28300 - 0xC023B).

Can you give me any guidances?

0 Kudos
htsvn
Xilinx Employee
Xilinx Employee
7,332 Views
Registered: ‎08-02-2007

Hi,

 

There have been some issues seen with SDK. Please try to compile with EDK .

 

Thnx

----------------------------------------------------------------------------------------------
Kindly note- Please mark the Answer as "Accept as solution" if information provided is helpful.

Give Kudos to a post which you think is helpful and reply oriented.
----------------------------------------------------------------------------------------------
0 Kudos
hoangminhthien
Visitor
Visitor
9,341 Views
Registered: ‎08-14-2009

I have tried to compile with EDK successful. I also followed AR#16536, solution 3 (http://www.xilinx.com/support/answers/16536.htm), it was ok.

Thank you very much.

View solution in original post

thirdeye
Explorer
Explorer
6,953 Views
Registered: ‎05-30-2008

I have the same problem. Since software designs must be built in SDK in 12.2 I am afraid to upgrade to 12.2. Or will this be in 13.0?

 

When does Xilinx plan to fix the issues seen with SDK? Hopefully before they make it mandatory!

 

Please let me know if SDK is require for building software in v12.2.

 

Thank you,

Josh

0 Kudos
thirdeye
Explorer
Explorer
6,950 Views
Registered: ‎05-30-2008

 


@hem_8030 wrote:

Hi,

 

There have been some issues seen with SDK. Please try to compile with EDK .

 

Thnx


 

EDK does not work for me either!

 

Ah wait - it does, but you have to trick it.

 

in the linker script:

 

 

MEMORY
{
   ilmb_cntlr_dlmb_cntlr : ORIGIN = 0x00000050, LENGTH = 0x0000FFB0
   xps_BRAM_cntlr_0 : ORIGIN = 0x10000000, LENGTH = 0x00010000
   xps_BRAM_cntlr_1 : ORIGIN = 0x10010000, LENGTH = 0x00010000
xps_BRAM_cntlr_both : ORIGIN = 0x10000000, LENGTH = 0x00020000
   MPMC_LPDDR_C_MPMC_BASEADDR : ORIGIN = 0x48000000, LENGTH = 0x08000000
}

 

MEMORY{  

ilmb_cntlr_dlmb_cntlr : ORIGIN = 0x00000050, LENGTH = 0x0000FFB0  

xps_BRAM_cntlr_0 : ORIGIN = 0x10000000, LENGTH = 0x00010000  

xps_BRAM_cntlr_1 : ORIGIN = 0x10010000, LENGTH = 0x00010000

  xps_BRAM_cntlr_both : ORIGIN = 0x10000000, LENGTH = 0x00020000  

MPMC_LPDDR_C_MPMC_BASEADDR : ORIGIN = 0x48000000, LENGTH = 0x08000000

}

 

I then used xps_BRAM_cntlr_both as my location for .text (my large section that would not fit).

 

It works!

 

I tried the exact same thing in SDK and it generates an elf file. This elf file is then checked and it fails the check ("elfcheck failed").

 

Is this elf file still valid? Is it the same as the one in EDK except EDK lets it slide past the check? Could I just use the elf file generated by SDK even though it fails?

 

0 Kudos