---恢复内容开始---

高速差分总线、串行总线

每一条PCIe链路中只能连接两个设备这两个设备互为是数据发送端和数据接收端。PCIe链路可以由多条Lane组成,目前PCIe链路×1、×2、×4、×8、×16和×32宽度的PCIe链路,还有几乎不使用的×12链路。

PCIe总线规范

总线频率

单Lane的峰值带宽

编码方式

单个Lane带宽

1.x

1.25GHz

2.5GT/s

8/10b编码

每传输8比特有效数据,要附带两比特的校验位,实际要传输10比特数据。

250MB/s

2.x

2.5GHz

5GT/s

8/10b编码

500MB/s

3.0

4GHz

8GT/s

128/130b编码

1GB/s

在PCIe总线中,使用GT(Gigatransfer)计算PCIe链路的峰值带宽。GT是在PCIe链路上传递的峰值带宽,其计算公式为 总线频率×数据位宽×2。

在PCIe总线中,数据报文在接收和发送过程中,需要通过多个层次,包括事务层transaction(事务、学报、交易)、数据链路层和物理层。PCIe总线的层次结构如下。

1 PERST#信号全局复位信号

2 REFCLK+和REFCLK-信号 使用这组信号与处理器系统同步。

3 WAKE#信号  提交唤醒请求,使处理器系统重新为该PCIe设备提供主电源Vcc

Virtex-7 FPGA Gen3
Integrated Block for
PCI Express v1.3

clock data recovery
(CDR) and differential signaling.

The key features of the Virtex-7 FPGA Gen3 Integrated Block for PCI Express (8.0 GT/s) core are:
• High-performance, highly flexible, scalable, and reliable, general-purpose I/O core
° Compliant with the PCI Express Base Specification, rev. 3.0
° Compatible with conventional PCI software model
• GTH transceivers
° 2.5 GT/s, 5.0 GT/s, and 8.0 GT/s line speeds
° 1-lane, 2-lane, 4-lane, and 8-lane operation
• Endpoint configuration
• Multiple Function and Single-Root I/O Virtualization in the Endpoint configuration
° 2 Physical Functions
° 6 Virtual Functions
• Standardized user interface(s)
° Compliant to AXI4-Stream
° Separate Requester, Completion, and Message interfaces
° Flexible Data Alignment
° Parity generation and checking on AXI4-Stream interfaces
° Easy-to-use packet-based protocol
° Full-duplex communication enabling
° Optional back-to-back transactions to enable greater link bandwidth utilization
° Support for flow control of data and discontinuation of an in-process transaction in
transmit direction
° Support for flow control of data in receive direction
• Compliant with PCI and PCI Express power management functions
• Optional Tag Management feature
• Maximum transaction payload of up to 1024 bytes
• End-to-End Cyclic Redundancy Check (ECRC)
• Advanced Error Reporting (AER)
• Multi-Vector MSI for up to 32 vectors and MSI-X
• Atomic Operations and TLP Processing Hints

使用Gen3 X8

TLP:transaction layer packet

TLP Receiver Engine:
 This state machine receives TLPs from the PCI-e core and determines
their validity and destination.
 Controls register writes.
 Passes Read Completion payloads to the DDR3 DMA (if implemented).
 Passes BAR0, BAR2, or BAR4 register Read Requests to the TLP
transmitter engine.
TLP Transmitter Engine:
 Controls register Reads and constructs the resulting Read Completion
packets.
 Transmit Arbiter
 Provides arbitration for access to the PCI-e Core transmit data link port
for the eight ADC channel DMAs.
 Provides arbitration for access to the PCI-e Core transmit data link port
for register Read Completions.
 Provides arbitration for access to the PCI-e Core transmit data link port
for DDR3 DMA Read Requests (if implemented).
Memory Aperture Interface:
 Provides BAR and address decoding and the generation of chip selects.
 Creates BAR0, BAR2, and BAR4 register Write Data buses for
distribution throughout the FPGA.
 Creates 16 BAR0 register Read buses, 16 BAR2 user register Read buses,
and a FLASH device BAR4 Read bus for distribution throughout the
FPGA.
 It provides the multiplexing of the various data Read sources for
submission to the TLP transmitter engine.
PCI-e Control and Status Registers:
 It provides status of the PCI-e link including link width and speed.
 It provides the Interrupt Flag and Enable register that latches the various
interrupts from all of the other modules. Interrupts are combined to
generate an interrupt control to the PCI-e Core.
 Converts AXI-Lite Master accesses into standard PCI-e read/write
tranactions to provide AXI access to the Global Control Registers

