Operator ImageMonitor

Operator ImageMonitor fetches images for you from any spot of the inner pipeline you define. You can see what happened to the image until it reached this spot, and use this information for debugging.

Operator ImageMonitor works like a Simulation Probe you use when simulating a design in VisualApplets - only that operator ImageMonitor is used for testing during runtime.

The operator provides a very simple image readout register interface. When parameter Mode is set to image monitoring, whole images can be read by only reading the PixelData register.

This is very helpful as you can monitor image data without using one of the (limited) DMA channels.

The number of ImageMonitor operator instances in a design is theoretically unlimited. However, you should use the operator carefully to save resources as additional FPGA logic is introduced for pausing the data flow during read-out. This also means that the operator cannot be used for monitoring infinite sources.

Supported pixel width is limited to 61 bits since the last three bits of PixelData carry the Valid, EndOfLine, and EndOfFrame flags.

The CurrXPos and CurrYPos parameters point to the currently active pixel position. This information can be used to filter the output pixels, e.g., to analyze only each second or third pixel.

[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 M
Input Link I, image data input

Supported Link Format

Link Parameter Input Link I
Bit Width [1, 61]
Arithmetic {unsigned, signed}
Parallelism any
Kernel Columns 1
Kernel Rows 1
Img Protocol {VALT_IMAGE2D, VALT_LINE1D}
Color Format any
Color Flavor any
Max. Img Width any
Max. Img Height any

Parameters

Mode
Type dynamic write parameter
Default UnlimitedSink
Range {UnlimitedSink, Monitor, MonitorFromLineStart, MonitorFromFrameStart}

This parameter sets the working mode.

UnlimitedSink = No monitoring as all input is discarded.

Monitor = Switches to monitoring mode immediately.

MonitorFromLineStart = Switches to monitoring mode after the end of current line.

MonitorFromFrameStart = Switches to monitoring mode after the end of current frame.

ReadyForMonitoring
Type dynamic read parameter
Default no
Range {yes, no}

Indicates readiness to read PixelData parameter. PixelData must be read only if set to yes.

PixelData
Type dynamic read parameter
Default
Range [1, 64]

Includes the current pixel value and three pixel flags. When valid flag is not set, the pixel value is discarded.

PixelValue = PixelData[1, LinkBitWidth]

ValidFlag = PixelData[LinkBitWidth+1]

EndOfLineFlag =

PixelData[LinkBitWidth+2]

EndOfFrameFlag =

PixelData[LinkBitWidth+3]

CurrXPos
Type dynamic read parameter
Default 0
Range [0, MaxImageWidth-1]

Displays current line position.

CurrYPos
Type dynamic read parameter
Default 0
Range [0, MaxImageHeight-1]

Displays current image height position.

Examples of Use

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

  • 'Image Monitoring'

    Example - For debugging purposes image transfer states on links can be investigated.