pub fn schedule(
t: &DramTimings,
streams: &[StreamDesc],
gathers: &[Gather],
bad_rows: &[(u32, u64)],
) -> Vec<TimedCmd>Expand description
The compile-time scheduler: bursts grouped into row visits, rows pipelined across banks (ACT ahead under tRRD/tFAW while the data bus streams), refresh co-scheduled per bank into planned slots before every deadline. Returns the timed plan.
bad_rows is the yield/blacklist remap input: any (bank,row) in it is skipped and
its data lands on the next clean row of the same bank — a pure compile-time remap
(the program’s payload is unchanged; only physical placement moves).