srio中如何通知另一端暂停发送数据?
时间:10-02
整理:3721RD
点击:
FPGA与DSP互联,我是在FPGA侧操作ipcore。在FPGA侧,自己例化了一个fifo接受数据。为了避免fifo被外部的dsp写满,现在有两种思路:1. 直接在fpga里拉低iresp_ready信号,但不知道这样dsp会怎么反应,是在一段时间后停下当前正在发送的数据吗?
2. 发送doorbell去dsp,dsp收到doorbell后停止发送。
以上两种想法,应该都有延迟的。这个延迟内双方交流的数据,应该是通过srio核内部的fifo在缓存吧。
请问fpga与dsp通过srio通信,双方之间一般是谁要求数据,又是通过什么来控制写满对方的fifo呢?
2. 发送doorbell去dsp,dsp收到doorbell后停止发送。
以上两种想法,应该都有延迟的。这个延迟内双方交流的数据,应该是通过srio核内部的fifo在缓存吧。
请问fpga与dsp通过srio通信,双方之间一般是谁要求数据,又是通过什么来控制写满对方的fifo呢?
直接将IP输入信号rx_ready信号改成不ready即可
是的,这样是可行的,不需要单独再去发doorbell了。
我上周用fpga自环跑到,ip内设置的tx和rx的fifo都是16。
当人为拉低ready后,另一端的发送还能继续发送大概9KB的数据,然后就停止了。
当ready又拉高后,这9KB的数据完好的接收到了。
这个ip还是挺省心的...
