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.

DSP FPGA SRIO互传问题



现在6678用的是论坛里面的keystone_srio程序,FPGA这边是用SRIOV5.6生成的程序,但是现在只能实现DSP给FPGA进行发送数据,但是实现不了FPGA给DSP发送数据,用的是SWRITE模式,看别的文章说FPGA给DSP发送必须先发送一个doorbell,来告知DSP开始发送数据了,请问到底该怎么用Doorbell来实现这个中断触发啊,谢谢做过的人指点下,谢谢了。

  • FPGA可以直接给DSP写,不需要doorbell。doorbell的作用是通知DSP FPGA已经写了数据,而跟FPGA写的数据没有直接关系。你现在是FPGA不能给DSP写数据,因此发送doorbell也没有用。

    建议检查下FPGA的SWRITE是否完成。由于SWRITE是带response的,因此肯定能查到信息。

    至于doorbell,它不属于DIRECT IO的传输模式,是另一种报文模式了。

  • 您好, 谢谢您的解答,刚看到您的消息,现在DSP这边相应的地址能收到数据,但是数据都是错乱的,传输线我用FPGA回环测试过,没有问题,现在有几个问题不太明白,还望您能解答

    1. DSP的SRIO好像就是big endian模式,但是FPGA这端没有模式设置,是不是把传输数据的变量设置为{0::63}就是big endian 模式了?

    2.DSP与FPGA 之间SRIO互联,与两片DSP之间或者两片FPGA之间的SRIO互传没有任何差别吗?假如DSP的SRIO程序我在两片DSP之间测试正常,FPGA的SRIO程序在两片FPGA之间测试正常,那么这两个程序理论上是不是不经过任何修改就直接可以互联了呢?(除了修改device ID 以及 data_address)?

    再次谢谢您的回答!

  • 我测试了下FPGA给DSP发送doorbell中断也不可以,DSP这端就没有检测到,请问除了链路有可能导致这个问题之外(链路换了好几种方式,应该问题不大),还有别的需要注意的地方吗?谢谢了

  • 你先试一下NREAD和NWRITE吧,可以用DSP当主,FPGA当从的模式,这样操作起来比较简单。另外你还可以吧FPGA那一端的initiater那一大堆程序全给他删掉,节省点资源,如果是FPGA想给DSP发数的话用个外部中断就可以了。

  • 你好,请问你的问题解决了吗?我也遇到了同样的问题只能实现DSP给FPGA进行发送数据,但是实现不了FPGA给DSP发送数据,我用的DSP是6657