请教各位大神。
我现在通过 AXI 读取 DDR3 时,看到了 rlast 信号好像不正常。如下图所示:
ddr3readtiming.png
1、最左边(黄色 marker)我发出两个靠得很近的 arvalid (间隔一个cycle而已),arid 都为 c,arlen 都为 f,都采用 incr 类型的 burst 。
2、黄色 marker 与 白色 marker 中间,已经读取出 data 。rid 为 c ,数据个数刚好 16个,与 arlen 一致。
3、白色 marker 时刻,我又发出 read 请求,arvalid 拉高,arid = 0,arlen = 7,incr burst。
4、在红色时的 marker 附近时,我看到了一些不是很正常的现象。也导致了我的系统出错了。
a,rvalid 输出数据,但 rvalid 到 rlast 拉高时,共有 16+6=22个数据
b,rid 在 rvalid 在输出 14 个数据之后,由 c 变为 0
c,rvalid 与 rready 都为高的电平,共有 16+8=24 个数据
我是不是哪里弄错了?还是我的 ddr3 controler 本来就有一些限制的 timing 而我不知道?求大神指点迷津。