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

Table 1. Ports
NameDirectionTypeDescription
clk_iinputlogicSystem clock.
rst_niinputlogicActive-low asynchronous reset; returns both state machines to idle.
ct_src_iinputlogicCore-side pulse, synchronous to clk_i, that starts an outgoing handshake; ignored unless the sender state machine is idle.
ct_dst_ooutputlogicRegistered pulse raised when the receiver accepts a new CT_Req_in request.
reset_iinputlogicLevel-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_iinputlogicIncoming request level, synchronized to clk_i and polarity-corrected.
ct_ack_in_sync_iinputlogicIncoming acknowledge level, synchronized to clk_i and polarity-corrected.
ct_req_out_ooutputlogicOutgoing 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_ooutputlogicOutgoing 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_ooutputlogicHigh while the sender or receiver state machine is not idle; registered.