1、PCIE地址映射是什么意思?

本文以xinlinx FPGA PCIE为例,选择集成AXI的PCIE结构为例,说明AXI接口读写地址是如何映射成PCIE读写地址的。

2、集成AXI 的PCIE结构

下图所示为集成AXI的PCIE结构图。其中,包含了PCIE CORE,以及AXI bridge以及3个axi接口,AXI Master是axi总线的主端口,AXI4-lite 是slave端口,用于配置PCIE逻辑。AXI slave是从端口,与之相连的逻辑可以通过axi slave接口主动发起读写操作。本文将说明从AXI slave接口发起的读写地址是如何映射到PCIE端口的。即axi slave端口的awaddr地址是怎么映射到PCIE发送端的。

3、AXI slave接口读写地址到PCIE 串行发送端口的地址映射

使用vivado打开PCIE IP配置界面,可以看到如下图所示的界面,用于配置AXI地址映射的基地址寄存器,即AXI:BARS。

图中配置了3组基地址:每组地址代表了一片地址映射空间。寄存器配置可以自己手动配置,

Aperture high Address和Aperture Base Address决定了axi访问的一片地址空间,AXI to PCIE Translation说明了这片地址空间的最低地址(Aperture Base Address)对应PCIE的哪个地址。

每一片地址映射空间包含三个地址寄存器:16进制,64bit ,其中AXI BAR0配置如下

Aperture Base Address:0x00000000_12340000

Aperture high Address:0x00000000_1234FFFF (64KB)

AXI to PCIE Translation:0x50000000_56710000 (64kbyte对应的地位为0)

其中AXI BAR1配置如下

Aperture Base Address:0x00000000_ABCDE000

Aperture high Address: 0x00000000_ABCDFFFF (8kbyte)

AXI to PCIE Translation:0x60000000_FEDC0000 (8kbyte对应的地位为0)

其中AXI BAR2配置如下

Aperture Base Address:0x00000000_FE000000

Aperture high Address: 0x00000000_FFFFFFFF (32 Mbytes)

AXI to PCIE Translation:0x70000000_40000000(32Mbyte对应的地位为0)

从AXI slave接口发起的读写地址如果是0x0000_12340ABC,那么映射到PCIE串行发送侧的地址是0x5000000056710ABC。映射过程如下:

  1. 0x0000_12340ABC减去Aperture Base Address :0X0000000012340000,得到0xABC
  2. 所得结果0xABC加上0X5000000056710000,则映射到PCIE的发送侧地址为0x5000000056710ABC

综上所叙:

Accessing the Bridge AXIBAR_0 with address 0x0000_12340ABC on the AXI bus yields
0x5000000056710ABC on the bus for PCIe.
• Accessing the Bridge AXIBAR_1 with address 0x0000_ABCDF123 on the AXI bus yields
0x60000000FEDC1123 on the bus for PCIe.
• Accessing the Bridge AXIBAR_2 with address 0x0000_FFFEDCBA on the AXI bus yields
0x700041FEDCBA on the bus for PCIe

具体映射图如下所示:

5、地址不发生映射如何配置

如果AXI slave地址不发生映射,可以只是用一组BAR寄存器,其中Aperture high Address不能为全0,最好为全F。如果Aperture high Address为全0,则读写空间为0,则无法正常读写数据。

则应该配置如下:

Aperture Base Address:0x00000000_00000000

Aperture high Address:0xFFFFFFFF_FFFFFFFF

AXI to PCIE Translation:0x00000000_00000000

6、地址映射的注意事项

  1. 一个AXI slave接口可以使用多组BAR

