目录

1、概述

2、PIO_RX_ENGINE工作时序

3、PIO_TX_ENGINE工作时序

4、参考文献:


1、概述

本文以Xilinx ISE K7芯片 PCIE IP core 生成的user design 作为学习例程。

vivado里关于PCIE 的IP CORE与ISE里 PCIE的IP core,其user design 逻辑一致。

阅读本文,最好参考一定的PCIE通信协议方面的资料,对比着看,比较容易理解。

本文正在整理中,有些说明不到位,还望理解。如有不对的地方,请留言,我会及时更正。

  事务层包(TLP),数据链路层包(DLLP),物理层(PLP)产生于各自所在层,最后通过电或光等介质和另一方通讯。其中数据链路层包(DLLP),物理层(PLP)的包平常不需要关心,在 IP 核中封装好了。

下面,重要的话,请说三遍!!!!!

在 FPGA 上做 PCIe 的功能,变成完成事务层包(TLP)的处理,即可! 

在 FPGA 上做 PCIe 的功能,变成完成事务层包(TLP)的处理,即可! 

在 FPGA 上做 PCIe 的功能,变成完成事务层包(TLP)的处理,即可! 
 

阅读下文,最好电脑屏幕或桌上书本里,有参考PCIE协议的相关介绍,对比着看,方便理解!

 

当PCIE IP CORE接收到一个TLP数据包时,其需要做的是, 首先,根据标头判断这个TLP是读存储器还是写存储器。

若是写存储器,就将下一个TLP中的地址和数据解析出来(因为这里一次发送64bit,所以第一个TLP中不包含地址和数据,第二个TLP中包含地址和数据),然后通过PIO_EP_MEM_ACCESS 模块将数据写入指定的地址中;

若是读存储器,就将下一个TLP中包含的地址解析出来,再通过PIO_EP_MEM_ACCESS 模块将数据从指定的地址中读取出来,然后经过发送引擎(PIO_TX_ENGINE )进行完成包拼接,最后通过事务层、数据链路层、物理层封装之后,通过差分发送接口(txn、txp)将数据发送出去。
 

 

下面两张图是Xilinx ISE 软件生成的IP CORE的架构连接情况。

 

Xilinx PCIE CORE学习

Xilinx PCIE CORE学习

一个TLP包(事物层),是由头标、数据和摘要组成。

Xilinx PCIE CORE学习

下面附图,PCIE TLP 包的头标格式。

Xilinx PCIE CORE学习

下图是一个简单的TLP 包,即包含两个64位的数据。clock0时刻,采样的,64位宽的数据1,clock1时刻,采样的是64位宽的数据2。需要注意,下面的TLP报文是:01a0090f40000001+0403020100000010,这个字节发送顺序,是采用AXI Bit的顺序。因此,举例,若需要解析TLP保温里的Request ID,则其对应的TLP报文是第一个64位宽的数据的高16位,即“01a0=0000_0001_1010_0000”.

Xilinx PCIE CORE学习

这是一个,由于一次发送64位,因此这个报文的前64位是标头,后64位是数据和地址。 

按照上图的数据格式可知 
    Request ID:16’b0000_0001_1010_0000 
    Tag:8’b0000_1001 
    Last DW BE:4’b0000 
    First DW BE:4’b1111 
    Fmt:2’b10 
    Type:5’b0_0000 
    Length:10’b00_0000_0001 
    Data:32’h04030201 
    Address:32’h00000010(低两位无效)
 

特别说明,一个TLP数据包,是可以采用AXI总线进行数据传输,当然,在解析数据包时,也是需要根据AXI总线协议,还原TLP包,然后进行数据解析。

当然,TLP数据包,也是可以采用其他协议进行数据传输,比如USE/UART,关键是看速率需求。如果希望传输比较快的话,还是建议采用AXI协议进行传输TLP包比较好!

 

2、PIO_RX_ENGINE工作时序

 

 

 

3、PIO_TX_ENGINE工作时序

 

 

 

 

正在整理中,未完,待续。。。。

 

4、参考文献:

CLGo :https://blog.csdn.net/cllovexyh/article/details/79828833 )

 

相关文章:

  • 2021-08-24
  • 2022-02-03
  • 2021-07-12
  • 2021-06-28
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-01-07
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-19
  • 2021-12-01
  • 2021-07-17
  • 2021-10-24
相关资源
相似解决方案