Xilinx PCIE地址问题
时间:10-02
整理:3721RD
点击:
请问,长数据读请求时是否必须分包,分包大小不超过0x80DW?
如果分包,发送请求包时,是连续发送还是接收完一包再发第二包请求包?
回复数据头为4DW,请求包中的Fmt=01外,还有哪个必须设置?
如果分包,发送请求包时,是连续发送还是接收完一包再发第二包请求包?
回复数据头为4DW,请求包中的Fmt=01外,还有哪个必须设置?
读请求报文的请求数据长度由配置空间中的Max Read Request Size字段决定,请求包可连续发送,报文包头中的参数都需要设置清楚。
将接收数据包分为每包512B,128DW包,每包尾地址为7f或者ff,这样的请求包连续发送,出现总线忙标志是为什么呢?有时候忙标志会一直有,只有重启才能好。谢谢
PCIe链路通了吗?
链路通了,刚开始好着,发着发着就不行了,是不是没加速度控制机制,导致缓冲区溢出的原因呢?
根据tx_buf_av信号确定发送缓存情况啊
Xilinx论坛上相关问题:
http://forums.xilinx.com/xlnx/board/crawl_message?board.id=PCIe&message.id=5446
1,首先读请求可以连续发送,但也不是无限制的,读请求的报文头中有个Tag字段,该字段长度决定了你在一定时间内能发送的读请求数目;如Tag位宽为5bit,那么你在一定时间内最多能发送32个读请求;
2,当你发一个读请求时,它就占用了一个Tag,如你发送的读请求Tag等于5,那么5就被占用了,在你收到该读请求对应的完成报文之前,5这个Tag一直被占用,直到收到完成报文,5才被释放;
3,所以如果你一直发请求而没有收到完成报文,那么一段时间后,所有Tag都被占用,你就不能继续再读请求了。
看下,了解中
学习了!
