[SI-LIST] Re: purpose of 8b/10b encoding

  • From: Efren Serra <efren.serra@xxxxxxx>
  • To: raja.patil@xxxxxxxxx
  • Date: Thu, 13 Sep 2001 10:59:13 -0700



Raja,

> Hi List members,
>
> Thanks for the educative discussion on 8b10b.
>
> If I mistake not, we were taught that DC balance is required to prevent X-mer 
> saturation (and I am NOT 100 yrs old). Then I see this DC balance again 
> coming up in Fibre channel discussions and I was puzzled. As usual (and most 
> conveniently) I blamed it on Mr. Bill Gates(I mean the ctrl+C => ctrl+V 
> methodology) but looks like there is another aspect to it which has/had 
> nothing to do with a X-mer. Folks blame it on my Prof, I had been a good 
> student!
> May be believed a bit too much in those guys.
>
> Okay so, I again read about the encoding and still not able to understand it. 
> I mean you take 8 bits, then split them in lower 5 and upper 3. Then you 
> write them as /Dx.y/ where x is the decimal value of ...Then you have comma 
> character..and somewhere I am lost.
> Ref: http://www.iol.unh.edu/training/ge/8B10BEncoding.html
>
> Okay the que is:
> If I am to write a C/Matlab code for converting a *raw* data to 8b10b encoded 
> data what exactly I need to do? or in other words, Pat how did you
> *look at* the spetrum of raw and encoded data.
> How did you generate both the streams?
> I hope C/Matlab are sufficient to get a feel for it.
> or was is it back-of-the-envelope calculation.
>

If am not mistaken, I would open the file stream as binary and then I would do 
as follows:


/* getbits: get n bits from position p */
unsigned getbits(unsigned x, int p, int n) {
    return ((x >> (p+1-n)) & ~(~0 << n));
}

The above function is found in The C Programming Language by Brian W. Kernighan 
and Dennis M. Ritchie,
2nd Edition.

