@@ -25,6 +25,7 @@ module hwpe_ctrl_slave
2525 parameter int unsigned N_GENERIC_REGS = 0 ,
2626 parameter int unsigned N_SW_EVT = 8 ,
2727 parameter int unsigned ID_WIDTH = 16 ,
28+ parameter int unsigned CFG_ID_BITMASK = 1 ,
2829 parameter int unsigned EXT_IN_REGGED = REGFILE_EXT_IN_REGGED
2930)
3031(
@@ -112,9 +113,13 @@ module hwpe_ctrl_slave
112113 begin
113114 if (regfile_flags.is_commit == 1 )
114115 begin
115- for (int i= 0 ; i< N_CORES ; i++ )
116- if (cfg.id[i] == 1'b1 )
117- offloading_core[pointer_context] <= i;
116+ if (CFG_ID_BITMASK == 1 ) begin : bitmask_mode_multi_context
117+ for (int i= 0 ; i< N_CORES ; i++ )
118+ if (cfg.id[i] == 1'b1 )
119+ offloading_core[pointer_context] <= i;
120+ end else begin : user_id_mode_multi_context
121+ offloading_core[pointer_context] <= cfg.id - 1 ;
122+ end
118123 end
119124 end
120125 end
@@ -174,9 +179,13 @@ module hwpe_ctrl_slave
174179 begin
175180 if (regfile_flags.is_commit == 1 )
176181 begin
177- for (int i= 0 ; i< N_CORES ; i++ )
178- if (cfg.id[i] == 1'b1 )
179- offloading_core[0 ] <= i;
182+ if (CFG_ID_BITMASK == 1 ) begin : bitmask_mode_single_context
183+ for (int i= 0 ; i< N_CORES ; i++ )
184+ if (cfg.id[i] == 1'b1 )
185+ offloading_core[0 ] <= i;
186+ end else begin : user_id_mode_single_context
187+ offloading_core[0 ] <= cfg.id - 1 ;
188+ end
180189 end
181190 end
182191 end
0 commit comments