Forum Discussion
Just as a heads up I see a common mistake made when users integrate their own memory controllers. Be sure to specify the maximum pending reads properly for your slave port (assuming you support pipelined reads). If you select too low of a value and your slave port doesn't throttle back using waitrequest you will see data dropped. So if you SDRAM supports up to 6 reads in flight then you can set the max pending reads to something like 8. Overestimating this value does no harm to your system besides adding an overkill amount of buffering but underestimating can lead to a functional failure. To give you some examples the SDR SDRAM controller in SOPC Builder uses a max pending reads of 6 or 7 (I forget) and the DDR SDRAM controllers use 16.