Skip to content

Commit

Permalink
sdram: reject read delay wrap arounds
Browse files Browse the repository at this point in the history
  • Loading branch information
jordens committed Mar 19, 2018
1 parent 65379b1 commit 276b0c7
Showing 1 changed file with 11 additions and 2 deletions.
13 changes: 11 additions & 2 deletions artiq/firmware/libboard/sdram.rs
Original file line number Diff line number Diff line change
Expand Up @@ -321,14 +321,16 @@ mod ddr {
let mut min_delay = 0;
let mut have_min_delay = false;
let mut max_delay = 0;
let mut have_max_delay = false;
let mut have_invalid = 0;

ddrphy::rdly_dq_rst_write(1);

for delay in 0..DDRPHY_MAX_DELAY {
let mut valid = true;
for _ in 0..256 {
sdram_phy::command_prd(DFII_COMMAND_CAS|DFII_COMMAND_CS|
DFII_COMMAND_RDDATA);
DFII_COMMAND_RDDATA);
spin_cycles(15);

for p in 0..DFII_NPHASES {
Expand All @@ -347,7 +349,14 @@ mod ddr {
min_delay = delay;
have_min_delay = true;
}
max_delay = delay;
if !have_max_delay {
max_delay = delay;
}
} else if have_min_delay {
have_invalid += 1;
if have_invalid >= 10 {
have_max_delay = true;
}
}
ddrphy::rdly_dq_inc_write(1);
}
Expand Down

0 comments on commit 276b0c7

Please sign in to comment.