This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

conncting two memory devices to ddr3

Hello, 

I am trying to evaluate a system using c667x with two different memory devices connected to ddr3 interface.

Currently I am working on c6670 evm.

In my future system design each memory device would be connected to one of the chip selects so I can have independent acces to each of them. Each device would use 16 data lines.

I know that on the evm only cs0 is used.

1.Is it possible to test it on the evm by configuring the controller to use cs0 and cs1 and read from an address on cs1 domain even though there isn't any device connected to it?

2. Should the two memory devices I plan to use need to be the same?

3. Can the ddr3 controller read from a device that is not a sram memory device, e.g. a fifo?

4.Is there a way to test read throughput from ddr3?

Thanks,

Ronen

 

  • Hi Ronen,

    The C6670 does not have an asynchronous EMIF interface. The only devices that can be connected to the DDR3 EMIF are Jedec compliant DDR3 memories. If you want to use asynchronous memories you would need to use a device with the EMIF16 memory interface such as the C6678. 

    Regards, Bill

  • Bill,

    Thank you for pointing this out. I am afraid I cannot get the desired throughput from EMIF16.

    If the FIFO can be synchronized just like a DDR3 memory ? Is it possible for the DDR3 controller to just read whatever is on its data lines and ignore the DDR3 protocol?

    My question is if I connect a FIFO to the data lines and also use the clock signals for synchronization, can I access this data as if the device was a compliant DDR3 memory?

    What about my other questions (assuming I'm not using a FIFO but 2 DDR3 memory devices)? Is it possible to test on the EVM?

    Best,

    Ronen

  • Hi Ronen,

    The short answer is no. The DDR3 interface is specifically designed to operate with DDR3 memories. We can't support you if you connect anything other then a DDR3 memory to that interface. In addition, that memory interface is only routed to the DDR3 memories on the EVM. It is not routed to the expansion connector. If you need to stream data to the device at high speed I would suggest you consider using the SRIO or the PCIE serdes interfaces.

    Regards, Bill

  • Hi Bill,

    I see. I am also looking into using PCIE as well for streaming data.

    I still want to be able to use 2 different DDR3 memory devices to my system using both chip selects on the controller.

    Can the controller on the EVM be configured to use CS1 even if it is not connected to a physical device?

    If not, how would one test the read throughput from the DDR3 memory device that is available on the evm?

    My goal is to be able to read 2 x 32 bit words from the memory and write it back at 150MHz.

    Best,

    Ronen

  • Hi Ronen,

    I'm not sure what you mean by 2 different DDR3 memory devices. The current EVMs are delivered with a x64bit wide memory interface using eight 8bit devices. The memory devices use double data rate transfers with a clock speed of 666.67MHz allowing data to stream to the memory at 1333 MT/s.  DDR3 uses column and row addressing so there is some overhead associated with setting up a transfer but once it is initiated a block of data will transfer  at rates much faster then 150MHz. Note that DDR3 memory transfers are always done with blocks. If you are reading a single 64bit word, modifying it and then writing it back your throughput will suffer. If you read a block of data to internal memory, modify it and write the block back, you will easily exceed your target.

    Regards, Bill

  • Also note that using both chip selects can sometimes slow the interface. Using a larger memory with a single chip select is always preferred. 

    - Bill

  • Hi Bill,

    thank you, your input is very helpful.

    Do you know where can I find an example that does this? Reading a block of data to internal memory, modify it and write the block back?

    I'm using CCS5 and MCSDK 2.0.

    Thanks again,

    Ronen

  • Hi Ronen,

    I support the device and not the software. I suggest you post that as a new question so it doesn't get lost in this thread.

    Regards, Bill