配置状态接口可提供有关核配置方式的信息,例如,协商的链路宽度和速度、核的功耗状态以及配置错误等。下表定义了核的“Configuration Status”(配置状态)接口中的端口。
端口 | I/O | 宽度 | 描述 |
---|---|---|---|
cfg_phy_link_down | 输出 | 1 | 配置链路中断 PCI Express 链路状态,基于物理层 LTSSM。
注释: 根据 PCI Express 基本规范 3.0 版,LinkUp 在“Recovery”(恢复)、L0、L0s、L1 和 L2 cfg_ltssm 状态下为 1b。在“Configuration”(配置)状态下,LinkUp 可为 0b 或 1b。当使用“Detect > Polling > Configuration”(检测 > 轮询 > 配置)达到“Configuration”状态时,则始终为 0b。如果通过任何其它状态转换达到 Configuration 状态,则 LinkUp 为 1b。
注释: 断言复位有效时,此信号的输出为 0b,直至释放复位为止。
|
cfg_phy_link_status | 输出 | 2 | 配置链路状态 PCI Express 链路的状态。
|
cfg_negotiated_width | 输出 | 3 | 协商的链路宽度 此输出指示给定 PCI Express 链路的协商宽度,当 cfg_phy_link_status[1:0] == 11b(DL 初始化完成)时有效。 协商的链路宽度值:
|
cfg_current_speed | 输出 | 3 | 当前链路速度 此信号用于输出给定 PCI Express 链路的当前链路速度。
|
cfg_max_payload | 输出 | 2 | Max_Payload_Size 此信号用于输出最大有效载荷大小,从器件控制寄存器位 7 向下直至位 5。该字段用于设置最大 TLP 有效载荷大小。作为接收器,逻辑处理的 TLP 数量不得超过此处设定的值。作为发射器,逻辑生成的 TLP 数量不得超过此处设定的值。
|
cfg_max_read_req | 输出 | 3 | Max_Read_Request_Size 此信号用于输出最大读取请求大小,从器件控制寄存器位 14 向下直至 12。该字段作为“Requester”(请求器),用于为逻辑设置最大读取请求大小。此逻辑生成的读取请求大小不得超过此处设定的值。
|
cfg_function_status | 输出 | 16 | 配置功能状态 这些输出用于指示每个功能的 PCI 配置空间中的命令寄存器位的状态。这些输出用于启用来自主机逻辑的请求和完成包。位的分配如下:
|
cfg_vf_status | 输出 | 504 |
配置虚拟功能状态
|
cfg_function_power_state | 输出 | 12 | 配置功能功耗状态 这些输出用于指示物理功能的功耗状态。位 [2:0] 用于捕获功能 0 的功耗状态,位 [5:3] 则用于捕获功能 1 的功耗状态,以此类推。可能的功耗状态包括:
|
cfg_vf_power_state | 输出 | 756 | 配置虚拟功能功耗状态 这些输出用于指示虚拟功能的功耗状态。位 [2:0] 用于捕获虚拟功能 0 的功耗状态,位 [5:3] 则用于捕获虚拟功能 1 的功耗状态,以此类推。可能的功耗状态包括:
|
cfg_link_power_state | 输出 | 2 | PCI Express 链路的当前功耗状态,当 cfg_phy_link_status[1:0] == 11b(DL 初始化完成)时有效。
|
cfg_local_error_out | 输出 | 5 | 局部错误状况:已记录错误优先级,优先级 0 为最高优先级。
注释: 此信号可能并非对于所有 PCIe 链路宽度/速度配置都有效。请勿单独依赖此信号来判定错误。还可以通过解码 AER 寄存器来准确检测错误。
|
cfg_local_error_valid | 输出 | 1 | 局部错误状况有效:当遇到 cfg_local_error_out[4:0] 中的任何错误时,块会激活此输出并保持 1 个周期。驱动到 1b 时,cfg_local_error_out[4:0] 会指示局部错误类型。此时将记录错误报告的优先级(用于并发错误)。 注释: 此信号可能并非对于所有 PCIe 链路宽度/速度配置都有效。请勿单独依赖此信号来判定错误。还可以通过解码 AER 寄存器来准确检测错误。
|
cfg_rx_pm_state | 输出 | 2 | 当前 RX 有效状态功耗管理 L0s 状态:以下列出了编码,且当 cfg_ltssm_state 指示 L0 时有效:
|
cfg_tx_pm_state | 输出 | 2 | 当前 TX 有效状态功耗管理 L0s 状态:以下列出了编码,且当 cfg_ltssm_state 指示 L0 时有效:
|
cfg_ltssm_state | 输出 | 6 | LTSSM 状态。显示当前 LTSSM 状态:
|
cfg_rcb_status | 输出 | 4 | RCB 状态。 用于提供每个物理功能的链路控制寄存器中的读取完成边界 (RCB) 位的设置。在“Endpoint”模式下,位 0 指示物理功能 0 (PF 0) 的 RCB,位 1 指示 PF 1 的 RCB,以此类推。在 RC 模式下,位 0 指示 RP 的链路控制寄存器的 RCB 设置,位 1 保留。 对于每个位,值为 0 表示 RCB 为 64 字节,值为 1 表示 128 字节。 |
cfg_dpa_substate_change | 输出 | 4 | 动态功耗分配子状态更改。 在“Endpoint”模式下,当“Configuration Write”(配置写入)传输事务写入“Dynamic Power Allocation Control”(动态功耗分配控制)寄存器以修改器件的 DPA 功耗状态时,核会在其中一个输出上生成 1 个周期的脉冲。位 0 上发生脉冲表示针对 PF0 发生此类 DPA 事件,位 1 上发生脉冲则表示针对 PF1 发生同样的 DPA 事件。另 2 个位为保留位。这些输出在 Root Port 模式下无效。 |
cfg_obff_enable | 输出 | 2 | 优化缓冲器刷新填充启用。 此输出用于反映器件控制 2 寄存器中的“OBFF Enable”(OBFF 启用)字段的设置。
|
cfg_pl_status_change | 输出 | 1 | 此输出供核在 Root Port 模式下用于发出以下某一链路训练相关事件的信号:
当核配置为 Endpoint 时,pl_interrupt 输出无效。 |
cfg_tph_requester_enable | 输出 | 4 | 此输出的位 0 用于反映物理功能 0 的 TPH 请求器功能结构中的 TPH 请求器控制寄存器的 TPH 请求器使能位 [8] 的设置。位 1 对应于物理功能 1。 |
cfg_tph_st_mode | 输出 | 12 | 此输出的位 [2:0] 用于反映物理功能 0 的 TPH 请求器控制寄存器中的 ST 模式选择位的设置。位 [5:3] 用于反映 PF 1 的相同寄存器字段的设置。 |
cfg_vf_tph_requester_enable | 输出 | 252 | 此输出的每个位用于反映对应虚拟功能的 TPH 请求器功能结构中的 TPH 请求器控制寄存器的 TPH 请求器使能位 8 的设置。 |
cfg_vf_tph_st_mode | 输出 | 756 | 此输出的位 [2:0] 用于反映物理功能 0 的 TPH 请求器控制寄存器中的 ST 模式选择位的设置。位 [5:3] 用于反映 VF 1 的相同寄存器字段的设置,以此类推。 |
pcie_tfc_nph_av | 输出 | 4 | 此输出用于指示核的发射端的非转发 TLP 的当前可用报头信用值。用户逻辑可先检查此输出,然后在请求器请求接口上发射非转发请求,以避免在没有信用值可用时阻塞此接口。编码包括:
由于存在流水线延迟,此输出上的值不包含最近最多 8 个周期内的非转发请求所耗用的信用值。用户逻辑必须根据前几个时钟周期内非转发请求所耗用的信用值(如果有)来调整此输出上的值。 |
pcie_tfc_npd_av | 输出 | 4 | 此输出用于指示核的发射端的非转发 TLP 的当前可用有效载荷信用值。用户逻辑会先检查此输出,然后在请求器请求接口上发射非转发请求,以避免在没有信用值可用时阻塞此接口。编码包括:
由于存在流水线延迟,此输出上的值不包含最近最多 8 个时钟周期内用户逻辑发送的非转发请求所耗用的信用值。用户逻辑必须根据前几个时钟周期内非转发请求所耗用的信用值(如果有)来调整此输出上的值。 |
pcie_rq_tag_av | 输出 | 4 | 此输出用于指示可供分配到核的 PCIe 主控制器端的非转发请求的可用标签数量。用户逻辑会先检查此输出,然后在请求器请求接口上发射非转发请求,以避免在没有标签可用时阻塞此接口。编码包括:
由于存在流水线延迟,此输出上的值不包含最近最多 8 个时钟周期内用户逻辑发送的非转发请求所耗用的标签。用户逻辑必须根据前几个时钟周期内所发送的非转发请求的数量(如果有)来调整此输出上的值。 |