【FPGA】基于FPGA的PCIE设计

发布时间:2024-12-17  
	

PCIE简介

PCI Express 是用来互联计算机和外围设备的高速接口总线,是一种能够应用于移动设备,台式电脑,工作站,服务器,嵌入式计算机和通信平台等。


PCIe的两个设备之间可以实现点对点的通信串行通信,如果是多台设备需要通过交换器(Switch)进行互联,这样一个系统可以连接多个设备。


PCIe总线作为处理器系统的局部总线,其作用与PCI总线类似,主要目的是为了连接处理器系统中的外部设备,当然PCIe总线也可以连接其他处理器系统。在不同的处理器系统中, PCIe体系结构的实现方法略有不同。但是在大多数处理器系统中,都使用了RC、 Switch和PCIe-to-PCI这些基本模块连接PCIe和PCI设备。在PCIe总线中,基于PCIe总线的设备,也被称为EP(Endpoint)


计算机通信平台中 , PCI Express体系结构代表作高性能的外围组件互联方法


1、 由PCI 和PCI-X 体系结构演变而来architectures

2、 PCI Express 以一种串行的点对点的方式互联两个设备

3、 信息传输基于数据包协议实现

4、 PCI Express 互联中可实现单通道或多通道的数据传输

5、 PCI Express 协议目前已经发布4个版本



PCIE的特性如下:


1、点对点传输

2、 串行总线意味着使用更少的引脚

3、 通道数可选择: x1, x2, x4, x8, x12, x16, x32

4、 全双工通信

5、 2.5Gbps / 5.0Gbps

6、 基于数据包的传输协议


计算机体系结构中PCIe的应用架构如下:



从上面我们可以看出PCIE应用架构主要包括四部分:


1、FSB总线CPU交互总线:FSB总线(Front Side Bus)是CPU和DDR内存交互的总线

2、Root Complex:RC (Root complex)是PCIe结构体系中的一个重要的结构部件, RC的提出跟X86系统架构密切相关,实际上只有在x86架构中才有标准的RC规范定义,而在其他系统中并不存在标准定义的RC的全部功能。例如X86的架构中包含DDR控制器和FSB to PCIe的桥, 而ZynqSoc芯片架构中包含AXI to PCIe的桥和DDR控制器,PowerPc只包含一个PCIe总线控制器。这里需要注意Root complex包括root port。

3、PCIe Switch:Switch PCIe链路通过Switch进行链路扩展

4、PCIe End point:即常见的PCIE终端设备,FPGA最常用的也是End point。


FPGA在PCIE中可以成为Root Complex、Switch和 End point:



PCIe总线层次结构主要包括三层主要是事务层、数据链路层、物理层。


1、事务层:PCIe总线层次结构的最高层,该层次将接收PCIe设备核心层的数据请求,并将其转换为PCIe总线事务, PCIe总线使用的这些总线事务在TLP头中定义。PCIe总线使用的数据报文首先在事务层中形成, 这个数据报文也被称之为事务层数据报

文,即TLP。(解释:主要意思也就是事务层将数据封装成TLP包发给下层使用)

2、数据连路层:TLP在经过数据链路层时被加上Sequence Number前缀和CRC后缀,然后发向物理层。

3、物理层:PCIe的电气特性、电路等。在PCIe链路可以正常工作之前,需要对PCIe链路进行链路训练,在这个过程中,就会用。


LTSSM状态机。LTSSM全称是Link Training and Status State Machine。这个状态机在PCIe总线的物理层之中。状态转移图如下:



Detect状态是PCIe链路训练的开端。此外, Detect,顾名思义,需要实现检测工作。因为在这个状态时,发送端TX需要检测接收端RX是否存在且可以正常工作,如果检测正常,才能进入其他状态。判断RX是否存在的逻辑比较简单,就是通过一个“Detect logic”电路比较RC时间常数的大小。



从上图可以发现PCIe终端连接上,时间常数会变大。多以也就以此决定Detect状态是否进入下一个状态。


Polling 状态的目的是"对暗号",实现无障碍沟通。进入这个状态后, TX和RX之间通过发送TS1、 TS2 OS序列来确定Bit Lock, Symbol Lock以及解决Lane极性反转的问题。


Bit Lock: 在Bit传输过程中, RX PLL锁定TX Clock频率,这个过程称为RX实现"Bit Lock。(解释:也就是位同步)


Symbol Lock: RX端串并转化器知道如何区别一个有效的10-bit Symbol,这个过程称为“Symbol Lock”. 这里用到的是COM控制符。(解释:也就是帧同步)



常见的视频方案如下:



FPGA中PCIE的实现:


1、7系列FPGA支持实现Gen1与Gen2的PCIE协议

2、Virtex-7 FPGA支持实现Gen3的PCIE协议

3、UltraScale与UltraScale+支持Gen3的PCIE协议

4、支持x1,x2,x4,x8,x16lanes的通路

5、PCIE的硬核使用了GTP接口用来串行传输数据


PCIE的速度传输速度如下:



FPGA中PCIE硬核的介绍,整体框图如下:



1、该硬核PCIE支持Endpoint和Root Port

2、支持AXI4-Stream用户接口:

x1, x2, x4, 和x8 lanes; 64-bit 和128-bit位宽


Root Port简要介绍


Xilinx FPGAs支持硬核root port,但是没有硬核root complex。root complex包括一个或多个root port、内存,IO子系统等等。root port只是提供给switch或者endpoint连接的端口。二者之间的关系如下:



root port经常使用在简单的设计中,比如与单个的endpoint相连。root complex则有配套的软件环境与复杂的设计。


FPGA构建root port的常见案例如下:



FPGA构建root complex的常见案例如下:



root port与endpoint也有许多不同点。root port使用Type 1配置头空间。endpoint使用Type 0配置头空间。两者主要的区别如下:



PCIE协议简述


PCIE的地址空间


PCI Express实现了四种地址空间:


1、 PCIe配置空间(多达4KB)

– 必须有,每个PCI设备都有其映射到内存上的配置空间

– 前256字节与PCI兼容

2、 PCIe内存映射空间

– 可选的,根据设备功能选择是否需要映射内存空间

3、 PCIe IO映射空间

– 可选的

4、PCIe消息空间

其中PCIe消息空间主要用于中断的使用,内存映射空间用于大量数据的传输,IO映射空间用于少量数据的传输。



Type0型:


– 用于配置端点设备

– 由根复合体发起,配置预定义的PCI系统端点设备头部区域

– 设备号/ID号

– BAR


Type1型:


– 用于配置Switches/Bridges/end point


PCIE TLP包的数据类型


上面已经讲解PCIE分别包括事务层、数据链路层、物理层,每一层对TLP包的作用如下:



这里的3DW与4DW其实是与地址是32位还是64位挂钩。


具体TLP包在每层协议的情况如下:



PCIE中TLP包的类型如下:



PCIE的路由类型


PCIE每一种请求或者完成报文头都会有类型标注,每个数据包的路由都基于以下三种方式:


1、 地址路由

2、 ID 路由

3、 隐含式路由


端点的地址路由


端点设备检查TLP包中的地址与BAR中所有地址进行比较,如果不属于本端点范围,则拒绝。


端点的ID路由


端点设备检查TLP包里的 总线 ID 和 设备 ID 功能ID是否与本端点一致,这些信息在Type0的配置信息里可以捕获。


不同类型的TLP包与路由类型的对应关系如下:



PCIE点对点的传输框图


1、配置IO传输



2、DMA传输



3、end point与end piont之间的传输



PCIE的中断类型


PCIE的中断类型主要有两种:

文章来源于:21IC    原文链接

本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>