S
Sylvain Munaut
Guest
Hi,
Follow up to a preceding post, I finally decided to use DDR : 2 chips of 16bits wide to have 32bits bus.
Since I got access to a ibis simulator thru a friend, I did a few simulation.
For the shared lines (like clk & address), I used :
Spartan3 DDR Chips
output Input
|\ _______ ________ |\
| >------O_______)------O________)-----| >-
|/ | |/
|
| |\
'-----------------| >-
|/
For the not shared lines ( like data ):
Spartan3 DDR Chips
output Input
|\ _______ |\
| >------O_______)-------| >-
|/ |/
The lines between the spartan3 and DDR are between 2 and 4 inch. I'm trying to get them as short as possible, I haven't done yet the layout and it's just a worst case estimate.
I simulated with a 100Mhz square wave, and (for my inexperienced eyes), it looked awful !
The square wave is FAR from anything close to square or monotonic, 1V undershoot and overshoot.
So I tried to add a series resistor at the output of spartan 3 output. 35 ohm seemed like a good value but it's more try & test than a real computed values ( track impedance is 70 ohm, at least that's what the simulation tool tells me ).
Also, I used the LVCMOS_25 standard, with Slow and Fast and multiple drive strenght. The Fast 16ma seems the best.
But that's for Spartan -> DDR. For bidir lines, should I put R or R/2 series resistor at each end ?
If I decide to use the DCI of Spartan 3 for series termination, the resistor is placed at the output of the output buffer but not at the input of the input buffer, so I suppose it's even better.
I haven't simulated the DDR -> Spartan 3 direction because my tool don't seen to recognize the output driver description in Micron's IBIS models, I still have to investigate this.
I'm not sure of my simulations but they look good. Do the results sounds ok ? Any advice ?
Thanks for any clue or insight you may have. Making such a board is not quite cheap and I can't afford to have to redesign it multiples times, I'd like the first one to work
Sylvain
Follow up to a preceding post, I finally decided to use DDR : 2 chips of 16bits wide to have 32bits bus.
Since I got access to a ibis simulator thru a friend, I did a few simulation.
For the shared lines (like clk & address), I used :
Spartan3 DDR Chips
output Input
|\ _______ ________ |\
| >------O_______)------O________)-----| >-
|/ | |/
|
| |\
'-----------------| >-
|/
For the not shared lines ( like data ):
Spartan3 DDR Chips
output Input
|\ _______ |\
| >------O_______)-------| >-
|/ |/
The lines between the spartan3 and DDR are between 2 and 4 inch. I'm trying to get them as short as possible, I haven't done yet the layout and it's just a worst case estimate.
I simulated with a 100Mhz square wave, and (for my inexperienced eyes), it looked awful !
The square wave is FAR from anything close to square or monotonic, 1V undershoot and overshoot.
So I tried to add a series resistor at the output of spartan 3 output. 35 ohm seemed like a good value but it's more try & test than a real computed values ( track impedance is 70 ohm, at least that's what the simulation tool tells me ).
Also, I used the LVCMOS_25 standard, with Slow and Fast and multiple drive strenght. The Fast 16ma seems the best.
But that's for Spartan -> DDR. For bidir lines, should I put R or R/2 series resistor at each end ?
If I decide to use the DCI of Spartan 3 for series termination, the resistor is placed at the output of the output buffer but not at the input of the input buffer, so I suppose it's even better.
I haven't simulated the DDR -> Spartan 3 direction because my tool don't seen to recognize the output driver description in Micron's IBIS models, I still have to investigate this.
I'm not sure of my simulations but they look good. Do the results sounds ok ? Any advice ?
Thanks for any clue or insight you may have. Making such a board is not quite cheap and I can't afford to have to redesign it multiples times, I'd like the first one to work
Sylvain