PCIE协议解析 synopsys IP Core 读书笔记(2)

来源:互联网 发布:手机二次元壁纸软件 编辑:程序博客网 时间:2024/05/17 21:56

1      Overview


图1

如上图为整个PCIE的框架,在C1中PIPE-CompliantPHY部分的SERDES模块,DWC PCIe Core为synopsys提供的IP,而黄色部分为用户需要完成的部分,主要包括参数的配置和数据的发送和接收。

2      Architecture


图2

该IP包含4个重要的模块,CXPL、RADM、XADM、CDM。

Ø  Common ExpressPort Logic (CXPL) Module:

整个协议的核心部分,包含了物理层、数据链路层的全部功能、同时包含了传输层大部分的功能。其中包含了一个重要的缩写,LTSSMlink training and statues state machine,在后面的文档中将重复出现,link training的目的在于完成链路的链接。

Ø  TransmitApplication-Dependent Module (XADM):

面向数据包发送的应用模块,主要包括以下3个功能:

l  TLP(Transaction Layer Packet)arbitration

l  TLP formation

l  Flow control creditchecking

   该模块内部为直接转发的结构,除了重发的缓存区外,内部没有发送的缓存区。

Ø  ReceiveApplication-Dependent Module (RADM):

面向数据包接收的应用模块,主要包括以下3个功能:

l Sorting/filtering of received TLPs. The filtering rules and routing areconfigurable.

l  Buffering and queuing ofthe received TLPs.

l  Routing of received TLPto the core’s receive interfaces.

Ø  Configuration-DependentModule (CDM):

功能:

l  Standard PCI Express configuration space

l  Core-specific register space (Port Logic Registers)

其他相关的模块:

Ø  Power ManagementController (PMC)

Ø  Local BusController (LBC) and Data Bus Interface (DBI)

The LBC module providesa mechanism for a link partner (in EP mode only) or a local CPU (through

the DBI) to access:

l  Internal registers (in the CDM)

l  External applicationregisters connected externally to the ELBI

Ø  MessageGeneration Module (MSG_GEN)

Ø  Hot Plug ControlModule (HOT PLUG)

如图3所示,可以非常清晰的看到内部各个模块间的关系,而作为用户,不需要与CXPL直接做数据交互,而需要关心的内容主要是与RADM、LBC、CDM、XADM、MSG_GEN、PMC的数据交换,以及与之交互的一大堆的接口。下面从图中的上往下介绍各个接口的作用和意义。

“Receive Bypass Interface (RBYP)” on page 233

“Receive Request Interface (TRGT1)” on page 234

“Data Bus Interface (DBI)”on page 240

“External Local Bus Interface (ELBI)” on page 238

“Message Signaled Interrupt (MSI) Interface”on page242

“MSI-X Interface” on page 243

“Transmit Interfaces (XALI0/1/2)” on page 22

“Vendor Message Interface (VMI)” on page 247

“System Information Interface (SII)” on page 248

作为用户,我认为需要知道以上各个接口的作用和用法,并且知道每个接口需要在整个传输中扮演的角色,而在IP生成后,也许部分接口用户不需要知道,但是在C1 bring up阶段,每个接口的具体作用应该都是必须要明白的。


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

图3

 

 

 

 

3      Core operation

3.1   Initialization

1、  先disable link training

2、  通过DBI(data bus interface)配置core的stickyregisters,需要配置什么目前不知道??????

3、  Enable link training

4、  等待link完成。

5、  root Complex枚举Downstream Device(什么是Downstreamdevice????

Ø  读取 Downstream device的配置空间

Ø  配置device的capabilites(具体配置什么???

Ø  配置switch ports(???) 的base和limit寄存器,以反映devices enumerated downstream的BAR(Base Address Register)的范围。

Ø  配置endpoint的BAR。

(该部分是用户完成,还是IP自动完成????????)

6、  使能BME、MSE、ISE。

7、  开始传输数据。

1 0
原创粉丝点击