Sign in

username:

password:



Not a member?

Search Comp.Arch.FPGA



Search tips

fpga by Keywords

Altera | ASIC | CPLD | Cyclone | DCM | DDR | DSP | Ethernet | ISE | JTAG | Linux | LVDS | Microblaze | ML310 | Modelsim | NIOS | OPB | PCI | Quartus | RocketIO | SDRAM | Spartan | Spartan3 | SRAM | Stratix | Verilog | VHDL | Virtex | Virtex-4 | Virtex-II | Xilinx | XST

Ads

See Also

DSPEmbedded SystemsElectronics

Comp.Arch.FPGA | OT and Newbie: SDRAM Auto Refresh

There are 4 messages in this thread.

You are currently looking at messages 0 to 4.

OT and Newbie: SDRAM Auto Refresh - Giorgos Tzampanakis - 2010-06-03 18:55:00

I've been trying to work with an SDRAM chip. I
see that I need to 
refresh every 64 ms. I can do this using Auto Refresh. 

Supposedly, Auto Refresh uses an internal counter to count the 
row addresses so I don't have to use an external one. However, I 
still need to use a counter to count how many Auto Refresh 
commands I need to give, which, quite logically, is the number of 
rows!

So are we just duplicating a counter here? What am I missing?



Re: OT and Newbie: SDRAM Auto Refresh - Ian Shef - 2010-06-03 19:28:00

Giorgos Tzampanakis <g...@hw.ac.uk> wrote
in 
news:Xns9D8CF3586BF9Dfdnbgui7uhu5h8hrnuio@81.169.183.62:

> I've been trying to work with an SDRAM chip. I see that I need to 
> refresh every 64 ms. I can do this using Auto Refresh. 
> 
> Supposedly, Auto Refresh uses an internal counter to count the 
> row addresses so I don't have to use an external one. However, I 
> still need to use a counter to count how many Auto Refresh 
> commands I need to give, which, quite logically, is the number of 
> rows!
> 
> So are we just duplicating a counter here? What am I missing?
> 

If there are N rows, don't you just refresh every 64/N ms (or a little less 
for margin) ?  You may need a counter to get the timing, but you don't need a 
counter for counting rows.

I admit to being puzzled about how you get started, unless you wait 64 ms 
before making first use of the SDRAM.




Re: OT and Newbie: SDRAM Auto Refresh - Brian Drummond - 2010-06-03 19:40:00

On Thu, 3 Jun 2010 22:55:18 +0000 (UTC), Giorgos
Tzampanakis
<g...@hw.ac.uk> wrote:

>I've been trying to work with an SDRAM chip. I see that I need to 
>refresh every 64 ms. I can do this using Auto Refresh. 
>
>Supposedly, Auto Refresh uses an internal counter to count the 
>row addresses so I don't have to use an external one. However, I 
>still need to use a counter to count how many Auto Refresh 
>commands I need to give, which, quite logically, is the number of 
>rows!
>
>So are we just duplicating a counter here? What am I missing?

It's normal to not generate all the refresh pulses at once. So if your
datasheet informs you that there are 8192 rows to refresh, you generate
1 refresh pulse every 64ms/8192, or every 7.8 us approx, instead of 8192
at once.

In any case a refresh pulse places a huge demand on the PSU, so a burst
of 8192 at once may cause PSU troubles or thermal problems in the DRAM.
Check the datasheet for restrictions on the interval between refresh
pulses. 

Newer technologies (DDR,DDR2 etc) are quite restricted in the interval
between refresh pulses. They typically require at least one every 70 us
(not ms) which effectively means you can defer up to 8 refresh pulses
and burst them after 70us, but data integrity is not guaranteed if you
get further behind than that.

It is probably 10 years since I looked at a SDRAM datasheet, but it is
quite likely they have a similar restriction.

- Brian

Re: OT and Newbie: SDRAM Auto Refresh - Gabor - 2010-06-03 21:12:00

On Jun 3, 7:40=A0pm, Brian Drummond
<brian_drumm...@btconnect.com>
wrote:
> On Thu, 3 Jun 2010 22:55:18 +0000 (UTC), Giorgos Tzampanakis
>
> <g...@hw.ac.uk> wrote:
> >I've been trying to work with an SDRAM chip. I see that I need to
> >refresh every 64 ms. I can do this using Auto Refresh.
>
> >Supposedly, Auto Refresh uses an internal counter to count the
> >row addresses so I don't have to use an external one. However, I
> >still need to use a counter to count how many Auto Refresh
> >commands I need to give, which, quite logically, is the number of
> >rows!
>
> >So are we just duplicating a counter here? What am I missing?
>
> It's normal to not generate all the refresh pulses at once. So if your
> datasheet informs you that there are 8192 rows to refresh, you generate
> 1 refresh pulse every 64ms/8192, or every 7.8 us approx, instead of 8192
> at once.
>
> In any case a refresh pulse places a huge demand on the PSU, so a burst
> of 8192 at once may cause PSU troubles or thermal problems in the DRAM.
> Check the datasheet for restrictions on the interval between refresh
> pulses.
>
> Newer technologies (DDR,DDR2 etc) are quite restricted in the interval
> between refresh pulses. They typically require at least one every 70 us
> (not ms) which effectively means you can defer up to 8 refresh pulses
> and burst them after 70us, but data integrity is not guaranteed if you
> get further behind than that.
>
> It is probably 10 years since I looked at a SDRAM datasheet, but it is
> quite likely they have a similar restriction.
>
> - Brian

The single datarate parts don't have any timing restrictions on
refresh other than meeting the 64 ms between refresh to any
row.  In fact under some circumstances, like video frame
buffers where all rows are accessed anyway, you don't need
to do auto-refresh at all.

DDR parts are a different beast altogether.  They contain delay
locked loops and the JEDEC spec recommends refresh
every 15 microseconds because the refresh time is used to
update the loop lock.  Individual manufacturers, including
Micron have less stringent requirements, but it can't hurt
to design for the JEDEC case.  Anyway if you just figure out
the rate and spread out the refreshes you don't need the
row counter.  You still need some sort of counter to time the
refresh interval, though.

Regards,
Gabor