AnsweredAssumed Answered

Add custom logic to modify the I-Q data in DAC

Question asked by mr_nazrin on Apr 8, 2014
Latest reply on Sep 15, 2014 by rejeesh

Hi,

Currently, i'm working on Zedboard, +  FMCOMMS1.

 

I already successfully design and implementation of complex multiplier using Verilog HDL ( figure below). The synthesis , and implementation done using PlanAhead, XPS and running using SDK to test my application into Zedboard. it run perfectly. My project is to use this complex multiplier to perform modification on I,Q data before it send over to the air.

Complex Multiplier.JPG

So I will control this IQ modification thru Real_B and Ima_B . Meanwhile the original IQ will feed thru Real_A and Ima_A.

Based on test.c , some code stated

 



data_i = (sine_lut[index_i] << 16);


data_q = (sine_lut[index_q] << 0);


Xil_Out32(DDRDAC_BASEADDR + index * 4, data_i | data_q);

so data_i will represent my Real_A and data_q will represent my Ima_B. Result form my complex multiplier has 64-bit. and this result suppose to send over to the air/ DDRDAC. Result from this complex multiplier can be read as per code below..

 

Result_Real=COMPLEX_MULTIPLIER_CORE_mReadSlaveReg4(XPAR_COMPLEX_MULTIPLIER_CORE_0_BASEADDR,0);

Result_Imag=COMPLEX_MULTIPLIER_CORE_mReadSlaveReg5(XPAR_COMPLEX_MULTIPLIER_CORE_0_BASEADDR,0);

 

Now , my question is

1- What is the best way to pass these data (Result_Real, Result_Imag) into DDRDAC_BASEADDR ? What should I do on this code " Xil_Out32(DDRDAC_BASEADDR + index * 4, data_i | data_q);"

2-Any concern on clk  or frequency? DAC frequency around 500Mhz, but FPGA cannot reach that par. Should I use board frequency for custom logic only?

 

 

Best Regards,

Mohd Nazrin


Outcomes