Operator StreamAnalyzer

Operator Library: Debugging

Operator StreamAnaylzer provides information about the data flow through. It doesn't touch the image data.

[Important] Availability

To use the StreamAnaylzer operator, you need either an Expert license, a Debugging Module license, or the VisualApplets 4 license.

You can use the operator to detect blocking (inhibit) conditions.

When a blocking occurs in the pipeline, you can use this operator to see where in a frame (at which pixel) the blocking occured.

In addition, operator StreamAnalyzer provides data about the utilization of the pipeline capacity (valid fraction, idle fraction, blocked fraction of time in percent).

When an internal counter overflows, a corresponding overflow bit is set in the OverflowMask parameter and the counter halts.

[Important] Runtime Testing

This operator is designed for testing and analyzing your design during runtime: You need to build (synthesize) the design, load it onto the target hardware, and start actual image processing, before you can use the operator for debugging.

The operator is not intended for design simulation within VisualApplets.

I/O Properties

Property Value
Operator Type O
Input Link I, Image data input
Output Link O, Image data output

Supported Link Format

Link Parameter Input Link I Output Link O
Bit Width [1, 64] as I
Arithmetic {unsigned, signed} as I
Parallelism any as I
Kernel Columns any as I
Kernel Rows any as I
Img Protocol VALT_IMAGE2D, LINE1D, PIXEL0D as I
Color Format any as I
Color Flavor any as I
Max. Img Width any as I
Max. Img Height any as I

Parameters

ClearMode
Type dynamic write parameter
Default ClearWithProcessStart
Range {NoClearing, ClearWithProcessStart, ClearWithProcessReset, SendClearPulse}

This parameter defines the reset behavior for all read parameters.

NoClearing: Values of all read parameters are held. ProcessEnable and ProcessReset have no influcence on these values.

ClearWithProcessStart: Values of read parameters are only cleared with rising edge of ProcessEnable.

ClearWithProcessReset: Values of read parameters are only cleared with rising edge of ProcessReset.

SendClearPulse: On-demand clearing of all read parameter values.

MeasurementMode
Type dynamic write parameter
Default AllCycles
Range {AllCycles, FrameCyclesOnly, LineCyclesOnly}

This parameter allows you to analyze specific fractions of the MeasurementPeriod:

AllCycles: Performance is measured over all cycles inside the MeasurementPeriod.

FrameCyclesOnly: Performance is measured over all cycles between the start end the end of frames. Frame gaps inside the MeasurementPeriod are therefore omitted.

LineCyclesOnly: Performance is measured over all cycles between the start end the end of lines. Frame gaps and line gaps inside the MeasurementPeriod are therefore omitted.

MeasurementPeriod
Type dynamic write parameter
Default 1000
Range [1, 65535]

Time in milliseconds for performance measurements.

The definition of the measurement period is important for analyzing time fractions, and for calculating mean values.

FrameCountWidth
Type static write parameter
Default 24
Range [4, 63]

Sets the bit width of the frame counter. (Frame counter is parameterCurrFrame).

CurrTime
Type dynamic read parameter
Default 0
Range [0, (2^32)-1]

Time passed since the beginning of the measurement period (in milliseconds).

CurrFrame
Type dynamic read parameter
Default 0
Range [0, (2^FrameCountWidth) -1]

This parameter acts as a frame counter. Counted are all frames which are terminated with an EndOfFrame flag. Available only in IMAGE-2D mode.

CurrBlocked
Type dynamic read parameter
Default 0
Range [0, 1]

If set to one: Value 1 informs that the image flow is blocked.

BlockedCyclesPerFrame
Type dynamic read parameter
Default 0
Range [0, (2^(ImageWidthtBitwidth+4))-1]

Counts the number of clock cycles during which the image flow is blocked during the flow-through of one frame.

A pixel gap always has exactly the length of the blocking which provokes the gap. However, the offset of the gap may differ from the offset of the blocking status.

If buffer operators have been implemented earlier in the processing line, the pixels that can not be transferred due to the blocking status are buffered.

If no buffer operator is implemented earlier in the processing line, the pixels that can not be transferred due to the blocking status are discarded.

FirstBlockedFrame
Type dynamic read parameter
Default 0
Range [0, (2^FrameCountWidth)-1]

Frame number of frame during which first blocking occurred.

LastBlockedFrame
Type dynamic read parameter
Default 0
Range [0, (2^FrameCountWidth)-1]

Frame number of frame during which last blocking has occurred.

FirstBlockedXPos
Type dynamic read parameter
Default 0
Range [0, (2^(ImageWidthBitWidth+4))-1]

Horizontal position at which first blocking appeared.

LastBlockedXPos
Type dynamic read parameter
Default 0
Range [0, (2^(ImageWidthBitWidth+4))-1]

The last horizontal position at which the image flow was blocked until now.

Example: If the value is 7: Horizontal position 7 was the last X position blocked until now. Horizontal position 8 was the first unblocked position after the last blocking that occurred.

FirstBlockedYPos
Type dynamic read parameter
Default 0
Range [0, (2^(ImageWidthBitWidth+4))-1]

Vertical position at which first blocking appeared.

LastBlockedYPos
Type dynamic read parameter
Default 0
Range [0, (2^(ImageWidthBitWidth+4))-1]

The last vertical position at which the image flow was blocked until now.

Example: If the value is 13: Vertical position 13 was the last Y position blocked until now. Vertical position 14 was the first unblocked position after the last blocking that occurred.

FirstBlockedTime
Type dynamic read parameter
Default 0
Range [0, (2^32)-1]

Time stamp at which first blocking appeared.

LastBlockedTime
Type dynamic read parameter
Default 0
Range [0, (2^32)-1]

Time stamp of point of time at which last blocking has appeared.

After this point of time, no further blocking occured until now.

DataRate
Type dynamic read parameter
Default 0
Range

Measured data rate in mega pixel per second.

BlockedFraction
Type dynamic read parameter
Default 0
Range [0.0, 100.0]

Percentage of blocked cycles within the measurement period (see parameter MeasurementPeriod).

IdleFraction
Type dynamic read parameter
Default 0
Range [0.0, 100.0]

Percentage of idle cycles within the measurement period (see parameter MeasurementPeriod).

ValidFraction
Type dynamic read parameter
Default 0
Range [0.0, 100.0]

Percentage of valid cycles carrying data within the measurement period (see parameter MeasurementPeriod).

OverflowMask
Type dynamic read parameter
Default 0
Range [0, 511]

Operator Control:

Bit-encoded overflow signaling. A set bit indicates an overflow in the following counters:

[0] = FrameCount

[1] = PixelCount

[2] = xPos

[3] = yPos

[4] = LinePeriod

[5] = InhibitCount

[6] = InhibitCountFrame

[7] = IdleCount

[8] = ValidCount

Examples of Use

The use of operator StreamAnalyzer is shown in the following examples:

  • 'Image Dimension Test'

    Example - The image dimension is measured and can be used to analyze the design flow.

  • 'Image Timing Generator'

    Example - While image timing is provided by a generator the designs data flow can be analyzed.