TI中文支持网
TI专业的中文技术问题搜集分享网站

FPGA通过SRIO向6678DSP的DDR中写数,同时DSP还要读取DDR其他地址的数据造成SRIO阻塞

尊敬的TI工程师,请问FPGA通过SRIO向6678DSP的DDR中写数,同时DSP还要读写DDR其他地址的数据造成SRIO阻塞,有什么好的解决办法吗?

如果我dsp在srio传输的过程中不做DDR的写入操作就没有问题,但是我是实时系统,肯定还要用DDR的数据进行计算并将数据再次写入到其他的DDR段上。

我看了好多帖子了,问题还未解决,目前我做的尝试如下:

1、将SRIO的地址放入SRIO的RIO_PER_SET_CNTL寄存器中CBA_TRANS_PRI字设为000;

设置方式:CSL_SRIO_SetTransactionPriority(hSrioCSL,0);

2、将MDMAARBU(0x01841010)设为0x06070000,代表着UPRI=6,PRI=7;

    *(unsigned int *)(0x01841010)=0x06070000;

3、将MDMAARBX(0x08000280)设为0x00060000,代表着PRI=6;

    *(unsigned int *)(0x08000280)=0x00060000;

您可以帮忙看看我这设置的有没有问题,如果没有问题接下来还有什么其他调试思路,有帖子中说改变操作DDR3的时序(DDR3 Memory Controller for KeyStone Devices User's Guide)才能完全规避,请问这大概怎么操作?

user6224283:

我还想问一下,srio向ddr写数据的时候,dsp能否同时操作ddr

Nancy Wang:

回复 user6224283:

正在帮您咨询相关工程师,晚一些给您回复。

user6224283:

回复 Nancy Wang:

期待您的回复

Nancy Wang:

回复 user6224283:

请问运行的是sys/bios程序吗?再确认一下是否是DSP在访问DDR的时候,FPGA通过SRIO就无法向DDR中写数?

user6224283:

回复 Nancy Wang:

是SYS/BIOS程序,它存在一个冲突问题,当我dsp去读或写的时候DDR总线控制权就被DSP占用了,fpga通过SRIO向DDR写,这时SRIO就会被阻塞

Nancy Wang:

回复 user6224283:

感谢分享信息。
SRIO task和DSP 读写 DDR 这两个task优先级是如何设置的?

user6224283:

回复 Nancy Wang:

目前只有DSP读取DDR这一个task,SRIO是通过DIO方式从FPGA端直接将数传到我的DDR上

Nancy Wang:

回复 user6224283:

在很多的SRIO应用中,都会有SRIO给DDR3传输数据并且应用程序在DDR3上运行,有的还会有以太网读写DDR3上的包,都没有遇到过发生访问冲突的情况,并且DDR3的带宽1333*8 = 10664MB/s 是远大于 SRIO (e.g. 5Gb/s * num of lanes/8)的。
另外可以参考2.6.4 Class of Service方法来设置优先级。
www.ti.com/…/sprugv8e.pdf

user6224283:

回复 Nancy Wang:

nancy,谢谢,我这边再找找其他原因

user6224283:

回复 Nancy Wang:

Hi nancy
2、将MDMAARBU(0x01841010)设为0x06070000,代表着UPRI=6,PRI=7;
*(unsigned int *)(0x01841010)=0x06070000;

3、将MDMAARBX(0x08000280)设为0x00060000,代表着PRI=6;
*(unsigned int *)(0x08000280)=0x00060000;
我想确认一下 这两个寄存器我这么设置对不对,或者说有相应的接口函数

赞(0)
未经允许不得转载:TI中文支持网 » FPGA通过SRIO向6678DSP的DDR中写数,同时DSP还要读取DDR其他地址的数据造成SRIO阻塞
分享到: 更多 (0)