Repository navigation
[core_region] Exempt the cluster's own window from the unmapped-region check - #121
Closed
alessiomangone wants to merge 1 commit into
Closed
alessiomangone wants to merge 1 commit into
alessiomangone wants to merge 1 commit into
Conversation
…n check The cluster's own window starts at CLUSTER_BASE + (cluster_id_i << 22): for cluster_id_i == 0 it lies below the refused range, for any other cluster_id_i it lies inside it, peripherals included. In a multi-cluster instance, every cluster but the first thus stops the simulation on its first access to its own control unit.
Author
|
Closing this: it is not needed in the configuration this repository builds. The check sits under |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The simulation-only
CHECK_ASSERTIONSblock ofcore_region(rtl/core_region.sv:490-493) stops the run withERROR_2and$finishon any core data access betweenCLUSTER_BASE + 32'h0040_0000andCLUSTER_BASE + 32'h0A00_0000. The cluster's own window, however, starts atCLUSTER_BASE + (cluster_id_i << 22)(rtl/cluster_bus_wrap.sv:120,rtl/xbar_pe_wrap.sv:59): forcluster_id_i == 0it lies below the refused range, for any othercluster_id_iit lies inside it, peripherals included. In a multi-cluster instance, every cluster but the first thus stops the simulation on its first access to its own control unit.This keeps the check's purpose - the other clusters' windows are still refused - and exempts the cluster's own 4 MB window, from
CLUSTER_BASE + (cluster_id_i << 22)to+ 32'h0040_0000, with the same expression the two wrappers use.Verified: I have carried this change as a local patch since 2026-09-04 on a 2x2 array of PULP clusters, where the offload test now runs on every cluster under QuestaSim 2026.1_2 and Verilator 5.050; without it, the simulation stops at the second cluster's end-of-computation write with
ERROR_2.