The current formulation of the atomic ID breaks if there are more than NrCores non-cluster cores in the system.
|
// Atomic ID, needs to be unique ID of cluster |
|
// cluster_id + HartIdOffset + 1 (because 0 is for non-atomic masters) |
|
assign cluster_user = (core_to_axi_req.q.mask << AtomicIdWidth) | |
|
((hart_base_id_i / NrCores) + (hart_base_id_i % NrCores) + 1'b1); |