We use the EMIF interface of the Keystone II to connect an external FPGA to the processor.
Our software will access the memory area of the EMIF16 interface, using standard 32 bit memory transactions (read and write).
The EMIF16 itself is only 16 bit so at some level, the 32 bit transaction has to be split into two 16 bit transactions
Now lets suppose that two CPU cores of the Keystone access the EMIF16 interface at the same time, i.e. both issue 32 bit transactions to the EMIF16
Our question is:
Is it guaranteed that a 32 bit transaction from one core will be fully completed before a transaction from another core takes place?
Example:
Core A issues a 32-bit read from address 0x3000.0000 / 32
The EMIF16 then needs to read 0x3000.0000 / 16 and 0x3000.0002 / 16
At the same time core B issues a 32-bit read from address 0x3000.FFF0 / 32
The EMIF16 then needs to read 0x3000.FFF0 / 16 and 0x3000.FFF2 / 16
Can the following happen on the EMIF16 bus?
1. read 0x3000.0000 / 16
2. read 0x3000.FFF0 / 16
3. read 0x3000.0002 / 16
4. read 0x3000.FFF2 / 16
Thanks alot!
Gerald