PCIE的更多相关文章

  1. 使用FIO对SATA、SSD和PCIe Flash进行测试

    首先声明,同事做的实验 使用fio对SATA.SSD.PCIE进行了测试 测试说明: 1.测试命名   sync_write_4k_32      sync表示测试方式,可以是sync或者libaio ...

  2. 基于WDF的PCI/PCIe接口卡Windows驱动程序(5)-如何为硬件移植驱动程序

    原文地址:http://www.cnblogs.com/jacklu/p/6139347.html 正如前几篇博客所说,使用WDF开发PCIe驱动程序是我本科毕业设计的主要工作.在读研的两年,我也分别 ...

  3. PCIE学习

    PCIe在传输中用8b/10b编码,所以单PCEe2.0的有效带度是4Gb/s x2模式将用于内部接口而非插槽模式 PCIe卡能使用在至少与之传输通道相当的插槽上(例如x1接口的卡也能工作在x4或x1 ...

  4. KVM 介绍(4):I/O 设备直接分配和 SR-IOV [KVM PCI/PCIe Pass-Through SR-IOV]

    学习 KVM 的系列文章: (1)介绍和安装 (2)CPU 和 内存虚拟化 (3)I/O QEMU 全虚拟化和准虚拟化(Para-virtulizaiton) (4)I/O PCI/PCIe设备直接分 ...

  5. 基于WDF的PCI/PCIe接口卡Windows驱动程序(4)- 驱动程序代码(源文件)

    原文出处:http://www.cnblogs.com/jacklu/p/4687325.html 本篇文章将对PCIe驱动程序的源文件代码作详细解释与说明.整个WDF驱动程序工程共包含4个头文件(已 ...

  6. 基于WDF的PCI/PCIe接口卡Windows驱动程序(3)- 驱动程序代码(头文件)

    原文出处:http://www.cnblogs.com/jacklu/p/4679304.html 在WDF的PCIe驱动程序中,共有四个.h文件(Public.h  Driver.h  Device ...

  7. 基于WDF的PCI/PCIe接口卡Windows驱动程序(2)-开发者需要了解的WDF中的一些重要的概念

    原文出处:http://www.cnblogs.com/jacklu/p/4646601.html 本科毕业设计是这方面的工作,所以想开几篇博客来介绍使用WDF开发PCI/PCIe接口卡的驱动程序方法 ...

  8. 基于WDF的PCI/PCIe接口卡Windows驱动程序(1)-WDF概述及开发环境搭建

    原文出处:http://www.cnblogs.com/jacklu/p/4619110.html 本科毕业设计是这方面的工作,所以想开几篇博客来介绍使用WDF开发PCI/PCIe接口卡的驱动程序方法 ...

  9. WinDriver&PCIE

    1.安装VS2012 安装VS2012略过,主要用它来做数据传输应用程序的,WINDRIVER提供了一系列API接口,方便了用户,使用户能直接进入用户态的编程,因为内核态的编程它已做好,不需要进行修改 ...

  10. WinDriver&PCIE

    1.安装VS2012 安装VS2012略过,主要用它来做数据传输应用程序的,WINDRIVER提供了一系列API接口,方便了用户,使用户能直接进入用户态的编程,因为内核态的编程它已做好,不需要进行修改 ...

随机推荐

  1. 原生js学习 选择dom

    连bootstrap5 都抛弃jquery了,重新使用原生js来写,所以最近在学习原生js. 一.选择dom元素: id let sure=document.getElementById('sure' ...

  2. Java多线程(八)——join()

    一.join()介绍 join() 定义在Thread.java中.join() 的作用:让“主线程”等待“子线程”结束之后才能继续运行.这句话可能有点晦涩,我们还是通过例子去理解: // 主线程 p ...

  3. Linux并发与同步专题 (1)原子操作和内存屏障

    关键词:. <Linux并发与同步专题 (1)原子操作和内存屏障> <Linux并发与同步专题 (2)spinlock> <Linux并发与同步专题 (3) 信号量> ...

  4. 断路器(Curcuit Breaker)模式

    在分布式环境下,特别是微服务结构的分布式系统中, 一个软件系统调用另外一个远程系统是非常普遍的.这种远程调用的被调用方可能是另外一个进程,或者是跨网路的另外一台主机, 这种远程的调用和进程的内部调用最 ...

  5. 从高德采集最新的省市区三级坐标和行政区域边界,用js在浏览器中运行

    本文描述的是对国家统计局于2019-01-31发布的<2018年统计用区划代码和城乡划分代码(截止2018年10月31日)>中省市区三级的坐标和行政区域边界的采集. 本文更新(移步查阅): ...

  6. Python-可变参数和关键字参数(*args **kw)

    前言: Python的函数具有非常灵活的参数形态,既可以实现简单的调用,又可以传入非常复杂的参数. 可变参数和关键字参数的语法: *args是可变参数,args接收的是一个tuple: **kw是关键 ...

  7. 二十一、当锚点遇到fixed(margin和padding)

    当锚点点击跳转的时候,如果上方有fixed,锚点跳转会默认跳转到top为0的地方,有一部分就被遮挡了 解决方法:(像素值随便给的) 给锚点跳转到的具体内容加padding-top:-50px:marg ...

  8. 翻转一个数组(c++实现)

    反转一个数组: 其实STL中的vector有一个reverse函数便可以使用. #include<iostream> using namespace std; int* ReverseAr ...

  9. H5 audio标签

    37-audio标签 注意点: audio标签的使用和video标签的使用基本一样, video中能够使用的属性在audio标签中大部分都能够使用, 并且功能都一样 只不过有3个属性不能用, heig ...

  10. docker之导出、导入、数据搬迁

    docker 导出 导入有二种,一种是备份镜像,一种备份容器.数据搬迁,最简单粗暴就是直接COPY,volume的路径就行了. 一.导出导入镜像 #导出为tar docker save #ID or  ...