请教FPGA用SRIO通信时Doorbell发送和响应检测的问题
当收到doorbell_resp之后,用户层是不是还进行处理?response的状态和TID是不是还要检验?
菜鸟调接口,还望各位大哥大姐指点迷津~
doorbell是有响应的,IP核会自动发响应,无响应说明有问题
FPGA收到响应后会在LOG层有包通知你,收到这个包后,要干什么,取决于你自己的需求。
可以用在线调试工具看看发口和收口的报文就明白了
我现在写的FPGA程序是向另一个终端每隔一秒发送一个Doorbell,用Chipscope可以看到发出去的Doorbell和收到的Doorbell响应(收到响应之后我并没有任何处理)。但是FPGA发送了16个Doorbell之后就收不到响应了,随后FPGA继续发送四十多个Doorbell包后,不在发Doorbell了。
我不明白为啥会这样,大哥再指点一下吧。我的问题如下:
1、是因为用户层没有处理Doorbell响应导致了FPGA在接收16个Doorbell_resp后不再接受doorbell_resp了么?
2、FPGA在发送54(16+38)个Doorbell后,为什么会停止发送Doorbell呢?是不是没用响应的包在逻辑层或缓冲那里积满了,SRIO链接就停止了?
Xilinx的话,查看下两端的link及ready信号的状态,那里应该会有异常
另一端是DSP,应该是DSP响应的问题,但是为什么因为Doorbell的优先级不同,DSP可以响应的次数为啥不同呢?
看下ug503吧
DSP可以打印错误报文,把错误信息打印出来便知
DSP可以一直响应Doorbell,这是毫无疑问的
printf打不出来,LOG_printf打印的时候CCS3.0老卡,我用全局变量来计数中断次数的,显示值只加到有限值就停止不加了。好像是DSP底层的哪些寄存器放满了,这个寄存器应该与Doorbell的优先级有关,但是翻了手册看DSP响应Doorbell的流程没有那个寄存器啊现在思路断掉了,不知道怎么搞了。
大哥,是怀疑FPGA这边有问题?我一直在看ug503,可能把你怀疑的部分拉下了能说详细点吗?
dsp、fpga各自 自环 测试通过再说
硬件管脚都固定了怎么闭环啊?我测试过互发数据,没有问题啊,不知道Doorbell不行了。
自环有很多种方式,可以使用内部自环
FPGA和DSP可以互发数据了,还闭环测试干嘛哦?
能收发数据 vs 能稳定的收发数据
...
仅作个人建议!
嘿嘿,FPGA的闭环咋弄啊?没有思路~
直接操作收发器之前的信号吗?
结贴:问题出在了DSP上,DSP的SP_IP_MODE[31:30]与PER_SET_CNTL[8]要匹配,将UDI设置成Port based 模式。
The doorbell response packet is belong to logic response. If you didn't received, you should firstly confirm whether physical received response packe or link partner sent it.
The doorbell response packet is belong to logic response packet. So you should firstly confirm whether your physical layer received responsed packet and whether link partner supplied matched responsed packet.
小编说的有道理,我也正在做这个,学习了
10楼高见!
小编,我怎么在官网没找到ug503这份手册啊!
不太懂,学习学习~
刚好学习SRIO,长知识了
