Operator Library: Debugging
Operator ImageTimingGenerator allows you to emulate the image timing as it occurs with real cameras in productive systems.
Availability | |
---|---|
To use the ImageTimingGenerator operator, you need either an Expert license, a Debugging Module license, or the VisualApplets 4 license. |
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.
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). |
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. |
Property | Value |
---|---|
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 |
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 | |
---|---|
Type | static write parameter |
Default | 1 |
Range | [1, (2^14)-1] |
Defines the LUT size for ImageHeightLUT, ImageWidthLUT, FrameGapLUT, and LineGapLUT. |
ImageSequenceLength | |
---|---|
Type | dynamic write parameter |
Default | 1 |
Range | [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 | |
---|---|
Type | dynamic write parameter |
Default | 1024 |
Range | [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 | |
---|---|
Type | dynamic write parameter |
Default | 0 |
Range | [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 | |
---|---|
Type | dynamic write parameter |
Default | 1024 |
Range | [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 | |
---|---|
Type | dynamic write parameter |
Default | 0 |
Range | [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 | |
---|---|
Type | dynamic write parameter |
Default | 100 |
Range | [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 | |
---|---|
Type | dynamic write parameter |
Default | FreeRun |
Range | {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 | |
---|---|
Type | dynamic write parameter |
Default | 10 |
Range | [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 | |
---|---|
Type | dynamic write parameter |
Default | 1024 |
Range | [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 | |
---|---|
Type | dynamic write parameter |
Default | 0 |
Range | [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 | |
---|---|
Type | dynamic write parameter |
Default | FreeRun |
Range | {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 | |
---|---|
Type | dynamic write parameter |
Default | 10 |
Range | [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 | |
---|---|
Type | dynamic write parameter |
Default | 1024 |
Range | [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 | |
---|---|
Type | dynamic write parameter |
Default | 0 |
Range | [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 | |
---|---|
Type | dynamic read parameter |
Default | 0 |
Range | [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 | |
---|---|
Type | dynamic read parameter |
Default | 0 |
Range | [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 | |
---|---|
Type | static write parameter |
Default | 1 |
Range | [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 | |
---|---|
Type | static write parameter |
Default | 1 |
Range | [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. |
The use of operator ImageTimingGenerator is shown in the following examples:
-
Example - While image timing is provided by a generator the designs data flow can be analyzed.
-
Example - For debugging purposes of the designs internal data flow control in hardware and a possible compensation.