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

Why K28.5 is more frequent to be used among the 12 control character in 8b/10b

Altera_Forum
Honored Contributor II
4,413 Views

Hi, 

 

in 8b/10b encoding scheme, why the control character K28.5 is more frequent to be used among the 12 control character. 

 

What is the advantage of K28.5 among all? why the protocol will choose to use this instead of others control character? there must have a reason behind right? 

 

Thanks and regards, 

sysysy
0 Kudos
6 Replies
Altera_Forum
Honored Contributor II
3,690 Views

I've been looking at 8b/10b lately so I'll take a crack at this. 

 

My guess is that it's because K28.5 contains the extremes of 8b/10b encoding. More specifically, it has both a run length of 5 and 1 within the same word. In the case of "0101111100", if the receiver can correctly receive five 1s and a single 1, that is as stressful as a single word can be. There are other combinations that could do this but since K.28 has "111100", it's a little bit more limited. 

 

It's only a guess but plausible I think.
0 Kudos
Altera_Forum
Honored Contributor II
3,690 Views

Hi, 

 

 

--- Quote Start ---  

There are other combinations that could do this but since K.28 has "111100", it's a little bit more limited 

--- Quote End ---  

 

 

what do you mean by above statement? could you explain further about it? 

 

For my understanding, 

k28.1 "1001111100" is also has a characteristic that k28.5 has just like what you explained right? Then may i know is there any difference? 

 

Thanks and regards, 

sysysy
0 Kudos
Altera_Forum
Honored Contributor II
3,690 Views

K28.5 is used for synchronization purposes, the details depend on the 8B/10B variant. In a basic implementation, e.g. the Altera Megacore, K28.5 is inserted as idle character when no data is sent. It's filtered at the receiver. 

 

Review the 8B10B Encoder/Decoder MegaCore Function User Guide for details.
0 Kudos
Altera_Forum
Honored Contributor II
3,690 Views

It really is just speculation on my part about why that particular character is used.  

 

If K28.1 was followed by a word with 1 in the next position, it wouldn't necessarily be high for just one bit period. For example ...1 1001111100 wouldn't give you the 010 pattern you're looking for.
0 Kudos
Altera_Forum
Honored Contributor II
3,690 Views

I was referring to your initial question "why the control character K28.5 is more frequent to be used among the 12 control character". Now it seems that you are actually asking which properties of the character K28.5 are motivating it's usage, which is a different question. 

 

As a user of 8B/10B, I normally take the protocol definition as a matter of fact. But some points can be said in this regard. 

 

Firstly, there are three "Komma" characters in the 8B/10B code (characters that can be used for synchronization purposes because they can be unequivocally identified in a bitstream), two of them (K28.1 and K28.5) can be used repeatedly, so the initial choice is already reduced from 12 to 2. You can review some detail considerations about 8B/10B code design in the description part of the original IBM patent US4486739. Whether K28.5 is better suited than K28.1 to be used as idle character or if it's just a convention doesn't bother me that much, but may be you find some facts in the document.
0 Kudos
Altera_Forum
Honored Contributor II
3,690 Views

Thanks a lot for the explanation and information.

0 Kudos
Reply