This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

6455 ,EMIF,FIFO



专家你好

我的现在的硬件为6455接V5FPGA,FIFO接emif的ce5,进行数据传输。fifo宽度为32bit,用for循环读取数据没有问题,但是用EDMA发现数据不对,源数据位123456789……,EDMA数据位1357……。

我参考了6455EMIF的文档,发现EMIF应用EDMA时候的注意问题。以下:

其中,FIFO should be aligned on 64 byte boundary in EMIFaddress space 是指什么意思??我的FIFO使用了整个CE5的8M地址空间,传输数据的大小为768*800byyte??EDMA什么问题或者需要注意的吗

  • 使用EDMA搬移数据时,FIFO模式在6455下是有些问题的,详情可以参考errata。EDMA应该设置成累加模式,然后对应的index都设成0即可。

  • 谢谢,我看过勘误表,设置了正确的地址模式,但现在的问题是这样,我的数据大小是768*800byte=614400byte,需要用二维传输,但是现象是我的设置为ACOUNT是1536,BCOUNT是400,CCOUNT是1.源BINDEX为0,目的BINDEX为1536,A模式。可是发现只有前1536个数据是正确的,当我把ACOUNT改为65535时,只有前65535数据是对的,即:只有第一组ACOUNT数据传输正确,其他的BCOUNT-1组数据都不对!请帮忙看一下问题!

  • 你用的是A模式,你的目的BINDEX为1536,所以你存的数据应该是不连续的,是隔1536个地址存1536个数,为什么要这样存呢??你会不会把数据块看成了连续存储的所以认为只有前1536个数据是正确的。。。 如果你用的事AB模式的话你这样的参数存储的数据才是连续的。

  • 是的,在目的端,我是要连续的存放。A模式,源BINDEX为0,因为每次我都从同一个地址读取。目的BINDEX为1536,因为的ACOUNT的大小是1536byte啊,不是连续存放嘛??