欢迎来到天天文库
浏览记录
ID:58676483
大小:82.72 KB
页数:6页
时间:2020-10-15
《PCIE---TLP报文格式及字段处理.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、TLP报文格式类型及字段处理以下均基于PCIExpress®2.0BaseSpecification--Revision0.9本文例子均以PCIeRootPort通过PCIeEndPoint访问其挂载的Memory为例,如PCIeEP的RX方向为接收RP端对Memory的读写请求,TX方向为返回完成报文。1.TLP报文格式通用的TLP报文格式如下图所示:其中Header部分是必须的,Data部分不是必须的,其长度最大可以为1024DW,最小为0,即不带数据的TLP报文,TLPDigest也不是必须的,至于Data和TLPDigest是否需要由Header部分决定。2.Gen
2、ericTLPHeaderTLP报文的Header部分Byte0~3是通用的,其他字节可能与TLP报文的类型相关。通用TLPHeader部分字段定义如下:下面详细介绍功能及字段处理。2.1FmtFmt[1:0]CorrespondingTLPFormat00b3DWheader,nodata01b4DWheader,nodata10b3DWheader,withdata11b4DWheader,withdata此字段确定:lHeader的大小是3DW还是4DW,如果为4DW,则请求地址则为64bit,否则为32bit;lTLP报文是否包含数据;具体见上表。字段处理,Fmt和
3、Type字段联合进行处理确定当前TLP的总线事务,具体见Type字段。1.1Type这里只介绍几种常用的Memory读写请求的TLP报文类型,其他可参考PCIE标准。TLPTypeFmt[1:0]Type[4:0]DescriptionMRd0000000存储器读请求;TLPHeader为3DW或4DW,不带数据01MWr1000000存储器写请求;TLPHeader为3DW或4DW,带数据11Cpl0001010完成报文;TLPHeader为3DW,不带数据;包括存储器,配置和IO写完成CplD1001010完成报文;TLPHeader为3DW,带数据;包括存储器,配置和
4、IO读完成字段处理:Rx方向:解析报文时,首先解析Fmt[1]和Type[4:0],如果Type[4:0]=5’h0,再根据Fmt[1]来获取读写请求,0代表读请求,1代表写请求。assignrx_rdreq_n=((Fmt_Type[6]==1'b0)&(Fmt_Type[4:0]==5'b00000))?1'b1:1'b0;assignrx_wrreq_n=((Fmt_Type[6]==1'b1)&(Fmt_Type[4:0]==5'b00000))?1'b1:1'b0;Tx方向:为返回完成报文;assignFmt_Type=8'h4a;1.2TCTC字段表示当前TLP
5、的传送类型,PCIe总线共规定8种传输类型TC0~TC7,一般仅仅使用默认值TC0,这里不过多介绍TC相关内容。字段处理:Rx方向:不需要解析此字段;TX方向:assignTC=3’h0;1.3TD、EP、ATTD位表示TLP中的TLPDigest是否有效,1为有效,0为无效。EP位表示当前TLP中的数据是否有效,1表示无效,0表示有效。AT字段与PCIe总线的地址转换相关,只有在支持IOMMU技术的处理器系统中,才使用这个字段,因此此位保留。字段处理:Rx方向:EP、TD、AT均不需要解析此字段;TX方向:assignTD=1’b0;assignEP=1’b0;AT字段保
6、留;1.1AttrbitTypeDescriptionOrderingTypeOrderingModel1OrderingAttributes0DefaultOrderingPCI强序模型1RelaxedOrderingPCI-XRelaxedOrdering模型0NoSnoopAttributesCacheCoherencyManagementTypeCoherencyModel0Default硬件强制执行cache共享一致性处理1NoSnoop硬件不强制执行cache共享一致性处理字段处理:1.Rx方向:Attr不需要解析此字段;2.TX方向:assignAttr=2'
7、h0;1.2Length对于RP的读请求,无DataPayload,Length字段表示需要从目标设备EP的数据区读取的数据长度;对于写请求,则表示当前报文DataPayload长度。Length[9:0]TLPDataPayloadSize0000000001b1DW0000000002b2DW…………1111111111b1023DW0000000000b1024DW字段处理:1.Rx方向:读请求:²需要将Length保存下来,然后送给TX方向返回完成报文的使用;assignrx_hold_length=len
此文档下载收益归作者所有