I can't help you with your actual question.
But it's super easy to share 1 DDR controller between two or more IP blocks. With Xilinx, I would use a Zynq that has a hard memory controller, and connect to it with an AXI DMA IP block, 1 for each stream.
You can do the same thing in Artix too, with the Memory Interface Generator.