Interface with Xilinx FPGA


Can UNITE7002 can be interfaced with any other FPGA board(say Zync 7000 or Picozed).

Yes, no reason why not, provided it has a suitable device and the mating FMC connector. See the Quick Starter Manual for details:

Thanks for the response.

From hardware point of view, yes any device having FMC connector can be connected with it but what about wrapper that is required to communicate between boards.
To be more specific, right now I am using zedboard with AD-FMCOMMS3-EBZ(for RF 70MHz onwards). Here Analog Devices is providing all wrapper and environment to interface it with Zedboard.
Now I want to replace this AD-FMCOMMS3-EBZ with LMS7002M keeping zedboard as intact. My concern is how to communicate between these now. Is Lime systems provides wrapper for its interface.If yes, from where to get that and what is process to do this.

LimeSDR is based on STREAM + UNITE 7002 and in many respects can be thought of as a more integrated, cost optimised version of this combination, with fewer peripheral interfaces etc.

The original development for Lime Suite (as a full driver stack using SoapySDR and via this providing UHD support) was done with this hardware combination. However, I’m not sure what the current status is and doubt that the latest Lime Suite would work with those older FPGA designs at:

Though at the very least there should be an older commit of Lime Suite that could be checked out and built that should.

Tagging @zack and @joshblum for further comment.

Can i get the wrapper source code in HDL for interfacing Unite 7002 board with vertex 4/5 FPGA (Xilinx) using the FMC interface of the board.

@vikas01031989 I actually did something very similar with the unite7002 board and a microzed over fma connector. It was for a private company so I cant share the work, but I can confirm that it does work and share a few possible routes:

  1. I implemented custom streaming cores and used this driver, which was around a bit before all of the LimeSuite development: So even if I did this work again now with all of the custom streaming, I probably would have used LimeSuite’s LMS7002M driver to save time. But I guess now you have two options :slight_smile:

  2. Or… So lets say you are making custom fpga streaming cores or using existing streaming cores. The idea here is that you make a custom instance of “IConnection”, tell it how to talk to SPI and how to read and write samples to stream. This gives you high level controls of LMS7 and software tools built on limesuite. Perhaps the streaming implementation and FPGA cores are based on libiio and they can be reused.

  3. Or… The LimeSDR FPGA projects is there for re-use, so it can provide LMS7 DIQ interfacing and cores for stream and register controls. If you re-use the FPGA cores and provide software hooks for reading and writing bytes into the FPGA, the LMS64C Protocol works similarly to the IConnection mentioned above, but its specialized for re-using this particular FPGA core.

No matter how you slice it, there is FPGA work to be done since its a new FMC pinout, and I’m not sure which design is easier to re-use. There is a lot of details to figure out of course, its not a small job to basically make a new working SDR device like this. Hopefully, at least some of the work is cut our for you with software or FPGA code re-use.

PS dont forget to populate the 0-ohm resistors for using the unite spi bus over the FMC connector