仅对英特尔可见 — GUID: gqr1541811904026
Ixiasoft
仅对英特尔可见 — GUID: gqr1541811904026
Ixiasoft
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]中以访问下一个数据。
应用逻辑必须读取completion超时接口状态寄存器来跟踪FIFO满和空标记。一旦completion超时FIFO指示其已满,任何后续的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 |
地址 | 名称 | 访问类型 | 描述 |
---|---|---|---|
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比特)。 |