Skip to content

Commit

Permalink
Improve HMR parametrization
Browse files Browse the repository at this point in the history
  • Loading branch information
Andrea Belano committed Jan 29, 2025
1 parent c62501e commit 7c697c6
Show file tree
Hide file tree
Showing 3 changed files with 41 additions and 8 deletions.
24 changes: 24 additions & 0 deletions packages/pulp_cluster_package.sv
Original file line number Diff line number Diff line change
Expand Up @@ -82,8 +82,24 @@ package pulp_cluster_package;
byte_t HwpeNumPorts;
// Enable the HMR Unit
bit HMRPresent;
// Enable double modular redundancy
bit HMRDmrEnabled;
// Enable triple modular redundancy
bit HMRTmrEnabled;
// Lock HMR into permanent DMR mode
bit HMRDmrFIxed;
// Lock HMR into permanent TMR mode
bit HMRTmrFIxed;
// Interleave DMR/TMR cores
bit HMRInterleaveGrps;
// Enable rapid recovery
bit HMREnableRapidRecovery;
// Separates voters and checkers for data
bit HMRSeparateDataVoters;
// Separates voters and checkers for AXI buses
bit HMRSeparateAxiBus;
// Number of separate voters/checkers for individual buses
bit HMRNumBusVoters;
// Enable ECC
bit EnableECC;
// Enable ECC on the hci interconnect
Expand Down Expand Up @@ -203,7 +219,15 @@ package pulp_cluster_package;
HwpeCfg: '{NumHwpes: 3, HwpeList: {SOFTEX, NEUREKA, REDMULE}},
HwpeNumPorts: 9,
HMRPresent: 1,
HMRDmrEnabled: 1,
HMRTmrEnabled: 1,
HMRDmrFIxed: 0,
HMRTmrFIxed: 0,
HMRInterleaveGrps: 1,
HMREnableRapidRecovery: 1,
HMRSeparateDataVoters:1,
HMRSeparateAxiBus:0,
HMRNumBusVoters:1,
EnableECC: 1,
ECCInterco: 1,
iCacheNumBanks: 2,
Expand Down
16 changes: 8 additions & 8 deletions rtl/pulp_cluster.sv
Original file line number Diff line number Diff line change
Expand Up @@ -1108,15 +1108,15 @@ generate
if (Cfg.HMRPresent) begin : gen_hmr_unit
hmr_unit #(
.NumCores ( Cfg.NumCores ),
.DMRSupported ( 1 ),
.DMRFixed ( 0 ),
.DMRSupported ( Cfg.HMRDmrEnabled ),
.DMRFixed ( Cfg.HMRDmrFIxed ),
.TMRSupported ( Cfg.HMRTmrEnabled ),
.TMRFixed ( 0 ),
.InterleaveGrps ( 1 ),
.RapidRecovery ( 1 ),
.SeparateData ( 1 ),
.SeparateAxiBus ( 0 ),
.NumBusVoters ( 1 ),
.TMRFixed ( Cfg.HMRTmrFIxed ),
.InterleaveGrps ( Cfg.HMRInterleaveGrps ),
.RapidRecovery ( Cfg.HMREnableRapidRecovery ),
.SeparateData ( Cfg.HMRSeparateDataVoters ),
.SeparateAxiBus ( Cfg.HMRSeparateAxiBus ),
.NumBusVoters ( Cfg.HMRNumBusVoters ),
.all_inputs_t ( core_inputs_t ),
.nominal_outputs_t ( core_outputs_t ),
.core_backup_t ( core_backup_t ),
Expand Down
9 changes: 9 additions & 0 deletions tb/pulp_cluster_tb.sv
Original file line number Diff line number Diff line change
Expand Up @@ -302,7 +302,16 @@ module pulp_cluster_tb;
HwpeCfg: '{NumHwpes: 3, HwpeList: {SOFTEX, NEUREKA, REDMULE}},
HwpeNumPorts: 9,
HMRPresent: 1,
HMRPresent: 1,
HMRDmrEnabled: 1,
HMRTmrEnabled: 1,
HMRDmrFIxed: 0,
HMRTmrFIxed: 0,
HMRInterleaveGrps: 1,
HMREnableRapidRecovery: 1,
HMRSeparateDataVoters: 1,
HMRSeparateAxiBus: 0,
HMRNumBusVoters: 1,
EnableECC: 1,
ECCInterco: 1,
iCacheNumBanks: 2,
Expand Down

0 comments on commit 7c697c6

Please sign in to comment.