66// - Philippe Sauter <phsauter@iis.ee.ethz.ch>
77
88module croc_domain import croc_pkg :: * ; # (
9- parameter int unsigned GpioCount = 16
9+ parameter int unsigned GpioCount = 16 ,
10+ parameter int unsigned NumExternalIrqs = 4
1011) (
1112 input logic clk_i,
1213 input logic rst_ni,
@@ -94,8 +95,8 @@ module croc_domain import croc_pkg::*; #(
9495 // Subordinate buses out of crossbar
9596 // ----------------------------------
9697 // Main xbar subordinate buses, must align with addr map indices!
97- sbr_obi_req_t [NumXbarSbr - 1 : 0 ] all_sbr_obi_req;
98- sbr_obi_rsp_t [NumXbarSbr - 1 : 0 ] all_sbr_obi_rsp;
98+ sbr_obi_req_t [NumXbarSubordinates - 1 : 0 ] all_sbr_obi_req;
99+ sbr_obi_rsp_t [NumXbarSubordinates - 1 : 0 ] all_sbr_obi_rsp;
99100
100101 // user bus defined in module port
101102
@@ -305,21 +306,21 @@ module croc_domain import croc_pkg::*; #(
305306 // -----------------
306307
307308 obi_xbar # (
308- .SbrPortObiCfg ( MgrObiCfg ),
309- .MgrPortObiCfg ( SbrObiCfg ),
310- .sbr_port_obi_req_t ( mgr_obi_req_t ),
311- .sbr_port_a_chan_t ( mgr_obi_a_chan_t ),
312- .sbr_port_obi_rsp_t ( mgr_obi_rsp_t ),
313- .sbr_port_r_chan_t ( mgr_obi_r_chan_t ),
314- .mgr_port_obi_req_t ( sbr_obi_req_t ),
315- .mgr_port_obi_rsp_t ( sbr_obi_rsp_t ),
316- .NumSbrPorts ( NumXbarManagers ),
317- .NumMgrPorts ( NumXbarSbr ),
318- .NumMaxTrans ( 2 ),
319- .NumAddrRules ( NumXbarSbrRules ),
320- .addr_map_rule_t ( addr_map_rule_t ),
321- .UseIdForRouting ( 1'b0 ),
322- .Connectivity ( '1 )
309+ .SbrPortObiCfg ( MgrObiCfg ),
310+ .MgrPortObiCfg ( SbrObiCfg ),
311+ .sbr_port_obi_req_t ( mgr_obi_req_t ),
312+ .sbr_port_a_chan_t ( mgr_obi_a_chan_t ),
313+ .sbr_port_obi_rsp_t ( mgr_obi_rsp_t ),
314+ .sbr_port_r_chan_t ( mgr_obi_r_chan_t ),
315+ .mgr_port_obi_req_t ( sbr_obi_req_t ),
316+ .mgr_port_obi_rsp_t ( sbr_obi_rsp_t ),
317+ .NumSbrPorts ( NumXbarManagers ),
318+ .NumMgrPorts ( NumXbarSubordinates ),
319+ .NumMaxTrans ( 2 ),
320+ .NumAddrRules ( $size (croc_addr_map) ),
321+ .addr_map_rule_t ( addr_map_rule_t ),
322+ .UseIdForRouting ( 1'b0 ),
323+ .Connectivity ( '1 )
323324 ) i_main_xbar (
324325 .clk_i,
325326 .rst_ni,
@@ -338,6 +339,7 @@ module croc_domain import croc_pkg::*; #(
338339 // -----------------
339340 // Memories
340341 // -----------------
342+ localparam int unsigned SramBankAddrWidth = cf_math_pkg :: idx_width (SramBankNumWords);
341343
342344 for (genvar i = 0 ; i < NumSramBanks; i++ ) begin : gen_sram_bank
343345 logic bank_req, bank_we, bank_gnt, bank_single_err;
@@ -419,7 +421,7 @@ module croc_domain import croc_pkg::*; #(
419421
420422 addr_decode # (
421423 .NoIndices ( NumPeriphs ),
422- .NoRules ( NumPeriphRules ),
424+ .NoRules ( $size (periph_addr_map) ),
423425 .addr_t ( logic[SbrObiCfg.DataWidth- 1 : 0 ] ),
424426 .rule_t ( addr_map_rule_t ),
425427 .Napot ( 1'b0 )
@@ -473,7 +475,7 @@ module croc_domain import croc_pkg::*; #(
473475 soc_ctrl_regs # (
474476 .obi_req_t ( sbr_obi_req_t ),
475477 .obi_rsp_t ( sbr_obi_rsp_t ),
476- .BootAddrDefault ( SramBaseAddr )
478+ .BootAddrDefault ( BootAddr )
477479 ) i_soc_ctrl (
478480 .clk_i,
479481 .rst_ni,
0 commit comments