Repository navigation
Conversation
… cluster-level periphral for global configuration, and an extra group-level register to send configurations to each group
There was a problem hiding this comment.
🟡 Changes recommended
BootROM timing and shared register-bridge flow control can return stale data or lose responses.
2 open issues
What changed in this PR
Moves cluster configuration and peripheral traffic onto a dedicated narrow mesh, separating them from wide cache-refill traffic.
Changes:
- Adds group-level configuration registers and mesh-based distribution.
- Separates CSR/UART traffic and widens BootROM access to match refills.
- Updates runtime synchronization, register definitions, and build configuration.
| File | Description |
|---|---|
| util/scripts/generate_bootrom.py | Aligns ROM contents to word width. |
| software/snRuntime/src/platforms/standalone/start_snitch.S | Fences before end-of-computation writes. |
| software/snRuntime/src/l1cache.c | Updates configuration ordering and completion waits. |
| software/snRuntime/README.md | Documents configuration completion semantics. |
| software/snRuntime/include/l1cache.h | Removes obsolete crossbar commit API. |
| software/snRuntime/include/cachepool_peripheral.h | Updates register offsets and barrier slots. |
| README.md | Describes hierarchical configuration. |
| Makefile | Exports configuration and BootROM parameters. |
| hardware/src/cachepool_tile.sv | Adds narrow hart routing and local tile selection. |
| hardware/src/cachepool_pkg.sv | Defines configuration registers and narrow-mesh types. |
| hardware/src/cachepool_group.sv | Separates peripheral traffic from refills. |
| hardware/src/cachepool_group_noc_wrapper.sv | Integrates narrow routers and group configuration. |
| hardware/src/cachepool_group_cfg.sv | Implements group configuration and flush completion. |
| hardware/src/cachepool_group_cfg_sender.sv | Distributes register writes across groups. |
| hardware/src/cachepool_cluster.sv | Connects the narrow mesh and wide BootROM path. |
| hardware/cachepool_peripheral/cachepool_peripheral.sv | Tracks configuration batches and completion. |
| hardware/cachepool_peripheral/cachepool_peripheral_reg.hjson.tmpl | Revises register semantics and reset parameters. |
| hardware/cachepool_peripheral/cachepool_peripheral_reg_top.sv | Updates generated register implementation. |
| hardware/cachepool_peripheral/cachepool_peripheral_reg_pkg.sv | Updates generated register types and offsets. |
| hardware/bootrom/bootrom.S | Avoids address loads through the GOT. |
| config/config.mk | Adds shared configuration defaults. |
| config/cachepool.hjson.tmpl | Exposes BootROM width. |
| Bender.yml | Registers new modules and removes converter source. |
| Bender.lock | Updates FlooNoC revision. |
Review effort: Balanced
Comment on lines
+954
to
+958
| reqrsp_to_reg #( | ||
| .AddrWidth ( AxiAddrWidth ), | ||
| .DataWidth ( AxiDataWidth ), | ||
| .UserWidth ( $bits(refill_user_t) ), | ||
| .FifoDepth ( 2 ), |
| .addr_i ( addr_t'(bootrom_reg_req.addr) ), | ||
| .rdata_o ( bootrom_reg_rsp.rdata ) | ||
| ); | ||
| `FF(bootrom_reg_rsp.ready, bootrom_reg_req.valid, 1'b0) |
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.

Hierarchical peripheral configuration and a narrow peripheral mesh
requests one way only.