cross_trigger_network
Aggregate external CTPs, internal CTPs, the cross-trigger matrix, and an AXI-Lite CSR crossbar.
NUM_CTP external ports and NUM_INT_CT internal ports attach to the CTM. GPIO pad buses expose CT_Req_out/in and CT_Ack_in/out for each external CTP.
INT_CT_MODE selects the internal CTP protocol:
- 0: simple pulse sync; acks are unused.
- 1: req/ack four-phase handshaking per internal CTP.
CLA clock-stop requests OR-reduce into combinational cla_clock_stop_o and, together with the JTAG DEBUG_CONTROL clock stop, into stop_clks_o, synchronized and registered in clk_i.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
NUM_CTP | int unsigned | DefaultNumCtp | Number of external CTPs, from 1 to 32. NUM_CTP + NUM_INT_CT must equal the NumCtSrc and NumCtDst of the generated cross-trigger matrix. |
NUM_INT_CT | int unsigned | DefaultNumIntCt | Number of internal CTPs, at most 32. |
NUM_CLK_STOP_REQ | int unsigned | DefaultNumClkStopReq | Width of clk_stop_req_i; at least 1. |
INT_CT_MODE | logic [NUM_INT_CT-1:0] | '0 | Mode of each internal CTP, one bit per CTP. 0 selects wire-OR pulse sync and 1 a point-to-point four-phase handshake. |
Ports
| Name | Direction | Type | Description |
|---|---|---|---|
clk_i | input | logic | System clock; all CSRs, ports and the matrix run on it. |
rst_ni | input | logic | Active-low asynchronous reset. |
test_en_i | input | logic | DFT test-mode enable, active-high, for the AXI-Lite CSR crossbar. |
axil_req_i | input | axil_req_t | AXI-Lite CSR subordinate request; the crossbar routes offset 0 to the CTM and the following windows to the external CTPs, one transaction at a time. |
axil_resp_o | output | axil_resp_t | AXI-Lite CSR subordinate response. |
clk_stop_req_i | input | logic [NUM_CLK_STOP_REQ-1:0] | Clock stop requests from CLAs, active-high and asynchronous to clk_i. |
jtag_clock_stop_i | input | logic | JTAG DEBUG_CONTROL clock stop, active-high and asynchronous to clk_i. |
stop_clks_o | output | logic | Halt, high when the JTAG or any CLA request is high; two-flop synchronized and registered in clk_i, low in reset. |
cla_clock_stop_o | output | logic | Combinational OR of clk_stop_req_i, for JTAG status readback. |
ctm_src_req_o | output | logic [NUM_INT_CT-1:0] | Cross-trigger requests from the CTM to internal CLA sinks; a stretched pulse in pulse-sync mode, a four-phase request level in handshake mode. |
ctm_src_ack_i | input | logic [NUM_INT_CT-1:0] | Acknowledges from internal CLA sinks for CTM-sourced requests, synchronized in the port; unused in pulse-sync mode. |
ctm_dst_req_i | input | logic [NUM_INT_CT-1:0] | Cross-trigger requests from internal CLA sources to the CTM, active-high and synchronized in the port. |
ctm_dst_ack_o | output | logic [NUM_INT_CT-1:0] | Acknowledges to internal CLA sources for CTM-destined requests; low in pulse-sync mode. |
ctp_req_out_dout_o | output | logic [NUM_CTP-1:0] | CT_Req_out pad output data, registered; in wire-OR mode a static low (high when inverted), with the pulse carried by the output enable; in point-to-point mode the handshake request, inverted when the port's invert bit is set. |
ctp_req_out_dout_en_o | output | logic [NUM_CTP-1:0] | CT_Req_out pad output enables; follow the stretched outgoing pulse in wire-OR mode and stay high in point-to-point mode. |
ctp_req_out_din_i | input | logic [NUM_CTP-1:0] | CT_Req_out pad inputs, asynchronous; the shared trigger line sampled in wire-OR mode, unused in point-to-point mode. |
ctp_req_out_din_en_o | output | logic [NUM_CTP-1:0] | CT_Req_out pad input enables; high in wire-OR mode, low in point-to-point mode. |
ctp_req_in_dout_o | output | logic [NUM_CTP-1:0] | CT_Req_in pad output data; tied low because CT_Req_in is input-only. |
ctp_req_in_dout_en_o | output | logic [NUM_CTP-1:0] | CT_Req_in pad output enables; tied low because CT_Req_in is input-only. |
ctp_req_in_din_i | input | logic [NUM_CTP-1:0] | CT_Req_in pad inputs, asynchronous; the incoming point-to-point request, unused in wire-OR mode. |
ctp_req_in_din_en_o | output | logic [NUM_CTP-1:0] | CT_Req_in pad input enables; high in point-to-point mode, low in wire-OR mode. |
ctp_ack_in_dout_o | output | logic [NUM_CTP-1:0] | CT_Ack_in pad output data; tied low because CT_Ack_in is input-only. |
ctp_ack_in_dout_en_o | output | logic [NUM_CTP-1:0] | CT_Ack_in pad output enables; tied low because CT_Ack_in is input-only. |
ctp_ack_in_din_i | input | logic [NUM_CTP-1:0] | CT_Ack_in pad inputs, asynchronous; the acknowledge for the outgoing point-to-point request, unused in wire-OR mode. |
ctp_ack_in_din_en_o | output | logic [NUM_CTP-1:0] | CT_Ack_in pad input enables; high in point-to-point mode, low in wire-OR mode. |
ctp_ack_out_dout_o | output | logic [NUM_CTP-1:0] | CT_Ack_out pad output data, registered; the handshake acknowledge in point-to-point mode, inverted when the port's invert bit is set; low in wire-OR mode. |
ctp_ack_out_dout_en_o | output | logic [NUM_CTP-1:0] | CT_Ack_out pad output enables; high in point-to-point mode, low in wire-OR mode. |
ctp_ack_out_din_i | input | logic [NUM_CTP-1:0] | CT_Ack_out pad inputs; unused because CT_Ack_out is output-only. |
ctp_ack_out_din_en_o | output | logic [NUM_CTP-1:0] | CT_Ack_out pad input enables; tied low because CT_Ack_out is output-only. |