Operator ImageTimingGenerator

Operator Library: Debugging

Operator ImageTimingGenerator allows you to emulate the image timing as it occurs with real cameras in productive systems.

The operator creates a black image output. It offers many parameters that enable you to define the timing behavior of the image output.

Use this operator to test whether the subsequent image processing pipeline can handle a specific timing of the data stream.

You will see if a specific timing behavior causes bottlenecks, or if the pipeline of your design is able to process the images despite timing deviations.

The line generation settings and the frame generation settings support four different generation modes:

  • FreeRun: The FreeRun mode achieves the fastest generation.
  • JitterMode:The JitterMode works like the FreeRun mode but enables you to define jitter for timing generation.
  • FixedFreqency: The FixedFreqency generation mode allows you to set a fix timing.
  • ExternalTrigger: If you want to use an input signal for triggering the line and/or frame generation, you set the line and/or frame generation settings to ExternalTrigger mode.

In addition, you can test how the design reacts to variations in image height, image width, line gap, and frame gap. You can define these parameters via lookup tables and variable jitter settings.

You can also adjust the pixel duty cycle to simulate a slowdown of a virtual pixel clock.

ImageHeightJitter and FrameGapJitter are only active (can only be used) as long as FrameGenerationMode is set to JitterMode. Likewise, ImageWidthJitter and LineGapJitter are only active during LineGenerationMode = JitterMode.

Frame generation parameters as well as ImageHeight parameters are only available with the VALT_IMAGE2D image output protocol. Also all Line generation parameters as well as ImageWidth parameters are only available with the VALT_IMAGE2D or the VALT_LINE1D image output protocol.

[Note] Behavior During Design Simulation (Before Build)

During design simulation, only the parameters ImageHeightLut, ImageWidthLut, MaxImageSequenceLength and ImageSequenceLength are used. All other operator parameters and LUT entries of this operator have no influence on the simulated image. This means that during simulation, the operator ImageTimingGenerator behaves like the operator CreateBlackImage.

All other operator parameters and LUT entries of this operator have no influence on the simulated image (i.e., during simulation, operator ImageTimingGenerator behaves like operator CreateBlackImage).

