smc_input_fabric

Route the SMC's inbound AXI initiators toward the local and output fabrics.

Widens the JTAG and MMIO IDs and converts the log AXI-Lite port to AXI, applies the alias remap to those and the data accelerator port, muxes the four, and sends requests inside the local or global SMC window to the local output port truncated to 32 bits and all others to the global output port. System inbound AXI passes a clock-gated access filter that blocks by default; system and SEP requests outside the SMC window receive DECERR, and the rest are truncated to 32 bits for the local fabric. The JTAG, system and SEP inputs each enter through an axi_cut.

Parameters

Table 1. Parameters
NameTypeDefaultDescription
FILTER_REQ_PIPELINE_ENABLEbit1'b0Adds spill registers on the request channels at the system inbound filter boundary.
FILTER_RSP_PIPELINE_ENABLEbit1'b0Adds spill registers on the response channels at the system inbound filter boundary.
NUM_FILTERSint unsigned16Number of system inbound filter entries; sizes the filter CSR arrays and the hit-index outputs.

Ports

Table 2. Ports
NameDirectionTypeDescription
clk_iinputlogicSMC core clock.
rst_niinputlogicPrimary reset, active-low, synchronized to the SMC core clock.
test_en_iinputlogicScan test mode enable, active-high; forwarded to the AXI primitives and forces the filter clock gate on.
scan_rst_niinputlogicScan reset, active-low; not used in this module.
filter_axi_cg_en_iinputlogicEnables clock gating of the system inbound filter, active-high; low keeps the filter clock running.
cg_hysteresis_iinputsmc_pkg::cg_hyster_tIdle SMC core clock cycles the system inbound filter clock gate waits after the bus goes quiet before stopping the filter clock.
global_base_addr_iinputsmc_pkg::smc_axi_addr_tGlobal base address of the SMC window; requests in [base, base + region_size_i) count as SMC accesses.
local_base_addr_iinputsmc_pkg::smc_axi_addr_tLocal base address of the SMC window; requests in [base, base + region_size_i) count as SMC accesses.
region_size_iinputlogic [31:0]Size in bytes of the SMC window at either base; the window end is computed one bit wider than the address so it cannot wrap.
axi_in_jtag_req_iinputsmc_pkg::smc_jtag_56_64_2_12_axi_req_tJTAG AXI Input request.
axi_in_jtag_resp_ooutputsmc_pkg::smc_jtag_56_64_2_12_axi_resp_tJTAG AXI Input response.
axi_in_mmio_req_iinputsmc_pkg::smc_cpu_mmio_axi_req_tMMIO AXI Input request.
axi_in_mmio_resp_ooutputsmc_pkg::smc_cpu_mmio_axi_resp_tMMIO AXI Input response.
axi_in_data_accel_req_iinputsmc_pkg::smc_input_fabric_56_64_4_12_axi_req_tData Accelerator AXI Input request.
axi_in_data_accel_resp_ooutputsmc_pkg::smc_input_fabric_56_64_4_12_axi_resp_tData Accelerator AXI Input response.
axi_lite_log_req_iinputsmc_pkg::smc_axil_56_64_req_tLog AXI-Lite Input request.
axi_lite_log_resp_ooutputsmc_pkg::smc_axil_56_64_resp_tLog AXI-Lite Input response.
axi_local_out_req_ooutputsmc_pkg::smc_local_32_64_6_12_axi_req_tRequest from the alias-remapped JTAG, MMIO, log and data accelerator paths that hits the local or global SMC window, truncated to the 32-bit local address.
axi_local_out_resp_iinputsmc_pkg::smc_local_32_64_6_12_axi_resp_tResponse to requests on the local output port.
axi_out_req_ooutputsmc_pkg::smc_56_64_6_12_axi_req_tRequest from the alias-remapped JTAG, MMIO, log and data accelerator paths that misses the SMC window, with its full 56-bit address.
axi_out_resp_iinputsmc_pkg::smc_56_64_6_12_axi_resp_tResponse to requests on the global output port.
sys_axi_in_req_iinputsmc_pkg::smc_sys_in_56_64_6_12_axi_req_tSystem AXI Input request.
sys_axi_in_resp_ooutputsmc_pkg::smc_sys_in_56_64_6_12_axi_resp_tSystem AXI Input response.
filtered_sys_axi_out_req_ooutputsmc_pkg::smc_local_32_64_6_12_axi_req_tSystem request that passed the inbound filter and hits the SMC window, truncated to the 32-bit local address.
filtered_sys_axi_out_resp_iinputsmc_pkg::smc_local_32_64_6_12_axi_resp_tResponse to the filtered system request.
sep_axi_in_req_iinputsmc_pkg::smc_sep_in_56_64_6_12_axi_req_tSEP AXI Input request.
sep_axi_in_resp_ooutputsmc_pkg::smc_sep_in_56_64_6_12_axi_resp_tSEP AXI Input response.
sep_axi_id_remap_req_ooutputsmc_pkg::smc_local_32_64_6_12_axi_req_tSEP request that hits the SMC window, truncated to the 32-bit local address; the ID passes through unchanged.
sep_axi_id_remap_resp_iinputsmc_pkg::smc_local_32_64_6_12_axi_resp_tResponse to the SEP request.
filter_ctrl_iinputfilter_ctrl_reg_pkg::filter_ctrl__out_tPer-entry system inbound filter configuration from the register block; the filter matches source ID and the non-secure flag.
filter_status_ooutputfilter_ctrl_reg_pkg::filter_ctrl__in_tPer-entry system inbound filter status returned to the register block.
aR_ctrl_iinputalias_remap_reg_pkg::alias_remap__out_tAlias remap region configuration from the register block.
remap_debug_mmio_ooutputsmc_pkg::remap_debug_tAlias region index hit by the MMIO path.
remap_debug_jtag_ooutputsmc_pkg::remap_debug_tAlias region index hit by the JTAG path.
remap_debug_log_ooutputsmc_pkg::remap_debug_tAlias region index hit by the log path.
remap_debug_dma_ooutputsmc_pkg::remap_debug_tAlias region index hit by the data accelerator path.
write_filter_hit_debug_ooutputlogic [$clog2(NUM_FILTERS)-1:0]Lowest system inbound filter entry hit by a write.
read_filter_hit_debug_ooutputlogic [$clog2(NUM_FILTERS)-1:0]Lowest system inbound filter entry hit by a read.
sys_in_filter_clk_active_ooutputlogicHigh while the system inbound filter clock runs.
sys_in_filter_bus_active_ooutputlogicHigh while the system inbound filter input has a request valid or a transaction outstanding.