04-24-2019 11:51 PM
Hi xilinx employees,
I am using the DRP to write the TXOUT_DIV/RXOUT_DIV to change the line rate for the sata3.0 phy layer,I have succeeded made three changes,the line rate is 6gbps/3gbps/1.5gbps,but when I want to change the line rate again,the usrclk2 which is my txoutclk becomes 'X', I have searched the fommunity forums to solve my problem,I have found this https://forums.xilinx.com/t5/Serial-Transceivers/TXOUTCLK-output-stop-after-reconfguration/td-p/888199, I want to use the (3) method in picture 1,but I start my project from the GTX example project,so I can't change the BUFG as you can see in picture 2, so the only way I can do is to use the latest vivado version? here is my function simulation result,the TXRESETDONE and the RXRESETDONE are 1 when I do the DRP writing.
thanks for helping me!
04-25-2019 11:49 PM
before writing to DRP, please don't forget to read it first.
You only change the bits that needs to be changed and leave all remaining bits untouched.
here is correct flow for rate change:
read DRP --- modify the bits required --- write DRP
04-25-2019 11:55 PM
I have change the line rate from 6gbps to 3gbps,1.5gbps,I just write the datain(other bits are set to 0)corresponding to the TXOUT_DIV/RXOUT_DIV,it works fine,are you sure the problem is this?
04-26-2019 12:11 AM
I think you need to take care of 'other bits' during the rate change.
You can write all 0s to 'other bits' if you are sure 'other bits' should be all 0s.
04-26-2019 07:23 AM
I have changed my design to the read-modify-write method,but the problem is still here,the rxusrclk2(txoutclk)has become 'X'after I try to write the TXOUT_DIV/RXOUT_DIV from 4 to 1,I can't find any clues about this,as you can see in the picture I use the read-modify-write method to change the TXOUTD_DIV and the RXOUT_DIV,after every DRP,I have pull the soft_reset_i to '1' to reset the whole GTX,I just want to write the DIV 1/2/4 and 1/2/4........
my vivado version is 2018.1,Ijust want to use the GTX for the phy layer of the SATA3.0.
please give me a hand,thanks a lot!
04-27-2019 07:55 PM
You are using QPLL, right? did you observe QPLLOUTCLK? is it still OK?
if so, put all signals of GT_CHANNEL signals in the waveform and see if there is something wrong, especially on the inputs.
all inputs must be connected. inputs cannot be floating.