rtl: PopLinkPHY_Behavioral v1 — configurable line-rate + BER injection + drop knobs #113
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
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Fluid/fluidpop-v1#113
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
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?
Goal
Implement v1 behaviour of
PopLinkPHY_Behavioralper Draft SPEC atrtl/src/pop/specs/PopLinkPHY_Behavioral.SPEC.md(#95). Skeleton (#106) landslinkUp. This issue lands the simulation-only configurable line-rate / latency / BER / drop knobs needed for §12.4 ARQ stress.Scope — strictly what the Draft SPEC pins
class PopLinkPHY_Behavioral(numLanes: Int = 4, symbolWidthBits: Int = 8, latencyCycles: Int = 4)tx = Input(Vec(numLanes, UInt(symbolWidthBits.W))),rx = Output(Vec(numLanes, UInt(symbolWidthBits.W))), plus DPI-style control inputsberDenominator = Input(UInt(32.W))(0 = clean, 1 = 1/1, N = 1/N flips per symbol) anddropEvery = Input(UInt(32.W))(0 = no drops).txthrough alatencyCycles-deep delay line, XOR a random 1-bit error onto the output symbol when an LFSR matches theberDenominatormodulus, drop the symbol entirely when an internal counter wraps atdropEvery.linkUp := true.Balways (no training in behavioral model).// synthesis translate_offguard around the body.Open Questions — do NOT invent
linkUpstays a constant.0xACE1, annotate that production should accept a seed input.Acceptance criteria
rtl/src/pop/PopLinkPHY_Behavioral.scalamaterialises the delay-line + BER injector + drop counterrtl/tests/PopLinkPHY_Behavioral/PopLinkPHY_BehavioralSpec.scalaextended with three scenarios:berDenominator=0, dropEvery=0: bit-exact passthrough afterlatencyCyclesberDenominator=10: ~10% symbol flip rate over a 1000-cycle window (loose bound: 60–140 flips)dropEvery=8: every 8th symbol disappearssbt -no-colors testgreen// synthesis translate_offguards around allchisel3.experimental.RawClock-style or random sourcesPlan refs
PLAN.md §12.4 (ARQ stress), §13.4 (PHY behavioral deliverable); ADR-009 (PopLink fabric).