Programmable Devices
CPLDs, FPGAs, SoC FPGAs, Configuration, and Transceivers
21182 Discussions

How to switch Transceiver transmitter PLL

JDeff
Beginner
1,449 Views

I am following the user guide to switch transmitter pll sources. I read register x117(3:0) and get x"B'". I then do a read-modify-write to register x111. but before I modify, the read value is x"78". after manipulating the pll maping value of x"B" I should write x"FB" to x111. I am confused though because I am switching to the same pll that is already active (just trying to test the state machine logic) so i would expect to write the same value to x111 as I read.

When I write xFB to x111, the calibration hangs and the transcever does not come back to life. however, without changing any logic if I write x78 to x111 (the same value that I read) the calibration completes just fine.

 

What am I doing wrong that PLL switching is not working

0 Kudos
1 Solution
CheePin_C_Intel
Employee
1,321 Views

Hi,

 

As I understand it, you have some inquiries related to the TX PLL switching in the Native PHY. I believe you are referring to A10 devices. If yes, as I understand it from the user guide, to switch to tx_serial_clk0, the 8 bit mapping should be:

 

{~logical_PLL_offset_readdata[3], logical_PLL_offset_readdata[1:0],logical_PLL_offset_readdata[3], logical_PLL_offset_readdata[3:0] }

 

With the read back value = 0xB -> 4'b 1011, after encoding, the value should be 8'b 0111 1011 -> 0x7B instead of 0xFB. Please help to correct me if I have encoded this incorrectly.

 

Thank you very much.

 

Best regards,

Chee Pin

View solution in original post

0 Kudos
4 Replies
CheePin_C_Intel
Employee
1,322 Views

Hi,

 

As I understand it, you have some inquiries related to the TX PLL switching in the Native PHY. I believe you are referring to A10 devices. If yes, as I understand it from the user guide, to switch to tx_serial_clk0, the 8 bit mapping should be:

 

{~logical_PLL_offset_readdata[3], logical_PLL_offset_readdata[1:0],logical_PLL_offset_readdata[3], logical_PLL_offset_readdata[3:0] }

 

With the read back value = 0xB -> 4'b 1011, after encoding, the value should be 8'b 0111 1011 -> 0x7B instead of 0xFB. Please help to correct me if I have encoded this incorrectly.

 

Thank you very much.

 

Best regards,

Chee Pin

0 Kudos
JDeff
Beginner
1,321 Views

Yes that was my mistake. I did not realize ~ notation meant NOT bit 3. It now works correctly. Thank you

0 Kudos
CheePin_C_Intel
Employee
1,321 Views

Hi,

 

Just would like to follow up with you on this. Thank you.

0 Kudos
CheePin_C_Intel
Employee
1,321 Views

Thanks for the update. Glad that you have managed to resolve the issue.

0 Kudos
Reply