Hi all,
I'd like to create a plugin for the S3 starter kit board that adds (say)
32 or 64 MBytes of SDRAM via ports A1 and A2. Not having much experience using (for me, at least) such high frequency parts I was wondering if it was even possible...I'd like to run the microblaze processor synchronously, so clock frequency will be ~87MHz. I was thinking of using plain jane SDRAM not DDR SDRAM because it's simpler (although perhaps if I use half the cpu clock speed, it might make it easier on the signal integrity ?) I'm assuming that (as long as I meet the SDRAM refresh requirements) I can scale down the frequency to suit the processor.
I downloaded XAPP134 (the only one I could find that dealt with SDRAM :) and I'm having some problems understanding table 8, Hopefully Xilinx won't mind me reproducing it here. The timing terms aren't defined - I guess I'm supposed to know already. Oh well :-(
Device T(OH) T(AC) T(SU) T(HOLD) T(CYC) SDRAM-8 3.0 6.0 2.0 1.0 8 ns (125 MHz) Virtex 1.0 3.9 1.7 0.0 8 ns (125 MHz) S31000 2.95 0.0 11.5ns (@ 87MHz)
To try and understand the timings, I was comparing the datasheets for Virtex and S3, and I *think* the T(SU) of the virtex (labelled as T(PSDLL) in the Virtex datasheets) is the same as T(PSDCM) for the S3, SU presumably refers to SetUp. I couldn't find equivalent correlations for OH or AC though. CYC is pretty obviously the clock frequency :-)
In any event, the worst case timings appear to be on a read cycle, where
SDRAM T(AC) + board delay + S3 T(SU) < T(CYC) 6.0 + board delay + 2.95 < 11.5 board delay < 2.55 ns
This gives hope, even with the board's physical layout resulting in the SDRAM signal lengths being around 4 or 5 inches from the S3. Getting source termination resistors even vaguely close to the FPGA will be impossible though - I'm not sure how important this will be.
Any help much appreciated - am I even in the right ballpark ? I feel as though I'm building a house of cards in an earthquake zone [grin] The XAPP refers to IBIS models and board design tools to help, but I don't know how to use the models or what benefits they'd give me - if they'd be useful, I'd appreciate a pointer to a decent tutorial or 'howto'-like document...
Thanks a bunch for any input :-)
Simon.