Programmable Devices
CPLDs, FPGAs, SoC FPGAs, Configuration, and Transceivers
20711 Discussions

Can Altera FPGA support DDR2 or DDR3 interchangable memory of PC?

Altera_Forum
Honored Contributor II
1,638 Views

I want my board to support DDR2 or DDR3 PC memory through standard memory slot. 

The FPGA should support most kinds of memory in stock. 

 

However when I tried to config DDR2 or DDR3 memory controller by QSys,  

it seems that it only support one kind of DDR timing through specified parameters. 

Does it applicapable to support different type of DDR with one DDR controller?
0 Kudos
9 Replies
Altera_Forum
Honored Contributor II
617 Views

Read the data sheets for both memory types. You will find that they use different voltages and different terminations. 

 

Although an FPGA can support both styles of memory, and hence the controller allows you to select either memory type, when it comes to designing a board, you have to select one type. 

 

Cheers, 

Dave
0 Kudos
Altera_Forum
Honored Contributor II
617 Views

 

--- Quote Start ---  

Read the data sheets for both memory types. You will find that they use different voltages and different terminations. 

 

Although an FPGA can support both styles of memory, and hence the controller allows you to select either memory type, when it comes to designing a board, you have to select one type. 

 

Cheers, 

Dave 

--- Quote End ---  

 

 

Perhaps there are misunderstanding between us. 

I want to implement a DDR2 controller to support DDR2 memory produced by different manufacturer or in different model. 

 

The other case is that DDR3 controller should be implemented on other board to support all kinds of model in stock. 

 

It can be said that on the DDR2 board the controller only support DDR2. DDR3 board support DDR3 only too. 

So I think DDR2 memory should have the same voltage and termination specifications, it can be implemented as north bridge chip does. 

The most difficult thing is about the static timing parameter.
0 Kudos
Altera_Forum
Honored Contributor II
617 Views

 

--- Quote Start ---  

Perhaps there are misunderstanding between us. 

I want to implement a DDR2 controller to support DDR2 memory produced by different manufacturer or in different model. 

 

--- Quote End ---  

 

 

Ok, that is clearer. 

 

 

--- Quote Start ---  

 

The other case is that DDR3 controller should be implemented on other board to support all kinds of model in stock. 

 

It can be said that on the DDR2 board the controller only support DDR2. DDR3 board support DDR3 only too. 

So I think DDR2 memory should have the same voltage and termination specifications, it can be implemented as north bridge chip does. 

The most difficult thing is about the static timing parameter. 

--- Quote End ---  

 

 

The DDR2 and DDR3 controllers have timing parameters that can be configured. The main task for you as the designer is to perform a timing analysis to confirm that the timing requirements can be met. 

 

If you look at the DDR speeds on Altera's web site 

 

http://www.altera.com/technology/memory/mem-index.jsp 

 

and then compare the bus speeds to those on the DDR2/DDR3 data sheets, you will find that the controllers are quite slow, i.e., its not too hard to meet timing. 

 

Cheers, 

Dave
0 Kudos
Altera_Forum
Honored Contributor II
617 Views

 

--- Quote Start ---  

Ok, that is clearer. 

 

 

 

The DDR2 and DDR3 controllers have timing parameters that can be configured. The main task for you as the designer is to perform a timing analysis to confirm that the timing requirements can be met. 

 

If you look at the DDR speeds on Altera's web site 

 

http://www.altera.com/technology/memory/mem-index.jsp 

 

and then compare the bus speeds to those on the DDR2/DDR3 data sheets, you will find that the controllers are quite slow, i.e., its not too hard to meet timing. 

 

Cheers, 

Dave 

--- Quote End ---  

 

I am a newbie in ddr world. In my opinion, if i specified a controller with one timing parameter set, such as DDR2-800MHz.  

Should it support DDR2-667MHz at the same time?  

Would it support samsung's and kingston's memory plugged through the same slot.
0 Kudos
Altera_Forum
Honored Contributor II
617 Views

 

--- Quote Start ---  

if i specified a controller with one timing parameter set, such as DDR2-800MHz.  

Should it support DDR2-667MHz at the same time?  

 

--- Quote End ---  

 

The different speed grades have different latencies, and should generally not be mixed. Its quite possible that the timing parameters for a 667MHz RAM can be used with the faster 800MHz part, but not the other way around. Unless of course, the actual speed of the controller is slower than the rated speed of the DDR. 

 

 

--- Quote Start ---  

 

Would it support samsung's and kingston's memory plugged through the same slot. 

--- Quote End ---  

 

If the memory is the same speed grade, then the timing parameters should be vendor independent. 

 

Cheers, 

Dave
0 Kudos
Altera_Forum
Honored Contributor II
617 Views

 

--- Quote Start ---  

The different speed grades have different latencies, and should generally not be mixed. Its quite possible that the timing parameters for a 667MHz RAM can be used with the faster 800MHz part, but not the other way around. Unless of course, the actual speed of the controller is slower than the rated speed of the DDR. 

 

 

If the memory is the same speed grade, then the timing parameters should be vendor independent. 

 

Cheers, 

Dave 

--- Quote End ---  

 

 

Can I change the timing parameters for memory controller when it is running? 

or could the controller get those timing parameters from memory automatically while initializing?
0 Kudos
Altera_Forum
Honored Contributor II
617 Views

 

--- Quote Start ---  

Can I change the timing parameters for memory controller when it is running? 

or could the controller get those timing parameters from memory automatically while initializing? 

--- Quote End ---  

 

 

In general the answer to both questions is yes. This is how motherboards work; they read the SPD EEPROM on the DDR DIMM and configure the memory accordingly. 

 

Read the user guide for the DDR2/DDR3 controller, that should tell you if the parameters are programmable at run-time. You can also use Modelsim to simulate the DDR controller and DDR memory. Your testbench can then reprogram the controller for different DDR settings. The DDR models from Micron and others will report if you are accessing the memory with incorrect timing. 

 

Cheers, 

Dave
0 Kudos
Altera_Forum
Honored Contributor II
617 Views

 

--- Quote Start ---  

In general the answer to both questions is yes. This is how motherboards work; they read the SPD EEPROM on the DDR DIMM and configure the memory accordingly. 

 

Read the user guide for the DDR2/DDR3 controller, that should tell you if the parameters are programmable at run-time. You can also use Modelsim to simulate the DDR controller and DDR memory. Your testbench can then reprogram the controller for different DDR settings. The DDR models from Micron and others will report if you are accessing the memory with incorrect timing. 

 

Cheers, 

Dave 

--- Quote End ---  

 

 

Does the IP core altera supplied will allow programmable parameters? 

http://www.altera.com/products/ip/iup/memory/m-alt-high-perf-mem-controller-ii.html?gsa_pos=1&wt.oss_r=1&wt.oss=ddr2%20ddr3%20controller
0 Kudos
Altera_Forum
Honored Contributor II
617 Views

 

--- Quote Start ---  

Does the IP core altera supplied will allow programmable parameters? 

--- Quote End ---  

 

 

Read the manual, create and instance of the component, and simulate it. 

 

Sorry, I can't do your job for you. Also, I haven't used this core, so I don't know the answer :) 

 

Cheers, 

Dave
0 Kudos
Reply