Forum Discussion
Altera_Forum
Honored Contributor
13 years agoThere is a rule for disparity in 8B/10B encoding.
It's just that the rule is a bit more complicated. And what you're seeing in the documentation is correct, but it's a particular case. This is how8B/10B encoding works: a) The first 5 data bits plus K are encoded into a 6 bit code (5B/6B ) according to the current value of RD. b) RD is updated based on the disparity of the chosen 6B code c) The last 3 data bits plus K are encoded into a 4 bit code (3B/4B ) according to the current value of RD. d) RD is updated again based on the disparity of the chosen 4B code e) Repeat for the next byte. The goals is ensure that the disparity (unbalance between zeros and ones) is kept below 6. Now, what you're seeing in the documentation is a particular case of how it works. If you're transmitting a sequence of K28.1 (or many other cases), the RD value toggles between +1 and -1 after each byte. But once you actually start transmitting variable data this is no longer always true.