FPGA Intellectual Property
PCI Express*, Networking and Connectivity, Memory Interfaces, DSP IP, and Video IP
6343 Discussions

SOPC HP DDR2 Controller Clock Rate

Altera_Forum
Honored Contributor II
937 Views

I've installed a HP DDR2 Controller in the SOPC Builder. I'm curious what clock rate I can run this at. My memory can run at 400MHz CL = 3, 533MHz at CL = 4 and 667MHz at CL = 5. I'm running the controller at Half Rate. 

 

AN-435 says for a -3 part the fMAX is 333MHz. The DDR and DDR2 HP Controller User Guide says 400MHz (Table 1-3). Who's right?
0 Kudos
12 Replies
Altera_Forum
Honored Contributor II
264 Views

Which FPGA family are you using? I've done a few Stratix II designs running at 333MHz. I've never pushed them to 400MHz. I expect the Stratix III and IV controllers can perform at 400MHz because of the per-pin deskew in those parts. In fact now that I think about it, I believe the FAE told me that in Stratix III and Stratix IV, they don't make use of the per-pin deskew unless running over 333MHz. 

 

Jake
0 Kudos
Altera_Forum
Honored Contributor II
264 Views

Thanks Jake. I'm using a Stratix III. -3 speed grade. 

 

I've been running at 330MHz due to what AN-435 said and then I saw the 400MHz in the Users Guide. Yesterday I bumped it up to 340MHz and it seemed to work. I'll ask my FAE when I get a chance but also I'm going to keep bumping it up and see how it goes.
0 Kudos
Altera_Forum
Honored Contributor II
264 Views

My bad. The 400MHz is for the -2 part. 

 

I have been able to run this at 360MHz so far and it works. I did get a warning that the "Stratix III speed grade 3 does not support DDR2 SDRAM operation above 333.0MHz". But I compiled anyway and measured the clock at 360MHz. No timing errors. 

 

So I'll probably go back to 333 and stick with that.
0 Kudos
Altera_Forum
Honored Contributor II
264 Views

If you are using DDR on Stratix III, remember that you need to run the verify_timing tcl script to check the IO timings in addition to the normal STA in TimeQuest.

0 Kudos
Altera_Forum
Honored Contributor II
264 Views

OK - thank you.

0 Kudos
Altera_Forum
Honored Contributor II
264 Views

Hi guys, 

 

I'm a bit curious about this frequency stuff for DDR2... 

If you say your memory can run at 400MHz, doesn't it actually will be clocked with 200MHz, because the 'feeled' data rate of 400MHz results from transmitted/received data are on both edges of your 200MHz ram clock??? 

If now, you can tune up your Stratix up to fMAX=333MHz, wouldn't this lead to driving your memory in "667MHz" mode and you have to take care that you put the CAS Latency to CL=5 etc. for proper operation??? 

Just some thoughts, because I'm starting to work with DDR2 on Cyclone-III on my own... 

Regards, 

det
0 Kudos
Altera_Forum
Honored Contributor II
264 Views

When you are referring to the data rate of the memory you should use the bps terminology. So a I say I'm running at 333MHz or 666Mbps. Here we're talking about running at 400MHz or 800Mbps which is only possible in the faster devices. 

 

Jake
0 Kudos
Altera_Forum
Honored Contributor II
264 Views

Hi Jake, 

 

I do fully understand your point. But looking at the initial post where you can find "...My memory can run at 400MHz CL = 3, 533MHz at CL = 4 and 667MHz at CL = 5...." and referring to several datasheets (Micron, Samsung) one can think the initial post adresses DDR2-400, DDR2-533 and DDR2-667 memory devices. The weird thing you can find is right at the first page of the Micron datasheet for instance for 2Gb DDR2-SDRAM devices where for DDR2-400, DDR2-533 and DDR2-667 devices the Data Rates of 400, 533 and 667 are given in MHz(!!!) and not as you did in Mbps. Samsung did a better job on their datasheet. But this just a note aside. 

Comming back: DDR2-400 devices are nominal driven with a 200MHz clock frequency, DDR2-533 with a 266MHz clock and DDR2-667 with a 333MHz clock. The nice thing is, that you can drive DDR2-667 devices in DDR2-400 mode by adapting clock frequency and other timings such as "CL".  

But with this discussion tuning clock frequency above 333MHz means either you are using a DDR2-800 device or you do overclocking your DDR2-667 device. And going back to the initial post again: Is rogerleo really using DDR2-800 or "just" DDR2-667 memory? 

 

Det
0 Kudos
Altera_Forum
Honored Contributor II
264 Views

The distinction is this: 

rogerleo is referring to fMAX. 

The table in the Micron datasheet is referring to data rate. 

 

fMAX refers to the maximum frequency the memory clock can be run at. This corresponds to tCK in the Micron datasheet. Data rate in MHz refers to the maximum frequency at which the DQS data strobe can run, which also implies DQ and DM. And of course this value is always twice fMAX or 1/tCK. 

 

Jake
0 Kudos
Altera_Forum
Honored Contributor II
264 Views

Hi Jake, 

 

I totally agree with your answers to my posts. 

But there is something else what confuses me: 

From the initial post from rogerleo saying "...My memory can run at 400MHz CL = 3, 533MHz at CL = 4 and 667MHz at CL = 5..." I got the impression he is using a DDR2-667 memory device. That his MHz-values are in fact rather data rates than clock frequencies, especially if you look to the CAS-Latencies they belong to. (A DDR2-800 device with a 400MHz clock would need CL=5 better CL=6 instead of CL=3.) 

And a DDR2-667 device you usually drive with 333MHz clock. 

Tuning fMAX above that would lead in overclocking his memory device. 

Or do I miss the point of something totally fundamental??? 

 

Det
0 Kudos
Altera_Forum
Honored Contributor II
264 Views

You could be absolutely correct. rogerleo has not responded as to what speed is actual memory device is. If he's got a DDR2-667 device then he will likely not get it to run at DDR2-800 speeds regardless of the FPGA. 

 

Jake
0 Kudos
Altera_Forum
Honored Contributor II
264 Views

Hi Jake, 

 

Thanks for your patience with me... ;) 

 

Det
0 Kudos
Reply