PCIe to AXI Translation——PCIe 内存空间到AXI内存空间的转换
PCIe to AXI Translation——PCIe 内存空间到AXI内存空间的转换
UltraScale系列芯片包含PCIe的Gen3 Integrated Block IP核在内的多种不同功能的IP核都会有一页设置为PCIe:BARs,设置IP核的Base address register 的相关参数,如图1所示:
图1 PCIe:BARs 配置图
一般来说在FPGA中使用PCIe核都是Endpoint mode,我们的PC主机端是Rootpoint mode,一般会有一个Root Complex的混合管理器,来管理接入PCIe总线的端点设备。对于PC机来说,当PC机识别该PCIe设备后便会识别到BAR n相对应的基地址和地址空间(不过该基地址是PC机的Root Complex主动分配的,还是PCIe设备内部固定的还有疑问)。设别基本配置信息后,PC机便可以对PCIe的内存空间进行读写操作了。
而PCIe IP核本身能够引出AXI总线接口,该AXI接口是memory map 型的,所以就肯定存在自己的地址空间,本文所提的PCIe to AXI Translation便是PCIe的地址空间到AXI的地址空间的转换。
这里就图1中的BAR0来说明下PCIe to AXI Translation的转换过程。BAR0的配置为:64bit数据位宽、32kilobytes地址范围、PCIe to AXI Translation为0x0000000012340000。此时的PCIe IP核的BAR0是拓展连接到外部的AXI总线的,该总线连接到另外一个DDR4 MIG IP核,如图2所示。图中重点标注的AXI总线便是PCIe核引出的AXI总线。
图2 PCIe核拓展AXI接口
假设PC机设别到的PCIe BAR0的基地址为0x0000000000000000,在FPGA内部DDR4的AXI基地址为0x0000000012340000。现在PC机想要往FPGA内部的DDR4地址空间的0x000000001234000F地址写入数据,那么PC机应该对PICe内存空间的0x000000000000000F写入数据,然后由PCIe to AXI Translation的关系,便会把0x000000000000000F转换到0x000000001234000F上实现对AXI总线的操作,进而实现对DDR4的写入操作。图3可以看出具体的转换操作。
图3 PCIe to AXI Translation 转换图
既然有PCIe to AXI Translation,那相应的也有AXI to PCIe Translation了,图4是AXI to PCIe Translation的转换图,不过这种操作应用不多,原理也跟PCIe to AXI Translation差不多,这就不再赘述了。
图4 AXI to PCIe Translation 转换图
转载:http://blog.csdn.net/qq_20748649/article/details/53468724
最新文章
- Myeclipse打断点太多,不知道怎么一次性全删除
- JavaScript学习笔记7 之DOM文档对象模型
- Vmware9.0打开早期版本报错:this virtual machine’s policies are too old to be run by this version of vmware workstation”
- 译:用InnoSetup模块化安装依赖项
- ELK+redis集群搭建
- 在浏览器控制台输出内容 console.log(string);
- 高性能Java解析器实现过程详解
- 引用 RAM和ROM和Flash ROM的区别
- jvm系列(四):jvm知识点总结
- 多线程环境下非安全Dictionary引起的“已添加了具有相同键的项”问题
- 安卓Acitivity的启动模式
- MySQL 笔记整理(17) --如何正确地显示随机消息?
- cookie的认识
- [Leetcode 72]编辑距离 Edit Distance
- PDF编辑方法,PDF如何去除数字签名
- python学习之数组二
- node.js中使用 http-proxy 创建代理服务器
- mouseover与mouseenter,mouseout与mouseleave的区别
- js 使用a标签 下载资源
- OpenGL中的帧缓存
热门文章
- ArcGIS 10.2 三维分析工具箱部分工具不能用
- 【docker】解决docker pull镜像 拉取镜像龟速的问题,docker拉取镜像使用阿里云docker镜像加速器
- 虚函数&;纯虚函数&;抽象类&;虚继承
- PostgreSQL配置文件--实时统计
- LaTeX 相对于 Word 有什么优势?
- iOS:UIResponser控件的介绍(响应者)
- My97DatePicker日历控件配置
- Android轻量级的开源缓存框架ASimpleCache
- 求x>;0时,y=x^3-6x^2+15的极值
- redis学习笔记——RDB、AOF和复制时对过期键的处理