大家好、
我已经尝试修改了随 AFE7920EVM Latte 软件提供的中继器脚本(#5)、以便其 PLL 从外部时钟源(@163.68MHz)以分布式模式工作。
代码(随附的)可用于编译和运行、但也会报告以下错误:
器件 DAC JESD-RX 0链路状态
通道0:1的 SerDes-FIFO 错误
CS 状态 TX0:0b00001010。 预计为0b00001010
FS 状态 TX0:0b00000101。 预计为0b00000101
无法获取设备 RX:0的链接;警报:0x1000
器件 DAC JESD-RX 1链路状态
通道1的 SerDes-FIFO 错误:1.
CS 状态 TX0:0b00001010。 预计为0b00001010
FS 状态 TX0:0b00000101。 预计为0b00000101
无法为设备 RX:1获取链接;警报:0x2000
我怀疑这些错误来自以下事实:我没有修改任何 JESD204B 接口属性、因为它们仅取自原始中继器脚本。
但是、我不太确定这些错误的确切原因是什么。 您是否可能对我修改的设置中可能出现的问题有任何看法?
非常感谢您的参与、
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