High speed memory read and transfer via rocket IO..

Hey,

I want to read an 8bits data from a memory at 500MHz and want to send this serially at a speed of 4GBits/s. I am reviewing the documents. What are the possible solutions for that memory read write operation and data transfer operation. I am reviewing the userguides of rocket io tranceiver modules and what i see is a maximum transfer rate of

3.125GBits/sec per one channel and 2.5GBits/s payload. What i have to do is to reach the speed of at least 4GBits/sec. Is there a solution ?

Regards, Anil

Reply to
anilcelebi
Loading thread data ...

DDR2 or 3 is about the only choice then for the memory if you absolutely have to have only 8 bit wide memory. Widen the memory path to 16 bits and you can use DDR.

You didn't mention if the 500 MB/sec read rate is intended to be a burst rate or a continuous rate. If it's continuous, then it makes no sense to read out at 500 MB/sec unless you're also writing to it at 500 MB/sec which means a minimum memory bandwidth requirement of 1GB/sec. Add on 1-2% for refresh and then 5% for a decent and efficient arbitration algorithm (assuming reads and writes need to overlap). If the 500 MB/sec rate is some burst and it is acceptable to block all write access during the transfer then of course none of that applies.

A second channel.

Kevin Jennings

Reply to
KJ

Anil,

Use two channels.

Austin

Reply to
austin

A second channel sounds great but what i can understand from the rocketIO user guides is that i am not allowed to split the data smaller than 8 bits such as "two 4 bits". If it is possible to send a

4 bits of data through one channel please refer the data sheet or any other documents.

One more question is that, can i implement the whole system control by custom logic or should i try to use a ppc or microblaze design.

Reply to
anilcelebi

What i tried to explain by saying 8 bits and 500MHz is the speed i need. It can also be 250 MHz 16 bits and 125 MHz 32 bits. The data width is limited by the rocket IO tranceivers tha the fpga have. I will possibly use the smallest Virtex IV FPGA with the MGTs. It has too much speed options for data transfer and i am trying to find the best choice.

It is only the burst read rate. Read and write operations will be performed independently.

As i understand from the user guides and datasheets i am not allowed to split the data smaller than 8 bits. So the maximum rate to serially send an 8 bits data is 2.5Gbit/s. If i am wrong please correct my mistake and refer some data sheets related to the solution.

Regards...

Reply to
anilcelebi

I am not sure that I understand the question. The V4 MGTs allow user side data busses of 8 bits to 64 bits. For any of these user side widths a wide range of serial data rates are possible up to 6.5gbps (for higher speedgrades).

The user bus frequency is determined (using 8b10b encoding) by (serial link rate/10)/number of bytes on user bus

The interpretation of the data on the user bus is up to the user. You can treat it as a stream of nibbles, a stream fo 16-bit words, whatever. The only restriction is that comma words will alwas take up 8 bits and will be byte aligned. (But hey, that could be a two-nibble-comma)

So you can very well send a stream of nibble through a V4 MGT. And you can run a single link at the 5gbps necessary for your application if you choose a higher speedgrade.

Kolja Sulimma

Reply to
Kolja Sulimma

Thanks i will consider that...

Reply to
anilcelebi

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.