Skip to content

Commit 0dfc200

Browse files
committed
rtl: simplify configuration in croc_pkg
1 parent 6aeed6d commit 0dfc200

File tree

6 files changed

+177
-188
lines changed

6 files changed

+177
-188
lines changed

rtl/core_wrap.sv

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,9 @@ module core_wrap import croc_pkg::*; #() (
4444
output logic core_busy_o
4545
);
4646

47+
// Base address of the debug module in the memory map.
48+
localparam bit [31:0] DebugAddrOffset = get_periph_start_addr(PeriphDebug);
49+
4750
// lowest 8 bits are ignored internally
4851
logic[31:0] ibex_boot_addr;
4952
assign ibex_boot_addr = boot_addr_i & 32'hFFFFFF00;
@@ -53,23 +56,23 @@ module core_wrap import croc_pkg::*; #() (
5356
`else
5457
cve2_core #(
5558
`endif
56-
.PMPEnable ( 1'b0 ),
57-
.PMPGranularity ( 0 ),
58-
.PMPNumRegions ( 4 ),
59-
.MHPMCounterNum ( 0 ),
60-
.MHPMCounterWidth ( 40 ),
61-
.RV32E ( 0 ),
62-
.RV32M ( cve2_pkg::RV32MNone ),
63-
.RV32B ( cve2_pkg::RV32BNone ),
64-
.DbgTriggerEn ( 1'b1 ),
65-
.DbgHwBreakNum ( 1 ),
66-
.DmHaltAddr ( DebugAddrOffset + dm::HaltAddress[31:0] ),
67-
.DmExceptionAddr ( DebugAddrOffset + dm::ExceptionAddress[31:0] )
59+
.PMPEnable ( 1'b0 ),
60+
.PMPGranularity ( 0 ),
61+
.PMPNumRegions ( 4 ),
62+
.MHPMCounterNum ( 0 ),
63+
.MHPMCounterWidth ( 40 ),
64+
.RV32E ( 0 ),
65+
.RV32M ( cve2_pkg::RV32MNone ),
66+
.RV32B ( cve2_pkg::RV32BNone ),
67+
.DbgTriggerEn ( 1'b1 ),
68+
.DbgHwBreakNum ( 1 ),
69+
.DmHaltAddr ( DebugAddrOffset + dm::HaltAddress[31:0] ),
70+
.DmExceptionAddr ( DebugAddrOffset + dm::ExceptionAddress[31:0] )
6871
) i_ibex (
6972
.clk_i,
7073
.rst_ni,
7174
.test_en_i ( test_enable_i ),
72-
.hart_id_i ( HartId ),
75+
.hart_id_i ( 32'd0 ),
7376
.boot_addr_i ( ibex_boot_addr ),
7477

7578
// Instruction Memory Interface:

rtl/croc_domain.sv

Lines changed: 22 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66
// - Philippe Sauter <phsauter@iis.ee.ethz.ch>
77

88
module 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

Comments
 (0)