smc_dfd_wrap

Wrap the SMC design-for-debug logic: one CLA and one DST behind an APB register port.

Reduces the 64-lane debug bus to 16 lanes through eight level-3 and four level-2 debug-bus muxes, and runs the muxes and the DFD IP on a locally gated copy of clk_smc_i. Generates the CLA time tick from clk_ref_i edges, masks the CLA cross-trigger and halt-clock outputs, and leaves the trace sink RAMs outside the block.

Parameters

Table 1. Parameters
NameTypeDefaultDescription
BASE_ADDRlogic [22:0]0Base address of the CLA and DST registers, passed to the DFD IP as its MMR base address.
NUM_INPUT_LANESint unsigned64Number of lanes on debug_bus_i. The eight level-3 muxes always read 64 lanes: a smaller value makes their part-selects run past the top of debug_bus_i, and lanes above 64 are ignored.
REF_CNT_Wint unsigned8Width of the reference tick accounting counters. Bounds how far clk_gated_i may fall behind clk_ref_i before ticks are lost; 2**REF_CNT_W ref cycles of slack.
LaneWidthint unsigned16Width of one debug-bus lane in the mux tree and the DFD IP.

Ports

Table 2. Ports
NameDirectionTypeDescription
clk_smc_iinputlogicSMC core clock, gated locally to clock the debug-bus muxes, the DFD IP and the time-tick counter.
clk_ref_iinputlogicReference clock; each rising edge produces one CLA time tick in the gated SMC clock domain.
rst_primary_niinputlogicActive-low primary reset for the DFD logic, also synchronized into clk_ref_i for the reference counter.
apb_smc_dfd_reg_req_iinputsmc_pkg::smc_dfd_apb_req_tAPB request to the CLA and DST registers.
apb_smc_dfd_reg_resp_ooutputsmc_pkg::smc_dfd_apb_resp_tAPB response from the CLA and DST registers.
dfd_enables_iinputsmc_pkg::dfd_enable_tDFD control fields: dfd_cg_en set stops the local clock unless dfd_force_clk_en is set; bit 0 of xtrig_clk_halt_mask passes the CLA cross-trigger and halt-clock outputs. The clock runs while rst_primary_ni is low.
external_action_debug_interrupt_ooutputlogicDebug interrupt raised by a CLA external action.
external_action_custom_ooutputlogic [cla_pkg::CLA_NUMBER_OF_CUSTOM_ACTIONS-1:0]Custom CLA external-action outputs, one bit per custom action.
xtrigger_ss_ooutputsmc_pkg::xtrigger_tCross-trigger lanes from the CLA, forced low unless bit 0 of the clock-halt trigger mask is set.
xtrigger_ss_iinputsmc_pkg::xtrigger_tCross-trigger lanes into the CLA.
tdr_dbg_ctrl_clock_stop_en_iinputlogicEnables reporting a CLA halt-clock action as a clock stop.
tdr_dbg_ctrl_clocks_stopped_by_cla_ooutputlogicHigh while a CLA halt-clock action, enabled by the mask and tdr_dbg_ctrl_clock_stop_en_i, is requesting a clock stop.
dbg_mux_sel_csr_iinputtt_dbm_pkg::DbgMuxSelMmr_sDebug-bus mux select register, shared by every level-2 and level-3 mux.
debug_bus_iinputlogic [NUM_INPUT_LANES*LaneWidth-1:0]Debug-bus lanes from the SMC into the level-3 mux stage.
debug_marker_ooutputlogic [7:0]Debug marker from the CLA.
trace_mem_req_ooutputtrace_mem_pkg::SinkMemPktIn_s [tn_pkg::TRC_RAM_INSTANCES-1:0]Requests from the DST trace sink to the trace RAMs outside this block, one per RAM instance.
trace_mem_resp_iinputtrace_mem_pkg::SinkMemPktOut_s [tn_pkg::TRC_RAM_INSTANCES-1:0]Read data from the external trace RAMs to the DST trace sink.
test_en_iinputlogicActive-high DFT test-mode enable: forces the DFD clock gates on and selects scan_rst_ni as the DFD IP and reference-counter reset.
scan_rst_niinputlogicActive-low scan reset used by the DFD IP and the reference-clock reset synchronizer in test mode.