欢迎来到天天文库
浏览记录
ID:19446187
大小:813.09 KB
页数:14页
时间:2018-10-02
《基于fpga的pcie设计》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、基于FPGA的PCIe设计1.PCIe简介1.1.PCIe基本架构PCIe的优势以其复杂性为代价。PCIe是基于分组的串行连接协议,估计比PCI并行总线复杂10倍以上。这种复杂性部分源于在千兆赫速率所要求的并行到串行的数据转换以及转向基于分组的实现。PCIe保持了PCI基于加载存储的基本架构,包括对PCI-X增加的对分割事务的支持。此外,它引进了一系列底层信息传送要件来管理链接(如链路层流量控制)以模仿传统并行总线的边带线,且提供了更高水平的robustness和功能。该规范定义了许多特性、能同时支持当今
2、的需求和未来的扩展需要,且同时与PCI保持了软件兼容。PCIExpress的先进特性包括:主动电源管理;先进的错误报告;通过端对端循环冗余校验(ECRC)支持的端对端的可靠性;支持热插拔以及服务质量(QoS)流通类。一个简化系统的拓扑结构包括四个功能类型,根联合体根联合体(rootcomplex)、交换器(switch)、端点(multipleEndpoints)和桥(bridge)。1.ROOTComplex:根联合体对整个PCIe建构实施初始化并配置各链路。它通常把中央处理单元(CPU)与其它三个功能
3、中的一或多个——PCIe交换器、PCIe端点和PCIe到PCI桥——连接起来;2.Endpoint:端点通常位于终端应用内,它负责连接应用与系统内的PCIe网络。端点要求并完成PCIe事务传输。一般来说,系统内的端点比任何其他类型的PCIe部件都要多;(1)LegacyEndpoint;(2)PCIExpressEndpoint;(3)RootComplexIntegratedEndpoint;1.Switch:PCIe交换器把数据路由至下游多个PCIe端口,并分别从其中每个端口路由到上游唯一一个根联合体
4、。PCIe交换器也可以灵活地把数据从一个下游端口路由到另一个下游端口(点对点),它消除了传统PCI系统限制性的树状结构;2.RootComplexEventCollector;3.PCIExpress-PCIBridge:桥用于连接PCIe与系统内诸如PCI/PCI-X等其他PCI总线标准,这样的系统同时采用上述各总线架构;1.1.PCIe协议规格PCIe规范对于设备的设计采用分层的结构,有事务层、数据链路层和物理层组成,各层有都分为发送和接收两功能块。在设备的发送部分,首先根据来自设备核和应用程序的信息
5、,在事务层形成事务层包(TLP),储存在发送缓冲器里,等待推向下层;在数据链路层,在TLP包上再串接一些附加信息,这些信息是对方接收TLP包时进行错误检查要用到的;在物理层,对TLP包进行编码,占用链路中的可用通道,从发送器发送出去。事务层包(TLP),数据链路层包(DLLP),物理层(PLP)产生于各自所在层,最后通过电或光等介质和另一方通讯。这其中数据链路层包(DLLP),物理层(PLP)的包不需要关心,在PCIeHIP核中封装好了。在FPGA上做PCIe的功能就是完成事务层包(TLP)的处理。1.1
6、.处理层(TransactionLayer)处理层接收来自PCIe设备应用的数据,并将其封装为TLP(TransactionLayerPacket)后,发向数据链路层。此外事务层还可以从数据链路层中接收数据报文,然后转发至PCIe设备的核心层。处理层在应用层和数据链路层之间,来产生和接收传输层的包。处理层包括:发送数据路径,配置空间和接收路径。接收数据流程:1)收到从数据链路层来的TLP;2)配置空间用来确定处理层的包是否正确;3)在每个虚拟通道,处理层的包被存在接收buffer中一个特定的部分(由收发类
7、型确定:posted,non-posted,completion);4)处理层packetFIFO块用来存储buffer传输层包的地址;发送数据流程:1)MegaCore通过tx_cred[35:0]来给应用层提供信息;2)应用层会请求传输层给它包,此时应用层需要提供提供PCIExpress传输字头在tx_desc[127:0]中,已经数据在tx_data[63:0]中;3)Megacore会确认suffiicientflowcontrolcredits,并确定是相应还是延迟请求;4)处理层仲裁各虚拟通道
8、,然后选择优先级高的数据给数据链路层;1.1.1.处理层结构1.1.2.TLP报文TLP有三部分组成,帧头、数据、摘要(或者称ECRC)。TLP头标长3或者4个DWORD,格式和内容随报文类型变化,如下图所示。lFmt[1:0]–FormatofTLP–bits6:5ofbyte0;lType[4:0]–TypeofTLP–bits4:0ofbyte0;lTC[2:0]–TrafficClass–bits[6:4]ofbyte
此文档下载收益归作者所有