关于PCIe协议中FPGA的实现

可编程逻辑

1340人已加入

描述

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

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

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

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

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

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

PCIE协议通信框图如下:

FPGA

用户逻辑与PCI Express事务层接口直接连接,可发送或接收事务层数据包用以实现BAR(基址地址寄存器)空间访问功能和DMA读写功能。计算机对板卡BAR空间的memory读写即为 CPU( 计算机) 发出存储器映射地址写寄存器的命令,该命令包括了存储器映射地址字节使能和寄存器内容,PCIe相应的TLP 端点 接收该TLP并将寄存器内容写到对应的本地寄存器后,事务结束。
       当CPU发出存储器映射地址读寄存器的命令,该命令包括了存储器映射地址字节使能,生成相应的TLP, 端点收到该TLP后会生成响应TLP( 包含数据) 完成包传送,提取其有效载荷并赋值给指定寄存器后,事务结束。 用户逻辑设计结构如图2所示:

FPGA

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

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分