Product Documentation
Virtuoso Visualization and Analysis XL SKILL Reference
Product Version IC23.1, November 2023

eyeHeightAtXY

eyeHeightAtXY(
o_eyeDiagram
f_x
f_y
[ ?output t_output ]
)
=> f_eyeHight / nil

Description

Calculates the eye height at the specified point (x, y) inside the eye diagram.

Eye height is the difference of two intercepts made with the innermost traces of the eye in the direction of y axis.

The specified coordinates (x, y) must lie within the open eye whose height you want to calculate.

Arguments

o_eyeDiagram

Eye diagram whose height is to be calculated at the specified point.

f_x

X-axis coordinate of the points at which eye height is to be calculated.

f_y

Y-axis coordinate of the points at which eye height is to be calculated.

?output t_output

Specifies whether to calculate the total eye height or the eye height relative to the specified y-axis value.

Valid values are:

  • total: Calculates the total eye height at the point (x, y).
  • above: Calculates the eye height that is above the specified y-axis value.
  • below: Calculates the eye height that is below the specified y-axis value.

The default value is total.

Value Returned

f_eyeHeight

Eye height at the specified point inside the eye diagram.

nil

Eye height cannot be calculated because of an error.

Examples

The following example creates a Waveform window and returns its window ID.

awvCreatePlotWindow()
=> window:3

The following example opens simulation results stored in the specified directory.

openResults("/servers/user/design/prbs.raw")
=> "/servers/user/design/prbs.raw"

The following example lists the results contained in the results directory /servers/user/design/prbs.raw.

results()
=> tran()

The following example selects the tran results.

selectResult('tran)
=> stdobj@0x321eab00

The following example creates a waveform object eye that represents an eye diagram created using a signal jitter, which is available in the tran results of the results directory /servers/user/design/prbs.raw.

eye=eyeDiagram(v("jitter" ?result "tran-tran") 200n 1.4u 2*40n   ?autoCenter t )
=> srrWave:0x364bc030

The following example plots the eye diagram in the Waveform window that you created using the function awvCreatePlotWindow.

awvPlotWaveform(
    window(3)
    list(eye)
    ?expr list("eyeDiagram")
    ?color list("y6")
    ?index list(1)
    ?lineType list("line")
    ?lineStyle list("dot")
    ?lineThickness list("thick")
    )
=> t

The following example places a horizontal marker at y=0.5V (500mV).

awvPlaceYMarker(window(3) 0.5 ?label "H1at500mV")
=> "horizMarker[1.1.1]"

The following example places a vertical marker at x=40ns.

awvPlaceXMarker(window(3) 40n ?label "V1 at 40ns")
=> "vertMarker[1.1.1]"

The following example places a point marker M1 at x=40ns and y=500mV.

awvPlacePointMarker(window(3) 1 40n 500m ?positionMode "xy")
=> "pointMarker[1.1.1]"

The following example calculates the total eye height of eye diagram eye at point M1 whose x-axis and y-axis coordinates are 40ns and 0.5, respectively.

eyeHeightAtXY(eye 40n 0.5 ?output "total")
=> 0.8399164

The following example calculates the eye height that is above y=0.5V (500mV) at point M1 (x=40ns, y=0.5).

eyeHeightAtXY(eye 40n 0.5 ?output "above")
=> 0.4397585

The following example calculates the eye height that is below y=0.5V (500mV) at point M1 (x=40ns, y=0.5).

eyeHeightAtXY(eye 40n 0.5 ?output "below")
=> 0.4001579

Note that total eye height at any point inside the eye diagram is equal to the sum of eye heights above and below that point.


Return to top
 ⠀
X