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

eyeWidthAtXY

eyeWidthAtXY(
o_eyeDiagram
f_x
f_y
[ ?output t_output ]
)
=> f_eyeWidth / nil

Description

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

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

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

Arguments

o_eyeDiagram

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

f_x

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

f_y

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

?output t_output

Specifies whether to calculate the total eye width or the eye width relative to the specified x-axis value.

Valid values are:

  • total: Calculates the total eye width at the point (x, y).
  • left: Calculates the eye width that is left to the specified x-axis value.
  • right: Calculates the eye width that is right to the specified x-axis value.

The default value is total.

Value Returned

f_eyeWidth

Eye width at the specified point inside the eye diagram.

nil

Eye width cannot be calculated because of an error.

Examples

The following example calculates the eye width that is left to x=40ns at point M1 (x=40ns, y=0.5).

awvCreatePlotWindow()
;Creates a Waveform window and returns its window ID.
=> window:3
openResults("/servers/user/design/prbs.raw")
;Opens simulation results stored in the specified directory.
=> "/servers/user/design/prbs.raw"
results()
;Lists the results contained in the results directory /servers/user/design/prbs.raw.
=> tran()
selectResult('tran)
;Selects the tran results.
=> stdobj@0x321eab00
eye=eyeDiagram(v("jitter" ?result "tran-tran") 200n 1.4u 2*40n   ?autoCenter t )
; 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.
=> srrWave:0x364bc030
awvPlotWaveform(
    window(3)
    list(eye)
    ?expr list("eyeDiagram")
    ?color list("y6")
    ?index list(1)
    ?lineType list("line")
    ?lineStyle list("dot")
    ?lineThickness list("thick")
    )
;Plots the eye diagram in the Waveform window that you created using the function awvCreatePlotWindow.
=> t

awvPlaceYMarker(window(3) 0.5 ?label "H1at500mV")
; Places a horizontal marker at y=0.5V (500mV).
=> "horizMarker[1.1.1]"
awvPlaceXMarker(window(3) 40n ?label "V1 at 40ns")
;Places a vertical marker at x=40ns.
=> "vertMarker[1.1.1]"
awvPlacePointMarker(window(3) 1 40n 500m ?positionMode "xy")
;Places a point marker M1 at x=40ns and y=500mV.
=> "pointMarker[1.1.1]"

eyeWidthAtXY(eye 40n 0.5 ?output "total")
; Calculates the total eye width of eye diagram eye at point M1 whose x-axis and y-axis coordinates are 40ns and 0.5, respectively.
=> 3.754902e-08
eyeWidthAtXY(eye 40n 0.5 ?output "right")
; Calculates the eye width that is right to x=40ns at point M1 (x=40ns, y=0.5).
=> 1.868346e-08
eyeWidthAtXY(eye 40n 0.5 ?output "left")
;Calculates the eye width that is left to x=40ns at point M1 (x=40ns, y=0.5).
=> 1.886556e-08

Note that total eye width at any point inside the eye diagram is equal to the sum of eye widths to the left and to the right of that point.


Return to top
 ⠀
X