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!

AR# 17586

3.2 EDK SP2: BMM file and BRAM Block Initialization when shared between 2 Processors


Keywords: BMM, Platgen, BRAM, Shared, Processors

Urgency: Standard

Problem Description:
I am creating a design in XPS, and my system contains a PowerPC and MicroBlaze. The interfacing is done through two BRAM Blocks (bram1 & bram2):

1. DOCM <---> bram1 <---> DLMB
where bram1 is mapped in the PowerPC and MicroBlaze Memory Systems as follows:

MicroBlaze side 0x00004000:0x00007FFF
PowerPC side 0xFFFF0000: 0xFFFF3FFF

2. PLB <---> bram2 <---> DLMB
where bram2 is mapped in the PowerPC and MicroBlaze Memory Systems as follows:

MicroBlaze side 0x00008000:0x0000BFFF
PowerPC side 0x00000000:0x00003FFF

When you run PlatGen, and you look at the BMM for the bram1 and bram2, you find the following:

- ADDRESS_BLOCK bram1 RAMB16 [0x00004000:0x00007FFF]

- ADDRESS_BLOCK bram2 RAMB16 [0x00008000:0x0000BFFF]

So you can see that the MicroBlaze Memory mapping is used and not the PowerPC Memory Mapping.

Problems occur if BRAM1 and BRAM2 (or part of them) are used for instruction (or partitioned between Data and instruction).

If the C Code associated with the PowerPC, and the C Code associated with the MicroBlaze both initialize some kind of Data Structure in the same bram, then there is a problem. Also Simulation of the PowerPC Side will be an issue.


This issue will be resolved by the EDK 6.1 release
AR# 17586
Date 04/28/2006
Status Archive
Type General Article