01-09-2018 02:47 PM
We are trying to make a custom board which goes to DDR3 or 4 DIMM slot and receive signals from the DDR3/4 controller. This device should be shown just like any other SDRAM. We will use DDR3 or DDR4 based on the difficulty to build this board.
I guess we should start from designing a module which takes a DDR signals and translate to AXI (just opposite of MIG) but we wanted to know if there is any similar work done or failed because of some limitations.
Here are the posts I've already seen but I couldn't really get useful information.
https://forums.xilinx.com/t5/Welcome-Join/DDR3-DQ-Capture-using-FPGA/td-p/361259
Thanks.
02-06-2018 01:08 PM
Hi @min16
Using the FPGA as a DIMM seems feasible in the sense that there is no hardware limitation preventing our FPGAs from receiving a write or read command from a memory controller. I'm concerned that the additional latency of the FPGA will make it very difficult to meet DDR3 or DDR4 JEDEC timing.
I see your article mentions this and offers a solution :)
If your application is similar to the one in the IEEE article I don't see any reason why you can't do it!
The full article suggests that the engineering team making the DIMMnet-2 board had to derate the interface to 100MHz operation on the FPGA <--> memory controller interface. Watch out for additional capacitance/crosstalk/SI problems on the line from the FPGA loading, see if you can mitigate that with an extra amount of ground via stitching on the FPGA. The better trace matching you do, the less jitter I'd expect introduced from delay elements in the memory controller and FPGA.
I hope this helps, looks like an exciting project if you can overcome the SI issues.
Regards,
-M
01-10-2018 05:55 AM - edited 01-10-2018 05:57 AM
We have built a device with Artix 7 that pushing data to 8GB DDR3 RAM and reading it back from there. The MIG core in native interface mode has been used. On top of the MIG core is sitting the Xilinx Virtual FIFO controller IP that is managing stuff.
Instead of native_interface an AXI i/f can be used, I don't see any problems with that. All you need is a data source to generate AXI data to be written to the DDR* and checker block verifying the read out AXI data .
Proper board design is necessary for the correct interfacing with the DDR* memory. There are strict guidelines to be followed.
------------FPGA enthusiast------------
Consider giving "Kudos" if you like my answer. Please mark my post "Accept as solution" if my answer has solved your problem
01-11-2018 01:32 AM
01-14-2018 02:21 PM
Thanks for the answers but my question is if there already an IP that FPGA can act as a DIMM device.
Here is the example: http://ieeexplore.ieee.org/document/4101085/
And yes, we are trying to build the board based on Ultrascale/Ultrascale+ device but didn't decide exact model. At this point we're thinking of Virtex Ultrascale+.
01-15-2018 02:14 AM
01-15-2018 10:42 AM
Yes. If there is no IP ready for this, I'm planning to use RXTX_BITSLICE and RX_BITSLICE to recover the signals from the memory controller. Right now I'm trying to reverse engineer the MIG and implement something in opposite. For the ease of development, probably we will plug the prototype on to another FPGA board and test with MIG. Does this sound feasible?
02-06-2018 01:08 PM
Hi @min16
Using the FPGA as a DIMM seems feasible in the sense that there is no hardware limitation preventing our FPGAs from receiving a write or read command from a memory controller. I'm concerned that the additional latency of the FPGA will make it very difficult to meet DDR3 or DDR4 JEDEC timing.
I see your article mentions this and offers a solution :)
If your application is similar to the one in the IEEE article I don't see any reason why you can't do it!
The full article suggests that the engineering team making the DIMMnet-2 board had to derate the interface to 100MHz operation on the FPGA <--> memory controller interface. Watch out for additional capacitance/crosstalk/SI problems on the line from the FPGA loading, see if you can mitigate that with an extra amount of ground via stitching on the FPGA. The better trace matching you do, the less jitter I'd expect introduced from delay elements in the memory controller and FPGA.
I hope this helps, looks like an exciting project if you can overcome the SI issues.
Regards,
-M