PCIe

访问PCIe BAR空间

google了一圈,发现xilinx论坛的一个回答比较好, 链接如下:

https://forums.xilinx.com/t5/PCI-Express/PCI-express-Base-Address-Regist...

里面讲了如何访问BAR指定的mem空间。

下面对BAR空间以及配置空间的访问做一个系统的总结,其实就是在回答以下几个问题:
1. PCIe中四种tlp和BAR空间的关系是怎样的?
2. tlp是怎么发起的?
3. tlp是怎么到相应的下游设备的?

一、四种tlp和BAR空间的关系

四种传输如下

类型 说明
mem req tlp 访问mem空间
io req tlp 访问io空间

视频:通过 PCIe 进行调试

了解在 Vivado 中通过 PCIe 进行远程调试的优势。该 QTV 主要介绍所有软硬件组件以及向 PCIe 设计添加 XVC 功能所需的步骤。

UltraScale系列芯片包含PCIe的Gen3 Integrated Block IP核在内的多种不同功能的IP核都会有一页设置为PCIe:BARs,设置IP核的Base address register 的相关参数,如图1所示:

图1 PCIe:BARs 配置图

图1 PCIe:BARs 配置图

Xilinx 7系列(KC705/VC709)FPGA的EDK仿真

作者:俞则人

一:前言

好久没写博客了,前段时间有个朋友加微信请教关于PCIe的一些学习方法。本人也不是专家,只是略知一些皮毛。对于大家反馈的问题未必能一一解答,但一定知无不言。以后我会常来博客园看看,大家可以把问题直接在评论区提出来。这篇博客是应部分网友的要求写的,Xilinx升级到7系列后,原来的pcie ip核trn接口统统转换成了axis接口,这可愁坏了之前用xapp1052的朋友,一下子不好用了,该怎么办?对此我的想法是:如果您两年左右的verilog代码经验,建议您直接使用axis接口,如果您觉得使用不方便,大可在外面再包一层您自己觉得好用的接口。博主公司有这方面的技术积累,但涉及到商业利益,我不能在此出售源代码,如有私下合作,可谈。PCIe_to_RapidIO, PCIe_to_FC, PCIe_to_Enet等各类接口转换都没问题。如果您刚接触PCIe,想要更清楚得理解axis接口的PCIe IP核是如何工作的,那么这篇系统级的博客对您将会非常有用,同时博主也会给出一个用Block_design搭的带有DMA功能的简易EP,大家只要自己写个简单的控制逻辑就可以操作EP端的DMA,对于没有经验的工程师,是一个比较容易的技术迁移。

X4 PCIe Gen2参考设计

该演示展示了S2C的4-Lane PCIe Gen2 GTX Module运行在S2C Virtex-7 Prodigy Logic Module的特性。GTX连接器实现PCIe接口和Samtex GTX接口的物理互连变换。

GTX收发器信号抓取到Virtex-7 Prodigy Logic Module的GTX连接器上。通过连接S2C的4-Lane PCIe Gen2 GTX Module和Virtex-7 Prodigy Logic Module,运行速度最高科大8Gbps。

通过参考设计的演示来证明4-Lane PCIe Gen2和S2C的硬件平台联合工作的有效性。PCIe设备可以在Windows或者Linux工作站上识别。PCIe设备的配置信息,如通道宽度、链接速度、供应商ID和子系统ID可在工作站上读取。S2C的4-Lane PCIe Gen2 GTX Module向下兼容PCIe Gen1,所以PCIe Gen1应用的开发和验证亦可在S2C的Virtex-7 Prodigy Logic Module上进行。

功能

  • 通过PCIe接口对FPGA内实例化的块内存进行访问
  • Xilinx 7系列集成了PCI Express解决方案,包括:
  • 基于PCIe的高速接口设计

    作者:李晓宁,姚远程,秦明伟 2016年微型机与应用第1期

    摘要:PCIe总线是第三代I/O总线的代表,提供高性能、高速、点到点的串行连接,支持单双工传输,通过差分链路来互连设备。该设计由Xilinx公司的Virtex-6 FPGA平台和PC机组成,为了实现PFGA与CPU之间的高速通信,开发了基于FPGA IPcore 的PCIe总线 DMA数据传输平台。通过硬件测试表明,该接口设计方案成本低,传输速率可以达到 1.5 Gb/s。

    0引言

      随着电子行业的飞速发展,人们对数据处理能力和存储速率的要求越来越高,并行数据传输的PCI总线技术逐渐成为系统整体性能提升的瓶颈[1]。尤其在接收机的设计中,总线架构关系到系统的整体性能。串行点对点的PCIe总线克服了PCI总线在系统带宽、传输速度等方面固有的缺陷,有效地提高了系统的整体性能。目前实现PCIe总线功能有两种方法:采用FPGA实现PCIe的功能[2];使用PCIe桥接芯片。由于通过FPGA实现PCIe接口要比使用PCIe桥接芯片更加灵活,成本更低,可靠性更好,所以采用前者完成FPGA与PC机之间的信息的交互。

    PCIe调试心得_DMA part3

    作者: East  FPGA那点事儿

    上一章讲述了PCIe总线如何提高DMA的效率。

    本章以服务器常用的4通道1000M以太网卡为例讲述如何实现多个虚拟DMA通道。

    1.多通道DMA发

    4通道以太网卡的数据相互独立,需要4个虚拟DMA发通道实现4路数据独立传输。4个虚拟DMA发通道如下:

    4个虚拟DMA发通道

    视频: UltraScale FPGAs PCIe 性能演示

    观看本视频,了解和学习如何创建和使用UltraScale PCIe解决方案;如何在Vivado IP目录图形界面(GUI)下创建和使用PCIe IP;如何在VIvado软件中打开和实现该设计实例;如何将结果比特流下载到KCU105开发板,并在Linux系统中加载和查看设计。

    作者:Steve Leibson, 赛灵思战略营销与业务规划总监
    一旦你开始使用一个系统,你可能更愿意它永远不需要升级。但是,通常情况下,这是不现实的。在现在的系统中,更新、升级、打补丁,这些都是司空见惯的。如果你对基于FPGA的系统非常熟悉,那么你可能对通过JTAG对PROM进行编程、Xilinx iMPACT配置和编程工具也比较熟悉。但是,假如在现场打开一个产品,插上JTAG线缆进行现场升级,这种情形就往往不是那么方便了。

    也许在你的下一个设计中,你不需要这么做。

    同步内容