[SI-LIST] Re: HSPICE - adding jitter to ethernet serial link

  • From: "Hassan O. Ali" <hassan@xxxxxxxx>
  • To: si-list@xxxxxxxxxxxxx
  • Date: Wed, 15 Feb 2006 16:26:47 -0500

Weston,

This is an amazing stuff! Thanks for sharing!

Best regards.

Hassan.


On Feb 15, "Beal, Weston" <weston_beal@xxxxxxxxxx> wrote:
> 
> 
> 
> This approach is adequate for most situations, but changing the random
> numbers can be laborious. If you like this approach you will like my bit
> pattern generator utility. Pulse Train Generator can easily output a
> similar bit of text and with the GUI it's easy to change the random
> numbers, the bit pattern, and the number of bits. You can get it free at
> <a href='http://www.si-list.org/files/tools/ptgen235.zip'>http://www.si-
list.org/files/tools/ptgen235.zip</a>
> 
> 
> =20
> 
> -----Original Message-----
> From: si-list-bounce@xxxxxxxxxxxxx [mailto:si-list-bounce@xxxxxxxxxxxxx]
> On Behalf Of Hassan O. Ali
> Sent: Wednesday, February 15, 2006 9:03 AM
> To: si-list@xxxxxxxxxxxxx
> Subject: [SI-LIST] Re: HSPICE - adding jitter to ethernet serial link
> 
> A piece-wise linear (PWL) source implemented as below in an HSPICE
> subcircuit may be used to simulate RJ and DJ effects on the output.
> 
> The total jitter (J) factors (e.g. 0.512, 0.221, etc.) in this case were
> generated with a random number generator. The bit pattern is random but
> is supposed to mimic an 8B/10B encoding where the maximum run-length
> (maximum number of consecutive 1's or 0's) is 5.=20
> The pattern length was arbitrarily chosen as 160 bits.
> 
> Mind you, this is just one arbitrary way of including DJ and RJ effects.
> I'm sure more elaborate ways exist.
> 
> Best regards.
> 
> Hassan.
> 
> 
> ************************************************
> * HSPICE PWL voltage source
> * Parameter description:
> * TR - Rise/Fall time of the PWL source
> * UI - Unit Interval time (Bit width =3D 1/BitRate)
> * HI - Voltage value representing bit "1"
> * LO - Voltage value representing bit "0"
> * JD - Peak-to-peak deterministic jitter
> * JR - Peak-to-peak random jitter
> ************************************************
> .SUBCKT pwl_source node1 node2
> +TR=3DTRval UI=3DUIval HI=3DHIval LO=3DLOval
> +JD=3DJDval JR=3DJRval
> .param J=3D'(JD+JR/2)'
> vsrc node1 node2 PWL
> + 0.0    'HI', '0.512*J+UI*1'    'HI',
> + '0.512*J+UI*1+TR'   'LO', '0.221*J+UI*2'    'LO',
> + '0.221*J+UI*2+TR'   'LO', '0.868*J+UI*3'    'LO',
> + '0.868*J+UI*3+TR'   'LO', '0.358*J+UI*4'    'LO',
> + '0.358*J+UI*4+TR'   'LO', '0.379*J+UI*5'    'LO',
> + '0.379*J+UI*5+TR'   'HI', '-0.003*J+UI*6'    'HI',
> + '-0.003*J+UI*6+TR'   'LO', '0.2*J+UI*7'    'LO',
> + '0.2*J+UI*7+TR'   'LO', '0.238*J+UI*8'    'LO',
> + '0.238*J+UI*8+TR'   'LO', '0.197*J+UI*9'    'LO',
> + '0.197*J+UI*9+TR'   'LO', '-0.424*J+UI*10'    'LO',
> + '-0.424*J+UI*10+TR'   'HI', '-0.608*J+UI*11'    'HI',
> + '-0.608*J+UI*11+TR'   'HI', '-0.47*J+UI*12'    'HI',
> + '-0.47*J+UI*12+TR'   'LO', '-0.124*J+UI*13'    'LO',
> + '-0.124*J+UI*13+TR'   'LO', '-0.094*J+UI*14'    'LO',
> + '-0.094*J+UI*14+TR'   'LO', '-0.657*J+UI*15'    'LO',
> + '-0.657*J+UI*15+TR'   'HI', '0.48*J+UI*16'    'HI',
> + '0.48*J+UI*16+TR'   'LO', '-0.052*J+UI*17'    'LO',
> + '-0.052*J+UI*17+TR'   'LO', '0.208*J+UI*18'    'LO',
> + '0.208*J+UI*18+TR'   'HI', '-0.15*J+UI*19'    'HI',
> + '-0.15*J+UI*19+TR'   'HI', '-0.097*J+UI*20'    'HI',
> + '-0.097*J+UI*20+TR'   'LO', '0.089*J+UI*21'    'LO',
> + '0.089*J+UI*21+TR'   'LO', '-0.535*J+UI*22'    'LO',
> + '-0.535*J+UI*22+TR'   'LO', '0.096*J+UI*23'    'LO',
> + '0.096*J+UI*23+TR'   'LO', '-0.433*J+UI*24'    'LO',
> + '-0.433*J+UI*24+TR'   'LO', '0.603*J+UI*25'    'LO',
> + '0.603*J+UI*25+TR'   'LO', '-0.119*J+UI*26'    'LO',
> + '-0.119*J+UI*26+TR'   'HI', '-0.847*J+UI*27'    'HI',
> + '-0.847*J+UI*27+TR'   'HI', '-0.234*J+UI*28'    'HI',
> + '-0.234*J+UI*28+TR'   'HI', '-0.056*J+UI*29'    'HI',
> + '-0.056*J+UI*29+TR'   'LO', '-0.535*J+UI*30'    'LO',
> + '-0.535*J+UI*30+TR'   'LO', '-0.564*J+UI*31'    'LO',
> + '-0.564*J+UI*31+TR'   'HI', '-0.191*J+UI*32'    'HI',
> + '-0.191*J+UI*32+TR'   'LO', '0.16*J+UI*33'    'LO',
> + '0.16*J+UI*33+TR'   'LO', '-0.552*J+UI*34'    'LO',
> + '-0.552*J+UI*34+TR'   'LO', '0.277*J+UI*35'    'LO',
> + '0.277*J+UI*35+TR'   'HI', '-0.491*J+UI*36'    'HI',
> + '-0.491*J+UI*36+TR'   'LO', '0.463*J+UI*37'    'LO',
> + '0.463*J+UI*37+TR'   'LO', '-0.166*J+UI*38'    'LO',
> + '-0.166*J+UI*38+TR'   'HI', '-0.592*J+UI*39'    'HI',
> + '-0.592*J+UI*39+TR'   'HI', '0.667*J+UI*40'    'HI',
> + '0.667*J+UI*40+TR'   'LO', '-0.296*J+UI*41'    'LO',
> + '-0.296*J+UI*41+TR'   'LO', '-0.11*J+UI*42'    'LO',
> + '-0.11*J+UI*42+TR'   'HI', '-0.608*J+UI*43'    'HI',
> + '-0.608*J+UI*43+TR'   'HI', '-0.351*J+UI*44'    'HI',
> + '-0.351*J+UI*44+TR'   'LO', '0.818*J+UI*45'    'LO',
> + '0.818*J+UI*45+TR'   'HI', '-0.365*J+UI*46'    'HI',
> + '-0.365*J+UI*46+TR'   'LO', '0.201*J+UI*47'    'LO',
> + '0.201*J+UI*47+TR'   'LO', '-0.247*J+UI*48'    'LO',
> + '-0.247*J+UI*48+TR'   'LO', '0.446*J+UI*49'    'LO',
> + '0.446*J+UI*49+TR'   'HI', '0.329*J+UI*50'    'HI',
> + '0.329*J+UI*50+TR'   'LO', '0.706*J+UI*51'    'LO',
> + '0.706*J+UI*51+TR'   'HI', '-0.165*J+UI*52'    'HI',
> + '-0.165*J+UI*52+TR'   'LO', '0.302*J+UI*53'    'LO',
> + '0.302*J+UI*53+TR'   'LO', '0.03*J+UI*54'    'LO',
> + '0.03*J+UI*54+TR'   'HI', '0.152*J+UI*55'    'HI',
> + '0.152*J+UI*55+TR'   'LO', '-0.255*J+UI*56'    'LO',
> + '-0.255*J+UI*56+TR'   'HI', '-0.237*J+UI*57'    'HI',
> + '-0.237*J+UI*57+TR'   'LO', '0.014*J+UI*58'    'LO',
> + '0.014*J+UI*58+TR'   'LO', '0.64*J+UI*59'    'LO',
> + '0.64*J+UI*59+TR'   'LO', '-0.162*J+UI*60'    'LO',
> + '-0.162*J+UI*60+TR'   'LO', '0.311*J+UI*61'    'LO',
> + '0.311*J+UI*61+TR'   'LO', '0.33*J+UI*62'    'LO',
> + '0.33*J+UI*62+TR'   'LO', '-0.301*J+UI*63'    'LO',
> + '-0.301*J+UI*63+TR'   'HI', '-0.513*J+UI*64'    'HI',
> + '-0.513*J+UI*64+TR'   'LO', '0.102*J+UI*65'    'LO',
> + '0.102*J+UI*65+TR'   'LO', '-0.695*J+UI*66'    'LO',
> + '-0.695*J+UI*66+TR'   'LO', '-0.308*J+UI*67'    'LO',
> + '-0.308*J+UI*67+TR'   'LO', '-0.444*J+UI*68'    'LO',
> + '-0.444*J+UI*68+TR'   'LO', '0.387*J+UI*69'    'LO',
> + '0.387*J+UI*69+TR'   'LO', '-0.031*J+UI*70'    'LO',
> + '-0.031*J+UI*70+TR'   'HI', '-0.599*J+UI*71'    'HI',
> + '-0.599*J+UI*71+TR'   'LO', '-0.071*J+UI*72'    'LO',
> + '-0.071*J+UI*72+TR'   'LO', '0.077*J+UI*73'    'LO',
> + '0.077*J+UI*73+TR'   'HI', '0.663*J+UI*74'    'HI',
> + '0.663*J+UI*74+TR'   'HI', '-0.526*J+UI*75'    'HI',
> + '-0.526*J+UI*75+TR'   'LO', '0*J+UI*76'    'LO',
> + '0*J+UI*76+TR'   'LO', '0.193*J+UI*77'    'LO',
> + '0.193*J+UI*77+TR'   'LO', '0.479*J+UI*78'    'LO',
> + '0.479*J+UI*78+TR'   'LO', '-0.055*J+UI*79'    'LO',
> + '-0.055*J+UI*79+TR'   'HI', '0.161*J+UI*80'    'HI',
> + '0.161*J+UI*80+TR'   'LO', '0.404*J+UI*81'    'LO',
> + '0.404*J+UI*81+TR'   'LO', '-0.249*J+UI*82'    'LO',
> + '-0.249*J+UI*82+TR'   'HI', '-0.255*J+UI*83'    'HI',
> + '-0.255*J+UI*83+TR'   'LO', '-0.668*J+UI*84'    'LO',
> + '-0.668*J+UI*84+TR'   'HI', '-0.481*J+UI*85'    'HI',
> + '-0.481*J+UI*85+TR'   'LO', '0.553*J+UI*86'    'LO',
> + '0.553*J+UI*86+TR'   'LO', '0.16*J+UI*87'    'LO',
> + '0.16*J+UI*87+TR'   'HI', '0.392*J+UI*88'    'HI',
> + '0.392*J+UI*88+TR'   'LO', '-0.056*J+UI*89'    'LO',
> + '-0.056*J+UI*89+TR'   'LO', '0.267*J+UI*90'    'LO',
> + '0.267*J+UI*90+TR'   'LO', '0.384*J+UI*91'    'LO',
> + '0.384*J+UI*91+TR'   'LO', '0.79*J+UI*92'    'LO',
> + '0.79*J+UI*92+TR'   'LO', '-0.734*J+UI*93'    'LO',
> + '-0.734*J+UI*93+TR'   'LO', '-0.006*J+UI*94'    'LO',
> + '-0.006*J+UI*94+TR'   'HI', '-0.01*J+UI*95'    'HI',
> + '-0.01*J+UI*95+TR'   'HI', '-0.039*J+UI*96'    'HI',
> + '-0.039*J+UI*96+TR'   'LO', '0.648*J+UI*97'    'LO',
> + '0.648*J+UI*97+TR'   'HI', '0.099*J+UI*98'    'HI',
> + '0.099*J+UI*98+TR'   'LO', '0.409*J+UI*99'    'LO',
> + '0.409*J+UI*99+TR'   'HI', '0.808*J+UI*100'    'HI',
> + '0.808*J+UI*100+TR'   'HI', '0.458*J+UI*101'    'HI',
> + '0.458*J+UI*101+TR'   'LO', '0.709*J+UI*102'    'LO',
> + '0.709*J+UI*102+TR'   'LO', '0.489*J+UI*103'    'LO',
> + '0.489*J+UI*103+TR'   'HI', '0.309*J+UI*104'    'HI',
> + '0.309*J+UI*104+TR'   'LO', '0.637*J+UI*105'    'LO',
> + '0.637*J+UI*105+TR'   'LO', '0.225*J+UI*106'    'LO',
> + '0.225*J+UI*106+TR'   'LO', '-0.052*J+UI*107'    'LO',
> + '-0.052*J+UI*107+TR'   'HI', '-0.1*J+UI*108'    'HI',
> + '-0.1*J+UI*108+TR'   'HI', '0.288*J+UI*109'    'HI',
> + '0.288*J+UI*109+TR'   'LO', '-0.219*J+UI*110'    'LO',
> + '-0.219*J+UI*110+TR'   'LO', '-0.129*J+UI*111'    'LO',
> + '-0.129*J+UI*111+TR'   'LO', '0.035*J+UI*112'    'LO',
> + '0.035*J+UI*112+TR'   'LO', '0.131*J+UI*113'    'LO',
> + '0.131*J+UI*113+TR'   'HI', '-0.23*J+UI*114'    'HI',
> + '-0.23*J+UI*114+TR'   'LO', '0.24*J+UI*115'    'LO',
> + '0.24*J+UI*115+TR'   'LO', '0.684*J+UI*116'    'LO',
> + '0.684*J+UI*116+TR'   'LO', '0.027*J+UI*117'    'LO',
> + '0.027*J+UI*117+TR'   'HI', '0.351*J+UI*118'    'HI',
> + '0.351*J+UI*118+TR'   'LO', '-0.562*J+UI*119'    'LO',
> + '-0.562*J+UI*119+TR'   'LO', '0.831*J+UI*120'    'LO',
> + '0.831*J+UI*120+TR'   'LO', '-0.524*J+UI*121'    'LO',
> + '-0.524*J+UI*121+TR'   'HI', '-0.041*J+UI*122'    'HI',
> + '-0.041*J+UI*122+TR'   'HI', '0.675*J+UI*123'    'HI',
> + '0.675*J+UI*123+TR'   'HI', '-0.035*J+UI*124'    'HI',
> + '-0.035*J+UI*124+TR'   'HI', '0.083*J+UI*125'    'HI',
> + '0.083*J+UI*125+TR'   'LO', '-0.247*J+UI*126'    'LO',
> + '-0.247*J+UI*126+TR'   'HI', '-0.372*J+UI*127'    'HI',
> + '-0.372*J+UI*127+TR'   'LO', '-0.44*J+UI*128'    'LO',
> + '-0.44*J+UI*128+TR'   'HI', '-0.861*J+UI*129'    'HI',
> + '-0.861*J+UI*129+TR'   'LO', '0.162*J+UI*130'    'LO',
> + '0.162*J+UI*130+TR'   'HI', '-0.228*J+UI*131'    'HI',
> + '-0.228*J+UI*131+TR'   'HI', '0.606*J+UI*132'    'HI',
> + '0.606*J+UI*132+TR'   'HI', '-0.002*J+UI*133'    'HI',
> + '-0.002*J+UI*133+TR'   'LO', '0.385*J+UI*134'    'LO',
> + '0.385*J+UI*134+TR'   'HI', '0.012*J+UI*135'    'HI',
> + '0.012*J+UI*135+TR'   'LO', '0.14*J+UI*136'    'LO',
> + '0.14*J+UI*136+TR'   'LO', '-0.286*J+UI*137'    'LO',
> + '-0.286*J+UI*137+TR'   'HI', '-0.124*J+UI*138'    'HI',
> + '-0.124*J+UI*138+TR'   'HI', '0.132*J+UI*139'    'HI',
> + '0.132*J+UI*139+TR'   'HI', '0.65*J+UI*140'    'HI',
> + '0.65*J+UI*140+TR'   'LO', '0.422*J+UI*141'    'LO',
> + '0.422*J+UI*141+TR'   'HI', '-0.173*J+UI*142'    'HI',
> + '-0.173*J+UI*142+TR'   'HI', '-0.701*J+UI*143'    'HI',
> + '-0.701*J+UI*143+TR'   'HI', '0.674*J+UI*144'    'HI',
> + '0.674*J+UI*144+TR'   'LO', '-0.063*J+UI*145'    'LO',
> + '-0.063*J+UI*145+TR'   'LO', '0.697*J+UI*146'    'LO',
> + '0.697*J+UI*146+TR'   'HI', '-0.464*J+UI*147'    'HI',
> + '-0.464*J+UI*147+TR'   'HI', '0.241*J+UI*148'    'HI',
> + '0.241*J+UI*148+TR'   'LO', '0.158*J+UI*149'    'LO',
> + '0.158*J+UI*149+TR'   'HI', '0.725*J+UI*150'    'HI',
> + '0.725*J+UI*150+TR'   'LO', '-0.715*J+UI*151'    'LO',
> + '-0.715*J+UI*151+TR'   'HI', '0.379*J+UI*152'    'HI',
> + '0.379*J+UI*152+TR'   'HI', '-0.341*J+UI*153'    'HI',
> + '-0.341*J+UI*153+TR'   'LO', '0.387*J+UI*154'    'LO',
> + '0.387*J+UI*154+TR'   'HI', '-0.158*J+UI*155'    'HI',
> + '-0.158*J+UI*155+TR'   'LO', '0.637*J+UI*156'    'LO',
> + '0.637*J+UI*156+TR'   'LO', '-0.883*J+UI*157'    'LO',
> + '-0.883*J+UI*157+TR'   'LO', '-0.083*J+UI*158'    'LO',
> + '-0.083*J+UI*158+TR'   'HI', '-0.087*J+UI*159'    'HI',
> + '-0.087*J+UI*159+TR'   'HI', '0.573*J+UI*160'    'HI',
> .ends
> 
> 
> 
> 
> 
> On Feb 15, "Chris Cheng" <Chris.Cheng@xxxxxxxxxxxx> wrote:
> >=20
> > May be its just me but Rj only makes sense when you are trying to=20
> > extract a BERT curve
> which seems to be a MATLAB job.
> > If you have your Tx Rj, channel model and jitter transfer of your CDR,
> 
> > the rest of the
> work is straight forward.
> > >
> > >
> > > At 10:40 AM 2/7/2006 -0800, Ali Burney wrote:
> > > =20
> > >> Hi,
> > >>
> > >>
> > >> I am running gigabit Ethernet link simulation using HSPICE and have
> 
> > >> a=3D20 question on adding jitter to the transmitted data. Is there=20
> > >> any way to=3D20 add Gaussian jitter to the transmitted data?  I =
> know=20
> > >> that tools such as
> > >>   =20
> > >
> > > =20
> > >> Hyperlynx allow you to add transmit jitter.
> > >>
> > >>
> > >>
> > >> Thanks and best regards,
> > >>
> > >>
> > >>
> > >> A Burney
> > >>
> > >>
> > >>
> > >>
> 
> ------------------------------------------------------------------
> 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:
> <a 
> href='//www.freelists.org/webpage/si-list'>//www.freelists.org/webpage/si-
list</a>
> 
> For help:
> si-list-request@xxxxxxxxxxxxx with 'help' in the Subject field
> 
> List FAQ wiki page is located at:
>                 <a 
> href='http://si-list.org/wiki/wiki.pl?Si-List_FAQ'>http://si-
list.org/wiki/wiki.pl?Si-List_FAQ</a>
> 
> List technical documents are available at:
>                 <a href='http://www.si-list.org'>http://www.si-list.org</a>
> 
> List archives are viewable at:    =20
>               <a href='//www.freelists.org/archives/si-
list'>//www.freelists.org/archives/si-list</a>
> or at our remote archives:
>               <a href='http://groups.yahoo.com/group/si-
list/messages'>http://groups.yahoo.com/group/si-list/messages</a>
> Old (prior to June 6, 2001) list archives are viewable at:
>               <a 
> href='http://www.qsl.net/wb6tpu'>http://www.qsl.net/wb6tpu</a>
>  =20
> 
> ------------------------------------------------------------------
> 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:
> <a 
> href='//www.freelists.org/webpage/si-list'>//www.freelists.org/webpage/si-
list</a>
> 
> For help:
> si-list-request@xxxxxxxxxxxxx with 'help' in the Subject field
> 
> List FAQ wiki page is located at:
>                 <a 
> href='http://si-list.org/wiki/wiki.pl?Si-List_FAQ'>http://si-
list.org/wiki/wiki.pl?Si-List_FAQ</a>
> 
> List technical documents are available at:
>                 <a href='http://www.si-list.org'>http://www.si-list.org</a>
> 
> List archives are viewable at:     
>               <a href='//www.freelists.org/archives/si-
list'>//www.freelists.org/archives/si-list</a>
> or at our remote archives:
>               <a href='http://groups.yahoo.com/group/si-
list/messages'>http://groups.yahoo.com/group/si-list/messages</a>
> Old (prior to June 6, 2001) list archives are viewable at:
>               <a 
> href='http://www.qsl.net/wb6tpu'>http://www.qsl.net/wb6tpu</a>
>   
> 
> 
------------------------------------------------------------------
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 FAQ wiki page is located at:
                http://si-list.org/wiki/wiki.pl?Si-List_FAQ

List technical documents are available at:
                http://www.si-list.org

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: