ILA 交叉触发功能支持在 ILA 核之间以及在 ILA 核与处理器(如 AMD Zynq™ 7000 SoC)之间进行交叉触发。如果要在位于不同时钟域中的 2 个 ILA 核之间执行触发,或者要在处理器与 ILA 核之间执行硬件/软件交叉触发,那么可使用该功能。
要使用交叉触发功能,在核生成时,应配置 ILA 核心以使其包含专用触发器输入端口(TRIG_IN 和 TRIG_IN_ACK)和专用触发器输出端口(TRIG_OUT 和 TRIG_OUT_ACK)。如果要使用 ILA 触发器输入或输出信号,则必须使用将 ILA 核添加到设计中的 HDL 例化方法。
TRIG_OUT_ACK 是 ILA 核(另一个 ILA、用户设计或处理器)的指示信号,表明已正确接收到 TRIG_OUT,它会导致 ILA 在接收到 TRIG_OUT_ACK 时拉低 TRIG_OUT 信号。
换言之,TRIG_OUT 会保持高电平直至 TRIG_OUT_ACK 可用为止。如果 TRIG_OUT_ACK 信号绑定到低电平,那么 TRIG_OUT 会保持高电平,直至用户重新装备 ILA 为止。只有 TRIG_OUT 会转至低电平。如果 TRIG_OUT_ACK 绑定到低电平,那么您可重新装备 ILA。
下图显示了典型的交叉触发设置,其中 ILA2 交叉触发到 ILA1 内。ILA2 的 TRIG_OUT 信号连接到 ILA1 的 TRIG_IN 信号。ILA1 的 TRIG_IN_ACK 信号则连接到 ILA2 的 TRIG_OUT_ACK 信号。
(ILA 2) trig_out -> (ILA 1) trig_in
(ILA 1) trig_in_ack -> (ILA 2) trig_out_ack
- 假定驱动
trig_in
端口的逻辑与 ILA clk 保持同步。 - 当
trig_in
断言有效后,trig_in_ack
信号需经过 1 个时钟周期后才能断言有效。 - 当使用
trig_in
或者满足触发条件后,trig_out
信号需经过 9 个时钟周期才能断言有效。 - 仅当触发器信号断言无效后,
trig_in_ack
和trig_out_ack
信号才会转至低电平。
如需获取有关在 FPGA 互连结构与 Zynq 7000 SoC 处理器之间使用交叉触发功能的详细教程,请参阅 Vivado Design Suite 教程:嵌入式处理器硬件设计(UG940)。