I am working with Zedboard+FMcomms3 setup and operating off the up to date HDL running the NO-OS driver. I am fairly comfortable using the driver at this point, and I am now attempting to modulate the carrier with custom data. I would like to implement BPSK in my design and was wondering if there are any DSP libraries that AD recommends to achieve this with my specific set-up. Or perhaps there is an easier method for modulation that is inherent to the driver that I haven't stumbled upon yet (this would mean that I'm not actually comfortable with the driver I guess). Worst case scenario would be me writing the modules in C from scratch.
Goal is to implement BPSK on a 2.4Ghz carrier according to a pre-defined Look Up Table in my real time system.
Any help is appreciated! Thanks !
It is generally recommended to not do any DSP on the ARM itself, that is what the FPGA fabric is for. For creating IP cores on the FPGA we recommend using: HDL Coder from MathWorks, System Generator For DSP from Xilinx, Vivado HLS, or other tools within Vivado.
Thanks for the reply. So it looks like I am going to make an IP core that will take care of the BPSK. My question now is about the placement of the core. Should the modulation core be placed before DAC_FIFO in the IP block design?
What does din1-4 correspond to ? My assumption is that din1=I1 and din2=Q1, din3=I2, din4 =Q2. By virtue of the device I am using (Fmcomms-3) my din3&4 would not be doing anything (1tx1rx mode) so is it fine to leave these connections alone?
You'll want to place IP between the Pack and FIFO cores. See this example here:https://wiki.analog.com/resources/fpga/docs/hdl/fmcomms2_fir_filt
If you don't want to add DSP to a channel just leave it connected as is.
My IP module requires a carrier with 180 degree phase shift. Is the carrier generated from DDS of a Look up table ? and if so does this occur in the AD9361 core?
I'll attach the image i am referencing to this message.
DDSs use a cordic implementation in the axi_ad9361 interface core.