...
char c;
unsigned char lsb, hsb;
FILE* fstream = fopen(filename, "rb");
if (fstream == NULL) return (EXIT_FAILURE);
while (feof(fstream == 0) {
    (void)fread(&c, sizeof (char), (size_t)1, fstream);

    /* getbits(x, p, n) */
    lsb = getbits(c, 5, 3);
    hsb = getbits(c, 0, 5);

    /* do what you must with lsb and hsb */
    ...
}
return (EXIT_SUCCESS);

Efren Serra

> Another thing:
> As is quite evident from my question, I am new to this field (come from 
> Instru where we are concerned about
> low freq, drift etc. aspects) So I would like to know some book(s) which will 
> introduce me to ISI, Jitter,
> Clock recovery and other such Networking/ Communication related physical 
> layer signalling problems/phenomenon. Most of the books on Jitter are too 
> mathematical to give a feel for the physical activity. Also what is this 
> subject called? I searced "signalling" on Amazon.com w/o any luck.
>
> All/any comments appreciated.
>
> regards,
> - Raja
>
> --
>
> On Wed, 12 Sep 2001 21:38:53
>  zanella, fabrizio wrote:
> >
> >We've been using serdes devices with 8b/10b encoding and phase locked loops,
> >and have found the PLLs to be very sensitive to low frequency noise (<2MHz)
> >at low VCC.  Does anyone know if devices which use DLLs (delay locked loops)
> >are less sensitive to low frequency noise?
> >thanks,
> >
> >Fabrizio Zanella
> >Signal Integrity
> >EMC Corporation
> >508-435-2075, x14645
> >fzanella@xxxxxxx
> >
> >
> >-----Original Message-----
> >From: Mike Jenkins [mailto:jenkins@xxxxxxxx]
> >Sent: Tuesday, September 11, 2001 8:50 PM
> >To: si-list@xxxxxxxxxxxxx
> >Subject: [SI-LIST] Re: purpose of 8b/10b encoding
> >
> >
> >Pat,
> >
> >In addition to zero DC content and guaranteed transitions to which
> >a PLL can lock, 8B10B (that's the way IBM wrote it originally) code
> >has the string ...0011111... or it's inverse which occurs only as the
> >first 7 characters of a 10-bit character, making byte alignment to
> >these sync characters easy.  Alignment for more efficient codes (e.g.,
> >64b/66b) is much more complex and statistical.
> >
> >The spectral content comes from limiting "running disparity" (the
> >ratio of 0's to 1's) which limits the low frequency content more
> >than, say, scrambled data, allowing the use of smaller blocking
> >capacitors.  (At these high frequencies, good capacitors with large
> >values are not cheap, if they can be gotten at all.)
> >
> >Lastly, 6B10B also provides a reasonably high error detection
> >capability.
> >
> >Besides Infninband, 8B10B has been selected by Fibre Channel, 1G and
> >10G Ethernet, SerialATA, 3GIO, and, I suspect, more.  Some of the
> >popularity may be momentum, but that's a lot of people going through
> >the same cost/benefit analysis as you.  They all decided it was worth
> >the costs.
> >
> >Regards,
> >Mike
> >
> >
> >"Zabinski, Patrick J." wrote:
> >>
> >> Jeffrey,
> >>
> >> Thanks for the feedback.
> >>
> >> Looking at the spectrum of an un-encoded/raw data stream versus
> >> an 8b/10b-encoded data stream, I can see how the power
> >> spectral density will be increased at a frequency
> >> equal to the data rate/2, which would provide more
> >> information for a PLL to synch onto.
> >>
> >> If this is the case, is there a way of analyzing exactly how
> >> much better a PLL can synch when using 8b/10b vs when
> >> not using 8b/10b?  If there is, can the analysis be
> >> generalized to allowing me to determine how often
> >> transitions need to be in order for a PLL to lock?
> >>
> >> Thanks,
> >> Pat
> >>
> >> >
> >> > # What's the purpose of 8b/10b encoding?
> >> >
> >> > Generally as I understand, it is to be able to recover the clock by
> >> > ensuring some number of transitions per period (8 per 10?).
> >> > Clocks change
> >> > period frequently when working at high speeds, due to
> >> > temperature, etc... not
> >> > to meantion the fact that otherwise the sending clock would
> >> > inevitably be
> >> > out of phase, plus period, of your receiver's clock.
> >> >
> >> >
> >> ------------------------------------------------------------------
> >> To unsubscribe from si-list:
> >> si-list-request@xxxxxxxxxxxxx with 'unsubscribe' in the Subject field
> >>
> >> or to administer your membership from a web page, go to:
> >> //www.freelists.org/webpage/si-list
> >>
> >> For help:
> >> si-list-request@xxxxxxxxxxxxx with 'help' in the Subject field
> >>
> >> List archives are viewable at:
> >>                 //www.freelists.org/archives/si-list
> >> or at our remote archives:
> >>                 http://groups.yahoo.com/group/si-list/messages
> >> Old (prior to June 6, 2001) list archives are viewable at:
> >>                 http://www.qsl.net/wb6tpu
> >>
> >
> >--
> >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> > Mike Jenkins               Phone: 408.433.7901            _____
> > LSI Logic Corp, ms/G715      Fax: 408.433.7495        LSI|LOGIC| (R)
> > 1525 McCarthy Blvd.       mailto:Jenkins@xxxxxxxx        |     |
> > Milpitas, CA  95035         http://www.lsilogic.com      |_____|
> >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pc
> >
> >
> >------------------------------------------------------------------
> >To unsubscribe from si-list:
> >si-list-request@xxxxxxxxxxxxx with 'unsubscribe' in the Subject field
> >
> >or to administer your membership from a web page, go to:
> >//www.freelists.org/webpage/si-list
> >
> >For help:
> >si-list-request@xxxxxxxxxxxxx with 'help' in the Subject field
> >
> >List archives are viewable at:
> >               //www.freelists.org/archives/si-list
> >or at our remote archives:
> >               http://groups.yahoo.com/group/si-list/messages
> >Old (prior to June 6, 2001) list archives are viewable at:
> >               http://www.qsl.net/wb6tpu
> >
> >------------------------------------------------------------------
> >To unsubscribe from si-list:
> >si-list-request@xxxxxxxxxxxxx with 'unsubscribe' in the Subject field
> >
> >or to administer your membership from a web page, go to:
> >//www.freelists.org/webpage/si-list
> >
> >For help:
> >si-list-request@xxxxxxxxxxxxx with 'help' in the Subject field
> >
> >List archives are viewable at:
> >               //www.freelists.org/archives/si-list
> >or at our remote archives:
> >               http://groups.yahoo.com/group/si-list/messages
> >Old (prior to June 6, 2001) list archives are viewable at:
> >               http://www.qsl.net/wb6tpu
> >
> >
> >
>
> Get 250 color business cards for FREE!
> http://businesscards.lycos.com/vp/fastpath/
> ------------------------------------------------------------------
> To unsubscribe from si-list:
> si-list-request@xxxxxxxxxxxxx with 'unsubscribe' in the Subject field
>
> or to administer your membership from a web page, go to:
> //www.freelists.org/webpage/si-list
>
> For help:
> si-list-request@xxxxxxxxxxxxx with 'help' in the Subject field
>
> List archives are viewable at:
>                 //www.freelists.org/archives/si-list
> or at our remote archives:
>                 http://groups.yahoo.com/group/si-list/messages
> Old (prior to June 6, 2001) list archives are viewable at:
>                 http://www.qsl.net/wb6tpu



------------------------------------------------------------------
To unsubscribe from si-list:
si-list-request@xxxxxxxxxxxxx with 'unsubscribe' in the Subject field

or to administer your membership from a web page, go to:
//www.freelists.org/webpage/si-list

For help:
si-list-request@xxxxxxxxxxxxx with 'help' in the Subject field

List archives are viewable at:     
                //www.freelists.org/archives/si-list
or at our remote archives:
                http://groups.yahoo.com/group/si-list/messages 
Old (prior to June 6, 2001) list archives are viewable at:
                http://www.qsl.net/wb6tpu
  

Other related posts: