UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Explorer
Explorer
3,618 Views
Registered: ‎11-12-2007

MAP removes BRAM during optimization

Hi,

I have a project on a V5FX30T and some problem with the map process.

It has an instance of the MicroBlaze, LMB,  PLB-Bus and some BRAM using the lmb_bram_if_ctrl in Xilinx XPS EDK.

 

When I enable -global_opt (no matter if speed or area), the map report shows me a lot of removed logic, and also removes the block ram used by the microblaze.

The -gloab_opt option saves a lot of logic resources, but why is it removing my blockram?

 

The bram instance name is "bram_app_mb" and the instance of the lmb-ctrl is "dlmb_ctrl_bram_mb" and "ilmb_ctrl_bram_mb"

 

Map report shows alot of messages like this:

 

Loadless block "bram_app_mb" (bram_app_mb_wrapper) removed.
 The signal "dlmb_mb_M_ABus<0>" is loadless and has been removed.
 The signal "dlmb_mb_M_ABus<1>" is loadless and has been removed.
 The signal "dlmb_mb_M_ABus<2>" is loadless and has been removed.
 The signal "dlmb_mb_M_ABus<3>" is loadless and has been removed.
 The signal "dlmb_mb_M_ABus<4>" is loadless and has been removed.
 The signal "dlmb_mb_M_ABus<5>" is loadless and has been removed.
 The signal "dlmb_mb_M_ABus<6>" is loadless and has been removed.
 The signal "dlmb_mb_M_ABus<7>" is loadless and has been removed.
 The signal "dlmb_mb_M_ABus<8>" is loadless and has been removed.
 The signal "dlmb_mb_M_ABus<9>" is loadless and has been removed.
 The signal "dlmb_mb_M_ABus<10>" is loadless and has been removed.
 The signal "dlmb_mb_M_ABus<11>" is loadless and has been removed.
 The signal "dlmb_mb_M_ABus<12>" is loadless and has been removed.
 The signal "dlmb_mb_M_ABus<13>" is loadless and has been removed.
 The signal "dlmb_mb_M_ABus<14>" is loadless and has been removed.
 The signal "dlmb_mb_M_ABus<15>" is loadless and has been removed.
 The signal "dlmb_mb_M_ABus<16>" is loadless and has been removed.
 The signal "dlmb_mb_M_ABus<17>" is loadless and has been removed.
 The signal "dlmb_mb_M_ABus<18>" is loadless and has been removed.
 The signal "dlmb_mb_M_ABus<19>" is loadless and has been removed.
 The signal "dlmb_mb_M_ABus<20>" is loadless and has been removed.
 The signal "dlmb_mb_M_ABus<21>" is loadless and has been removed.
 The signal "dlmb_mb_M_ABus<22>" is loadless and has been removed.
 The signal "dlmb_mb_M_ABus<23>" is loadless and has been removed.
 The signal "dlmb_mb_M_ABus<24>" is loadless and has been removed.
 The signal "dlmb_mb_M_ABus<25>" is loadless and has been removed.
 The signal "dlmb_mb_M_ABus<26>" is loadless and has been removed.
 The signal "dlmb_mb_M_ABus<27>" is loadless and has been removed.
 The signal "dlmb_mb_M_ABus<28>" is loadless and has been removed.
 The signal "dlmb_mb_M_ABus<29>" is loadless and has been removed.

Unused block "bram_app_mb/XST_GND" (ZERO) removed.
Unused block "bram_app_mb/XST_VCC" (ONE) removed.
Unused block "bram_app_mb/bram_app_mb/XST_GND" (ZERO) removed.
Unused block "bram_app_mb/bram_app_mb/XST_VCC" (ONE) removed.
Unused block "bram_app_mb/bram_app_mb" (bram_app_mb_elaborate) removed.
The signal "bram_app_mb/BRAM_Din_A<0>" is sourceless and has been removed.
The signal "bram_app_mb/BRAM_Din_A<1>" is sourceless and has been removed.
The signal "bram_app_mb/BRAM_Din_A<2>" is sourceless and has been removed.
The signal "bram_app_mb/BRAM_Din_A<3>" is sourceless and has been removed.
The signal "bram_app_mb/BRAM_Din_A<4>" is sourceless and has been removed.
The signal "bram_app_mb/BRAM_Din_A<5>" is sourceless and has been removed.
The signal "bram_app_mb/BRAM_Din_A<6>" is sourceless and has been removed.
The signal "bram_app_mb/BRAM_Din_A<7>" is sourceless and has been removed.
The signal "bram_app_mb/BRAM_Din_A<8>" is sourceless and has been removed.
The signal "bram_app_mb/BRAM_Din_A<9>" is sourceless and has been removed.
The signal "bram_app_mb/BRAM_Din_A<10>" is sourceless and has been removed.
The signal "bram_app_mb/BRAM_Din_A<21>" is sourceless and has been removed.
The signal "bram_app_mb/BRAM_Din_A<22>" is sourceless and has been removed.
The signal "bram_app_mb/BRAM_Din_A<23>" is sourceless and has been removed.
The signal "bram_app_mb/BRAM_Din_A<24>" is sourceless and has been removed.
The signal "bram_app_mb/BRAM_Din_A<25>" is sourceless and has been removed.
The signal "bram_app_mb/BRAM_Din_A<26>" is sourceless and has been removed.
The signal "bram_app_mb/BRAM_Din_A<27>" is sourceless and has been removed.
The signal "bram_app_mb/BRAM_Din_A<28>" is sourceless and has been removed.
The signal "bram_app_mb/BRAM_Din_A<29>" is sourceless and has been removed.
The signal "bram_app_mb/BRAM_Din_A<30>" is sourceless and has been removed.
The signal "bram_app_mb/BRAM_Din_A<31>" is sourceless and has been removed.
The signal "bram_app_mb/N2" is sourceless and has been removed.
The signal "bram_app_mb/N3" is sourceless and has been removed.
The signal "bram_app_mb/bram_app_mb/N0" is sourceless and has been removed.
The signal "bram_app_mb/bram_app_mb/N1" is sourceless and has been removed.

 

This is how the microblaze is instantiated in the mhs-file: (there are more peripherals on the plb_microblaze)

BEGIN microblaze
 PARAMETER INSTANCE = microblaze_1
 PARAMETER HW_VER = 8.00.b
 PARAMETER C_NUMBER_OF_PC_BRK = 0
 PARAMETER C_CACHE_BYTE_SIZE = 2048
 PARAMETER C_DCACHE_BYTE_SIZE = 2048
 PARAMETER C_AREA_OPTIMIZED = 0
 PARAMETER C_USE_HW_MUL = 0
 PARAMETER C_USE_MSR_INSTR = 0
 PARAMETER C_USE_PCMP_INSTR = 0
 BUS_INTERFACE DPLB = plb_microblaze
 BUS_INTERFACE DLMB = dlmb_mb
 BUS_INTERFACE ILMB = ilmb_mb
 PORT MB_RESET = MB_reset
END

BEGIN plb_v46
 PARAMETER INSTANCE = plb_microblaze
 PARAMETER HW_VER = 1.05.a
 PARAMETER C_P2P = 1
 PORT PLB_Clk = clk_100_0000MHzPLL0_ADJUST
 PORT SYS_Rst = sys_bus_reset
END

BEGIN bram_block
 PARAMETER INSTANCE = bram_app_mb
 PARAMETER HW_VER = 1.00.a
 BUS_INTERFACE PORTA = ilmb_ctrl_bram_2_BRAM_PORT
 BUS_INTERFACE PORTB = dlmb_ctrl_bram_2_BRAM_PORT
END

BEGIN lmb_bram_if_cntlr
 PARAMETER INSTANCE = ilmb_ctrl_bram_mb
 PARAMETER HW_VER = 2.10.b
 PARAMETER C_BASEADDR = 0x00000000
 PARAMETER C_HIGHADDR = 0x00007FFF
 BUS_INTERFACE SLMB = ilmb_mb
 BUS_INTERFACE BRAM_PORT = ilmb_ctrl_bram_2_BRAM_PORT
END

BEGIN lmb_v10
 PARAMETER INSTANCE = ilmb_mb
 PARAMETER HW_VER = 1.00.a
 PARAMETER C_EXT_RESET_HIGH = 1
 PORT LMB_Clk = clk_100_0000MHzPLL0_ADJUST
 PORT SYS_Rst = sys_bus_reset
END

BEGIN lmb_v10
 PARAMETER INSTANCE = dlmb_mb
 PARAMETER HW_VER = 1.00.a
 PARAMETER C_EXT_RESET_HIGH = 1
 PORT LMB_Clk = clk_100_0000MHzPLL0_ADJUST
 PORT SYS_Rst = sys_bus_reset
END

BEGIN lmb_bram_if_cntlr
 PARAMETER INSTANCE = dlmb_ctrl_bram_mb
 PARAMETER HW_VER = 2.10.b
 PARAMETER C_BASEADDR = 0x00000000
 PARAMETER C_HIGHADDR = 0x00007FFF
 BUS_INTERFACE SLMB = dlmb_mb
 BUS_INTERFACE BRAM_PORT = dlmb_ctrl_bram_2_BRAM_PORT
END

 

 

0 Kudos
2 Replies
Adventurer
Adventurer
3,591 Views
Registered: ‎02-09-2012

Re: MAP removes BRAM during optimization

Does this also happen, without g.o. enabled?

 

 

0 Kudos
Explorer
Explorer
3,587 Views
Registered: ‎11-12-2007

Re: MAP removes BRAM during optimization

Without global_opt, everything is fine. I don't get why map removes my block_ram. This is reproducable, the only cahnges is the global_opt switch.

 

0 Kudos