We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

Page Bookmarked

AR# 52517

LogiCORE IP Ten Gigabit Ethernet PCS/PMA (10GBASE-KR) v2.5 - Training zero coefficient could get incorrectly set to high value


When using the Ten Gigabit Ethernet PCS/PMA v2.5 core for 10GBASE-KR, the core can incorrectly set the training zero coefficient.

This will only occur if the c(-1) coefficient is set to 21..24 (which is actually -21..-24) while the c(+1) coefficient is set to 31..28 (actually -31..-28), respectively.

Since the zero coefficient min value is calculated from the equation c(0).min = (51 - |c(-1)| - |c(+1)|), when |c(-1)| goes above its correct max value of 20, and |c(+1)| is at or near its maximum, c(0).min can be negative, which results in a large positive number from the unsigned calculation in the core RTL.

For example, this can happen if c(+1) = 29 and c(-1) = (illegally!) 23, c(0).min = 51 - 29 - 23 = -1 = 127 in the 7-bit field that is used to hold the c(0).min value.

It can result in the zero coefficient being set to its max value instead of its min value.


This is scheduled to be fixed in v2.6 of the core.

Please note that setting the |c(-1)| coefficient to 21..24 will have no effect on the action of that coefficient.

It will behave as if it was set to 20.

Similarly, setting the c(0) coefficient to > 80 will behave exactly the same as if it was set to 80.

AR# 52517
Date 12/23/2014
Status Active
Type General Article
  • 10 Gigabit Ethernet PCS-PMA with FEC/Auto-Negotiation for backplanes (10GBASE-KR)
  • Ten Gigabit Ethernet PCS/PMA