PCIe BAR配置疑问:主机访问FPGA板卡2GB DDR需申请2GB BAR吗?
PCIe BAR与FPGA板卡DDR访问问题解答
是的,你需要申请2GB大小的BAR才能让主机完整访问板卡上的2GB DDR内存。
PCIe的BAR(基地址寄存器)的核心作用就是为主机分配一段连续的地址空间,这段地址空间的范围直接对应设备端需要被主机访问的内存容量。如果BAR申请的空间小于实际DDR的容量,主机只能寻址到BAR覆盖的那部分地址,剩余的DDR空间主机无法直接访问。
你对32KB BAR的理解完全正确:当主机分配0x0f03_0000作为基地址时,主机发出的0x0f03_0000到0x0f03_7FFF范围内的读写请求,都会被路由到你的FPGA板卡。以此类推,要覆盖2GB的DDR内存,就需要一段2GB的连续地址空间,因此必须申请对应大小的BAR。
如果你的主机系统是32位架构,2GB的地址空间可能会超出32位地址的可分配范围,这种情况下可以配置64位BAR来解决,目前主流的PCIe控制器和主机系统都支持64位BAR的分配。
内容的提问来源于stack exchange,提问作者Georgy Paul
相关产品推荐
相关产品推荐

