PCIe bar空间理解与调试

时间:2024-03-24 13:11:55

验证环境

window 10 系统

vivado 2017.4

KC705 开发板

bar空间相关知识

具体可以学习下面的文章 

bar空间说明

bar空间测试

以下实验,是在 PIO example 验证 基础上做的。

xilinx官方给出的PIO example工程,默认仅使能了BAR0空间,空间大小为2K byte , 读写位宽32bit(未使能64bit)

PCIe bar空间理解与调试

其实这里的2K byte空间是和逻辑代码对应的,具体 见 EP_MEM.v 文件。

PCIe bar空间理解与调试

这样,用windriver访问的时候,访问的地址空间就是0x000-0x7ff (2K*32b)。

PCIe bar空间理解与调试

由于0x800已经超过2K的地址空间,所以无法正常读写。

于是手动将pcie ip的BAR0的空间改为1K,逻辑代码保持不变

PCIe bar空间理解与调试

修改FPGA版本后,用windriver读写结果如下,

PCIe bar空间理解与调试

发现访问空间为0x0-0x3ff 这1K的地址空间,尽管逻辑代码例化了2K的ram。