Part Number: TMS570LC4357
TM570LC4357: Missing data when writing more than 3 words over EMIF.
We are using TMS570LC4357 (Silicon Revision B) for interfacing with External RAM and FPGA over EMIF with the below configuration (using normal mode and Aysnc onfiguration):
|
Parameter |
Value(ns) |
|
|
Norm |
||
|
Clock period, Cycle time, EMIFA_CLK (60MHz) |
E |
16.67 |
|
Write setup |
WS |
1 |
|
Write strobe |
WST |
4 |
|
Write hold |
WH |
1 |
|
Read setup |
RS |
1 |
|
Read strobe |
RST |
4 |
|
Read hold |
RH |
1 |
|
Turn around Time |
TA |
3 |
and after configuring, EMIF registers are updated as below:
We were able to write and read to both RAM and FPGA with above configuration, but when more than 3 words are written to FPGA to same address location( for example writing 8 words to address location zero), some data was missed. So, when we probed CS & and WE signals, we coudl see that number of CS and WE triggers are less compared to the number of writes.
For example, when we write 4 words, we can see proper CS and WE as shown below
(Yellow is chip select and green is WE):
But when we write 8 words, we could only see 6 CS and WE as shown below:
A similar issue we have seen when we write 16 words, we could only see 8 CS and WE as shown below:
To mitigate this issue, for more than 3 words to be written to FPGA, we added delay ( a for loop, with a loop count of 4) after every 3rd words ( as adding delay after 4th word was not helping) and could see CS and WE pulses are matching the number of words written as shown below ( and also not data was missed):
For 8 words, write:
For 16 words, write:
But adding a delay will affect the application throughput and may not be the right approach.
Also, Some more Observations:
- When we are writing 16 words ( writing to different locations in sequence, for example, 0-15) we saw CS is asserted for every four WE as shown below:
2. In Strobe mode, multiple CS’s are seen for one WE as shown below:
Not sure if the above observations are as expected or have any issues.








