rtl: standardize package pop + restore PopRoCCRouter RoCC IO #69
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!69
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "auto/issue-68-20260525T205321Z_issue68"
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?
Summary
Retrospective fix for the package + IO surface drift surfaced in #68 after #63/#64/#65/#66 merged without semantic review.
PopRoCCRouter,InterGemminiXbar,PCIeHostBridge,PopLinkPHY_Behavioral) now live inpackage pop— matchesbuild.sbtorganization := "coop.pop.fluidpop"and decouples from the upstream Chipyard tree (rtl/README.md: "Nothing in this tree depends on Chipyard yet").PCIeHostBridgeandPopLinkPHY_Behavioralalready usedpop;PopRoCCRouterandInterGemminiXbar(plus their specs) moved fromchipyard.pop.PopRoCCRouterIO bundle now surfaces the two RoCC ABI-fixed facets —cmd(Flipped(Decoupled(RoCCCommand))) andresp(Decoupled(RoCCResponse)) — with field layout mirroringfreechips.rocketchip.tile.RoCCCommand/RoCCResponse(rocket-chipLazyRoCC.scala). The bundles are declared locally in the same file because the standalone build has no rocket-chip on its classpath — Maven Central does not publish rocketchip for Chisel 6, and the Chipyard pin lands later in PLAN.md §6 Week 4. Explicit forward-link comments point to the canonicalfreechips.rocketchip.tiletypes that will replace these mirrors when Chipyard integration arrives;xLenis an explicit constructor parameter (default64per ADR-001 RV64GC) to side-step the upstreamimplicit p: Parametersdependency.MultiGemminiCluster, exception path back to Rocket) remain as comments.Acceptance criteria
.scalamodules declarepackage pop. (PopLinkPHY_Behavioralis on its own merge branch; alreadypop.)sbt -no-colors compilegreen fromrtl/.PopRoCCRouterIO bundle exposesRoCCCommand(input) andRoCCResponse(output) with field layout matchingfreechips.rocketchip.tile, plus TBD comment block for per-tile fan-out and exception path. Local mirror used because the build is intentionally Chipyard-decoupled until §6 Week 4.PopRoCCRouterSpecstill elaborates green; fullsbt testgreen acrossPCIeHostBridgeSpec,InterGemminiXbarSpec,PopRoCCRouterSpec.Test plan
cd rtl && sbt -no-colors compilecd rtl && sbt -no-colors testCloses #68
CI green (head
12b725c2cf), auto-approving12b725c2cf85ae4a33caCI green (head
85ae4a33ca), auto-approvingVERDICT: PASS
This PR is a clean retrospective fix for the package drift and stub IO drift surfaced after #63/#64 merged without semantic review. The scope matches issue #68 exactly: four
package chipyard.popdeclarations flipped topackage pop(consistent withbuild.sbtorganization := "coop.pop.fluidpop"and the README's "no Chipyard dependency yet" stance), andPopRoCCRoutergains the two RoCC ABI-fixed facets the SPEC enumerates —cmdandresp— with local mirrors ofRoCCCommand/RoCCResponse/RoCCInstructionthat match the rocket-chip canonical field layout (RoCCInstruction widths sum to 32 bits;RoCCCommandcarriesinst + rs1[xLen] + rs2[xLen];RoCCResponsecarriesrd[5] + data[xLen]). The two SPEC facets that are still TBD (per-tile fan-out towardMultiGemminiCluster, exception path) are correctly preserved as TBD comments rather than fabricated.xLenis a constructor parameter defaulting to 64, with an explicit ADR-001 RV64GC link in the comment, and the standalone-vs-Chipyard rationale is documented. Stub bodies assignio.cmd.ready := false.B/io.resp.valid := false.B/io.resp.bits := DontCareso the DUT still elaborates green under chiseltest. No off-limits paths touched, no AI/Anthropic attribution, no fabricated numbers or vendor claims.Findings
None.