PYNQ version : v3.0.1
Vivado Version : 2020.2
How do I calibrate the ADCs in RFSoC 4x2 to reduce the spurs.I tried setting the calibration mode to AUTOCAL on rfdc ip and generated bitstream and it hardly made any difference. I tried doing something like this in Jupyter notebook but it didn’t help either.
ADC_TILE = 0
ADC_BLOCK = 0
adc = base.radio.rfdc.adc_tiles[ADC_TILE].blocks[ADC_BLOCK]
base.radio.rfdc.adc_tiles[ADC_TILE].Reset()
base.radio.rfdc.adc_tiles[ADC_TILE].StartUp()
cal_blocks = ['OCB1', 'OCB2', 'GCB', 'TSCB']
for cal_block in range(len(cal_blocks)):
coeff_struct = xrfdc._ffi.new("XRFdc_Calibration_Coefficients*")
adc.GetCalCoefficients(cal_block, coeff_struct)
coeffs = xrfdc._unpack_value(coeff_struct)
print(f"{cal_blocks[cal_block]}: {coeffs}")
print(adc.CalFreeze)
adc.CalFreeze['FreezeCalibration']=1
print(adc.CalFreeze)
I tried plotting the average FFT of multiple acquisitions of raw ADC data (128 iterations of 32768 samples) for 128 Mhz input (1.024 GSPS , decimation by 2) Also why does the FFT have a typical shape,I terminated the input and plotted FFT and the shape is seen there as well
Is it because of the Balun ? It has a phase imbalance of 8 degrees.

