P-Tile Avalon® Streaming Intel® FPGA IP for PCI Express* 用户指南

ID 683059
日期 4/04/2024
Public
文档目录

4.7.1. Completion超时接口

P-Tile IP for PCIe的特性包括一种Completion超时机制,用于跟踪用户应用程序发送的Non-Posted请求和接收到的相应Completion。当P-Tile IP检测到Completion超时时会通过置位cpl_timeout_o信号通知用户应用程序。

当发生Completion超时时,用户应用程序可以使用 Avalon® -MM Completion Timeout Interface (为每个端口)访问Hard IP中的Completion超时FIFO,以获取有关事件的更多详细信息,并在必要时更新AER功能寄存器。Completion超时FIFO变空后,IP内核置低cpl_timeout_o信号。

cpl_timeout_avmm接口同步到cpl_timeout_avmm_clk_i时钟。

示例:

cpl_timeout_o置位时,用户应用程序可以发出一个 Avalon® -MM Read,从Completion FIFO检索信息。然后,用户应用程序可以发出一个 Avalon® -MM Write,将1写入到CONTROL寄存器的bit[0]中以访问下一个数据。

注: 用户应用程序逻辑不应在TLP Bypass模式期间使用此接口,因为此接口上的信息在TLP Bypass模式下是无效的。

应用逻辑必须读取completion超时接口状态寄存器来跟踪FIFO满和空标记。一旦completion超时FIFO指示其已满,任何后续的completion超时数据包信息将不会被超时接口捕获。

图 37. Completion超时接口时序图
表 68.  Completion超时范围
信号名称 方向 描述 时钟域 EP/RP/BP
cpl_timeout_o O

表示在预期的时间窗口内未收到一个请求的completion TLP的事件。

只要Hard IP中的completion超时FIFO是空的,IP内核就会置位此信号。

您可以通过查看completion超时 Avalon® -MM接口(下面有列出)上的信号来获取有关completion超时事件的更多详细信息。

coreclkout_hip EP/RP
cpl_timeout_avmm_read_i I Avalon® -MM读使能。 cpl_timeout_avmm_clk_i EP/RP
cpl_timeout_avmm_readdata_o[7:0] O Avalon® -MM读数据输出。 cpl_timeout_avmm_clk_i EP/RP
cpl_timeout_avmm_readdata_valid_o O 这些信号会限定进入应用层(Application Layer)的cpl_timeout_avmm_readdata_o信号。 cpl_timeout_avmm_clk_i EP/RP
cpl_timeout_avmm_write_i I Avalon® -MM写使能。 cpl_timeout_avmm_clk_i EP/RP
cpl_timeout_avmm_writedata_i[7:0] I Avalon® -MM写数据输入。 cpl_timeout_avmm_clk_i EP/RP
cpl_timeout_avmm_addr_i[20:0] I

Avalon® -MM地址输入。

[20:3] : 保留。将它们连接到0。

[2:0] : FIFO寄存器的地址。请参考下面的地址映射表来了解更多详细信息。

cpl_timeout_avmm_clk_i EP/RP
cpl_timeout_avmm_waitrequest_o O 此信号置位时表明IP内核还没准备好接收任何请求。 cpl_timeout_avmm_clk_i EP/RP
cpl_timeout_avmm_clk_i I

Avalon® -MM时钟。

50 MHz - 125 MHz (范围)

100 MHz (推荐使用)

当您使能此接口时,必须为该时钟提供一个时钟源或者连接到一个时钟源。

  EP/RP
注: Completion Timeout Interface有其自己的地址映射,与其他地址映射是隔离的。
表 69.  Completion Timeout Interface的地址映射
地址 名称 访问类型 描述
0x0 STATUS RO

[7:2] : 保留

[1] : Completion超时FIFO已满

[0] : Completion超时FIFO已空

0x1 CONTROL WO

[7:1] : 保留

[0] : 读取(从FIFO弹出的数据)。将1写入到CONTROL寄存器的bit 0之前,您需要读取关于超时请求的所有信息。写入CONTROL寄存器的bit 0会使下一个数据出现。

0x2 VF RO

[7:0] : vfunc_num[7:0]

启动非发布(non-posted)传输的VF的虚拟功能(Virtual Function)编号,非发布传输的completion超时会被观察到。

0x3 PF RO

[7] : vfunc_active

[6] : 保留

[5:3] : func_num[2:0]

启动非发布(non-posted)传输的PF的物理功能(Physcial Function)编号,会对该非发布传输的completion超时进行观察。

[2:0] : vfunc_num[10:8]

启动存储器读取请求的PF的虚拟功能(Virtual Function)编号(最高有效3比特),存储器读取请求的completion超时会被观察到。

0x4 LEN1 RO

[7:0] : cpl_lenn[7:0]

非发布(non-posted)传输的预期完成(completion)超时传输长度(以字节为单位,最低有效8比特)。对于一个拆分的完成(completion),它表示完成(completion)超时时要传输的剩余字节数(最大长度为最大读取(Max Read)请求大小。例如:4K字节 = 2^12字节)

0x5 LEN2 RO

[7:4] : 保留

[3:0] : cpl_lenn[11:8]

非发布(non-posted)传输的预期完成(completion)超时传输长度(以字节为单位,最高有效4比特)。对于一个拆分的完成(completion),它表示完成(completion)超时时要传输的剩余字节数(最大长度为最大读取(Max Read)请求大小。例如:4K字节 = 2^12字节)

0x6 TAG1 RO

[7:0] : cpl_tag[7:0]

非发布(non-posted)传输超时的预期完成(completion)的标签ID (最低有效8比特)。

0x7 TAG2 RO

[7:5] : cpl_tc[2:0]

非发布(non-posted)传输超时的预期完成(completion)的流量类(traffic class)。

[4:3] : cpl_attr[1:0]

非发布传输超时的预期完成(completion)的属性。不支持基于ID的排序。[4] -> 宽松排序(Relaxed ordering),[3] -> 无监听(No Snoop)

[2] : 保留

[1:0]: cpl_tag[9:8]

非发布(non-posted)传输超时的预期完成(completion)的标签ID (最高有效2比特)。