CycloneV HPS SDRAM MemoryController pipelined variable waitrequest and readdatavalid
from what i understand, HPS SDRAM Memory Controller can never be non pipelined. simply because your fpga frequency will always be slower than DDR3 IC, this memory controller has to pipeline data to translate it from higher frequency to lower frequency to let the master side(fpga) send and receive data. this takes us to the read data valid and wait request signals; and to the fact that there always will be a variable latency to these signals. so now imagine, that your boss asks you to find out how much data cyclone v transfers to the ddr in every second; if your fpga project has base frequency of 50mhz. what would you answer? you never know when read data valid becomes high. you never know when waitrequest becomes high and how long it stays. these signals always vary in length according to surrounding circumstances... it leaves the impression that pipelined transactions are not designed for strictly timing fixed projects. where, let's say an fpga has to send 2kb every 2us... what if waitrequest stays high for some cycles; then fpga will finish the transfer in 2us + waitrequest cycles. how can it be acceptible to everyone... is there any way to fix waitrequest and readrequest to some fixed number of cycles? i am trying to use cyclone v HPS sdram memory controller