rtl: PopSoCConfig skeleton + chiseltest elaborate stub #79
No reviewers
Labels
No labels
adr
agent:blocked-ci
agent:blocked-human
agent:blocked-resolver
agent:done
agent:in-progress
agent:no-touch
agent:pinged
agent:pr-open
agent:queued
agent:wip
area:board
area:funding
area:infra
area:phy
area:poplink
area:rtl
area:software
area:supply-chain
area:verification
ci-failed
ci-timeout
docs
do-not-merge
human-approved
needs-human-approval
needs-rebase
needs-triage
phase:1
ready-for-review
review:findings
review:pass
risk:tripwire
swarm:quarantined
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Fluid/fluidpop-v1!79
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "auto/issue-47-20260526T001302Z_issue47"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Implements the PLAN.md §12.3 step-1 scaffold for
PopSoCConfigperrtl/src/pop/specs/PopSoCConfig.SPEC.md(Status: Stub).What lands
rtl/src/pop/PopSoCConfig.scala— Chisel module skeleton with anempty IO bundle; every SPEC §Interface / §Behavior / §Invariants
item carried as a
TBD per SPEC §<section>comment. No widths,no port counts, no Chipyard
Configkeys are invented.rtl/tests/PopSoCConfig/PopSoCConfigSpec.scala— chiseltestAnyFlatSpecbench with oneshould "elaborate"test (the§12.3 step-2 minimum).
Why a
Module, not aConfigThe SPEC describes two Chipyard
Configfragments(
FluidPopMasterConfiginstantiatingPCIeHostBridgeper ADR-008,FluidPopSlaveConfigPopLink-only). Those extendorg.chipsalliance.cde.config.Config, which is not on this build'sclasspath: per
rtl/README.md, "Nothing in this tree depends onChipyard yet"; the Chipyard pin lands in PLAN.md §6 Week 4. Authoring
the real
Configobjects today would either pull Chipyard in earlyor fabricate keys ahead of the SPEC — both off-limits. A
Moduleskeleton is the honest §12.3 floor: it elaborates, exercises the
chiseltest harness, and gets superseded once the Chipyard dependency
lands and the SPEC is lifted from stub.
Local validation
sbt compile— greensbt 'testOnly pop.PopSoCConfigSpec'— 1 test, passHeaders
SPDX-License-Identifier: CHARRUA-1.2SPDX-License-Identifier: AGPL-3.0-or-laterScope
Skeleton + elaborate only. Behaviour, the Scala/Python golden model,
the real Chipyard
Configfragments and coverage targets land infollow-up issues once the SPEC is promoted from stub.
Closes #47
VERDICT: PASS
PR #79 adds the §12.3 step-1 scaffold for
PopSoCConfig—rtl/src/pop/PopSoCConfig.scalaplus its matchingrtl/tests/PopSoCConfig/PopSoCConfigSpec.scalachiseltest harness. Both files carry the right SPDX headers (CHARRUA-1.2for the RTL source,AGPL-3.0-or-laterfor the test), both declarepackage popmatching the canonical package set in PR #69, and the test bench has the prescribedit should "elaborate"smoke test. The PR scope matches Issue #47 exactly: two files added, no drive-by edits, no AI attribution, no off-limits paths touched. The PR body addresses the one judgment call honestly — the SPEC describes ChipyardConfigfragments (FluidPopMasterConfig/FluidPopSlaveConfig) extendingorg.chipsalliance.cde.config.Config, which isn't on the classpath yet (Chipyard pin lands PLAN.md §6 Week 4), so authoring the realConfigobjects today would either pull in the dependency early or fabricate keys ahead of the SPEC. AModuleplaceholder that elaborates green is the honest §12.3 floor for a SPEC still markedStatus: Stub, and the file explicitly carriesTBD per SPEC §Interface / §Behavior / §Invariantscomments rather than inventing widths, tile counts, or Chipyard keys. Once the Chipyard dependency lands and the SPEC is lifted, this stub gets superseded by the real Config fragments — a transition the PR body flags. The empty IO bundle is correct because the SPEC's Interface section is whollyTBDand the listed categories (tile count, scratchpad size, fabric port count) are build-timeConfigkeys, not signal categories with canonicalfreechips.rocketchip.*types that rule 4 would require materialising.Findings
None.
CI green (head
6c75111827), auto-approving6c751118273fe317595cCI green (head
3fe317595c), auto-approving