ctp_handshake_ctrl
Run four-phase req/ack handshaking for point-to-point CTP mode.
Asserts and releases ct_req_out_o from ct_src_i against synchronized ct_ack_in_sync_i. Asserts and releases ct_ack_out_o from synchronized ct_req_in_sync_i and pulses ct_dst_o. reset_i recovers a sender deadlock and leaves the receiver untouched; busy_o is high while either side's handshake is in progress. Pad outputs are registered.
Ports
| Name | Direction | Type | Description |
|---|---|---|---|
clk_i | input | logic | System clock. |
rst_ni | input | logic | Active-low asynchronous reset; returns both state machines to idle. |
ct_src_i | input | logic | Core-side pulse, synchronous to clk_i, that starts an outgoing handshake; ignored unless the sender state machine is idle. |
ct_dst_o | output | logic | Registered pulse raised when the receiver accepts a new CT_Req_in request. |
reset_i | input | logic | Level-sensitive sender reset, from CONFIG.RESET in cross_trigger_port; while high it holds the sender idle with ct_req_out_o low. |
ct_req_in_sync_i | input | logic | Incoming request level, synchronized to clk_i and polarity-corrected. |
ct_ack_in_sync_i | input | logic | Incoming acknowledge level, synchronized to clk_i and polarity-corrected. |
ct_req_out_o | output | logic | Outgoing request level for the CT_Req_out pad, before pad inversion; set by ct_src_i and cleared when ct_ack_in_sync_i asserts or on reset_i. |
ct_ack_out_o | output | logic | Outgoing acknowledge level for the CT_Ack_out pad, before pad inversion; set when ct_req_in_sync_i asserts and cleared when it deasserts. |
busy_o | output | logic | High while the sender or receiver state machine is not idle; registered. |