smc_4core_cpu

Instantiate the four-core SMC Rocket CPU cluster shell.

Instantiates the Chipyard-generated OCAH4CORECluster_DigitalTop and the boundary logic around it: AXI isolation of the L2-frontend and MMIO ports with status clamping, a debug-module clock gate, core reset sequencing, scratch RAM zero-fill and a registered uncorrectable-error flag. Exposes TileLink/AXI cluster ports and interrupt inputs to smc_cpu_wrapper.

Ports

Table 1. Ports
NameDirectionTypeDescription
clk_iinputlogicCluster clock for the core, uncore and debug domains and the boundary logic.
rst_isolate_niinputlogicActive-low reset for the L2-frontend and MMIO AXI isolate modules.
mem_init_reset_niinputlogicActive-low reset for the scratch RAM zero-fill sequencer; its release starts the zero-fill.
rst_uncore_niinputlogicActive-low cluster uncore reset; while low, the cluster boundary stays isolated and cluster_ded_o is cleared.
rst_core_niinputlogic [smc_4core_cpu_pkg::NumCpuCores-1:0]Active-low per-core reset; the core also stays in reset until the scratch RAM zero-fill completes and while the cluster requests a hart reset.
rst_debug_niinputlogicActive-low reset for the debug module and its clock-gate enable.
isolate_req_iinputlogicDrain request for a software reset; while high, the cluster boundary is isolated and the status outputs are clamped.
drained_ooutputlogicHigh once both the L2-frontend and MMIO AXI isolate modules report isolated.
isolate_flush_iinputlogicFlush request to both AXI isolate modules, latched until de-isolation; clears their outstanding-transaction state so isolation can complete.
reset_vector_iinputlogic [smc_4core_cpu_pkg::NumCpuCores-1:0][55:0]Per-core boot address into the cluster.
interrupts_iinputlogic [smc_4core_cpu_pkg::NumCpuInterrupts-1:0]Cluster interrupt lines, passed unchanged to DigitalTop.
mmio_axi_req_ooutputsmc_pkg::smc_cpu_mmio_axi_req_tCluster MMIO AXI master request through the MMIO isolate module, with AxCACHE modifiable forced set; while isolated, the module answers the cluster with SLVERR.
mmio_axi_resp_iinputsmc_pkg::smc_cpu_mmio_axi_resp_tCluster MMIO AXI master response from the fabric.
l2_frontend_axi_req_iinputsmc_pkg::smc_cpu_l2_frontend_axi_req_tAXI request into the cluster L2 frontend bus through its isolate module, which blocks rather than terminates while isolated.
l2_frontend_axi_resp_ooutputsmc_pkg::smc_cpu_l2_frontend_axi_resp_tAXI response from the cluster L2 frontend bus.
smc_cpu_jtag_TCK_iinputlogicJTAG test clock for the cluster debug transport module.
smc_cpu_jtag_TMS_iinputlogicJTAG test mode select for the cluster debug transport module.
smc_cpu_jtag_TDI_iinputlogicJTAG test data into the cluster debug transport module.
smc_cpu_jtag_TDO_data_ooutputlogicJTAG test data out of the cluster debug transport module.
smc_cpu_jtag_reset_iinputlogicActive-high asynchronous reset of the cluster JTAG debug transport module (TAP) and of the debug module's DMI interface.
smc_cpu_jtag_mfr_id_iinputlogic [10:0]Manufacturer ID reported in the cluster JTAG IDCODE.
smc_cpu_jtag_part_number_iinputlogic [15:0]Part number reported in the cluster JTAG IDCODE.
smc_cpu_jtag_version_iinputlogic [3:0]Version reported in the cluster JTAG IDCODE.
cluster_ded_ooutputlogicRegistered OR of the cluster's uncorrectable-error flags.
wb_pc_valid_ooutputlogic [smc_4core_cpu_pkg::NumCpuCores-1:0][1-1:0]Per-core qualifier for wb_reg_pc_o, forced low while the cluster boundary is isolated.
wb_reg_pc_ooutputlogic [smc_4core_cpu_pkg::NumCpuCores-1:0][58-1:0]Per-core writeback program counter, forced to zero while the cluster boundary is isolated.
wdt_reset_ooutputlogic [smc_4core_cpu_pkg::NumCpuCores-1:0]Per-core watchdog timeout from the cluster, forced low while the cluster boundary is isolated.
rom_intf_req_ooutputchipyard_4core_mem_pkg::rom_tilelink_req_tTileLink A-channel request, D-channel ready, clock and reset from the cluster boot ROM port.
rom_intf_rsp_iinputchipyard_4core_mem_pkg::rom_tilelink_rsp_tTileLink A-channel ready and D-channel response to the cluster boot ROM port.
scratch_ram_intf_req_ooutputchipyard_4core_mem_pkg::scratch_ram_req_tScratch RAM bank requests, driven by the zero-fill sequencer until the zero-fill completes.
scratch_ram_intf_rsp_iinputchipyard_4core_mem_pkg::scratch_ram_rsp_tScratch RAM bank read data.
l1_icache_tag_intf_req_ooutputchipyard_4core_mem_pkg::l1_icache_tag_req_tInstruction-cache tag bank requests.
l1_icache_tag_intf_rsp_iinputchipyard_4core_mem_pkg::l1_icache_tag_rsp_tInstruction-cache tag bank read data.
l1_icache_data_intf_req_ooutputchipyard_4core_mem_pkg::l1_icache_data_req_tInstruction-cache data bank requests.
l1_icache_data_intf_rsp_iinputchipyard_4core_mem_pkg::l1_icache_data_rsp_tInstruction-cache data bank read data.
l1_dcache_tag_intf_req_ooutputchipyard_4core_mem_pkg::l1_dcache_tag_req_tData-cache tag bank requests.
l1_dcache_tag_intf_rsp_iinputchipyard_4core_mem_pkg::l1_dcache_tag_rsp_tData-cache tag bank read data.
l1_dcache_data_intf_req_ooutputchipyard_4core_mem_pkg::l1_dcache_data_req_tData-cache data bank requests.
l1_dcache_data_intf_rsp_iinputchipyard_4core_mem_pkg::l1_dcache_data_rsp_tData-cache data bank read data.
disable_sram_auto_init_iinputlogicHigh skips the scratch RAM zero-fill after mem_init_reset_ni releases.
init_mem_done_ooutputlogicHigh once the scratch RAM zero-fill has completed or been skipped.
test_en_iinputlogicScan test mode enable for the debug clock gate.