在FPGA4FUN上看到一篇介绍PCI-E的帖子,简单易懂,适合入门,特地搬过来

原文地址:http://www.fpga4fun.com/PCI-Express.html

前言:

As PCI Express becomes common place in high-end FPGAs, let's see how easy FPGA vendors made the technology available.

由于PCI-E在高端FPGA中变得越来越常见,我们来看看FPGA厂商们是怎样让它很容易的为我们所用的

In particular, we look more closely at Xilinx's PCI Express solution.

以赛灵思为例

全文分为六个部分,第一部分:

PCI Express - Connector

PCI Express comes commonly in two sizes: 1-lane and 16-lanes, with 1-lane used for regular boards and 16-lanes used for graphic cards.

PCI-E通常分为两种规模:一路的用在常规板子上,16路的用在图形卡上

The connector

The 1-lane connector has 36 contacts, arranged in two rows of 18 contacts.
Here's a top view.


Of the 36 contacts, only 6 are useful to the transport of data, the rest are power pins and other auxiliary signals. The 6 functional contacts are used in 3 pairs:

一路的连接器分成有36个引脚,分成两行,每行18个。在这36个引脚中,只有6个是用作数据传输的,其余的都是电源或者辅助信号。这6个引脚分成3对

  • A clock pair called REFCLK.
  • A receive pair called PER.
  • A transmit pair called PET.


The pairs are often referred as "differential pairs" because each signal from a pair carries the same signal but with one inverted from the other. The reason for using differential pairs is mainly reliability of transmission and will be discussed in more details later.

时钟、数据接收和发送这三对信号线使用差分传输

In PCI Express generation 1 (or simply "Gen1"), the PET and PER pairs have data transmitted at a speed of 2.5Gbps. Gen2 doubles that.

第一代PCI-E数据传输速度为2.5Gbps,第二代为5Gbps。

Looking at the Dragon-E board, we can recognize the PET pair below the FPGA.


To work correctly, the lines in a differential pair need to be electrically coupled and have no impedance discontinuities, which in practice means something like "stay close together" and "no sharp angles". That's the reason for the Dragon-E's PET pair serpentine shape. The other side of the board shows the two other serpentine pairs REFCLK and PER.

为了能正常工作,差分信号线必须要电耦合和阻抗连续,这有点像“靠近一点”和“没有锐角”,这也就是为什么Dragon-E上的差分线看着像蛇形。

PCI Express x16

To allows for more speed, multiple lanes can be used. The REFCLK pair doesn't need to be duplicated, so for example, PCI Express with 2 lanes uses 5 pairs (1 REFCLK + 2 PET + 2 PER).

Graphic boards often use 16 lanes connectors in what is commonly called PCI Express x16.

为了实现更高的速度,我们可以使用通道复用。时钟线不需要复用,举个例子,两通道的PCI-E使用5对线(1路时钟+2路数据发送+2路数据接收),图形卡经常使用16通道连接器。

点名说一下 verilog-IT大道,转了我多少篇博客,也不标明出处。这篇文章我刚发出去就被转载了,你们的爬虫很厉害啊!

PCI Express(一)- Connector的更多相关文章

  1. PCI Express(二) - Topology

    原文出处:http://www.fpga4fun.com/PCI-Express2.html Point-to-point architecture At 2.5Gbps, the PCI Expre ...

  2. [中英对照]How PCI Express Works | PCIe工作原理

    How PCI Express Works | PCIe工作原理 PCI Express is a high-speed serial connection that operates more li ...

  3. PCI Express(六) - Simple transactions

    原文地址:http://www.fpga4fun.com/PCI-Express6.html Let's try to control LEDs from the PCI Express bus. X ...

  4. PCI Express(五) - Xilinx wizard

    原文地址:http://www.fpga4fun.com/PCI-Express5.html Xilinx makes using PCI express easy - they provide a ...

  5. PCI Express(四) - The transaction layer

    原文出处:http://www.fpga4fun.com/PCI-Express4.html 感觉没什么好翻译的,都比较简单,主要讲了TLP的帧结构 In the transaction layer, ...

  6. PCI Express(三) - A story of packets, stack and network

    原文出处:http://www.fpga4fun.com/PCI-Express3.html Packetized transactions PCI express is a serial bus. ...

  7. Down to the TLP: How PCI express devices talk (Part II)

    http://xillybus.com/tutorials/pci-express-tlp-pcie-primer-tutorial-guide-2 Data Link Layer Packets A ...

  8. Down to the TLP: How PCI express devices talk (Part I)

    http://xillybus.com/tutorials/pci-express-tlp-pcie-primer-tutorial-guide-1 Down to the TLP: How PCI ...

  9. Ubuntu 16.04 RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller” 不能上网

    来源:http://forum.ubuntu.org.cn/viewtopic.php?f=116&t=463646 1.执行如下命令 uname -a sudo lspci -knn sud ...

随机推荐

  1. Android启动模式(三种)

    1,标准启动模式 通过任务栈,每点一次button,将每一个实例都压入,然后点返回键时候,就弹出之前压入的实例. 每一次的地址都是不同的 测试代码:通过创建一个button和textView来显示本身 ...

  2. Hibernate注解映射sequence时出现无序增长问题+hibernate 映射 oracle ID自动增长:

    Hibernate注解映射sequence时出现无序增长问题+hibernate 映射 oracle ID自动增长: 通过Hibernate注解的方式映射oracel数据库的sequence主键生成器 ...

  3. JSP EL表达式 与输入有关的内置对象

    与输入有关的隐含对象有两个param和paramValues,用来取得用户的请求参数.在使用EL之前可以使用如下代码取得用户的请求参数: request.getParameter(String nam ...

  4. Sublime Text 3开启自动换行

    在Submine Text 3中要开启自动换行功能只需要两个步骤: 1.找到查看(View) 2.点击弹出菜单中的自动换行即可 但是如果是在2中的话就相对麻烦少少,现在也说下其开启自动换行功能的步骤: ...

  5. document的一点点

    var str = "hello world" document.write(str.length)输出字符串长度   12 给string 添加样式 <p>Big: ...

  6. iframe的使用

    function Report() {           var info = document.getElementById("iframeReport");          ...

  7. html+css二级菜单制作!

    二级菜单!!<!DOCTYPE html<html lang="e<head> <meta charset="UTF-8"> < ...

  8. Java输入输出流(一)——常用的输入输出流

    1.流的概念:在Java中,流是从源到目的地的字节的有序序列.Java中有两种基本的流--输入流(InputStream)和输出流(OutputStream). 根据流相对于程序的另一个端点的不同,分 ...

  9. Sea.js学习4——Sea.js的配置

    可以对 Sea.js 进行配置,让模块编写.开发调试更方便. seajs.config seajs.config(options) 用来进行配置的方法. seajs.config({ // 别名配置 ...

  10. go_databasetest

    go_databasetest go语言的数据库测试: go get github.com/Go-SQL-Driver/MySQL package main import ( _"githu ...