Forum Discussion
Altera_Forum
Honored Contributor
14 years agoSDR SDRAM controller problem
Hi,
I have developed my own SDR SDRAM controller in VHDL to integrate it with the rest of a design inside a Cyclone IV for image processing. By testing the controller I write in the SDRAM 307200 consecutive bytes using a known pattern. When I read the SDRAM most of the bytes are read correctly but there are small areas in the RAM that corresponding bytes are read with errors. When I read again the RAM some of the previous error locations are read correctly and some other locations that have been read without errors the first time now are read with errors. By reading again and again, error locations change randomly (at least randomly it seems to me). Does this problem look familiar to anyone? Any idea where should I look for a solution? Thanks in advance. Regards, John13 Replies
- Altera_Forum
Honored Contributor
--- Quote Start --- I have chosen loose timing requirements so I believe I would have no issue on that and that's why I did not mention it at all. --- Quote End --- You don't get to chose the timing requirements, you must meet the timing requirements stated in the SDR data sheet. You can make your timing requirements easier to meet by using a lower clock frequency to the SDR. However, you still need to meet refresh timing requirements. Cheers, Dave - Altera_Forum
Honored Contributor
Thanks for your answer.
I have chosen loose timing requirements so I believe I would have no issue on that and that's why I did not mention it at all. I have also checked signals at the oscilloscope and by sending always the byte 0x00 and sometimes I see that some wires of the data bus become logic '1' instead of staying always at logic '0' as the stored data would have been logic '1'. - Altera_Forum
Honored Contributor
Hi John,
--- Quote Start --- Does this problem look familiar to anyone? Any idea where should I look for a solution? --- Quote End --- Since you made no comments about the design meeting timing, that is where I would first look. You need to constrain the FPGA pins so that the control signals from the FPGA to the SDR meet timing, and so that the data bus meets timings for both write and read. Cheers, Dave