PCIE原理-002:PCIE地址是如何映射的相关推荐

  1. PCI Express解析——系列文章【2】:PCIe原理分析之——PCI Express线路基础

    PCI Express解析--系列文章[2]:PCIe原理分析之--PCI Express线路基础 前文我们了解了一些概述的基本PCIe总线的简单知识点,下面本文从一些基本原理做一些分析 2 PCIe ...

  2. PCI Express解析——系列文章【5】:PCIe原理分析之——PCI Express 配置解析(BDF、BAR)、 MEM Read举例

    PCI Express解析--系列文章[5]:PCIe原理分析之--PCI Express 配置解析BDF.BAR. MEM Read举例 2.5 Memory Read举例 (1)事务层TLP包准备 ...

  3. PCI Express解析——系列文章【4】:PCIe原理分析之——PCI Express系统模块、PCIe体系结构

    PCI Express解析--系列文章[4]:PCIe原理分析之--PCI Express系统模块.PCIe体系结构 2.3 PCI Express系统模块图 2.4 PCI Express体系结构 ...

  4. PCI Express解析——系列文章【3】:PCIe原理分析之——PCI Express拓扑结构

    PCI Express解析--系列文章[3]:PCIe原理分析之--PCI Express拓扑结构 前文我们了解了一些概述的基本PCIe线路基础包括简单的特性,如果需要详细可以逐点查看一下具体协议资料 ...

  5. STM32F103系列芯片的地址和寄存器映射原理、LED轮流闪烁实现

    STM32F103系列芯片的地址和寄存器映射原理.LED轮流闪烁实现 文章目录 STM32F103系列芯片的地址和寄存器映射原理.LED轮流闪烁实现 1 51单片机和STM32的不同点 2 寄存器 2 ...

  6. 初学 PCIe System (一) - PCIe介绍及其配置空间

    第二部分在:初学 PCIe System (二) - 如何访问PCIe设备的配置空间 PCI Express 介绍 PCI Express (PCIe) 属于第三代的高效能 I/O 汇流排,PCIe ...

  7. 网络原理之TCP-IP地址 子网掩码

    网络原理之TCP_IP地址 & 子网掩码 文章目录 网络原理之TCP_IP地址 & 子网掩码 一.IP4&6 1.1.IP4分类 1.2 应对IP不够用的问题 1.2.2.NA ...

  8. AGP与PCI-E的区别 PCI-E接口与PCI接口的区别

    AGP(Accelerate Graphical Port)加速图形接口 PCI-E是PCI Express的简称,是用来代替PCI.AGP接口规范的一种新标准,由PCI或AGP的并行数据传输变为串行 ...

  9. Linux_网络_数据链路层协议 MAC帧/ARP协议 (以太网通信原理,MAC地址与IP地址的区分,MTU对IP/TCP/IP的影响,ARP协议及其通信过程)

    文章目录 1. 以太网(基于碰撞区与碰撞检测的局域网通信标准) 2. 以太网的帧格式(MAC帧) MAC地址,IP地址的区分 MTU MTU对IP协议的影响 MTU对TCP/UDP协议的影响 3.AR ...

  10. 新品推介:乐扩PCI-E转NGFF(PCIe)SSD+SATA转NGFF(SATA)转接卡

    提到对台式机的性能升级,多数人的想法是换个更快的处理器,加大内存容量,买个更高级的显卡.而实际上,对于一台性能不是很差的电脑来说,最直观有效的性能升级是为它配备固态硬盘.乐扩PCIe转 NGFF(PC ...

最新文章

  1. 设计模式解析(五)——几种设计模式之Facade和Adapter
  2. Suring开发集成部署时问题记录
  3. python怎么保存文件代码_Python文件读写保存操作的实现代码
  4. vmci.sys版本不正确_这样安装 Python 库才是最正确的哦
  5. C语言之如何输出uint32_t和uint64_t和16进制
  6. adb shell命令_[Android]adb的使用
  7. 【机器学习-西瓜书】二、偏差-方差分解;泛化误差
  8. 初识Opserver,StackExchange的监控解决方案
  9. 华为n3计算机在哪里,在华为nova3i中连接电脑的两种方法介绍
  10. cmd 获取ftp没反应_python笔记13-执行cmd指令
  11. 手把手编写自己的PHP MVC框架实例教程
  12. Linux性能优化(九)——Kernel Bypass
  13. 斗地主系列之牌型判断
  14. c语言绝对值函数作用,C语言实现abs和fabs绝对值
  15. 笔记本电脑终于可以待机了
  16. 用最速下降法求最优解
  17. SAP ABAP ASSIGNED 用法
  18. VB.NET获取dpi的方法
  19. KaTex 编写示例 公式 数学公式
  20. SPRING BOOT之三-Tests

热门文章

  1. 解锁小众网站 站在巨人的肩膀上
  2. Java tif转jpg代码实现
  3. Ubuntu配置adb
  4. 轻松安装IP地址位置查询工具nali
  5. 全民一起玩Python提高篇第十五课:函数式编程初步(下)
  6. 设计一个密码登录程序。要求: 设定用户名为lili,密码是123321。若用户名正确,密码也正确,则显示:“lili,欢迎您”
  7. 如何用python裁剪图片
  8. Android 图片剪切框架 uCrop 简单集成
  9. 鸿蒙系统视频美颜,BeautyCam美颜相机
  10. android访问服务器405,Http 405 错误