[Milkymist-devel] Memory test fail on ML-401
Sébastien Bourdeauducq
sebastien.bourdeauducq at lekernel.net
Sun Jul 19 06:04:34 PDT 2009
Hi,
On Saturday 18 July 2009 18.39.32 Clark Xin wrote:
> diff is attached, my current DQS value is 20.
I tried your patch on my board, and no DQS phase value worked anymore. This
situation is really strange, because the DCM is supposed to cover the whole
phase shift spectrum (0/360 degrees) when the DQS phase value goes from 0 to
255. So any configuration should work.
So I was wondering if the DCM phase shift interface was properly set up. It
turned out that using the "DCM" symbol for instantiation and "VARIABLE" as
phase shift mode are not documented anywhere (but are still recognized by
ISE?!). I changed them to "DCM_PS" and "VARIABLE_POSITIVE" according to the
Virtex-4 primitive guide; and this made the DRAM work again.
But the phase value I'm now using is strange (244). This is supposed to mean
that the DCM generates dqs_clk with a small shift *in advance* of sys_clk. But
dqs_clk is supposed to be approx. 90 degrees *late* of sys_clk. WTF?!
Possible theories:
* DCM configuration is still not correct. Anyone understands how those pesky
things work?
* Large clock skew due to routing delays (but you'd need a 2.5ns skew to
explain this phenomenon, which is a lot)
If the new configuration with a 244 value still does not work on some boards,
then a radical solution will be to let the BIOS calibrate automatically all
timings at runtime. This will also solve the potential problem of variable
clock skews when the design is modified because PAR can route the clock signal
differently every time.
No wonder why Xilinx integrated a hard memory controller in their 6 series
devices.
Sébastien
More information about the Devel
mailing list