大家好、
我已经尝试修改了随 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