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

Instanciate multiple DDR2 controllers ?

Altera_Forum
Honored Contributor II
953 Views

Hi, 

 

I have a PCI express development board with stratix II GX and 288 MB of DDRII (4 * 64 MB + 1 * 32 MB). 

 

I can access to all memory with one controller.  

But I would like to divide my memory space in 4 independent blocks. I need to access one block in the same time than another. 

 

Because, in my project, I need to keep a 13 Gb/s data transfert rate from DDRII to another device and in the same time, I need to make calculation on a XVGA image store in DDRII (so first I need to read it, calculate data then rewrite it in DDR). 

 

I can achieve this goal only if I can use multiple memory controllers in order to make more than one thing at one time. 

 

But, my dev board share address bus and control bus (ras, cas, we...) for all the memory chips....  

 

So is it possible, in this particular case, to instanciate 4 memory controllers ? 

I don't think so... 

 

If not, maybe could you give me some tips to achieve my goal ? 

How can I access independently four blocks of my memory space ?  

Or What are the alternatives ? 

 

Thanks for helping me. 

See you. 

 

Fabe.
0 Kudos
5 Replies
Altera_Forum
Honored Contributor II
278 Views

You only have one memory interface so really you can only have one memory controller. What you need is a multi-port interface to the one controller. The easiest way for you to do this is to use SOPC builder. The Avalon bus will automatically give you a multi-port interface to the DDR2 memory. 

 

Jake
0 Kudos
Altera_Forum
Honored Contributor II
278 Views

It's pretty cleat, that the PCIe Dev Kit on-board DDR2 RAM can only be utilized as a whole, either 64- or 72-bit wide memory. The simulatanous access may be achieved by interleaving read and writes through the FIFO, that is used anyway inside the DDR2 controller. Writing full rows at each access, you can come near to the said theoretical througput of 48 GB/s.  

 

As a first step, you may calculate your total througput requirements, design an access scheme and find out, if it's feasible.
0 Kudos
Altera_Forum
Honored Contributor II
278 Views

Thanks to you both, 

 

You're right, first I have to calcul exactly my timings access requirements for my system. 

 

In the same time, I have to get more informations about multi port controller (I didn't know at all how it works...) 

 

I will come back to you when I will have more informations. 

 

Thanks for help and see you soon!  

 

Fabe.
0 Kudos
Altera_Forum
Honored Contributor II
278 Views

Hi, 

 

So I have calculate all my requirements. That's the deal: 

 

- Memory DDRII : 288 Mo @ 333.333 Mhz. 

Interface data bus 144 bits at full rate => about 48 Gb/s (theoricaly, if no refresh cycle are made...) 

 

- 4 process need to drive memory. 

 

1/ First process need to read out at 64 bits @ 200 MHz => 12.8 Gb/s 

2/ Second process. GigaEthernet => 1 Gb/s 

3/ Extraction of datas at 32 bits @ 333.333 MHz => 10.6 Gb/s 

4/ Write datas at 64 bits @ 333.333 MHz => 21.3 Gb/s 

 

So, all my process need 45.7 Gb/s... outch! 

 

Theorically, I can achieve this requirements. Maybe I will able in the future to reduce a little bit process 4. Actually, I don't know now. 

 

 

In the same time, I have get some informations about multi port controller but I don't find very clear and detailled documentation... For now, nothing is very clear :-/ 

 

So, could you please tell me : 

 

1/ If you think I am able to write my own logic added to Altera DDRII HP controller ? Is it too difficult or not ? And humm... I'm a begginer in hdl design...  

 

2/ How works an arbiter in multi port controller ? Have you got some documentation, sample code or whatever to help me understand ? 

 

3/ Is it more interresting (in terms of time and effort) to buy an IP like this : 

http://www.microtronix.com/products/?product_id=174 

Or can I make some "simple" logic who drive all my port to my altera controller ? 

 

 

Last thing, If you have got documentations or sample projects about multi port controller implementation, I will be pleased to get some informations. 

 

Thanks for helping me! 

See you. 

 

Fabe.
0 Kudos
Altera_Forum
Honored Contributor II
278 Views

Hi, 

 

I update my own previous post because I always search documentations / code examples / projects about multi port controller. 

 

Actually, in a first time, I try to evaluate the Microtronix IP (link provided above) but in terms of price, I can't use this for my project... not enough money. 

 

So I need to develop my own multi port controller logic. I would like tu use altera DDR2 HP IP and build my own logic around. 

 

Please, I need more informations or examples, especially on how making a good multiplexing of all my ports, how giving priority at each port ... 

 

Even a documentation will be welcome! 

 

Thanks for all. 

 

Bye.
0 Kudos
Reply