This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

66AK2H12/06 EMIF16 configuration to increase throughput

Guru 10570 points
Other Parts Discussed in Thread: 66AK2H12

Hello.
There is a post to increase EMIF16 throughput, we need additional configuration to the register in EMIF16 which is not specified in UserGuide.
I would like to ask you whether it also needs to 66AK2H or not.

http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/t/192245.aspx?pi303753=2
In some cases of use of the EMIF16, we have found that an unused internal feature can cause unintended
delays between some EMIF16 accesses. This feature can be disabled by setting the msb of 0x20C00008 to 1.
I recommend setting this in all cases for the C6678, and placing it near the top of your main() function.

*(Uint32*)0x20C00008 |= 0x80000000; // Disable unused internal EMIF feature

Could you let me know?

Best regards, RY

  • Hi RY,

    The EMIF16 implemented in the KeyStone II devices is the same IP as the EMIF16 implemented in the KeyStone I devices. The same workaround is needed to achieve the maximum throughput. Note that this will not achieve ideal throughput. The EMIF16 interface was not designed as a streaming data interface and there are internal delays to the data paths that will result in additional clocks between data accesses.

    Regards, Bill

  • Hi Bill-san,
    May I have a confirmation additionally on this?

    In C6678 case : internal EMIF16 feature register is placed in the 0x20c00008.

    In 66AK2H12/06 case : the same register is placed in the 0x21000A08.
    Because, EMIF16 config address is 0x21000A00.
    Is my understanding right?

    Best regards, RY

  • RY-san,

    Your understanding is correct. The EMIF16 IP needs 256 bytes reserved for it's configuration registers. Those bytes can be located anywhere in the memory map by the SOC designers. For the K2H device, those bytes start at location 0x21000A00.

    Regards, Bill