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

  • From: Ryan Lott <ryan.lott@xxxxxxxxxxxx>
  • To: "chetanreddy179@xxxxxxxxx" <chetanreddy179@xxxxxxxxx>, "si-list@xxxxxxxxxxxxx" <si-list@xxxxxxxxxxxxx>
  • Date: Mon, 22 May 2017 13:33:04 +0000

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.....0000000000000000000001000000000000000001111111111111111111111111111111101111111111111111111111111...
 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: