[SI-LIST] Re: PRBS patterns in SI simulations

  • From: chetan reddy <chetanreddy179@xxxxxxxxx>
  • To: Ryan Lott <ryan.lott@xxxxxxxxxxxx>
  • Date: Mon, 22 May 2017 22:04:22 +0530

Thanks alot Ryan.
Will check them and come back in some time.
Regards
Sreekanth

On Mon, May 22, 2017 at 7:03 PM, Ryan Lott <ryan.lott@xxxxxxxxxxxx> wrote:

Detailed Post Here....

I recommended understanding the ISI bleed through of a pulse response of a
channel first. Take pulse response data of a channel and take it into
excel. You'll start out with two columns. Column 1 is time and column 2 is
the pulse response data. Copy column 2 into new column 3 and delay it by a
UI. Make another copy into column 4 and delay by 2UI. Another... 3UI...
Another... 10UI... blah blah blah. Create a last column,  and sum up all
column 1 through n values for each row(point in time). Ok, now make a graph
of all the individual columns (all different colors) and start playing
around. Assuming Single ended, start by turning off random columns
(excluding the final summed column) and see how the summed up waveform
changes. Then you'll start to catch on to what's going on and start making
non-random changes. Pay attention to amplitude values and the transition
time/jitter of a given edge. Trust me, by doing this you'll start to
develop intuition on ISI and pulse response bleeding (ISI :P)

So the punch line will be that for a given bit, it's waveform (which is
part of the entire sum waveform mentioned above) is most likely heavily
influenced by previous bits. Playing around a lot, you'll notice things
like the falling edge jitter after an arbitrary stream of 1's is also data
dependent. Hence, data dependent properties are apparent. So try it,
different data patterns: 0101010101..... 001100110011.....
000000000000000000000100000000000000000111111111111111111111
1111111111101111111111111111111111111... you get the message.

Now, how does this apply to data test patterns? Loosely speaking, you'll
soon find out that if data isn't coded, the max run length of data (longest
run of 1's or zeros) will jack up the ISI and the eye ultimately looks like
crap (closed or damn near close to it), due to all the bleeding going on.
KEEP IN MIND, this really is determined by the channel performance and
should be looked at on a case by case basis. In any case, ISI is collapse
of the eye, and now we know if we don't control it, we're screwed (again -
case by case basis). So we can make channels better (less loss,
reflections, blah blah blah), add EQ, or code the data (aka 8b10b, 66b64b,
prbs,...). Bottom line with coding- we need to limit the maximum run length
number of 1s and 0s in a channel to aid in ISI control. So, for example,
8b10b has a max run length of 5 bits. PRBS9 has a max run length of 9 1's
and certain amount of 0's depending on the seed (I don't expect you to know
what this is yet until your research online). Do some research online and
you'll quickly figure out what the algorithms for PRBS are (simple xor
logic and lfsr's) - so now would be a great exercise to practice some
coding. Here's an example of PRBS9 I typed up in python in ~60 seconds (the
whitespace will probably get eaten by si-list). If you really want to make
David Banas go ballistic, just show him this xD







from operator import xor

def generate_bit_sequence(a,b,c,d,e,f,g,h,i,patternlength):
    string = ""
    for x in range(patternlength):
        string = string + str(i)

        y = xor(bool(e), bool(i))

        i = h
        h = g
        g = f
        f = e
        e = d
        d = c
        c = b
        b = a
        a = int(y)
    print string

patternlength = 2**9-1

a = 1
b = 1
c = 1
d = 0
e = 1
f = 0
g = 1
h = 1
i = 0

generate_bit_sequence(a,b,c,d,e,f,g,h,i,patternlength)
raw_input()






So let's now ask a few questions:

1) Why is PRBS liked to much? Answer: It's simple to generate, has a nice
chunk of data randomness, and the max run length is controlled; pretty
similar to coded data - good enough, says the engineer.
2) Which PRBS should I use? I'll answer this with an example and leave you
to think about it. 8b10b data has a maximum run length of 5 bits. You know
with 100% certainty that this is going to be the only coding scheme used on
your channel. Should you use PRBS23 as an eye test pattern? Probably not.
3) Is PRBS the only pattern I need? NO. Put yourself in this situation.
You have PRBS running and you have an eye that looks like crap. What's
wrong with it? You can't tell!!!! You don't know the bit sequence with
enough certainty. Having a nice suite like Keysight PLTS where you can put
in arbitrary bit patterns is reeeeeally useful.

In sum, for you to really understand eye patterns, you must understand
pulse responses and bleed through (ISI), the principle of superposition for
LTI systems, as well as the nature of data-dependencies on waveforms. Take
this advice, make some time available (several hours) and really dig into
this subject. It is a very important thing to understand at a deep level.

I hope this helps you out a lot. PM if you have any questions. :)

Cheers & Zàijiàn,
Ryan





















-----Original Message-----
From: si-list-bounce@xxxxxxxxxxxxx [mailto:si-list-bounce@xxxxxxxxxxxxx]
On Behalf Of chetan reddy
Sent: Monday, May 22, 2017 6:14 AM
To: si-list@xxxxxxxxxxxxx
Subject: [SI-LIST] PRBS patterns in SI simulations

Hi All,
Can anyone help me to understand on the type of PRBS patterns generation
and usage in different simulations.
Would like to know, different types of PRBS patterns, what kind of PRBS
patterns to be used for different parallel and serial interfaces?
Is there any algorithm or free tool to generate these patterns?

Regards
Chetan


------------------------------------------------------------------
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:
http://www.freelists.org/webpage/si-list

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


List forum  is accessible at:
               http://tech.groups.yahoo.com/group/si-list

List archives are viewable at:
                http://www.freelists.org/archives/si-list

Old (prior to June 6, 2001) list archives are viewable at:
                http://www.qsl.net/wb6tpu





The contents of this e-mail message and any attachments are confidential
and proprietary and are intended solely for the addressee.


------------------------------------------------------------------
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:
http://www.freelists.org/webpage/si-list

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


List forum  is accessible at:
               http://tech.groups.yahoo.com/group/si-list

List archives are viewable at:     
                http://www.freelists.org/archives/si-list
 
Old (prior to June 6, 2001) list archives are viewable at:
                http://www.qsl.net/wb6tpu
  

Other related posts: