03-06-2013 10:30 AM
I read UG586, it seems there are three types interfaces for DDR3 controller, AXI4 slave, User interface, and Native interface.
In page 82, The UI block presents the UI to a user design. It provides a simple alternative to the native
interface. When I disable the AXI in GUI of MIG, then MIG will create the DDR3 controller core with User interface.
My question is when do we need to use native interface? How to create native interface in DDR3 controller core?
Thanks very much.
03-07-2013 08:27 AM
The Native Interface offers higher performance in some situations but is more challenging to use, therefore, it might require more overhead on the user application. The Native interface contains no buffers and returns data as soon as possible, but the return data might be out of order. The application must reorder the received data internally if the Native Interface is used.
The native interface starts with *_mem_intfc.v
03-07-2013 09:11 AM
03-27-2015 02:12 PM
I'm trying to use the Native interface as well on a DDR3 design on a Virtex 7. It doesn't seem so simple as to "just instantiate "*_mem_intfc.v" . That module has a ton of other inputs and outputs that are not well documented on how to use them, such as fi_xor_we, fi_xor_wrdata, rst_phase_ref, iddr_rst, ...etc. Seems there is a lot of control at this level which is hidden at the User Interface level. The UG586 document makes no mention of how to actually instantiate a Native interface. There does not seem to be an equivalent "Native" top level module to the "User Interface" top level. :-(
Better UG586 documentation, along with a concrete example of using the Native interface would go a long way.