[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.

I/O Properties

Property
Operator Type M
Input Links TriggerLineI (optional), optional external line trigger signal input. Tie to ground if not used.
TriggerFrameI (optional), optional external frame trigger signal input. Tie to ground if not used.
Output Link O, Image data output

Supported Link Format

Link Parameter Input Link TriggerLineI (optional) Input Link TriggerFrameI (optional) Output Link O
Bit Width 1 1 1
Arithmetic none none unsigned
Parallelism none none any
Kernel Columns none none 1
Kernel Rows none none 1
Img Protocol SIGNAL SIGNAL {VALT_IMAGE2D, VALT_LINE1D, VALT_PIXEL0D}
Color Format none none GRAY
Color Flavor none none none
Max. Img Width none none any
Max. Img Height none none any

参数

MaxImageSequenceLength
键入 static write parameter
默认 1
范围 [1, (2^14)-1]

Defines the LUT size for ImageHeightLUT, ImageWidthLUT, FrameGapLUT, and LineGapLUT.

ImageSequenceLength
键入 dynamic write parameter
默认 1
范围 [1, (2^MaxImageSequenceLength)-1 ]

Sets the number of entries used from the LUTs. If set to one, only the first entry of each LUT is used. If set to, e.g., four, while the MaxImageSequenceLength is set to, e.g., 7, only the first four entries in all LUTs will be used in round robin fashion.

ImageHeightLUT
键入 dynamic write parameter
默认 1024
范围 [1, MaxImageHeight]

This LUT stores image height values to be used for output image generation. During generation the LUT values are read in round robin fashion.

ImageHeightJitter
键入 dynamic write parameter
默认 0
范围 [0, MaxImageHeightBitwidth-2]

Number of least significant bits of an ImageHeightLUT value that will be allowed to jitter during image generation. Only used while parameter FrameGenerationMode is set to JitterMode.

ImageWidthLUT
键入 dynamic write parameter
默认 1024
范围 [1, MaxImageWidth]

This LUT stores image width values to be used for output image generation. During generation the LUT values are read in round robin fashion.

ImageWidthJitter
键入 dynamic write parameter
默认 0
范围 [0, MaxImageWidthBitwidth-2]

Number of least significant bits of an ImageWidthLUT value that will be allowed to jitter during image generation. Only used while parameter LineGeneration Mode is set to JitterMode.

PixelDutyCycle
键入 dynamic write parameter
默认 100
范围 [1, 100]

Pixel duty cycle for the output stream. 100 % means that every clock cycle corresponds to an output pixel. If 20% pixel duty cycle is set then every fifth clock cycle an output pixel is generated.

FrameGenerationMode
键入 dynamic write parameter
默认 FreeRun
范围 {FreeRun, JitterMode, FixedFrequency, ExternalTrigger}

Selects the frame generation mode.

FreeRun: Fastest image generation mode based on ImageHeight and FrameGap. Parameter FrameRate is ignored.

JitterMode: Same as FreeRun but using the FrameGapJitter parameter.

FixedFrequency: Generation of a fixed frequency image rate set through the FrameRate parameter.

ExternalTrigger: Optional external trigger input TriggerFrameI is used to trigger the start of a new image frame generation. Only available if port FrameTriggerI was enabled.

When a new image start is triggered before a current image generation has ended, this request is ignored an the SkippedFrame counter is incremented. This applies to all frame generation modes.

FrameRate
键入 dynamic write parameter
默认 10
范围 [0.5, 1048576.0]

Target image frequency in Hz. Only used when parameter FrameGenerationMode is set to FixedFrequency. Maximum FrameRate is limited by the LineRate and the ImageHeight.

FrameGapLUT
键入 dynamic write parameter
默认 1024
范围 [1, 67108863]

Lookup table entries define the gap between two image frames. The frame gap value defines the gap as number of clock cycles. This parameter is ignored in FixedFreqency generation mode .

FrameGapJitter
键入 dynamic write parameter
默认 0
范围 [0, FrameGapBitwidth-2]

Number of least significant bits of an FrameGapLUT value that will be allowed to jitter during image generation. Only used during JitterMode frame generation.

LineGenerationMode
键入 dynamic write parameter
默认 FreeRun
范围 {FreeRun, JitterMode, FixedFrequency, ExternalTrigger}

Selects the line generation mode.

FreeRun: Fastest image generation mode based on ImageWidth and LineGap. Parameter LineRate is ignored.

JitterMode: Same as FreeRun except the use of LineGapJitter parameter.

FixedFrequency: Generation of a fixed frequency line rate set through the LineRate parameter.

ExternalTrigger: Optional external trigger input TriggerLineI is used to trigger the start of a new line generation. Only available if port LineTriggerI was enabled.

If current line generation has not ended and a new line start is triggered then this request is ignored an the SkippedLine counter is incremented. This applies to all line generation modes.

LineRate
键入 dynamic write parameter
默认 10
范围 [0.5, 1048576.0]

Target line frequency in Hz. Only used in FixedFrequency line generation mode. Maximum LineRate is limit by the LineGap and the ImageWidth.

LineGapLUT
键入 dynamic write parameter
默认 1024
范围 [1, 67108863]

Lookup table entries define the gap between two lines. The line gap value defines the gap as number of pixels between two lines. This parameters is ignored in FixedFreqency line generation mode.

LineGapJitter
键入 dynamic write parameter
默认 0
范围 [0, LineGapBitwidth-2]

TNumber of least significant bits of an LineGapLUT value that will be allowed to jitter during image generation. Only used during JitterMode line generation.

SkippedLine
键入 dynamic read parameter
默认 0
范围 [0, 65535]

This is an error counter used to indicate conflicting settings in the line generation mode.

If current line generation has not ended and a new line start is triggered then this request is ignored an the SkippedLine counter is incremented. This applies to all line generation modes.

SkippedFrame
键入 dynamic read parameter
默认 0
范围 [0, 65535]

This is an error counter used to indicate conflicting settings in the frame generation mode.

If current image generation has not ended and a new image start is triggered then this request is ignored an the SkippedFrame counter is incremented. This applies to all frame generation modes.

LinesToSimulate
键入 static write parameter
默认 1
范围 [1, (2^32) - 1]

If the output link image protocol is set to VALT_LINE1D, it is required to specify the number of lines for simulation. This parameter is used to specify the simulation image height. See 'Simulation' for more information on 1D simulations. This parameter can only be changed if the output image protocol is set to VALT_LINE1D.

PixelsToSimulate
键入 static write parameter
默认 1
范围 [1, (2^32) - 1], step size = output parallelism

If the output link image protocol is set to VALT_PIXEL0D, it is required to specify the size of the pixel stream for simulation. This parameter is used to specify the simulation pixel stream width. See 'Simulation' for more information on 0D simulations. This parameter can only be changed if the output image protocol is set to VALT_PIXEL0D.

Examples of Use

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

  • 'Image Timing Generator'

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

  • 'Image Flow Control'

    Example - For debugging purposes of the designs internal data flow control in hardware and a possible compensation.