Thread Links Date Links
Thread Prev Thread Next Thread Index Date Prev Date Next Date Index

Re: PAM5 and 8B10B and FEC




Thank you, Albert Widmer: You wrote the code
so you know it best.

My two conclusions are  unchanged:

    1) it is useless to add the 8b/10b coding in a PAM-5
        scheme, since the two main advantages of this coding,
        good DC balance and low running disparity, are not
        conserved in a 5-level transmission scheme. You
        still will need to add a scrambler to randomize the
        transmitted symbols in order to get a reasonable
        good DC balance. You just waste gates by adding
        the  8b/10b coder in a PAM-5 transmission scheme.

    2) even  442 independent "raw" symbols (instead of
        my original 524) are too much:

            5^4 = 625  < 2 * 442 = 884

        so we do not have enough unused points in the
        4-dimensional constellation in order to be able
        to add Trellis coding and get coding gain using FEC.

        Therefore, if one would still want to have both
        the 8b/10b coder and FEC in a PAM-n transmission
        scheme, he would be forced to go to a PAM-6 scheme
        using the same baud rate or keep PAM-5 but increase
        the baud rate.

Jaime

Jaime E. Kardontchik
Micro Linear
San Jose, CA 95131
email: kardontchik.jaime@ulinear.com


widmer@us.ibm.com wrote:

> Reference: Note by Jaime Kardontchik, same subject, dated 03/02/2000
> 02:15:57 AM
>
> Jamie,
>
> I wish to correct a common misconception about Fibre Channel 8B/10B code.
>
> You wrote: "Now, if you also want to add the 8b/10b coding, your 'raw' data
> becomes now something more than 512 symbols: 256 for Current RD(-) and
> another 256 symbols for Current  RD(+) plus another 12 symbols
> corresponding to valid special code groups, like K28.5 and K28.7. In total,
> your raw data after adding 8b/10b consists of 524 different symbols."
>
> The actual number of symbols for 8B/10B code is 440 plus 2 for every
> control character used, e.g. 242 for Fibre Channel.
>
> The code is partitioned into a 6B and a 4B part. The 6B part consists of 18
> disparity independent vectors and 14 (13 for data, 1 for control) disparity
> dependent vectors. Similarly, the 4B part consists of 4 disparity
> independent and 5 disparity dependent vectors. Therefore, for data, we have
> 18x4 = 72 disparity independent 10B vectors and 256-72 =  184 disparity
> dependent vectors. So, the total number of 10B data vectors is 72+(2x184) =
> 440. Since all control characters are disparity dependent, you have to add
> 2 vectors for each control character used.
>
> Albert Widmer
> IBM T.J. Watson Research Center
> Yorktown Heights, NY 10598-0218
> email: widmer@us.ibm.com