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.

TMS320C6678: DSP WRITE包的目的地址有没有限制?

Part Number: TMS320C6678


使用C6678和FPGA通过SRIO进行数据发送 ,使用NWRITE类型包,我的destaddr如果写八的倍数时例如(0x40000008),FPGA侧可以收到正确的地址,但是如果我destaddr不是八的倍数,FPGA侧收到的地址就会有偏移,例如 DSP侧destaddr是0x40000004,FPGA收到的地址将会是0x40000004。我想知道这个是因为协议自身的规则吗。

  • FPGA侧收到的地址就会有偏移,例如 DSP侧destaddr是0x40000004,FPGA收到的地址将会是0x40000004。

    请问是如何偏移的?

  • FPGA侧收到的地址就会有偏移,例如 DSP侧destaddr是0x40000004,FPGA收到的地址将会是0x40000000 。

  • 我看文档中写的是 when the Byte_Count of Read/Write requests exceeds 256Bytes. Second, when Read/Write request RapidIO address is non-64b aligned. In both cases, the outgoing request must be broken up into multiple RapidIO request packets ,这里意思是destaddr地址必须是64b对其 意思是 destaddr要是8的倍数吗 

  • 您可以到英文论坛发帖吗?建议您到英文论坛咨询看看。

    e2e.ti.com/.../processors-forum

  • 问题最终找到了原因  :  由于FPGA   AXI4-Stream协议中tdata信号为8个字节,也就是一个双字(Double Word),所以Size域的值需要分两种情况讨论:传输的数据量小于8字节和传输的数据量大于8字节。

     传输的数据量小于8字节(Sub-DWORD Accesses):

           对于传输的数据量小于8字节的情况,address字段和size字段用来决定有效的字节位置(tkeep信号必须为0xff),但是仅仅能导致RapidIO包中rdsize/wrsize和wdptr为有效值的address和size值组合才是被允许的,下图是HELLO格式中address和size两个字段与有效字节位置的对应关系示意图(图中灰色部分为有效字节位置)