Generate X versus Y plot with OCEAN or Skill (example Eyedi

F

Fritz Lange

Guest
Hy,

Does somebody know how to setup a X versus Y Plot in OCEAN or Skill?

I want to generate a Eye diagram automatically
For that I need to plot on the X-Axis a Sawtooth signal instead of the time
axis

I searched in the online help documents, but I found nothing.


Thanks for any help


Best regards

Norman
 
In the Waveform Window, setup the X-axis
to another variable.
I don't remember the exact menu commands
right now but you shouldn't have trouble
doing this.

Using the waveform function you can certainly
do this in skill (awe* functions i guess).

stéphane

"Fritz Lange" <fl@web.de> wrote in message
news:c81uth$9le$1@mamenchi.zrz.TU-Berlin.DE...
Hy,

Does somebody know how to setup a X versus Y Plot in OCEAN or Skill?

I want to generate a Eye diagram automatically
For that I need to plot on the X-Axis a Sawtooth signal instead of the
time
axis

I searched in the online help documents, but I found nothing.


Thanks for any help


Best regards

Norman
 
Hi Norman,

The first thing to say is that there is an eyeDiagram function in IC50, based on
some code I wrote a while back, which may do what you want.

Secondly, to do an X versus Y in SKILL, you can use:

/*******************************************************************
* *
* (abChangeXAxis yVar xVar) *
* *
* Return a new waveform object with the x axis set to the y values *
* of the second argument. *
* *
*******************************************************************/

(procedure (abChangeXAxis yVar xVar)
(let (newWave)
(setq newWave (drCreateEmptyWaveform))
(drPutWaveformXVec newWave (drGetWaveformYVec xVar))
(if (eq (drGetWaveformXVec yVar) (drGetWaveformXVec xVar))
/* if the x axes are the same for both, it's simple */
(drPutWaveformYVec newWave (drGetWaveformYVec yVar))
/* otherwise need to use value() to interpolate */
(let (xVec yVec len)
(setq xVec (drGetWaveformXVec xVar))
(setq len (drVectorLength xVec))
(setq yVec (drCreateVec (drGetWaveformYType yVar) len))
(for ind 0 (sub1 len)
(drAddElem yVec (value yVar (drGetElem xVec ind)))
)
(drPutWaveformYVec newWave yVec)
)
)
newWave
)
)

Regards,

Andrew.

On Fri, 14 May 2004 10:10:44 +0200, "Fritz Lange" <fl@web.de> wrote:

Hy,

Does somebody know how to setup a X versus Y Plot in OCEAN or Skill?

I want to generate a Eye diagram automatically
For that I need to plot on the X-Axis a Sawtooth signal instead of the time
axis

I searched in the online help documents, but I found nothing.


Thanks for any help


Best regards

Norman
--
Andrew Beckett
Senior Technical Leader
Custom IC Solutions
Cadence Design Systems Ltd
 
Hi Andrew,

Unfortunately I don't have the possibility to work with IC50.

But your SKILL function is maybe the beginning of a solution to my problem.

I works very well when I use normal waveform expressions like

XPLOTVAL= v("/XOUT")
YPLOTVAL=v("/SIGNALOUT")
plot(abChangeXAxis(YPLOTVAL XPLOTVAL) )

for example

But when I try to use your procedure in combination with the clip function
like

XPLOTVAL= clip(v("/XOUT") 400n 1u)
YPLOTVAL=clip(v("/SIGNALOUT") 400n 1u)
plot(abChangeXAxis(YPLOTVAL XPLOTVAL) )

it doesn't work anymore

I tried to puzzle out how to fix your routine to get it working with the
clip command, but I lack of the know-how in SKILL programming to do this in
an acceptable time.

To you have a clue?

Best regards

Norman



"Andrew Beckett" <andrewb@DELETETHISBITcadence.com> schrieb im Newsbeitrag
news:f39aa0pk43s41hli9btfplf44aokajvm7o@4ax.com...
Hi Norman,

The first thing to say is that there is an eyeDiagram function in IC50,
based on
some code I wrote a while back, which may do what you want.

Secondly, to do an X versus Y in SKILL, you can use:

/*******************************************************************
* *
* (abChangeXAxis yVar xVar) *
* *
* Return a new waveform object with the x axis set to the y values *
* of the second argument. *
* *
*******************************************************************/

(procedure (abChangeXAxis yVar xVar)
(let (newWave)
(setq newWave (drCreateEmptyWaveform))
(drPutWaveformXVec newWave (drGetWaveformYVec xVar))
(if (eq (drGetWaveformXVec yVar) (drGetWaveformXVec xVar))
/* if the x axes are the same for both, it's simple */
(drPutWaveformYVec newWave (drGetWaveformYVec yVar))
/* otherwise need to use value() to interpolate */
(let (xVec yVec len)
(setq xVec (drGetWaveformXVec xVar))
(setq len (drVectorLength xVec))
(setq yVec (drCreateVec (drGetWaveformYType yVar) len))
(for ind 0 (sub1 len)
(drAddElem yVec (value yVar (drGetElem xVec ind)))
)
(drPutWaveformYVec newWave yVec)
)
)
newWave
)
)

Regards,

Andrew.

On Fri, 14 May 2004 10:10:44 +0200, "Fritz Lange" <fl@web.de> wrote:

Hy,

Does somebody know how to setup a X versus Y Plot in OCEAN or Skill?

I want to generate a Eye diagram automatically
For that I need to plot on the X-Axis a Sawtooth signal instead of the
time
axis

I searched in the online help documents, but I found nothing.


Thanks for any help


Best regards

Norman


--
Andrew Beckett
Senior Technical Leader
Custom IC Solutions
Cadence Design Systems Ltd
 

Welcome to EDABoard.com

Sponsor

Back
Top