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.

关于6678 和Xilinx ultrascale xcku040的SRIO互联问题

用2个6678开发板互联SRIO, NWIRTE和NREAD命令后,DSP内存的中的数据读写都正确。

但是在自制的项目中要求6678 和Xilinx ultrascale xcku040的SRIO互联时。调试中FPGA能接收来自DSP的NWRITE命令,并且将数据写入到RAM中。当DSP使用NREAD命令时,FPGA接收到了读指令,并且返回数据,但是绝大部分概率是DSP的内存没有更新,同时DSP提示“completion code =1”,偶尔会出现DSP的内存更新,同时DSP提示“completion code =0”。

     不是哪位大侠能分析下是什么原因导致的。

  • 是不是没有Invaldate Cache?所以看到的还是原来的数据。

  • 但是同样的程序,2个DSP之间互联SRIO通信时就不会有问题,Cache设置没有改动

    同时又了新进展,在此之前用2个6678DSP开发板互联,进行NREAD和NWRITE都没有问题,DSP的内存和打印内容显示正常。当时在DSP和FPGA进行通信是,DSP作为initial,FPGA作为target,DSP进行NWRITE操作时,FPGA能接收到数据,并将数据写入内存,但是当DSP读取同样的地址时,成功概率(10%)很低,偶偶能读到数据。同时当FPGA作为initial时,对DSP的内存进行写操作时,go信号使能很长一段时间(3-10秒)后,DSP的内存内容才改写。

    不知道根据这个现象,我该从哪些方面或者有什么思路去查找问题,在此先谢谢各位大侠了。

  • NREAD和NWRITE是需要Response包的

  • NWRITE_R 指令需要Response包, NWRITE不需要,但是我也用FPGA进对DSP进行NWRITE_R操作,再检查DSP内存刷新的同时,检查FPGA接收DSP的REPONSE指令,发现当FPGA接收到Response之后DSP内存肯定刷新,感觉像是DSP接收到数据反应时间很长,不知道哪里地方需要设置

x 出现错误。请重试或与管理员联系。