1 XDMA IP介绍
- 关于XDMA IP介绍的介绍无非就是参考手册,我也看了一些手册,对于特定型号的IP其配置页面大差不差,代表的意思也是大差不差,所以在IP核介绍这里,就推荐大佬的文章,这个文章也是我的入门的文章,个人感觉对于7系列的IP介绍是比较全的了。
- 后面我会根据实际使用情况表述使用现象,也会对一些其他FPGA板卡进行介绍,也会包括部分国产FPGA的IP介绍。
- 这是大佬文章的链接: 一文搞懂XDMA核详细配置,手把手教你学会用IP,让你不在挠头
- 但是还不得在使用IP的注意一点小细节
关于BAR地址映射的细节
IP核BARS配置页面
- 如果你勾选了PCle to AXI Lite Master Interface
- 64bit Enable 是使用64bit的BAR位宽,一般默认32bit就行了
- size: 选择内存映射的空间大小,图中所示的是1M的空间,一般已经够用了,
- 这个大小比较关键,因为要在使用驱动程序进行内存映射的时候(mmap函数的第二个参数),以这个大小为准
/*获取设备对应的内存映射地址*/sgdma.user_map_base = mmap(NULL, MAP_SIZE, PROT_READ | PROT_WRITE, MAP_SHARED, sgdma.user_handle, 0);
- value:系统默认不修改
- PCle to AXI Translation: 0x40000000
- 这个值也比较重要,虽然我们使用驱动的程序的时候硬件会自动帮我们完成地址转换,但是我们在BD设计后进行地址分配的时候AXI Lite Master对应的起始地址应该和这个 0x40000000值进行对应
- 这里几个地址都是从 0x40000000开始的,是因为我是用了AXI Interconnect, 其一端就是与AXI Lite Master进行连接的,所以连接的从机也都是从0x40000000开始的,所有的从设备在1M空间大小进行再分配,每个设备需要多大的寄存器空间根据设计分配,所有从设备综合不能超过在IP配置时设置的大小,如果不够你可以在IP配置时设置更大的空间
- 这个值也比较重要,虽然我们使用驱动的程序的时候硬件会自动帮我们完成地址转换,但是我们在BD设计后进行地址分配的时候AXI Lite Master对应的起始地址应该和这个 0x40000000值进行对应