Content originally posted in LPCWare by wmues on Thu Jul 12 01:51:42 MST 2012
Yes, the controller is a "bit peculiar". On the ARM website, this IP is classified as "not for new designs".
I do not think you have to feel uneasy. The interface is rated at 80MHz, but works up to 120MHz. So there is enough headroom, I think.
Regarding the delay of CLKOUT: you don't want to do that at 80MHz clock! The CLKOUT delay is for low frequencies. What you have to do at 80MHz is:
a) output all command signals (Axxx, RAS, CAS, Dout, etc) one cycle earlier ("command delayed strategie"). And then do a delay on every command line so that the commands have the right setup/hold timing at the SDRAM.
b) use the feedback clock delay to clock in the data from the SDRAM at the right moment. You do not need a negative delay here. In fact, using a feedback delay of 0 will most likely not work. (I got mine running from 4 to 31, at 78 MHz).
I got the following information from an engineer at nxp, who has done some practice with the SDRAM interface:
1. EMC clock <= 60 MHz: clock delayed read strategy.
CMDDLY=0, CLKOUT0DLY=31, FBCLKDLY=16. Fastest option.
2. EMC clock <= 80 MHz: command delayed read strategy + 0.
CLKOUT0DLY=0, FBCLKDLY=20. CMDDLY in relation to EMC clock! CMDDLY=31 for EMCCLK <= 48 MHz, CMDDLY=27 for EMCCLK=60 MHz, CMDDLY=16 for EMCCLK=72 MHz.
3. EMC clock >= 80 MHz: command delayed read strategy + 1.
CLKOUT0DLY=0, FBCLKDLY=20. CMDDLY=2. (Not valid area, but working)