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

转载于:https://www.cnblogs.com/chengqi521/p/7943553.html

PCIe to AXI Translation——PCIe 内存空间到AXI内存空间的转换相关推荐

  1. pcie读写ddr_一文详解PCIe内存空间到AXI内存空间的转换

    UltraScale系列芯片包含PCIe的Gen3 Integrated Block IP核在内的多种不同功能的IP核都会有一页设置为PCIe:BARs,设置IP核的Base address regi ...

  2. PCIe学习笔记之pcie结构和配置空间

    PCIe概述 PCI Express,是计算机总线PCI的一种,它沿用现有的PCI编程概念及通信标准,但建基于更快的串行通信系统. PCIE总线使用的是高速差分总线,并采用端到端的连接方式, 现在的高 ...

  3. PCIe ECAM机制访问PCIE的配置空间

    1.PCIe ECAM机制 PCI Express Enhanced Configuration Access Mechanism (ECAM)是访问PCIe配置空间的一种机制.是将PCIe的配置空间 ...

  4. 5. MIZ7035 PCIe测试 RIFFA【PCIE视频传输】

    1.前言 MIZ7035官方提供了两种pcie的demo,一个就是普通的PIO测试,一个是BMD测试.我只是试验了PIO功能,可以对板卡直接进行IO寄存器读写.而另外一个BMD功能使用了DMA来加速数 ...

  5. 多功能PCIE交换机之三:PCIE非透明桥 cache一致性

    关于PCIE非透明桥 cache一致性 PCIE非透明桥提供了两种机制来从local node往remote node迁移数据,分别是基于地址映射和内嵌的 DMA.对remote节点而言,当它接受数据 ...

  6. PCIe学习笔记之pcie初始化枚举和资源分配流程代码分析

    本文主要是对PCIe的初始化枚举.资源分配流程进行分析.代码对应的是linux 4.19, 平台是arm64. 文章首发于这里 1. PCIe architecture 1.1 pcie的拓扑结构 在 ...

  7. 老男孩读PCIe之一:从PCIe速度说起

    老男孩读PCIe之一:从PCIe速度说起 Posted on 2017年8月3日 by SSD Fans 原创内容,转载请注明:  [http://www.ssdfans.com]  谢谢! 从今天开 ...

  8. PCIE——第6章——PCIe总线的事务层

    摘要:PCIE--第6章--PCIe总线的事务层 目录 第 6 章 PCIe 总线的事务层 6. 1 TLP 的格式 6. 1. 1 通用 TLP 头的 Fmt 字段和 Type 字段 6. 1. 2 ...

  9. 【Linux 内核 内存管理】内存管理架构 ② ( 用户空间内存管理 | malloc | ptmalloc | 内核空间内存管理 | sys_brk | sys_mmap | sys_munmap)

    文章目录 一.用户空间内存管理 ( malloc / free / ptmalloc / jemalloc / tcmalloc ) 二.内核空间内存管理 1.内核内存管理系统调用 ( sys_brk ...

最新文章

  1. 2021年大数据Hadoop(十四):HDFS的高可用机制
  2. 树的高度(小米2017秋招真题)
  3. Windows系统进程全解剖
  4. 无限循环小数POJ1930
  5. 如何处理高并发写入mysql_如何处理高并发情况下的DB插入
  6. CVPR2016:ResNet 从根本上解决深度网络退化问题
  7. 「读懂源码系列2」我从 lodash 源码中学到的几个知识点
  8. adf平稳性检测_ADF声明性组件示例
  9. redis---安全设置
  10. bootstrap-徽章-链接
  11. Flex走出低谷的关键: 打破Flex固有的定义
  12. 软件项目需求调研报告模板下载_「软件项目管理入门」(21) 需求调研和需求分析怎么做?...
  13. oracle优化distinct,oracle中使用group by优化distinct
  14. 数据挖掘与六度分隔理论
  15. SQL语句之查询进阶篇---上
  16. 等比缩放公式_PHP图像等比缩放代码
  17. 学会爬虫不用再收藏了,直接把网站拍照留念
  18. 使用exe4j+inno setup打包exe文件踩坑记录
  19. Centos7创建DNS服务器(超级简单,一看就会)
  20. 【Python成长之路】Python爬虫 --requests库爬取网站乱码(\xe4\xb8\xb0\xe5\xaf\x8c\xe7\x9)的解决方法

热门文章

  1. zoj 1562 反素数 附上个人对反素数性质的证明
  2. Dom4j解析Xml文件,Dom4j创建Xml文件
  3. 分公司网络建设---Juniper 设备策略路由配置
  4. 关于“服务器提交了协议冲突. Section=ResponseStatusLine问题
  5. nginx解析漏洞 只要可以上传文件就会被黑
  6. 一步一步学WF系列(四)——工作流模拟登陆
  7. autoreconnect mysql true_连接数据库超时设置autoReconnect=true
  8. gradle 项目打包成多个jar包_自从用完 Gradle 后,有点嫌弃 Maven 了!
  9. 剑灵电五服务器位置,选对服务器很重要 剑灵新手选服攻略
  10. Redis五大基本数据类型及其相关命令及常用用途