《电子技术应用》
您所在的位置:首页 > 模拟设计 > 业界动态 > 关于PCIe协议中FPGA的实现

关于PCIe协议中FPGA的实现

2019-06-19
关键词: PCIe FPGA

  PCIe链路协议使用“端到端的数据传送方式”,发送端和接收端中都含有TX(发送逻辑)和RX(接收逻辑)。PCIe协议采用分层结构,分为事务层、数据链路层和物理层 。PCIe中2个互连的设备采用事务的方式通信,事务是指为实现设备间某种信息传送。

  而定制的由一个或者若干个包组成的发送序列,事务通过事务包(TLP) 具体实现。协议每层的功能如下:

  1、物理层(PhysicalLayer):电气特性,使用两个单向的低电压差分对信号实现数据传输,同时也承担8b/10b的数据编解码,即在PCIe链路上的10 bit中含有8 bit的有效数据

  2、数据链路层(DataLink Layer):对该层传输的TLP进行组装和分拆,作为中间层为上下两层服务。

  3、事务层(TransactionLayer):接受从软件方送来的请求,并生成请求包传输到数据链路层。同时接受从数据链路层传来的数据包,

  传递给软件,也就是对TLP进行分装和组装。

  PCIE协议通信框图如下:

  

o4YBAF0KA72AYln4AAEG18OxOLQ916.png

  用户逻辑与PCI Express事务层接口直接连接,可发送或接收事务层数据包用以实现BAR(基址地址寄存器)空间访问功能和DMA读写功能。计算机对板卡BAR空间的memory读写即为 CPU( 计算机) 发出存储器映射地址写寄存器的命令,该命令包括了存储器映射地址字节使能和寄存器内容,PCIe相应的TLP 端点 接收该TLP并将寄存器内容写到对应的本地寄存器后,事务结束。

  当CPU发出存储器映射地址读寄存器的命令,该命令包括了存储器映射地址字节使能,生成相应的TLP, 端点收到该TLP后会生成响应TLP( 包含数据) 完成包传送,提取其有效载荷并赋值给指定寄存器后,事务结束。 用户逻辑设计结构如图2所示:

  

2.png

  上图中PCIe集成端点模块核可以在FPGA中直接使用PCIe的IP核实现,我们需要在FPGA中自已实现的主要是上图中与PCIe IP核相连接的部分几个模块。


本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。