This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

How to Config TLK10022 in four independent low speed channel

Other Parts Discussed in Thread: TLK10022

Hello,

Following is my system block and my purpose is to use TLK10022 to mux four independent 2.5Gbps LS into one 10Gbps,then back to FPGA.

PRBS15 generator and checker in FPGA will calculate BER of four channel.


Choose one 20-bit PRBS15 data as sync pattern in Cyclone IV,so I think TLK10022 can operate in raw serial data mode and  some registers configuration as following

1) write 

reg_addr <= 5'b00000;
mdio_wr_data <= 16'h8610;

2)write 

reg_addr <= 5'b00001;
mdio_wr_data <= 16'h4300;

3)write 

reg_addr <= 5'b00110;
mdio_wr_data <= 16'h8119;

4)write

reg_addr <= 5'b00111;
mdio_wr_data <= 16'hDD05;

5)write

reg_addr <= 5'b11100;
mdio_wr_data <= 16'h00C0;

6)write

reg_addr <= 5'b11101;
mdio_wr_data <= 16'h088C;

7)write

reg_addr <= 5'b11110;
mdio_wr_data <= 16'h8009;

8)write 

reg_addr <= 5'b11111;
mdio_wr_data <= 16'hFC03;

9)write

reg_addr <= 5'b11110;
mdio_wr_data <= 16'h8019;

10)write

reg_addr <= 5'b11111;
mdio_wr_data <= 16'hFC03;

11)write

reg_addr <= 5'b01110;
mdio_wr_data <= 16'h0008;

12)read

reg_addr <= 5'b10011;

value is 0x0000,To check the CTC FIFO status

13)write

reg_addr <= 5'b00110;
mdio_wr_data <= 16'h9119;

14)read

reg_addr <= 5'b10011;

value is 0x0000,To check the CTC FIFO status

15)write

reg_addr <= 5'b00110;
mdio_wr_data <= 16'hA119;

16)read

reg_addr <= 5'b10011;

value is 0x0000,To check the CTC FIFO status

17)write

reg_addr <= 5'b00110;
mdio_wr_data <= 16'hB119;

18)read

reg_addr <= 5'b10011;

value is 0x0000,To check the CTC FIFO status

19)read

reg_addr <= 5'b01111;

After receiver is trained and ready to receive data,transmit one sync pattern for alignment.But in real,some un-predictable data comes out from LS RX and no sync patten found after resonable period.

My question is 

a)How to config TLK10022 to  De-mux data to the corrent lanes respectively ?

b)Where the un-predictable comes from ? Can we make TLK10022 LS just output parallel PRBS data ?

c)Is the register writing sequence corrent ? Need to optimize ?

In this case,channel B is power down by PDTRXB_N pin.

Thanks.

  • Hi Roger,

    Could you take a look into the attached document?

    I hope this helps.

    7848.Interleaving methods for aggregators (TLK10022, TLK10081) (1).docx

    Best Regards,

    Luis Omar Morán Serna

    High Speed Interface

    SWAT Team

  • Hi Luis,

    Thanks for your reply,but some more questions as following

    1)

    I am not very clear the meaing of  Bit[5] of 0x1C and 0x1D.

    "Force byte alignment to 9",does it mean align character is 4'b1001 or need 9 align character "10'h2BC" before de-mux correctly?

    During lane identification,the lane been selected need to carry align character ?Or it's generated by TLK10022 after write bit[11]  to 1'b1?

    As I know,lane must carry sync pattern itself when in 10-bit data mode,how about the bit interleaved operation ?

    2)

    Two tests I done.One is Lane0 carries 4'b1001 and another is 10'h2BC  after wirte 1'b1 to bit[11] of address 0x17.

    I plan to write  above  bit to 1'b0 after bit[4] of address 0xF is 1'b1,then transmit PRBS data.But at this point,bit[4] of address 0xF is always 1'b0.

    Any suggestions?

    I select lane 0 to do above two tests since my understanding is lane ordering will be determined during auto training and  just need to let TLK10022 to know the lane 0 position,is this right ?

    3)

    In my case,HS TX and RX loopback directly,need to enable auto training?

    Regarding this function,just enable bit[14] of address 0x01 and nothing else need to do ?

    Best regards,