Repository navigation
Conversation
Make the data-cache field nullable for instruction-only configurations. Readers must handle absence; existing constructors keep their required non-null data argument and preserve defaults.
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.
Summary
Add
HarborL1CacheConfig.instructionOnly(i)to represent an instruction cache without a data cache. Existing split/unified constructors, defaults and rendering remain unchanged.General/unified constructors still require a non-null data configuration; instruction-only requires a non-null instruction configuration. An empty configuration cannot be created through these constructors merely by disabling assertions.
No cache-controller, refill-fault, dependency, board or timing changes.
API compatibility
HarborL1CacheConfig.dbecomes nullable. Existing constructor calls remain valid, but consumers that dereferencedmust handle its absence. This is a source-level API change, not a transparent upgrade for those callers.River's core, physical stage and emulator adaptations have been prepared and tested locally. The consumer PR needs a dependency revision containing both this API and the pending synchronous-tag/physical-capacity work; no local path override is intended for publication.
Validation
Consumer validation uses the exact local Harbor source. Coverage is limited to these suites and configurations, not the entire packages. No timing, area or FPGA-boot claim.