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 转换图

打开APP精彩内容

点击阅读全文

pcie读写ddr_一文详解PCIe内存空间到AXI内存空间的转换相关推荐

  1. pcie握手机制_【博文连载】PCIe扫盲——Ack/Nak 机制详解(一)

    原标题:[博文连载]PCIe扫盲--Ack/Nak 机制详解(一) 前面在数据链路层入门的文章中简单地提到过Ack/Nak机制的原理和作用,接下来的几篇文章中将对Ack/Nak机制进行详细地介绍. A ...

  2. 一文详解JavaBean 看这篇就够了

    一文详解JavaBean 看这篇就够了 JavaBean的历史渊源 JavaBean的定义(通俗版) JavaBean应用 < jsp:useBean > < jsp:getProp ...

  3. 【卷积神经网络结构专题】一文详解AlexNet(附代码实现)

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! [导读]本文是卷积神经网络结构系列专题第二篇文章,前面我们已经介绍了第一个真正意义 ...

  4. 一文详解 YOLO 2 与 YOLO 9000 目标检测系统

    一文详解 YOLO 2 与 YOLO 9000 目标检测系统 from 雷锋网 雷锋网 AI 科技评论按:YOLO 是 Joseph Redmon 和 Ali Farhadi 等人于 2015 年提出 ...

  5. android json mysql_Android通过json向MySQL中读写数据的方法详解【读取篇】

    本文实例讲述了Android通过json向MySQL中读取数据的方法.分享给大家供大家参考,具体如下: 首先 要定义几个解析json的方法parseJsonMulti,代码如下: private vo ...

  6. 一文详解决策树算法模型

    AI有道 一个有情怀的公众号 上文我们主要介绍了Adaptive Boosting.AdaBoost演算法通过调整每笔资料的权重,得到不同的hypotheses,然后将不同的hypothesis乘以不 ...

  7. 「软件项目管理」一文详解软件配置管理计划

    一文详解软件配置管理计划 前言 一.配置管理概述 1. 配置管理(SCM)定义 2. 软件配置项目(SCI) 3. 基线 4. 软件配置控制委员会(SCCB) 二.软件配置管理过程 1. 管理过程 2 ...

  8. 「软件项目管理」一文详解软件项目质量计划

    一文详解软件项目质量计划

  9. 「软件项目管理」一文详解软件项目管理概述

    一文详解软件项目管理概述

最新文章

  1. [微信小程序]单选框以及多选框实例代码附讲解
  2. 无需人脸检测,实时6自由度3维人脸姿态估计img2pose
  3. 分页池内存持续增长_Java技术学习之对虚拟机(JVM)内存模型的分析
  4. ubuntu 下telnet 操纵memcache 实现
  5. 一加7pro系统更新android10,一加OnePlus7T Pro官方安卓10.0稳定版出厂系统固件升级更新包...
  6. 2020巨量引擎用户旅游全周期行为动机调研报告
  7. char*赋值给std::string是深拷贝
  8. 什么是传感器?不同类型的传感器及其应用
  9. matlab的hilbert变换的实现
  10. java int转byte出现负数 byte转int的解决
  11. 【数学模拟卷总结】2022李林四套卷数学二第二套
  12. GoogleStyle编程代码规范
  13. SitePoint播客#71:不断发展的互联网
  14. 互补DNA(Complementary DNA)
  15. 【学习笔记】C++ 核心编程(二)类和对象——封装
  16. OpenVas简介与安装
  17. 国内安全厂商护航XP能力引争议
  18. Latex-- 强制图片位置
  19. 一、 软件危机和软件工程
  20. 天创恒达TC TC6C0、 TC-6C0 MINI WIFI帮助文档

热门文章

  1. 二本 计算机专业2017分数线,2017体育二本分数线(2017体育生高考录取分数线)
  2. mysql 格式化时间_每天一个常用MySQL函数-from_unixtime等
  3. html 画布 重置,html5清空画布的方法有哪些
  4. linux下矩阵键盘设备名,Linux下矩阵键盘驱动分析与移植
  5. cad缺失字体补全工具_CAD图纸字体不全怎么办?只要修改字体映射表就可以轻松解决了...
  6. win7卸载显卡及对应驱动后桌面分辨率不对以及鼠标键盘无反应
  7. Java打卡Day4-算术运算符
  8. 测试用例,怎么写 ?
  9. 你不知道的接口测试之简单的开始
  10. win7误删计算机,Win7系统下文件数据被误删了怎么办