最近在做ADC采集,采用AXI FIFO +DMA的方式将采集数据发给PS端DDR做缓存,目前DMA采用的64bit位宽传输,max burst size为16,每次传输字节数为42194B,在PS端设置MAX_PKT_LEN(一次传输长度)为50000,AXI FIFO深度设置为8192,现在每次传输数据时间消耗为300us,但我每帧采集数据通过前级FIFO缓存后为间隔20us来一帧,现在功能要求必须将每一帧都要传上去,因此DMA传输太慢了,不能满足,我通过ila去抓取AXI fifo输出,感觉两次DMA传输之间间隔确实会等很久。 后面我在考虑是不是DMA位宽用得不够,就将位宽改为256bit,max burst size改为128,这样去测试,速度改善不是很明显。这是我目前分析的思路,不知道是不是我DMA用法不对,按理论来说这速度差很多吧。
|