Hi Team,
I've tried to modify the Repeater script (#5) which comes with Latte software for AFE7920EVM so its PLL works in distributed mode from an external clock source (@163.68 MHz).
The code (attached) manages to compile and run, but it also reports the following errors:
Device DAC JESD-RX 0 Link Status
Serdes-FIFO error for lane 0: 1
CS State TX0: 0b00001010 . It is expected to be 0b00001010
FS State TX0: 0b00000101 . It is expected to be 0b00000101
Couldn't get the link up for device RX: 0; Alarms: 0x1000
Device DAC JESD-RX 1 Link Status
Serdes-FIFO error for lane 1: 1
CS State TX0: 0b00001010 . It is expected to be 0b00001010
FS State TX0: 0b00000101 . It is expected to be 0b00000101
Couldn't get the link up for device RX: 1; Alarms: 0x2000
I suspect that these errors come from the fact that I have not modify any of the JESD204B interface properties, as they were only taken from the original Repeater script.
However, I am not quite certain what exactly is the cause of these errors. Do you perhaps have any idea what could be wrong in the settings I modified?
Many thanks in advance,
Zeljko
########## General settings: ########## # VLBI Tx frequency plan details: custom_clk = 1 benchmark_on = 1 if (custom_clk != 0): f0 = 163.68 Nrx = 18 Nddc = 6 Ntx = 4 NFRef = 1 NfpgaRefClk = 1 NinputClk = 1 else: f0 = 122.88 Nrx = 24 Nddc = 12 Ntx = 3 NFRef = 4 NfpgaRefClk = 2 NinputClk = 12 ncoFreqModes = ["1KHz", "FCW"] Nduc = Nddc*Ntx Fnco_tx1 = 2245.0 Fnco_rx1 = 500.0 # AFE general settings AFE.systemStatus.loadTrims = 1 setupParams.skipFpga = 1 setupParams.fpgaRefClk = f0*NfpgaRefClk sysParams = AFE.systemParams sysParams.FRef = f0*NFRef ########## Analog settings: AFE 79XX EVM ########## # General system settings sysParams.RRFMode = 0 sysParams.modeTdd = 0 sysParams.adcSelect0 = [0, 1, 2] sysParams.adcSelect1 = [0, 1, 2] sysParams.useSpiSysref = 0 sysParams.sysrefTermination = 0 sysParams.ncoFreqMode = ncoFreqModes[custom_clk != 0] sysParams.spiMode = 1 # ADC settings sysParams.FadcRx = f0*Nrx sysParams.rxEnable = [1, 1, 1, 1] sysParams.externalClockRx = 0 sysParams.halfRateModeRx = [0, 0] sysParams.ddcFactorRx = [Nddc, Nddc, Nddc, Nddc] sysParams.numBandsRx = [0, 0, 0, 0] sysParams.numRxNCO = 1 sysParams.ncoRxMode = [0, 0] sysParams.broadcastRxNcoSel = 0 sysParams.rxNco0 = [ [Fnco_rx1, Fnco_rx1], [870.0, 870.0], [637.5, 637.5], [637.5, 637.5]] sysParams.rxNco1 = [ [Fnco_rx1, Fnco_rx1], [870.0, 870.0], [637.5, 637.5], [637.5, 637.5]] # FB settings sysParams.FadcFb = sysParams.FadcRx sysParams.fbEnable = [0, 0] sysParams.halfRateModeFb = [0, 0] sysParams.ddcFactorFb = [Nddc, Nddc] sysParams.numBandsFb = [0, 0] sysParams.numFbNCO = 1 sysParams.ncoFbMode = 0 sysParams.fbNco0 = [1000, 1000] sysParams.fbNco1 = [1000, 1000] sysParams.fbNco2 = [1000, 1000] sysParams.fbNco3 = [1000, 1000] # DAC settings sysParams.Fdac = sysParams.FadcRx*Ntx sysParams.txEnable = [1, 1, 1, 1] sysParams.externalClockTx = 0 sysParams.halfRateModeTx = [0, 0] sysParams.ducFactorTx = [Nduc, Nduc, Nduc, Nduc] sysParams.numBandsTx = [0, 0, 0, 0] sysParams.numTxNCO = 1 sysParams.combineDucMode = [0, 0] sysParams.enableDacInterleavedMode = 0 sysParams.ncoTxMode = [0, 0] sysParams.broadcastTxNcoSel = 0 sysParams.txNco0 = [ [Fnco_tx1, Fnco_tx1], [5020.0, 5020.0], [8212.5, 8212.5], [6812.5, 6812.5]] sysParams.txNco1 = [ [Fnco_tx1, Fnco_tx1], [5020.0, 5020.0], [8212.5, 8212.5], [6812.5, 6812.5]] ########## Clock distribution mode setting ########## lmkParams.pllEn = (custom_clk == 0) lmkParams.inputClk = f0*NinputClk lmkParams.sysrefFreq = f0*Nrx/1024 lmkParams.lmkFrefClk = 1 ########## JESD204 settings AFE 79XX EVM ########## if not benchmark_on: pass ########## Dummy txt ########## if benchmark_on: sysParams.topLevelSystemMode = 'StaticTDDMode' sysParams.jesdSystemMode = [1,1] sysParams.jesdLoopbackEn = 1 sysParams.LMFSHdRx = ['24410', '24410', '24410', '24410']#['14610', '14610', '14610', '14610']# sysParams.LMFSHdFb = ["24410","24410"] sysParams.LMFSHdTx = ["24410","24410","24410","24410"]#['14610', '14610', '14610', '14610']# sysParams.jesdTxProtocol = [0,0] sysParams.jesdRxProtocol = [0,0] sysParams.serdesFirmware = True sysParams.jesdTxLaneMux = [0,1,2,3,4,5,6,7] sysParams.jesdRxLaneMux = [0,1,2,3,4,5,6,7] sysParams.jesdRxRbd = [4, 4] sysParams.rxJesdTxScr = [True,True,True,True] sysParams.fbJesdTxScr = [True,True] sysParams.jesdRxScr = [True,True,True,True] sysParams.rxJesdTxK = [16,16,16,16] sysParams.fbJesdTxK = [16,16,16,16] sysParams.jesdRxK = [16,16,16,16] logDumpInst.setFileName(ASTERIX_DIR+DEVICES_DIR+r"\Afe79xxPg1.txt") logDumpInst.logFormat = 0x01 logDumpInst.rewriteFile = 1 logDumpInst.rewriteFileFormat4 = 1 device.optimizeWrites = 0 device.rawWriteLogEn = 1 sysParams.jesdABLvdsSync = 1 sysParams.jesdCDLvdsSync = 1 sysParams.rxJesdTxSyncMux = [0,0,0,0] sysParams.fbJesdTxSyncMux = [0,0] sysParams.jesdRxSyncMux = [0,0,0,0] sysParams.syncLoopBack = False sysParams.gpioMapping={ 'H8': 'ADC_SYNC0', 'H7': 'ADC_SYNC1', 'N8': 'ADC_SYNC2', 'N7': 'ADC_SYNC3', 'H9': 'DAC_SYNC0', 'G9': 'DAC_SYNC1', 'N9': 'DAC_SYNC2', 'P9': 'DAC_SYNC3', 'P14': 'GLOBAL_PDN', 'K14': 'FBABTDD', 'R6': 'FBCDTDD', 'H15': ['TXATDD','TXBTDD'], 'V5': ['TXCTDD','TXDTDD'], 'E7': ['RXATDD','RXBTDD'], 'R15': ['RXCTDD','RXDTDD']} device.delay_time = 0 AFE.deviceBringup() AFE.TOP.overrideTdd(15,3,15) else: pass