Question 1: When REMAP [0]=1, is the data read by host 1 at address 0x7000_000C and host 2 at address 0x0000_000C the same?
Question 2.1: When REMAP [0]=1, is the data read from 0x7fff_ffff address by Host 1 and from 0x0fff_ffff address by Host 2 the same?
Question 2.2: 0x8000_0000~0x8fff_ffff does not have an address alias area?
Okay, I think I now see what these questions are asking.
The BusMatrix has address decoders for each input port, looking at the incoming HADDR value, and routing this incoming transfer to an output port. One output port could have multiple entries in the address map, so those could be mirroring a smaller external memory across a larger address space, or it could be creating different address ranges that access different parts of the external component.
All 32-bits of the HADDR bus will be driven out to the external component, so whether the multiple address ranges map on to different regions of that target, or else the MSBs of HADDR are ignored and the smaller target footprint is accessed repeatedly across the different address ranges assigned to it.
REMAP adds some complexity or flexibility to the address decoders, allowing you to change at runtime where an output port might appear in the address map (remapping="move") or creating multiple copies of it (remapping="alias"). You could use "alias" to open up access to a different sections of an external device so that the multiple address ranges access different locations in the target, but this would be less likely to be needed at runtime.
But again you still see the full 32-bits of HADDR at the output, so it is up to you whether the multiple address ranges assigned to this target access the same range of addresses repeatedly, or access different physical parts of a larger external device.
So my earlier reply was based on how designers usually use REMAP, creating aliases or copies of the original non-REMAP address range so that the same external device can be accessed at multiple address ranges, with each range accessing the same physical locations, but you could use REMAP to add access to different regions of an external device. Again you see the full 32-bit HADDR value after the address decoding, so it is up to you to decide what those multiple address ranges access in your external device.
Thank you very much.
Firstly,Can you answer the three questions in the picture ?
Secondly, as shown in the two images above, I found that the codes generated using the SIE-200 images is completely identical. What is the difference between reapplying="alias" and reapplying="none"? If the two functions are the same, why not merge them into one?
The following figure is a description in the technical reference manual:
I'm not sure what your questions are asking as the answers depend on what the user is connecting to the BusMatrix ports.
So all that I can say is the BusMatrix just looks at the current address map to work out which output a transfer can be routed to.
REMAP allows you to change the base address map, either moving the original address space to a new address space (move) or creating a second address range this source can access for this target (alias).
For the "alias" case, you now have two or more address ranges allocated to the same external port. It is up to you whether those address ranges access the same physical locations (so ignoring the address MSBs), or else access different locations (using the MSBs).
All the BusMatrix does is create a path from source interface to destination interface, with REMAP giving you some run-time flexibility on what this mapping is. How you then use that configurable mapping is up to the user.
As there are various ways you can connect the destination component (using MSBs or not) will determine if two addresses access the same physical data or not, hence me being unable to answer your specific questions.