DS560DF810EVM: Output issue

Part Number: DS560DF810EVM

Setup:  image.pngThe cable we used is MXP40. 

  1. PPG's 26.5625G NRZ x2 into the EVB RX0 and RX1
  2. EVB TX0+ into the oscilloscope
  3. EVB TX0- into the Trigger
  4. GUI setting to 2xNRZ to PAM4 (PRBS15)

Result: 17.844GBaud PAM4 (need to be 26.5625GBaud PAM4)

26_Trigger-port1-.jpg

If we use the PPG's Trigger for item 3, the clock is right, but the result shows that the output is acutally 17.84GBaud.

26_Trigger-bert.jpg

So we were wondering what we did wrong. 

Are there some settings at the GUI we should try?  

Below is the Bringup.py code we are using.

device.hardReadAlways=1;

'''###------------BRINGUP PARAMETERS-------------###'''

sysParams.channelsDataRate=[26.5625]*8; #(in GBaudps) 26.5625 53.125

### Channels to be enabled : [Q0CH0,Q0CH1,Q0CH2,Q0CH3,Q1CH0,Q1CH1,Q1CH2,Q1CH3]
sysParams.channelsEnabled=[1,1,1,1,1,1,1,1];  #[1,0,0,0,0,0,0,0];

### PAM4/NRZ mode : 1->PAM4, 0->NRZ
sysParams.pam4Mode=[0]*8; #1->PAM4, 0->NRZ
    
### Tx PRBS generator polarity : 0-> Not inverted 1->Inverted, for channels [Q0CH0,Q0CH1,Q0CH2,Q0CH3,Q1CH0,Q1CH1,Q1CH2,Q1CH3]
sysParams.txPolarityInv=[0]*8;

### Rx PRBS checker polarity :  0-> Not inverted 1->Inverted, for channels [Q0CH0,Q0CH1,Q0CH2,Q0CH3,Q1CH0,Q1CH1,Q1CH2,Q1CH3]
sysParams.rxPolarityInv=[0,0,0,0,0,0,0,0];

### Rx PRBS selection : 0->7,1->9,'3->15,4->23,5->31,8->13   [Q0CH0,Q0CH1,Q0CH2,Q0CH3,Q1CH0,Q1CH1,Q1CH2,Q1CH3]
sysParams.rxPrbsSel=[3,3,3,3,3,3,3,3];

### Tx PRBS selection : 0->7,1->9,3->15,4->23,5->31 (for use in PRBS generator mode) 
sysParams.txPrbsSel=[3]*8; 

### Grey code : 1->enable  0->disable         [Q0CH0,Q0CH1,Q0CH2,Q0CH3,Q1CH0,Q1CH1,Q1CH2,Q1CH3]
sysParams.grayCodeEn=[1]*8;

### Gearboxmode:
### 0x00 Straight Mode        0x01 Crosspoint mode        0x02 Broadcast from RX A        0x03 Broadcast from RX B        0x04 Gearbox MUX to TX A        0x05 Gearbox MUX to TX B.
### 0x06 Gearbox DEMUX from RX A        0x07 Gearbox DEMUX from RX B        0x08 Up-convert MUX to TX A        0x09 Up-convert MUX to TX B        0x0a Down-convert DEMUX from RX A.
### 0x0b Down-convert DEMUX from RX B        0x0c GPIO control of Crosspoint        0x80 Analog low latency path.
### [Q0CH0,Q0CH1,Q0CH2,Q0CH3,Q1CH0,Q1CH1,Q1CH2,Q1CH3]
sysParams.gearboxmode=[0x04]*8

### AlarmEvent : each bit represent different event
### 1-Signal detected on channel  2-Signal loss detected on channel          4-Channel initialization started.  8-Channel initialization complete
### 16- Reserved Bit-0            32- Eye offset measurement complete        64- Channel ready
### [Q0CH0,Q0CH1,Q0CH2,Q0CH3,Q1CH0,Q1CH1,Q1CH2,Q1CH3]
sysParams.alarmEventSel=[0xF]*8;
'''-------------------------'''

def bercheck(quad,chRx,polySel,sample_count=2048):
    returnArr=[];
    vemList=[];
    berArr=[];
    
    ### Rx PRBS selection : 0->7,1->9,3->15,4->23,5->31,8->13
    sysParams.rxPrbsSel[quad*4+chRx]=polySel; 

    
    ### Check channel init status
    [done,resultArr]=ds560.QUAD[quad].chInitStat(chRx);
    if(device.chInitComplete[quad*4+chRx]==1):
        log("Channel initialization completed successfully",'Debug');
        
        ### Vertical eye logging
        vemList=ds560.QUAD[quad].verteyeMacroCall(chIdx=chRx); 
        log("VemList ="+str(vemList[1]));
        
        ### RX BER check 
        berArr=ds560.QUAD[quad].prbsBERCheck(chRx,sysParams.rxPrbsSel[quad*4+chRx],sysParams.rxPolarityInv[quad*4+chRx],symbolWindow=sample_count,serEn=0);
        
        delay(0.2);
    else:
        error("Channel initialization is in progress / lock not achieved. Please ensure input signal is connected");
        
    returnArr.append(berArr);
    returnArr.append(vemList);
    returnArr.append(resultArr);
    return returnArr;
    
'''-------------------------'''

'''-----To change CTLE settings-----'''
#0-default and 1-for DAC cable
sysParams.channelType=[0]*8;
#0-default 1-10dB PAM4  2-25dB PAM4  3-35dB NRZ
sysParams.channelPerformanceOptimize=[0]*8;

  • Hi Seungjoo,

    Do you have ability to trigger based on CDR from the scope (instead of triggering from data signal).  If so, does this impact your observation?

    I will try to reproduce and will get back to you later this week.

    Thanks,

    Drew