【PCIe】CDNS PCIe VIP 杂记 -- Packet Classes

4 篇文章 2 订阅

在写callback那篇文章之后,继续这篇,因为CDNS VIP知识点散且杂,我们实际应用其实也只是冰山一角,【实话实说,UG及相关文档也有点杂、无序,尤其对新手不友好】,所以我也很难将一个topic总结详细到位,后面看时间和遇到的问题类型,根据自己的实际情况和理解不定时不定期更新不同topic吧。【PCIe】CDNS PCIe VIP 杂记 -- Callback-CSDN博客

这篇更新一下packet class类,类特别多,只写我自己频繁用到的和我的理解点。后面有新的理解也会不定时回头再更新。

顾名思义,packet class就是用来define不同种类的packet的。

class denaliPciePacket extends uvm_sequence_item

这是所有packet的基类(base class),它是一个虚类(virtual class),[注:UG里是这么写的,可是从code里看并不是virtual的],继承于uvm_sequence_item类。

TL Packet Classes

接下来介绍TL层的packet类。

class denaliPcieTlpPacket extends denaliPciePacket

该类是所有TLP type的基类,它扩展出denaliPcieTlpReqPacket, denaliPcieTlpMsgPacket, denaliPcieTlpCplPacket. 

class denaliPcieTlpMsgPacket extends denaliPcieTlpPacket

该类描述TLP message packet。

class denaliPcieTlpCplPacket extends denaliPcieTlpPacket

该类描述TLP completion包。

 class denaliPcieTlpReqPacket extends denaliPcieTlpPacket

该类是Memory, I/O和configuration read/write包的基类。

class denaliPcieTlpMemPacket extends denaliPcieTlpReqPacket

该类描述TLP memory读写包。在requestTLP的基础上多了地址信息。

class denaliPcieTlpIoPacket extends denaliPcieTlpReqPacket

该类描述I/O TLP读写包。

class denaliPcieTlpCfgPacket extends denaliPcieTlpReqPacket

DL Packet Classes

接下来介绍Data Layer 的packet包。

DLL Packet Classes

Although all DLLP including Ack/Nak, FC-Update packets are automatically generated by the BFM, you can also generate your own packets and add it to the user queue.

尽管所有的DLLP包括Ack/Nak, FC包都可以被BFM自动产生,但是你也可以自己来产生并将其加入到user queue里。【注:也就是说这部分描述的类就是用作user自己干预的包】

class denaliPcieDllpPacket extends denaliPciePacket

class denaliPcieDlpPacket extends denaliPcieRawDlpPacket

【denaliPcieRawDlpPacket类定义在下面Raw Packet Classes章节说明。】

该类被DL packet包用。一个DLP可以理解为一个TLP加上sequence number(序列号)和LCRC,它被用作表示到达DLL(Data Link Layer)后的TLP包。

【注:这里由上面两个类也更好的理解了Spec中对于TLP和DLLP的理解了。

1. DLLP在Data Link层生成,到达对端Data Link层结束;

2. TLP在TL层生成,到底对端TL层结束;到达DL层就叫DLP。】

PL Packet Classes

class denaliPciePlPacket extends denaliPciePacket

This class serves as the base class for the PLP and the PLLP types.

接下来介绍物理层包:Physical Layer Packets.

class denaliPciePlpPacket extends denaliPciePlPacket

该类表示PL packet。

class denaliPciePllpPacket extends denaliPciePlPacket

该类表示PLL packet。

【注:由上面两个类可以看出,Plp对应Dlp,及TLP到达DL层后到达PL层后的呈现; PLLP对应的是DLLP,及产生于DL层的包DLLP到达PL层的呈现。】

Raw Packet Classes

接下来介绍Raw packet。

1. class denaliPcieRawPacket extends denaliPciePacket

The pktType field is one of the four possible types – RawDllp, RawDlp, RawTlp, or RawData

2. class denaliPcieRawDlpPacket extends denaliPciePacket

This class is used to describe the RawDLP packet and serves as a base class for the DLP.

Ordered Sets Classes

The following section describes the classes associated with generating ordered sets

class denaliPcieOrderedSet extends denaliPciePacket

该类描述了各种order set,包括FTS, SKP, IDLE,是PcieTrainingSet类的基类。

class denaliPcieTrainingSet extends denaliPcieOrderedSet

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值