核与设计示例包含“Tandem Configuration”(串联配置)专用的端口(信号)。这些信号可在阶段 1(核)与阶段 2(用户逻辑)之间提供握手。握手是核与用户逻辑之间进行交互所必需的。下表定义了核上的握手端口。
名称 | 方向 | 极性 | 描述 |
---|---|---|---|
mcap_design_switch | 输出 | 高电平有效 |
用于识别切换至阶段 2 用户逻辑的操作何时完成。 0:尚未加载阶段 2。 1:已加载阶段 2。 |
cap_req | 输出 | 高电平有效 | 配置访问端口仲裁请求信号。此信号应用于对用户实现的多个配置接口之间的 FPGA 配置逻辑的使用进行仲裁。如果仅使用媒体配置访问端口 (MCAP) 作为用户实现的配置接口,那么此信号应保持处于未连接状态。 |
cap_rel | 输入 | 高电平有效 | 配置访问端口仲裁释放请求信号。此信号应用于对用户实现的多个配置接口之间的 FPGA 配置逻辑的使用进行仲裁。如果仅使用 MCAP 作为用户实现的配置接口,那么此信号应绑定到低电平 (1'b0)。这样即可根据需要允许通过 MCAP 访问 FPGA 配置逻辑。 |
cap_gnt | 输入 | 高电平有效 | 配置访问端口仲裁授权信号。此信号应用于对用户实现的多个配置接口之间的 FPGA 配置逻辑的使用进行仲裁。如果仅使用 MCAP 作为用户实现的配置接口,那么此信号绑定到高电平 (1'b1)。这样即可根据请求授权通过 MCAP 访问 FPGA 配置逻辑。 |
user_reset | 输出 | 高电平有效 | 当 PCIe 核复位时,此信号可用于复位 PCIe 接口逻辑。与 user_clock 同步。 |
user_clk | 输出 | 不适用 | 供 PCIe 接口逻辑使用的时钟。 |
user_lnk_up | 输出 | 高电平有效 | 用于识别 PCIe Express 核是否正常链接至主机器件。 |
这些信号可在用户应用内协调事件,例如,释放输出三态缓冲器(如“串联配置详细信息”中所述)。以下是有关这些信号的部分附加信息:
- 加载阶段 2 之后,即断言
mcap_design_switch
有效。加载阶段 2 之后,此输出由根端口系统控制。只要此信号断言无效,PCIe 解决方案 IP 就会与用户设计其余部分隔离,并且 TLP BAR 访问会返回“Unsupported Requests (URs)”(请求不受支持)。 -
cap_req
信号、cap_rel
信号和cap_gnt
信号应用于对多个配置接口(例如,内部配置访问端口 (ICAP))之间的 FPGA 配置逻辑的使用进行仲裁。ICAP 可在其它 IP 核中使用,或者也可在用户设计中直接例化。要在 MCAP 与 ICAP 之间进行仲裁,必须创建逻辑,并使用cap_*
信号按用户设计期望的方式允许访问每个接口。对于 MCAP,应始终为其授予对配置逻辑的专享访问权限,直至阶段 2 完全完成加载为止。这可通过断言mcap_design_switch
输出有效来识别。初始阶段 2 设计完成加载后,MCAP 接口即可按系统级设计所期望的方式来使用。当根端口连接请求访问配置逻辑时,cap_req
断言有效。用户设计可通过在响应中断言cap_gnt
有效来授权访问。随后,用户设计可通过断言cap_rel
有效来请求 MCAP 释放配置逻辑的控制权。根端口连接可通过deasserting cap_req
(断言无效)来释放控制权。如果用户逻辑未断言cap_gnt
有效,则不应访问 MCAP。同样,已向 MCAP 接口授予访问权时,其它配置接口不应尝试访问配置逻辑。 - 核本身复位时,
user_reset
同样可用于复位与该核通信的任何逻辑。 -
user_clk
仅作为 PCIe IP 核的内部主时钟。此时钟用于对与该核直接通信的任何用户逻辑进行同步。 -
user_lnk_up
正如其名,表示 PCIe 核当前正在运行已建立的链路。