Email or username:

Password:

Forgot your password?
Top-level
Tube🍂Time

also -- there seem to be two overlapping bugs. one causes a few bits to be corrupted for single sector reads, the other causes an entire sector's data to be shifted by several bytes.

10 comments
Tube🍂Time replied to Tube🍂Time

huh, once I connect the logic analyzer, the problem takes much longer to reproduce; the probability of data corruption drops dramatically. interesting but it makes things much harder to debug.

/dev/rdsk/c5t1d0s2 replied to Tube🍂Time

@tubetime hey @azonenberg weren’t you looking for examples of probes changing behavior of the DUT?

Tube🍂Time replied to Tube🍂Time

looks like it is skipping a transfer here somehow. it transfers B66D, then it skips 6DDB and goes to DBB6. the preempt line seems to deassert right before arb/gnt goes high. that doesn't seem right.

Jon Dubovsky replied to Tube🍂Time

@tubetime A coincidence that DBB6 == 6DDB << 1 ? Could it be slipping a bit?

Tube🍂Time replied to Jon

@jond no that is just the pattern in the disk image. presumably a disk area that was never written to after being formatted and still contains this bit pattern.

Tube🍂Time replied to Tube🍂Time

the smoking gun: an invalid bus transfer. both rd and wr are asserted at the same time. before that we see the missing data on the bus: 6DDB. so the card thinks it is in a DMA cycle even though it is not, and it's putting data on the bus when it shouldn't be!

Tube🍂Time replied to Tube🍂Time

i deleted 3 characters from my verilog and it works now. 😅

(i still need to test writes, and i need to test it without the logic analyzer card)

Eric Carroll replied to Tube🍂Time

@tubetime As the joke goes, its all about knowing where to tap...

Michael Kohne replied to Tube🍂Time

@tubetime Ugh, that's NEVER good. I see lots of oscilloscope probing in your future.

Go Up